local LLM, AI, Vibe Coding

Sekcia o programovaní, programovacích jazykoch...
Používateľov profilový obrázok
shiro
Pokročilý používateľ
Pokročilý používateľ
Príspevky: 9354
Dátum registrácie: Št 21. Dec, 2006, 02:00
Bydlisko: Banska Bystrica

Re: local LLM, AI, Vibe Coding

Príspevok od používateľa shiro »

Gemma 3 nieje MoE? Alebo nieje Gemma ako Gemma? :-)

Nooo, zaujimave. Skusil som lmstudio-community/Gemma4-26B-A4B_it_Q4_K_M o velkosti cca 18GB. Uz to vygenerovalo aj ten dlhy string.
Loadnuty model zabera 7.5/8GB VRAM a cca 10/32GB RAM, rychlost je 27t/s pri mojom testovacom prompte "vysvetli jadrovu fuziu"
Podobne rychlosti som maval pri 10-12B modeloch.

Bez tejto optimalizacie, model loadnuty do LM Studio, rovnaky prompt, 14t/s.
Ryzen 7 3700X | SilentiumPC Fera 3 | Asrock X570M Pro4 | Kingston FURY 32GB DDR4 3600 MHz CL18 Beast Black | Gainward RTX4060 Ti Pegasus 8GB | Samsung 970evo Plus 250GB NVMe | Corsair MP510 1TB NVMe | Samsung 980 Pro 2TB NVMe | Corsair RM550x | 32" Samsung ViewFinity S60UA | 3x Noctua NF-S12B redux 1200 PWM
Xiaomi 14T 256GB
faugusztin
Moderátor
Moderátor
Príspevky: 15075
Dátum registrácie: Ut 26. Feb, 2008, 14:00
Bydlisko: Bratislava/Štúrovo

Re: local LLM, AI, Vibe Coding

Príspevok od používateľa faugusztin »

zoom napísal: Ne 03. Máj, 2026, 03:14llama-fit-params
Len pre porovnanie, mne s 200k contextom, q4 k/v cache (za cenu nizsej spotreby RAM a vyssej rychlosti) pri nastaveni a modeli unsloth/Qwen3.6-35B-A3B-GGUF v UD-IQ3_XXS kvantizacii obsadi ~13GB VRAM a pri uvodnom requeste z Claude Code (~27k tokenov) mi to robi prompt processing 3378t/s a generovanie 56.5t/s na 4080 Super + 9950X + 64GB DDR5-6000CL30:

Kód: Vybrať všetko

--ctx-size 200000 --fit on --no-mmproj --jinja --flash-attn on --cache-type-k q4_0 --cache-type-v q4_0 --override-tensor "blk\.39\.ffn_.*_exps=CPU,blk\.40\.ffn_.*_exps=CPU" -hf unsloth/Qwen3.6-35B-A3B-GGUF:UD-IQ3_XXS
Povodne to vygenerovalo presnejsie override, ale neslo mi to uplne spravne, tak som to upravil manualne. A tato rychlost je celkom OK, aj ked teda nadalej budem pouzivat 3.6-27B na mojom dedikovanom systeme s 2x 5070 Ti :D
Používateľov profilový obrázok
zoom
Používateľ
Používateľ
Príspevky: 2931
Dátum registrácie: Št 16. Jún, 2005, 20:00
Bydlisko: Bratislava (42)

Re: local LLM, AI, Vibe Coding

Príspevok od používateľa zoom »

V navaznosti na tieto posledne veci, co sme tu riesili - hral sa niekto teraz s tymi novymi MTP modelmi? Cize napriklad Qwen3.6-35B-A3B-MTP-GGUF od Unslotha, kde sa slubuje masivne 1.5-2x zrychlenie v peknych grafoch a ludia aj s biednou 5080 s 16GB VRAM nameraju zasadne zrychlenie (aj ked Q3 modelu).

Llama-cpp asi 3 dni dozadu pridalo podporu pre MTP modely, tak teda idem vyskusat.
  • Moj terajsi vytuneny string (non-MTP model): 27.35 tok/s
  • Pridal som tam --spec-type draft-mtp a odkazal ho na novy MTP model: 9.9 tok/s
  • Okej, mozno tento model treba opat vytunit. Tak som ho prehnal cez llama-fit-params a pouzil novy override-tensor string: 7.27 tok/s
  • Dobre vezmem ten isty string bez parametrov --fit on --no-mmproj --jinja --flash-attn on --cache-type-k q8_0 --cache-type-v q8_0: 28.48 tok/s
Tak som sa aspon dostal na zaciatok, ale ako far cry oproti slubom z internetu. Prilis som sa s tym nehral, a teraz uz chcem ist spat. Ak niekto nebude mat nejake instantne riesenie, tak to este pokukam. Len som cakal, ze to bude taky jednoduchy drop-in replacement, ze tuto dame novy model, doplnime parameter do command-line a zrazu mame dalsie zrychlenie.
faugusztin
Moderátor
Moderátor
Príspevky: 15075
Dátum registrácie: Ut 26. Feb, 2008, 14:00
Bydlisko: Bratislava/Štúrovo

Re: local LLM, AI, Vibe Coding

Príspevok od používateľa faugusztin »

