Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Následující verze
Předchozí verze
ai:hardware:lokalni-llm-na-gpu [03.05.2026 20:33] – Nový článek: Lokální LLM na GPU – GPU přehled, llama.cpp, agentic coding (z videa Srigi) Petr Nosekai:hardware:lokalni-llm-na-gpu [04.05.2026 04:52] (aktuální) – Rozšíření: rychlost tokenů z videa, kategorie modelů, chat template, tool support, JosefFeed kontext 50k, oprava ctx-size 25000→19000 Petr Nosek
Řádek 20: Řádek 20:
 | **MacBook Air/Pro** | Různá | Velmi nízká | Apple Silicon zaostává v propustnosti za dedikovanými GPU | | **MacBook Air/Pro** | Různá | Velmi nízká | Apple Silicon zaostává v propustnosti za dedikovanými GPU |
 | **Mac Studio** | Až 128+ GB | ~1 TB/s | Dosahuje rychlosti RTX 4090, ale za výrazně vyšší cenu (okolo 10 000 $) | | **Mac Studio** | Až 128+ GB | ~1 TB/s | Dosahuje rychlosti RTX 4090, ale za výrazně vyšší cenu (okolo 10 000 $) |
 +
 +{{.:pasted:20260504-044513.png}}
 +
 +{{.:pasted:20260504-044541.png}}
 +
 +==== Rychlost generování tokenů ====
 +
 +RTX 4090 dosahuje při spuštění **32B modelu** (Qwen 2.5 Coder, kvantizace Q4_K_M, ctx 19 000) rychlosti **47 tokenů za sekundu**. Karta přitom během generování odebírá přibližně **400 W** – to je hlavní důvod, proč je undervolting při takovéto zátěži důležitý.
 +
 +Orientační hranice použitelnosti pro agentic coding:
 +
 +  * **40+ tokenů/s** – pohodlná práce, plynulý vibing
 +  * **~20 tokenů/s** – prakticky nepoužitelné, odezva je příliš pomalá
  
 ===== Konkrétní zařízení ===== ===== Konkrétní zařízení =====
Řádek 31: Řádek 44:
 ===== Instalace llama.cpp na Windows ===== ===== Instalace llama.cpp na Windows =====
  
