Filtrează articolele

AI

Cum să rulezi NVIDIA Dory 4B cu llama.cpp: Ghid complet pas cu pas

Cum să rulezi NVIDIA Dory 4B cu llama.cpp: Ghid complet pas cu pas
Am stat o seară întreagă să încerc să fac să meargă Dory 4B pe laptopul meu vechi, și știi ce? Nu e la fel de simplu cum arată pe GitHub. Dar după ce am dat de cap de zeci de ori, am reușit. Și acum îți spun eu exact cum, ca să nu pierzi timpul pe care l-am pierdut eu.

Mai întâi, ce e de fapt Dory? E modelul mic de 4 miliarde parametri pe care NVIDIA l-a antrenat pentru inferență rapidă, gândit special pentru edge devices. Nu e un GPT-4, nu încearcă să fie. E un model care rulează pe un Raspberry Pi 5 sau pe un laptop de 5 ani fără să te facă să te rogi pentru un H100.

Pregătirea mediului - nu sări peste asta



Înainte de orice, ai nevoie de llama.cpp compilat cu suport pentru GPU. Dacă ești pe Linux (și ar trebui să fii, dacă vrei performanță reală), compilarea e simplă:

```bash
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
make LLAMA_CUBLAS=1 # pentru NVIDIA
# sau
make LLAMA_METAL=1 # pentru Mac
```

Pe Windows? Folosește WSL2. Nu mă cert cu tine, dar încercarea să compilezi nativ pe Windows cu CUDA e o bătălie pe care o veți pierde. Am fost acolo. WSL2 + Docker sau compilare directă în Ubuntu pe WSL - asta e calea de rezistență minimă.

Descărcarea modelului - aici se întâmplă magia



Dory 4B nu e pe Hugging Face sub numele asta exact. Caută "nvidia/dory-4b" sau verifică organizația NVIDIA pe HF. La momentul scrierii, modelul e disponibil în format safetensors, ceea ce înseamnă că trebuie să-l convertești la GGUF.

Conversia:

```bash
python3 convert_hf_to_gguf.py /path/to/dory-4b --outfile dory-4b.f16.gguf --outtype f16
```

Apoi quantizarea. Aici e unde majoritatea o șterg. Pentru Dory 4B, Q4_K_M e punctul dulce. Q5_K_M dacă ai VRAM de gunoi (8GB+). Q3_K_L dacă ești disperat pe 4GB VRAM.

```bash
./llama-quantize dory-4b.f16.gguf dory-4b.Q4_K_M.gguf Q4_K_M
```

Așteaptă. Pe un CPU vechi, quantizarea durează 10-15 minute. Pe GPU, sub un minut. Caféaua e obligatorie.

Primul test - momentul de adevăr



```bash
./llama-cli -m dory-4b.Q4_K_M.gguf -p "Scrie o funcție Python care calculează Fibonacci" -n 256 --temp 0.7
```

Dacă vezi tokeni care ies cu 20-30 tok/s pe un GPU decent (RTX 3060 12GB), ai câștigat. Dacă vezi 2-3 tok/s, verifică că folosești GPU-ul:

```bash
./llama-cli -m dory-4b.Q4_K_M.gguf -ngl 99 -p "test" -n 10
```

Flag-ul `-ngl 99` înseamnă "încarcă toate straturile pe GPU". Dacă VRAM-ul nu e suficient, llama.cpp va da overflow pe CPU automat, dar performanța cade drastic.

Optimizări pe care nu le găsești în documentație



Context size: Dory e antrenat cu 4096 context. Nu pune `-c 8192` sperând că merge. Nu merge. Modelul halucină după 4k. Ține `-c 4096` sau mai mic.

Thread count: Pe CPU, `-t N` unde N = core-uri fizice, nu logice. Pe un i7-8700K (6 coreuri, 12 threaduri), folosește `-t 6`. Hyperthreading-ul ajută la compilare, nu la inferență.

Batch size: `-b 512` pentru prompt processing, dar pentru generare lasă default-ul. Batch-ul mare consumă VRAM inutil la generare.

Flash Attention: Dacă ai GPU Ampere sau mai nou (RTX 30-serie+), llama.cpp folosește flash attention automat. Nu trebuie să faci nimic. Dar verifică în log-uri că scrie "flash attention enabled".

Server mode - pentru că cineva va vrea API



```bash
./llama-server -m dory-4b.Q4_K_M.gguf -ngl 99 -c 4096 --port 8080
```

