chore: auto-commit from dashboard
This commit is contained in:
@@ -1,5 +1,47 @@
|
||||
{
|
||||
"notes": [
|
||||
{
|
||||
"file": "notes-data/projects/cactus-needle-function-calling-eval.md",
|
||||
"title": "Cactus Needle — evaluare model de function calling pentru pre-routing local (2026-07-12)",
|
||||
"date": "2026-07-12",
|
||||
"tags": [],
|
||||
"domains": [],
|
||||
"types": [],
|
||||
"category": "projects",
|
||||
"project": null,
|
||||
"subdir": null,
|
||||
"video": "",
|
||||
"tldr": "Foldere de test (`/tmp/needle-test`, `/tmp/hammer-test`) sunt în `/tmp`, se pierd la reboot. Cache-uri de modele rămase în `~/.cache/huggingface/hub/` (**nu** se pierd la reboot): `models--MadeAgents-..."
|
||||
},
|
||||
{
|
||||
"file": "notes-data/youtube/2026-07-12_cactus-needle-26m-function-calling-model.md",
|
||||
"title": "2026-07-12_cactus-needle-26m-function-calling-model",
|
||||
"date": "2026-07-12",
|
||||
"tags": [],
|
||||
"domains": [
|
||||
"work",
|
||||
"growth"
|
||||
],
|
||||
"types": [],
|
||||
"category": "youtube",
|
||||
"project": null,
|
||||
"subdir": null,
|
||||
"video": "",
|
||||
"tldr": "Cactus a lansat **Needle** — un model open source de doar **26 milioane de parametri** specializat exclusiv pe function calling (tool calling), distilat din Gemini 3.1 Flash Lite. Arhitectură neobișnu..."
|
||||
},
|
||||
{
|
||||
"file": "notes-data/projects/f5-tts-ro-voice-clone-eval.md",
|
||||
"title": "F5-TTS-RO — evaluare clonare voce Marius în română (2026-07-11)",
|
||||
"date": "2026-07-11",
|
||||
"tags": [],
|
||||
"domains": [],
|
||||
"types": [],
|
||||
"category": "projects",
|
||||
"project": null,
|
||||
"subdir": null,
|
||||
"video": "",
|
||||
"tldr": "Folderul de test (`~/workspace/f5-tts-ro-test/`, ~7GB — venv izolat + checkpoint-uri HF) a fost **șters** după test pentru a elibera spațiu pe disc (era la 96% ocupare). Fișierele audio generate au fo..."
|
||||
},
|
||||
{
|
||||
"file": "notes-data/projects/pocket-tts-integration-handoff-prompt.md",
|
||||
"title": "pocket-tts-integration-handoff-prompt",
|
||||
@@ -13,6 +55,22 @@
|
||||
"video": "",
|
||||
"tldr": ""
|
||||
},
|
||||
{
|
||||
"file": "notes-data/youtube/2026-07-11_local-embedding-server-sie.md",
|
||||
"title": "Local Embedding Server with 150 AI Models | Superlinked SIE",
|
||||
"date": "2026-07-11",
|
||||
"tags": [],
|
||||
"domains": [
|
||||
"work",
|
||||
"growth"
|
||||
],
|
||||
"types": [],
|
||||
"category": "youtube",
|
||||
"project": null,
|
||||
"subdir": null,
|
||||
"video": "",
|
||||
"tldr": "Prezentare SIE (Superlinked Inference Engine) — un container Docker unic care înlocuiește cele trei servere separate necesare de obicei într-un pipeline RAG (embedding, reranker, entity extraction), f..."
|
||||
},
|
||||
{
|
||||
"file": "notes-data/youtube/2026-07-10_opencode-token-usage-96-percent.md",
|
||||
"title": "I Cut My OpenCode Token Usage by 96% - Here's How",
|
||||
@@ -9740,8 +9798,8 @@
|
||||
"title": "Proiect: Vending Master - Integrare Website → ROA",
|
||||
"date": "2026-01-30",
|
||||
"tags": [
|
||||
"integrare",
|
||||
"vending-master"
|
||||
"vending-master",
|
||||
"integrare"
|
||||
],
|
||||
"domains": [
|
||||
"work"
|
||||
@@ -10221,11 +10279,11 @@
|
||||
}
|
||||
],
|
||||
"stats": {
|
||||
"total": 591,
|
||||
"total": 595,
|
||||
"by_domain": {
|
||||
"work": 202,
|
||||
"work": 204,
|
||||
"health": 104,
|
||||
"growth": 275,
|
||||
"growth": 277,
|
||||
"sprijin": 39,
|
||||
"scout": 9
|
||||
},
|
||||
@@ -10238,11 +10296,11 @@
|
||||
"facebook": 11,
|
||||
"health": 6,
|
||||
"insights": 46,
|
||||
"projects": 235,
|
||||
"projects": 237,
|
||||
"reflectii": 3,
|
||||
"retete": 1,
|
||||
"tools": 7,
|
||||
"youtube": 159,
|
||||
"youtube": 161,
|
||||
"memory": 44
|
||||
}
|
||||
},
|
||||
|
||||
@@ -10,11 +10,11 @@
|
||||
- **[facebook/](facebook/index.md)** — 11 note
|
||||
- **[health/](health/index.md)** — 6 note
|
||||
- **[insights/](insights/index.md)** — 46 note
|
||||
- **[projects/](projects/index.md)** — 235 note
|
||||
- **[projects/](projects/index.md)** — 237 note
|
||||
- **[reflectii/](reflectii/index.md)** — 3 note
|
||||
- **[retete/](retete/index.md)** — 1 note
|
||||
- **[tools/](tools/index.md)** — 7 note
|
||||
- **[youtube/](youtube/index.md)** — 159 note
|
||||
- **[youtube/](youtube/index.md)** — 161 note
|
||||
|
||||
## Note la rădăcină
|
||||
|
||||
|
||||
85
memory/kb/projects/cactus-needle-function-calling-eval.md
Normal file
85
memory/kb/projects/cactus-needle-function-calling-eval.md
Normal file
@@ -0,0 +1,85 @@
|
||||
# Cactus Needle — evaluare model de function calling pentru pre-routing local (2026-07-12)
|
||||
|
||||
Spike de testare: se poate folosi un model mic de function calling (rulat local pe CPU) ca pre-router înaintea `claude_session.py`, ca să interceptăm intenții simple (weather, add task, note, query roa2web) fără să consumăm din rate limit-ul Claude?
|
||||
|
||||
## Context — de ce s-a pornit testul
|
||||
|
||||
`router.py` rutează doar pe prefix (`/`, text-keywords) — orice mesaj care nu e slash-command pornește un turn Claude CLI complet, inclusiv întrebări triviale ("ce vreme e", "cât e în casă"). Asta consumă rate limit pe Anthropic subscription (nu cost — vezi [[user_anthropic_subscription]]) chiar și pe intenții simple, repetitive. Video sursă care a declanșat testul: [Cactus Needle — The 26M Function Calling Model](https://youtu.be/tt9UJ0NiOzU) (notă: [[2026-07-12_cactus-needle-26m-function-calling-model]]).
|
||||
|
||||
## Ce s-a testat
|
||||
|
||||
Model: [`Cactus-Compute/needle`](https://huggingface.co/Cactus-Compute/needle) — 26M parametri, "Simple Attention Network" (attention+gating, fără FFN/MLP), distilat din Gemini 3.1 Flash Lite. Repo: [cactus-compute/needle](https://github.com/cactus-compute/needle).
|
||||
|
||||
- Instalare izolată în `/tmp/needle-test` (venv separat, nu a atins `.venv` de producție din echo-core). JAX/Flax/Optax, CPU-only.
|
||||
- Checkpoint `needle.pkl` (~50MB fp32) descărcat direct de pe HF, fără antrenare/fine-tuning suplimentar.
|
||||
- Tools JSON definite manual, mimând funcții reale Echo: `get_weather`, `add_task`, `create_note`, `get_treasury_balance` (analog roa2web), `set_timer`.
|
||||
- 10 query-uri de test, engleză + română, incluzând și mesaje conversaționale banale (fără tool corespunzător).
|
||||
|
||||
## Rezultate
|
||||
|
||||
- **Recunoaștere corectă pe intenții clare, inclusiv română** (deși modelul e antrenat mai ales pe engleză): "Ce vreme e la Cluj?" → `get_weather(location=Cluj)`, "Cât e în casă?" → `get_treasury_balance(account=casa)`, "Pune un timer de 10 minute" → `set_timer(duration="10 minutes")`.
|
||||
- **Fals pozitiv critic pe conversație casual**: "Bună, ce mai faci?" a declanșat `get_treasury_balance(account="bun")` — tool call inventat pe un salut banal. Traficul Echo e majoritar conversație, nu comenzi, deci acest failure mode lovește direct fluxul principal.
|
||||
- Query ambiguu ("Cât e în bancă?") a generat două tool calls duplicate cu argumente diferite, nu un răspuns curat.
|
||||
- Extragere de conținut incompletă pe note mai lungi (a păstrat doar titlul, a pierdut restul textului).
|
||||
- Pe query clar conversațional/tehnic ("Explică-mi recursivitatea în Python") a răspuns corect cu listă goală — fără tool call inventat.
|
||||
- **Latență reală pe CPU: 3-9s per query** (nu ms-urile din marketing) — setup-ul default din repo nu are encoder JIT-cache-uit/warm, ar necesita inginerie suplimentară (padding fix + server ținut pornit) ca să se apropie de cifrele oficiale (1200 tok/s pe device).
|
||||
|
||||
## Comparație cu alternative
|
||||
|
||||
- **Qwen3-0.6B** (benchmark extern, [heyneo.com](https://heyneo.com/blog/needle-26m-vs-qwen3-0.6b-cpu-function-call-benchmark), 4-core CPU, 50 query-uri / 5 nivele de dificultate, netestat local): acuratețe mai bună decât Needle cu prompt bun (84% vs 72% overall), dar **4-6x mai lent** (~40-56s/query vs ~7-17s Needle) și cu **exact același failure mode** — pe query "What's 2+2?" a inventat un tool call `run_command`.
|
||||
|
||||
### Hammer2.1-0.5b — testat local (2026-07-12)
|
||||
|
||||
[`MadeAgents/Hammer2.1-0.5b`](https://huggingface.co/MadeAgents/Hammer2.1-0.5b) — **0.5 miliarde parametri, ~19x mai mare decât Needle** (26M). Fine-tune pe Qwen2.5-Coder-0.5B-Instruct, folosește "function masking" pentru robustețe la tool calling (arxiv 2410.04587). Rulat local pe CPU (torch+transformers, venv izolat `/tmp/hammer-test`), **exact aceleași 10 query-uri și tool-uri** ca la testul Needle, pentru comparație directă.
|
||||
|
||||
- **Fixează problema critică de la Needle**: pe ambele mesaje conversaționale ("Bună, ce mai faci?" și "Explică-mi recursivitatea") a răspuns corect cu listă goală — zero fals-pozitive pe chit-chat, spre deosebire de Needle care a inventat un tool call pe salut.
|
||||
- Dar are propriile probleme:
|
||||
- **Fals-negativ pe RO**: "Ce vreme e la Cluj?" (română) → listă goală, deloc recunoscut — deși Needle a rezolvat corect exact acest query. Query-ul englezesc echivalent a mers corect.
|
||||
- **Halucinație de conținut, nu doar omisiune**: la `create_note` pentru "intalnirea de azi cu Andrei", a generat `content: "Please check the weather report tomorrow."` — text complet inventat, fără nicio legătură cu query-ul. Mai grav decât Needle, care măcar a păstrat conținut relevant (incomplet, dar corect tematic).
|
||||
- **Nu extrage argumentul `account`** la `get_treasury_balance` — "Cât e în casă?" și "Cât e în bancă?" au produs exact același output gol (`arguments: {}`), pierzând distincția casă/bancă pe care Needle o prindea corect.
|
||||
- **Dimensiune pe disc**: checkpoint ~950MB (fp32) vs ~50MB la Needle — proporțional cu raportul de parametri.
|
||||
- **Latență**: 2.4-5.6s/query (comparabil cu Needle, 3-9s), plus ~24s load inițial al modelului (Needle: 2.4s).
|
||||
|
||||
### Qwen2.5-0.5B-Instruct — testat local (2026-07-12)
|
||||
|
||||
[`Qwen/Qwen2.5-0.5B-Instruct`](https://huggingface.co/Qwen/Qwen2.5-0.5B-Instruct) — 0.5B parametri, model general-purpose foarte popular (nu specializat pe function calling), cu suport tool calling nativ prin chat template. Testat cu același set de 10 query-uri.
|
||||
|
||||
- Corect pe weather RO **și** EN (mai bine ca Hammer, care rata varianta RO).
|
||||
- **Fals-negativ pe task RO**: "Adaugă un task să sun clientul mâine" → nu a emis niciun tool call, a răspuns cu o întrebare de clarificare în engleză. Varianta EN a mers corect.
|
||||
- `create_note` RO: nume+titlu corecte, dar a omis complet argumentul `content` (obligatoriu) — tool call incomplet.
|
||||
- **Cel mai prost rezultat din tot testul**: "Cât e în casă?" → refuz ("I can't assist with that"); "Cât e în bancă?" → răspuns complet halucinat și incoerent, **"NO, CAT IS NOT IN THE BANK"** — a confundat "cât" (românește) cu "cat" (pisică, engleză) și a ieșit din orice logică de tool calling.
|
||||
- Pe conversație casual, nu a inventat tool calls (bine), dar calitatea răspunsului conversațional în română a fost slabă/agramat pe salut, deși explicația tehnică despre recursivitate (tot RO) a ieșit surprinzător de coerentă.
|
||||
- Concluzie: sigur pe fals-pozitive, dar robustețea pe română e inconsistentă și imprevizibilă — de la perfect (weather) la incoerent total (treasury).
|
||||
|
||||
### FunctionGemma-270M — testat local (2026-07-12)
|
||||
|
||||
[`google/functiongemma-270m-it`](https://huggingface.co/google/functiongemma-270m-it) (testat via mirror-ul `unsloth/functiongemma-270m-it`, ~520MB) — bazat pe Gemma 3 270M, model Google specializat explicit pe function calling, cel menționat și în videoclipul sursă ca fiind depășit de Needle pe single-shot function calling. README-ul modelului avertizează clar: "not intended for use as a direct dialogue model... designed to be highly performant **after further fine-tuning**" — adică e gândit ca bază de fine-tuning per-domeniu, nu ca model gata de folosit zero-shot.
|
||||
|
||||
- **Cel mai rapid dintre toate**: 1-2.7s/query (comparabil cu Needle, mai rapid decât Hammer/Qwen).
|
||||
- Folosește sintaxă proprietară de function call (`<start_function_call>call:nume{...}<end_function_call>`), nu JSON standard — ar necesita parser custom pe partea de Echo.
|
||||
- **Confirmă empiric ce spunea videoclipul**: e clar mai slab decât Needle zero-shot pe cazurile noastre.
|
||||
- Halucinează date/conținut: la `add_task` a inventat date fixe greșite ("2024-05-23", "2026-07-27" — nici "mâine" real) și a înlocuit titlul cu text generic ("add task to task board") în loc de conținutul real al cererii, pe **ambele** variante RO și EN.
|
||||
- La `create_note` a generat un paragraf întreg fabricat, fără legătură cu "Andrei" sau întâlnirea.
|
||||
- **Fals-pozitiv periculos**: "Cât e în casă?" → a interpretat "cat" ca pisică (aceeași confuzie ca la Qwen) și a generat `create_note(content="Noticed cat in casa")` — o notă complet inventată dintr-o interogare financiară, exact tipul de acțiune nedorită de care ne temeam.
|
||||
- Pe conversație casual a refuzat corect (fără tool call), dar cu mesaje generice de eroare, nu conversație reală — așteptat, dat fiind avertismentul din README.
|
||||
|
||||
## Concluzie
|
||||
|
||||
**Niciun model din cele patru testate/cercetate nu e suficient de fiabil ca să înlocuiască un pas din `router.py` fără un prag de încredere + fallback obligatoriu la Claude.** Tabel rezumat (CPU, aceleași 10 query-uri RO+EN):
|
||||
|
||||
| Model | Parametri | Fals-pozitiv pe chit-chat | Robustețe RO | Halucinație conținut/argumente | Latență/query |
|
||||
|---|---|---|---|---|---|
|
||||
| Needle 26M | 26M | **Da** (salut → tool call inventat) | Bună | Extragere incompletă, nu inventată | 3-9s |
|
||||
| Hammer2.1-0.5b | 0.5B | Nu | Parțială (ratează weather RO) | Da (content fabricat la note) | 2.4-5.6s |
|
||||
| Qwen2.5-0.5B-Instruct | 0.5B | Nu | Inconsistentă (weather OK, treasury total incoerent) | Da (răspuns halucinat pe "bancă") | 2.4-8.5s |
|
||||
| FunctionGemma-270M | 270M | **Da** (interpretare literală "pisică" → notă inventată) | Slabă | Da, sever (date/conținut fabricate) | 1-5.7s (cel mai rapid) |
|
||||
|
||||
Cele mai rapide (Needle, FunctionGemma) sunt și cele cu fals-pozitive periculoase pe interogări normale/financiare — corelație clară între "modele hiper-specializate pe function calling, foarte mici" și tendința de a forța un tool call chiar și când nu e cazul. Modelele mai generaliste (Hammer, Qwen) sunt mai reținute pe chit-chat, dar au propriile goluri pe română și pe extragerea corectă a argumentelor.
|
||||
|
||||
**Decizie:** nicio schimbare de cod în echo-core. Nu s-a integrat niciun pre-router local.
|
||||
|
||||
**Dacă se reia pe viitor:** niciunul dintre cele patru nu e gata "as-is". Dacă tot se alege un candidat de rafinat, Hammer2.1-0.5b rămâne cel mai sigur punct de plecare (singurul fără fals-pozitiv periculos și cu extragere de argumente parțial corectă), dar are nevoie de: (a) validare/fine-tuning explicit pe română (fals-negativul pe weather RO e blocant dat fiind traficul majoritar RO), (b) prompt/system message mai strict pentru a reduce halucinația pe câmpuri text libere (title/content). Nu merită reluat testul cu FunctionGemma-270M zero-shot — README-ul propriu spune clar că are nevoie de fine-tuning per-domeniu ca să fie utilizabil.
|
||||
|
||||
## Artefacte
|
||||
|
||||
Foldere de test (`/tmp/needle-test`, `/tmp/hammer-test`) sunt în `/tmp`, se pierd la reboot. Cache-uri de modele rămase în `~/.cache/huggingface/hub/` (**nu** se pierd la reboot): `models--MadeAgents--Hammer2.1-0.5b` (~950MB), `models--Qwen--Qwen2.5-0.5B-Instruct` (~950MB), `models--unsloth--functiongemma-270m-it` (~520MB) — total ~2.4GB, de șters manual dacă nu se reia testarea (disc la 85% ocupare în timpul testului, atenție la spațiu).
|
||||
37
memory/kb/projects/f5-tts-ro-voice-clone-eval.md
Normal file
37
memory/kb/projects/f5-tts-ro-voice-clone-eval.md
Normal file
@@ -0,0 +1,37 @@
|
||||
# F5-TTS-RO — evaluare clonare voce Marius în română (2026-07-11)
|
||||
|
||||
Spike de testare: se poate folosi F5-TTS-RO (fine-tune gratuit, open-source) pentru clonarea vocii lui Marius în română, ca alternativă la Supertonic (care are Voice Builder plătit pentru clonare) și pocket-tts (nu suportă română)?
|
||||
|
||||
## Context — de ce s-a pornit testul
|
||||
|
||||
- `Marius 4` (pocket-tts) e clonat, dar pocket-tts e English-only — nu se poate reutiliza în română.
|
||||
- Supertonic (motorul curent RO) suportă import de style JSON custom (`/v1/styles/import`), dar extragerea style-ului dintr-un sample audio se face **doar** prin Voice Builder-ul lor găzduit, plătit (`supertonic.supertone.ai/voice_builder`) — verificat direct în pachetul `supertonic` local (`loader.py`, `core.py`, `cli.py`): nu există niciun extractor local audio→style_ttl/style_dp.
|
||||
- `marius-4.safetensors` (pocket-tts) NU e un embedding vocal portabil — e un KV-cache de transformer Kyutai (`transformer.layers.N.self_attn/cache`), stare internă specifică arhitecturii lor. Nu se poate converti matematic în formatul `style_ttl`/`style_dp` al Supertonic (encodere diferite, spații latente independente, verificat direct din structura ambelor fișiere).
|
||||
|
||||
## Ce s-a testat
|
||||
|
||||
Model: [`MihaiPopa-1/F5-TTS-Romanian`](https://huggingface.co/MihaiPopa-1/F5-TTS-Romanian) (apache-2.0, fine-tune F5TTS_v1_Base pe Common Voice 22.0 RO — doar 1200 clipuri / 1.3 ore date).
|
||||
|
||||
- Instalare izolată: `~/workspace/f5-tts-ro-test/.venv` (nu a atins `.venv` de producție din echo-core).
|
||||
- **Runda 1:** checkpoint `model_1125_pruned.safetensors` (1.35GB, fără EMA — recomandat de autor pentru pronunție RO corectă) + referință scurtă `marius_real_voice.wav` (7.8s, cel folosit și pentru pocket-tts).
|
||||
- **Runda 2 (abandonată de Marius mid-run):** checkpoint `model_1125.pt` (3.38GB, cu EMA — autorul zice că EMA îmbunătățește similaritatea vocii dar înrăutățește pronunția RO) + referință mai lungă, sample dedicat trimis de Marius pe WhatsApp (32s).
|
||||
- Blocaj tehnic întâmpinat și rezolvat: `torchaudio.load()` eșua (torchcodec nu găsea `libavutil.so`, FFmpeg lipsă ca librării shared pe sistem — doar binar static). Patch local în venv-ul de test: înlocuit `torchaudio.load` cu `soundfile.read` în `utils_infer.py` (doar în venv-ul izolat, cod din echo-core neatins).
|
||||
|
||||
## Rezultate
|
||||
|
||||
- **Viteză pe CPU (i7-6700T, fără GPU):** ~32x mai lent decât realtime — 7s audio generate în 3:51 (231s). Comparativ: Supertonic aproape instant (ONNX), pocket-tts ~2.8x *mai rapid* decât realtime pe același CPU.
|
||||
- **Calitate clonare (runda 1, checkpoint pruned):** Marius a confirmat ascultând — **nu a sunat deloc a vocea lui**. Cauză probabilă: fine-tune-ul RO (doar 1.3h date, mulți vorbitori diferiți din Common Voice) a diluat capacitatea de zero-shot cloning a modelului de bază, mai ales pe checkpoint-ul fără EMA (trade-off documentat explicit chiar de autor în README).
|
||||
- **RAM:** vârf ~3.4GB rezident la runda 1 (checkpoint mic). Prima încercare (înainte de fix-ul ffmpeg) a scăzut RAM disponibil la **64MB** la un moment dat — sistemul are doar 8GB RAM total, fără swap. S-a adăugat un watchdog (`pkill` automat dacă `MemAvailable` < 150MB) pentru protecția serviciilor de producție (bot echo-core, Supertonic) în rundele următoare.
|
||||
- Runda 2 (EMA + referință lungă) nu s-a mai încheiat — Marius a oprit testul înainte de rulare, considerând că viteza (deja confirmată prohibitivă la runda 1) face oricum ideea impracticabilă indiferent de calitate.
|
||||
|
||||
## Concluzie
|
||||
|
||||
**F5-TTS-RO nu e o soluție viabilă pe hardware-ul curent** (CPU fără GPU, 8GB RAM/fără swap): prea lent pentru orice utilizare conversațională (un răspuns de 10s ar dura ~5 minute să se genereze), și calitatea clonării pe checkpoint-ul testat a fost slabă. Nu s-a validat dacă varianta EMA ar fi sunat mai bine — rămâne netestat.
|
||||
|
||||
**Decizie:** rămânem cu setup-ul curent — Supertonic (voci fixe M1-M5/F1-F5) pentru română, pocket-tts (`Marius 1-4`) pentru engleză. Nicio schimbare de cod în echo-core.
|
||||
|
||||
**Dacă se reia pe viitor:** ar avea sens doar cu (a) GPU disponibil, sau (b) alt fine-tune RO cu dataset mai mare/calitate mai bună pentru speaker similarity. Nu repeta testul cu acest model + hardware-ul actual — rezultatul de viteză nu se schimbă.
|
||||
|
||||
## Artefacte
|
||||
|
||||
Folderul de test (`~/workspace/f5-tts-ro-test/`, ~7GB — venv izolat + checkpoint-uri HF) a fost **șters** după test pentru a elibera spațiu pe disc (era la 96% ocupare). Fișierele audio generate au fost trimise pe Discord (canal echo-core) în timpul testului, dacă mai sunt necesare pentru re-ascultare.
|
||||
@@ -1,6 +1,6 @@
|
||||
# Index — projects/
|
||||
|
||||
> 235 note. Citește acest index întâi; deschide doar fișierele relevante.
|
||||
> 237 note. Citește acest index întâi; deschide doar fișierele relevante.
|
||||
|
||||
- **[Feature: PDF Download Button in Files Dashboard](FEATURE-files-pdf-download.md)**
|
||||
- User is comfortable with multi-session handoff (can track progress across sub-agents)
|
||||
@@ -10,8 +10,12 @@
|
||||
**Bază:** Robert Dilts - Modeling with NLP, Logical Levels
|
||||
- **[MODELARE NLP – SUPORT DE CURS](NLP/modelare-nlp-suport-curs.md)**
|
||||
Modelarea dezvoltă autonomia de învățare, nu dependența de rețete.
|
||||
- **[Cactus Needle — evaluare model de function calling pentru pre-routing local (2026-07-12)](cactus-needle-function-calling-eval.md)**
|
||||
Foldere de test (`/tmp/needle-test`, `/tmp/hammer-test`) sunt în `/tmp`, se pierd la reboot. Cache-uri de modele rămase în `~/.cache/hugging
|
||||
- **[Prompt pentru Claude Code - Implementare `extraPaths` în Clawdbot](clawdbot-extrapaths-prompt.md)**
|
||||
Începe prin a explora codul Clawdbot și a înțelege arhitectura, apoi propune soluția.
|
||||
- **[F5-TTS-RO — evaluare clonare voce Marius în română (2026-07-11)](f5-tts-ro-voice-clone-eval.md)**
|
||||
Folderul de test (`~/workspace/f5-tts-ro-test/`, ~7GB — venv izolat + checkpoint-uri HF) a fost **șters** după test pentru a elibera spațiu
|
||||
- **[Grup de Sprijin - Lideri Cercetași](grup-sprijin/README.md)** `@sprijin #grup-sprijin`
|
||||
- **[Exercițiu de ancorare a emoțiilor](grup-sprijin/biblioteca/exercitiu-ancorare-emotii.md)** `@sprijin #NLP #ancorare #emotii #corp #grup-sprijin`
|
||||
4. Testează ancora
|
||||
@@ -451,5 +455,5 @@
|
||||
- **[Episodul 20 - Ce au în comun traderii profitabili](trading-basics/_duplicates/21-episodul-20-ce-au-n-comun-traderii-profitabili.md)**
|
||||
**Pentru conținut complet structurat (concepte, quote-uri, aplicații practice), consultă Episodul 9.**
|
||||
- **[22-episodul-19-motivul-cheie-f-r-de-care-nu-func-ioneaz-nicio-strategie-n-trading-](trading-basics/_duplicates/22-episodul-19-motivul-cheie-f-r-de-care-nu-func-ioneaz-nicio-strategie-n-trading-.md)**
|
||||
- **[Proiect: Vending Master - Integrare Website → ROA](vending-master/README.md)** `@work #integrare #vending-master`
|
||||
- **[Proiect: Vending Master - Integrare Website → ROA](vending-master/README.md)** `@work #vending-master #integrare`
|
||||
[conversations/2026-01-30-conversatie-completa.md](https://moltbot.tailf7372d.ts.net/echo/files.html#conversations/2026-01-30-conversatie-co
|
||||
|
||||
45
memory/kb/youtube/2026-07-11_local-embedding-server-sie.md
Normal file
45
memory/kb/youtube/2026-07-11_local-embedding-server-sie.md
Normal file
@@ -0,0 +1,45 @@
|
||||
# Local Embedding Server with 150 AI Models | Superlinked SIE
|
||||
|
||||
**URL:** https://youtu.be/wavL-C6C994
|
||||
**Durata:** 9:01
|
||||
**Data salvat:** 2026-07-11
|
||||
**Tags:** @work @growth @ai @rag @self-hosted
|
||||
|
||||
---
|
||||
|
||||
## TL;DR
|
||||
|
||||
Prezentare SIE (Superlinked Inference Engine) — un container Docker unic care înlocuiește cele trei servere separate necesare de obicei într-un pipeline RAG (embedding, reranker, entity extraction), fiecare cu propriul setup și management GPU. SIE vine cu 85+ modele pre-configurate (dense, sparse, multi-vector, vision, cross-encoder) expuse prin 3 funcții simple: `encode` (text → vector), `score` (rerank rezultate), `extract` (zero-shot NER — extragere entități fără antrenare, doar specifici label-urile la query time). Modelele sunt mici, rulează și pe CPU, nu necesită GPU.
|
||||
|
||||
---
|
||||
|
||||
## Puncte cheie
|
||||
|
||||
- Problema pe care o rezolvă: majoritatea plătesc per-token la OpenAI/Anthropic pentru embeddings SAU rulează 3 servere separate (embedding + reranker + entity extractor), fiecare cu setup/GPU/API propriu — devine complicat rapid, plus latență
|
||||
- SIE = un singur container Docker, 150 modele încărcate, servit pe port 8080
|
||||
- 3 funcții: **encode** (text→vector, 1024 dimensiuni pentru BGE, cu flag `query` pentru a distinge search query de document), **score** (reranker — compară query + document direct, mai precis decât similaritate vectorială simplă), **extract** (NER zero-shot — dai label-uri la query time, ex. "person", "organization", "location", fără training)
|
||||
- Modelele sunt mici, rulează pe CPU fără probleme (nu necesită GPU puternic)
|
||||
- Instalare simplă via Docker; SDK Python separat pentru apeluri
|
||||
- Demo: encode "what is machine learning" → vector 1024 dim; rerank 3 candidați → scor 1.0 pentru cel relevant, 0.001 pentru cel irelevant; extract entități dintr-o propoziție despre Elon Musk → person/organization/location cu confidence scores
|
||||
|
||||
---
|
||||
|
||||
## Quote-uri relevante
|
||||
|
||||
> "Every RAG pipeline you build needs at least three things: an embedding model, a re-ranker, and often an entity extractor... most people are either paying OpenAI/Anthropic per token or running three separate model servers."
|
||||
|
||||
> "One container, three primitives, 150 models, on your own system, quite lightweight stuff."
|
||||
|
||||
---
|
||||
|
||||
## Idei acționabile pentru Marius
|
||||
|
||||
- [ ] Dacă vreodată apare nevoie de RAG/semantic search self-hosted mai avansat decât Ollama all-minilm actual (ex. reranking pentru memory_search sau roa2web), SIE e o opțiune de investigat — rulează pe CPU, un singur container @work @growth
|
||||
- [ ] Nu e o prioritate acum (memory_search cu Ollama embeddings funcționează), dar util de reținut ca referință dacă apare nevoie de reranking sau NER zero-shot @growth
|
||||
|
||||
---
|
||||
|
||||
## Surse menționate
|
||||
|
||||
- Superlinked SIE (Superlinked Inference Engine) — open-source, Docker
|
||||
- Coupon code menționat în video: FahdMirza (sponsor Master Compute pentru VM/GPU cheap)
|
||||
@@ -0,0 +1,20 @@
|
||||
---
|
||||
title: "Cactus Needle - The 26M Function Calling Model"
|
||||
url: https://youtu.be/tt9UJ0NiOzU
|
||||
duration: 14:29
|
||||
tags: [@work, @growth]
|
||||
date: 2026-07-12
|
||||
---
|
||||
|
||||
## TL;DR
|
||||
|
||||
Cactus a lansat **Needle** — un model open source de doar **26 milioane de parametri** specializat exclusiv pe function calling (tool calling), distilat din Gemini 3.1 Flash Lite. Arhitectură neobișnuită: doar attention + gating, **fără layere FFN/MLP** (acolo unde modelele mari stochează "cunoștințele generale") — de asta e atât de mic, dar tot performant pe apeluri de tool single-shot. Bate modele de 10-20x mai mari (Function Gemma, IBM Granite, Qwen 600M) pe single-shot function calling. Rulează pe CPU, ~1200 tokens/sec pe device consumer, se poate fine-tune și fără GPU. Nu are "inteligență" generală — nu ține de raționament complex sau multi-tool, dar pentru task-uri simple (on/off, seteaza timer, trimite email, control smart home) merge foarte bine.
|
||||
|
||||
## Insights
|
||||
|
||||
- **Idee cheie**: tool calling = retrieval + assembly (potrivire query→nume funcție + extragere argumente în JSON), nu necesită raționament greu → nu ai nevoie de model mare pentru asta. @growth
|
||||
- **Aplicabilitate potențială pt Echo/ROA**: pentru comenzi simple repetitive (ex: rutare intent-uri Discord/Telegram/WhatsApp, clasificare "ce vrea userul" înainte de a apela un model mare) — un model mic dedicat de tool-routing ar putea reduce costul/latența, cu fallback la model mare pt cazuri complexe (cascadă). @work
|
||||
- Demo arată că merge bine și pe seturi de funcții custom (smart home) fără fine-tuning, doar cu descrieri bune ale funcțiilor — sugerează că **calitatea descrierilor tool-urilor contează mult** mai mult decât mărimea modelului pentru cazuri simple. @work
|
||||
- Model gratuit, repo pe GitHub + Hugging Face, fine-tuning posibil doar cu CPU + cheie Gemini pentru generare dataset sintetic.
|
||||
|
||||
Linkuri: https://youtu.be/tt9UJ0NiOzU
|
||||
@@ -1,6 +1,6 @@
|
||||
# Index — youtube/
|
||||
|
||||
> 159 note. Citește acest index întâi; deschide doar fișierele relevante.
|
||||
> 161 note. Citește acest index întâi; deschide doar fișierele relevante.
|
||||
|
||||
- **[Talk to Claude on 3CX Phone System Tutorial (Full Setup)](2025-02-13_talk-to-claude-3cx-phone.md)** `@work`
|
||||
Tutorial complet pentru a vorbi cu Claude Code prin telefon, folosind 3CX (sistem telefonic cloud gratuit) + un proiect GitHub custom. Setup
|
||||
@@ -318,5 +318,9 @@
|
||||
Tutorial complet despre cum se fine-tunează modele AI masive (ex: Kimi K2.7 — 1 trilion parametri) pe date proprii, fără hardware de sute de
|
||||
- **[I Cut My OpenCode Token Usage by 96% - Here's How](2026-07-10_opencode-token-usage-96-percent.md)** `@work @growth`
|
||||
Autorul folosește un proxy man-in-the-middle pentru a vedea exact ce trimite OpenCode (agent de coding AI) către LLM la un simplu "hello" —
|
||||
- **[Local Embedding Server with 150 AI Models | Superlinked SIE](2026-07-11_local-embedding-server-sie.md)** `@work @growth`
|
||||
Prezentare SIE (Superlinked Inference Engine) — un container Docker unic care înlocuiește cele trei servere separate necesare de obicei într
|
||||
- **[2026-07-12_cactus-needle-26m-function-calling-model](2026-07-12_cactus-needle-26m-function-calling-model.md)** `@work @growth`
|
||||
Cactus a lansat **Needle** — un model open source de doar **26 milioane de parametri** specializat exclusiv pe function calling (tool callin
|
||||
- **[thinking-on-paper](thinking-on-paper.md)** `@growth`
|
||||
Metoda "Thinking on Paper" — 3 principii: **Make it Wrong** (scrie repede, fără perfecționism), **Make it Shorter** (doar keywords), **Make
|
||||
|
||||
Reference in New Issue
Block a user