-Autor důrazně varuje před používáním [[https://ollama.com/|Ollama]] (označuje ho za proprietární obálku) a doporučuje přímé použití **[[https://github.com/ggerganov/llama.cpp|llama.cpp]]**.+Autor důrazně varuje před používáním [[https://ollama.com/|Ollama]] (označuje ho za proprietární obálku) a doporučuje přímé použití **[[https://github.com/ggerganov/llama.cpp|llama.cpp]]** – čistý C++ runtime bez závislosti na Pythonu, který umožňuje přímé ladění a plné využití výkonu GPU.
  
 ==== Krok za krokem ==== ==== Krok za krokem ====
Řádek 54: Řádek 67:
  
 <code bash> <code bash>
-llama-server.exe --model [cesta_k_modelu] --n-gpu-layers 99 --ctx-size 25000 --host 0.0.0.0 --port 8080+llama-server.exe --model [cesta_k_modelu] --n-gpu-layers 99 --ctx-size 19000 --host 0.0.0.0 --port 8080
 </code> </code>
  
-Parametr ''%%--n-gpu-layers 99%%'' zajistí načtení celého modelu do VRAM. ''%%--ctx-size%%'' nastavuje délku kontextového okna v tokenech.+Parametr ''%%--n-gpu-layers 99%%'' zajistí načtení celého modelu do VRAM. ''%%--ctx-size%%'' nastavuje délku kontextového okna v tokenech – pro 32B model na 24GB kartě je bezpečný limit **19 000** (viz sekce o výběru modelu).
  
 ===== Výběr modelu: doporučení a kvantizace ===== ===== Výběr modelu: doporučení a kvantizace =====
  
-==== Doporučené modely pro kódování ====+Výběr správného modelu je nejkritičtější a zároveň nejobtížnější krok – autor ho označuje za „hotovou alchymii". Ne každý model je vhodný pro kódování. Záleží na tom, zda je model finetuningovaný na programování a zda má správný chat template s podporou nástrojů. 
 + 
 +==== Kategorie modelů ==== 
 + 
 +Autor rozlišuje tři typy modelů podle způsobu uvažování: 
 + 
 +^ Kategorie ^ Charakteristika ^ Kdy použít ^ 
 +| **Dumb (Hloupý)** | Styl GPT-3.5, žádná fáze přemýšlení, rovnou generuje výstup | Jednoduché dotazy bez potřeby hlubší logiky | 
 +| **Thinking (Přemýšlející)** | Explicitní fáze přemýšlení, sledovatelná v průběhu generování, uvažuje o edge cases | Komplexní refaktoring, složité logické problémy | 
 +| **Reasoning (Uvažující)** | Zlatá střední cesta – model uvažuje inline, bez dlouhé oddělené fáze | Běžný agentic coding; rychlejší než Thinking, kvalitnější než Dumb | 
 + 
 +Pro agentic coding v IDE (Cursor, Roo Code) je nejlepší typ **Reasoning** – dává dobré výsledky a nebrzdí práci nadměrným přemýšlením. Thinking modely rychle vyčerpávají kontext, což je problém. 
 + 
 +==== Co dělá model schopným kódovat ==== 
 + 
 +Ne každý model LLM umí pracovat s editorem kódu. Rozdíl spočívá ve dvou věcech: 
 + 
 +  * **Chat Template** – sada speciálních značek (např. ''<user>'', ''<assistant>'', ''<system>''), na které je model natrénovaný. Runtime (llama.cpp) tyto značky využívá k řízení konverzace. 
 +  * **Tool Support** – modely pro kódování mají složitější chat template s pojmy jako ''tool_call'' a ''tool_response''. Díky tomu model rozumí, že má číst soubory, vytvářet komponenty, pracovat s výstupy příkazů. 
 + 
 +Modely bez tool support nepochopí instrukce z editoru a nelze je pro agentic coding použít. 
 + 
 +==== Původ modelů (Lineage) ==== 
 + 
 +Modely mají hierarchii: **Base model** (např. Qwen 2.5) → **Coder** (fine-tuning na programování) → **Instruct** (schopnost následovat instrukce). Existují i **Merge modely** – spojení několika sítí specializovaných na různé oblasti (SQL, TypeScript, obecné kódování). 
 + 
 +==== Konkrétní doporučené modely ==== 
 + 
 +=== Qwen 2.5 Coder Instruct (32B) === 
 + 
 +Špičkový model pro kódování od Alibaby, finetuningovaný na programování a tool calling. 
 + 
 +  * RTX 4090: **47 tokenů/s** při ctx 19 000 a kvantizaci Q4_K_M 
 +  * Na 24GB kartě se vejde „na těsno" – bezpečný kontext max. **19 000 tokenů** 
 +  * V SafeTensors formátu má 32B model ~70 GB (14 souborů × 5 GB) – na 24GB kartu se bez kvantizace nevejde 
 + 
 +=== DeepSeek Coder (14B) === 
 + 
 +Jeden z mála 14B modelů, který skutečně „thinkuje" – přemýšlí o problému před generováním kódu. 
 + 
 +  * Vejde se do VRAM s velkou rezervou → lze nastavit větší kontext 
 +  * Nevýhoda: jako Thinking model rychle vyčerpává kontext budget při složitějších úlohách 
 + 
 +=== JosefFeed (14B) === 
 + 
 +Aktuálně velmi úspěšný model pro programování. Klíčová výhoda: umožňuje nastavit kontext až **50 000 tokenů**, což je zásadní pro pochopení celých větších souborů. 
 + 
 +==O1 (Merge) ===
  
-  * **Qwen 2.5 Coder (Instruct)** – Špičkový model od Alibaby, fine-tuningovaný pro programování a práci s nástroji (tool calling s podporou chat template). +Velmi schopný model vzniklý sloučením specializovaných sítíTěžko dohledatelný pod názvem coder– vyžaduje znalost komunity a konkrétního repozitáře.
-  * **DeepSeek Coder (14B)** – Výborný thinkingmodel, který o problému uvažuje před generováním kódu. +
-  * **Josef Feed (14B)** – Aktuálně doporučovaný model, který zvládá pomoc s kódem i při menší velikosti.+
  
 ==== Kvantizace a výběr souboru na Hugging Face ==== ==== Kvantizace a výběr souboru na Hugging Face ====
  
-Modely ve formátu GGUF jsou k dispozici například v repozitáři [[https://huggingface.co/mradermacher|mradermacher]] na Hugging Face.+Modely ve formátu GGUF jsou k dispozici v repozitáři [[https://huggingface.co/mradermacher|mradermacher]] na Hugging Face, který automatizovaně kvantizuje tisíce modelů.
  
-Doporučená nastavení:+**Jak číst název souboru:**
  
-  * **I1 (Imatrix / Weighted quants)** – Vždy preferovat tyto verze. Jsou přesnější díky multiprechodové optimalizaci vah. +  * **I1** – označení pro i-matrix kvantizaci. Vždy hledejte tuto variantu – zachovává vyšší přesnost u důležitých vah (podobné variabilnímu bitrate u videa)
-  * **Q4_K_M nebo IQ4_XS** – Ideální poměr mezi velikostí a kvalitou. 4-bitová kvantizace snižuje nároky na paměť přibližně 8× oproti Float32 při minimální ztrátě přesnosti (1–2 %).+  * **Q4_K_M** – doporučená volba: 4-bitová kvantizacesnižuje velikost modelu ~8× oproti Float32 při ztrátě přesnosti jen 1–2 %
 +  * **IQ4_XS** – pozor: autor má s touto variantou zkušenost s halucinacemi. Preferovat Q4_K_M. 
 +  * Označení velikosti: **XS, S, M, L** – analogie k oděvním velikostem. M je zpravidla dobrý výchozí bod.
  
 ===== Agentic coding v praxi ===== ===== Agentic coding v praxi =====
Řádek 83: Řádek 143:
  
   * **Nástroj:** VS Code extension **Roo Code** – v nastavení zvolit „OpenAI Compatible" a zadat IP adresu a port lokálního ''llama-server''.   * **Nástroj:** VS Code extension **Roo Code** – v nastavení zvolit „OpenAI Compatible" a zadat IP adresu a port lokálního ''llama-server''.
-  * **Kontextové okno:** Kritický parametr. Pro RTX 4090 a 32B model je bezpečné nastavit přibližně 19 000–25 000 tokenů.+  * **Kontextové okno:** Kritický parametr. Pro RTX 4090 a 32B model je bezpečné nastavení **19 000 tokenů** – při 25 000 dochází k přetečení VRAM a hardware akcelerace se vypíná.
  
 ==== Přetečení kontextu ==== ==== Přetečení kontextu ====
  
-Pokud kontext přeteče kapacitu VRAM, model začne halucinovat – například generuje nekonečné řady ''div'' tagů nebo jen opakující se tečky. Řešení:+Pokud kontext přeteče kapacitu VRAM, model začne halucinovat – například generuje nekonečné řady ''div'' tagů nebo jen opakující se tečky. Příznaky přetečení jsou stejné jako u příliš nízké kvantizace, proto je důležité nejdřív ověřit nastavení kontextu. Řešení:
  
   - Okamžitě ukončit generování   - Okamžitě ukončit generování
-  - Snížit hodnotu ''%%--ctx-size%%'' a restartovat server +  - Snížit hodnotu ''%%--ctx-size%%'' na 19 000 (pro 32B model na 24 GB VRAM) a restartovat server 
-  - Případně přejít na menší model+  - Ponechat ~500 MB VRAM volné jako rezervu 
 +  - Případně přejít na menší model (14B), který dává více prostoru pro kontext
  
 ==== Promptování ==== ==== Promptování ====
  
-Lepší výsledky přináší připravit modelu plán před samotnou úlohou. Příklad: „Nejdříve vyextrahuj kód do nového souboru, pak ho importuj, až pak smaž původní soubor."+Lepší výsledky přináší připravit modelu plán před samotnou úlohou místo jednoho složitého promptu. Příklad: „Nejdříve vyextrahuj kód do nového souboru, pak ho importuj, až pak smaž původní soubor."
  
 ===== Akční body ===== ===== Akční body =====
  
   - **Zkontrolovat VRAM** stávající grafické karty (minimum 14 GB pro první pokusy, 24 GB pro praxi)   - **Zkontrolovat VRAM** stávající grafické karty (minimum 14 GB pro první pokusy, 24 GB pro praxi)
-  - **Nastavit MSI Afterburner** – undervolting pro ochranu karty při dlouhodobé 100% zátěži+  - **Nastavit MSI Afterburner** – undervolting pro ochranu karty při dlouhodobé 100% zátěži (~400 W)
   - **Stáhnout llama-server** – aktuální release llama.cpp z GitHubu (verze pro CUDA 12)   - **Stáhnout llama-server** – aktuální release llama.cpp z GitHubu (verze pro CUDA 12)
-  - **Otestovat Qwen 2.5 Coder** (14B nebo 32B) ve verzi I1 Q4_K_M z Hugging Face+  - **Otestovat Qwen 2.5 Coder** (32B) ve verzi I1 Q4_K_M z repozitáře mradermacher na Hugging Face; nastavit ctx-size 19 000
   - **Propojit s IDE** – nainstalovat Roo Code do VS Code a nakonfigurovat lokální endpoint   - **Propojit s IDE** – nainstalovat Roo Code do VS Code a nakonfigurovat lokální endpoint
  
  • ai/hardware/lokalni-llm-na-gpu.1777833184.txt.gz
  • Poslední úprava: 03.05.2026 20:33
  • autor: Petr Nosek