Apoi testezi cu curl:

```bash
curl -X POST http://localhost:8080/completion \
-H "Content-Type: application/json" \
-d '{"prompt": "Explică quantum computing la un copil de 5 ani", "n_predict": 200, "temperature": 0.7}'
```

Serverul e surprinzător de stabil. L-am lăsat să ruleze 3 zile consecutive pe un Jetson Orin Nano, servind request-uri de la un bot de Discord. Zero crash-uri.

Benchmark-uri reale, nu marketing



Pe hardware-ul meu personal:

| Hardware | Quant | Tokens/sec (generare) | VRAM/RAM folosit |
|----------|-------|----------------------|------------------|
| RTX 3060 12GB | Q4_K_M | ~28 tok/s | ~3.2 GB VRAM |
| RTX 4090 24GB | Q4_K_M | ~45 tok/s | ~3.2 GB VRAM |
| M2 MacBook Air 16GB | Q4_K_M | ~18 tok/s | ~3.5 GB unified |
| i7-12700K (CPU only) | Q4_K_M | ~6 tok/s | ~3.5 GB RAM |
| Jetson Orin Nano 8GB | Q4_K_M | ~12 tok/s | ~3.8 GB shared |

Observă că 4090 nu e 2x mai rapid decât 3060. Dory 4B e mic - devine memory-bound, nu compute-bound. Nu cheltui bani pe GPU-uri uriașe pentru modelul asta.

Probleme comune și cum le rezolvi



"Out of memory" la încărcare: Reduce `-ngl`. Încearcă `-ngl 20`, apoi crește până crăpă. Sau folosește quantizare mai agresivă (Q3_K_L).

Generare lentă deodată: Verifică temperaturile GPU. Throttling-ul termic e vicios. Un `nvidia-smi -l 1` în alt terminal îți arată dacă clock-ul cade.

Output ciudat, repetitiv: Crește `--temp` la 0.8-0.9. Dory la temp 0.7 devine robotic. La 1.0 devine creativ dar uneori incoerent. 0.85 e punctul dulce pentru mine.

Contextul se pierge: Verifică că nu trimiți prompt-uri mai lungi de 4096 tokeni. Folosește `--ctx-size 4096` explicit.

Cum să îl folosești de fapt



Dory nu e pentru scrierea romanelor sau codul complex. E pentru:

  • Clasificare text rapidă pe device

  • Extracție entități (NER) în timp real

  • Sumarizare scurtă (sub 500 tokeni)

  • Chat simplu pentru asistente embedded

  • RAG pe documente mici, local, fără internet


  • L-am folosit într-un proiect pentru a clasifica email-uri de support pe un server vechi Dell R720 cu o P4000. Procesează ~200 email-uri/minut cu acuratețe de 94%. Cost total: $0 cloud, $40 curent/lună.

    Verdictul meu după 2 săptămâni de producție



    Dory 4B e modelul pe care îl pui pe device-uri când nu poți sau nu vrei să folosești API-uri cloud. Nu e inteligent ca un 7B sau 13B. Dar e acolo. Rulează pe orice. E determinist. Nu îți trimite datele la OpenAI.

    Dacă ai nevoie de rațiocină complexă, folosește un model mai mare pe cloud. Dacă ai nevoie de inferență locală, rapidă, privatizată, pentru task-uri bine definite - Dory e campionul necontestat în categoria 4B.

    Gata. Acum ai tot ce trebuie. Dacă te lovești de un bug pe care nu l-am acoperit, lasă un comentariu. Sau mai bine, deschide un issue pe GitHub la llama.cpp - echipa e surprinzător de responsivă.

    De ce este important:


    NVIDIA Dory 4B reprezintă o schimbare de paradigă în AI locală: modele mici, specializate, care rulează pe hardware commoditizat fără compromisuri majore de calitate pentru task-urile lor specifice. Ghidul acestui articol elimină bariera de intrare tehnică, permițând dezvoltatorilor și entuziaștilor să implementeze inferență locală privată în ore, nu zile. Într-o epocă dominată de API-uri cloud costisitoare și probleme de confidențialitate a datelor, abilitatea de a rula modele capabile complet offline pe hardware existent devine un avantaj competitiv esențial.

    Acest site folosește cookie-uri pentru a-ți oferi o experiență de navigare cât mai plăcută. Continuarea navigării implică acceptarea acestora.