MTP pridava maly zabudovany model, ktory ale samozrejme zvysuje pamatove naroky. Bohuzial v tvojom pripade to presne pretlaci cez hranu pouzitelnosti.
Mas 2 moznosti:
1) -b 256 -ub 256 - toto ti znizi velkost blokov na spracovanie, co znizi pamatove naroky (pretoze pre kazdy vstupny blok si llama.cpp vyhradi dedikovanu VRAM, a ak znizis hodnotu tak znizis pouzitu pamat). Jemne to ale spomali to prompt processing.
2) prejst na q4_0 cache, ale to samozrejme moze sposobit nepresnosti vo vystupoch.
Používateľov profilový obrázok
zoom
Používateľ
Používateľ
Príspevky: 2931
Dátum registrácie: Št 16. Jún, 2005, 20:00
Bydlisko: Bratislava (42)

Re: local LLM, AI, Vibe Coding

Príspevok od používateľa zoom »

No, hm, hral som sa s tym. Snazil som sa vylpesit tie prompty, ale nejako mi to nefunguje podla ocakavania. S parametrami -b 256 -ub 256 som bol niekde na ~25 tok/s. Potom som zistil, ze llama-cpp utilitka llama-bench.exe sa da pouzit na zistenie najlepsieho nastavenia v tomto. U mna som pouzil nasledovny prikaz (ub je defaultne 512):

Kód: Vybrať všetko

> llama-bench.exe --fit-ctx 200000 -ub 4,8,16,32,64,128,256,512 --model "Qwen3.6-35B-A3B-MTP-GGUF\Qwen3.6-35B-A3B-UD-Q8_K_XL.gguf"

| model                          |       size |     params | backend    | ngl | n_ubatch |        fitc |            test |                  t/s |
| ------------------------------ | ---------: | ---------: | ---------- | --: | -------: | ----------: | --------------: | -------------------: |
| qwen35moe 35B.A3B Q8_0         |  36.40 GiB |    35.51 B | CUDA       |  99 |        4 |      200000 |           pp512 |         69.31 + 1.25 |
| qwen35moe 35B.A3B Q8_0         |  36.40 GiB |    35.51 B | CUDA       |  99 |        4 |      200000 |           tg128 |         35.08 + 1.73 |
| qwen35moe 35B.A3B Q8_0         |  36.40 GiB |    35.51 B | CUDA       |  99 |        8 |      200000 |           pp512 |         92.67 + 0.61 |
| qwen35moe 35B.A3B Q8_0         |  36.40 GiB |    35.51 B | CUDA       |  99 |        8 |      200000 |           tg128 |         34.96 + 1.72 |
| qwen35moe 35B.A3B Q8_0         |  36.40 GiB |    35.51 B | CUDA       |  99 |       16 |      200000 |           pp512 |        123.96 + 2.38 |
| qwen35moe 35B.A3B Q8_0         |  36.40 GiB |    35.51 B | CUDA       |  99 |       16 |      200000 |           tg128 |         35.16 + 1.47 |
| qwen35moe 35B.A3B Q8_0         |  36.40 GiB |    35.51 B | CUDA       |  99 |       32 |      200000 |           pp512 |         76.55 + 1.99 |
| qwen35moe 35B.A3B Q8_0         |  36.40 GiB |    35.51 B | CUDA       |  99 |       32 |      200000 |           tg128 |         34.45 + 1.40 |
| qwen35moe 35B.A3B Q8_0         |  36.40 GiB |    35.51 B | CUDA       |  99 |       64 |      200000 |           pp512 |        114.68 + 5.95 |
| qwen35moe 35B.A3B Q8_0         |  36.40 GiB |    35.51 B | CUDA       |  99 |       64 |      200000 |           tg128 |         34.52 + 1.63 |
| qwen35moe 35B.A3B Q8_0         |  36.40 GiB |    35.51 B | CUDA       |  99 |      128 |      200000 |           pp512 |        173.19 + 7.62 |
| qwen35moe 35B.A3B Q8_0         |  36.40 GiB |    35.51 B | CUDA       |  99 |      128 |      200000 |           tg128 |         34.61 + 1.50 |
| qwen35moe 35B.A3B Q8_0         |  36.40 GiB |    35.51 B | CUDA       |  99 |      256 |      200000 |           pp512 |       276.33 + 28.79 |
| qwen35moe 35B.A3B Q8_0         |  36.40 GiB |    35.51 B | CUDA       |  99 |      256 |      200000 |           tg128 |         34.82 + 1.82 |
| qwen35moe 35B.A3B Q8_0         |  36.40 GiB |    35.51 B | CUDA       |  99 |      512 |      200000 |           pp512 |       436.13 + 41.87 |
| qwen35moe 35B.A3B Q8_0         |  36.40 GiB |    35.51 B | CUDA       |  99 |      512 |      200000 |           tg128 |         34.25 + 1.68 |
Co som sa dozvedel? Vlastne nic. Aj kebyze mi to ide na 256 size tych 28 tok/s, tak som vlastne tam, kde som bol pred celym MTP. A vsetko ostatne je len horsie a horsie.

Kedze to ma lepsie fungovat na dense modeloch, tak som to skusil s Qwen3.6-27B-MTP-GGUF (Q8). Tam v podstate bezpracne narastlo generovanie z ~1.5 tok/s na ~3.0 tok/s, co je dvojnasobny narast, ale v reali je to nepouzitelne. Tak mozno to naozaj nie je vhodne pre MoE. Skusim sa este pohrat s mensimi quantizaciami, ale zatial sa nic nepriblizuje pouzitelnosti Qwen3.6 bez MTP pre agentske veci.

Návrat na "Programovanie"