Technológie · Umelá inteligencia
Lokálne LLM na GPU AMD Radeon AI PRO R9700
Prevádzkujeme vlastný server s jazykovým modelom, ktorý beží na GPU v sídle firmy. Ladíme ho pre prácu s Claude Code a AI agentmi — zdrojový kód a dáta pritom neopúšťajú našu infraštruktúru.
Prečo lokálny model
Pri analýze požiadaviek, návrhu aj realizácii našich systémov používame Claude Code. Aby zdrojový kód ani dáta neopustili firmu, napájame ho na vlastný LLM server llama.cpp v našej infraštruktúre — server poskytuje rozhranie kompatibilné s Anthropic API, takže Claude Code s ním pracuje rovnako ako s cloudovým modelom. Model, s ktorým Claude Code pracuje, prepíname jednoducho spúšťacím skriptom.
Ten istý server obsluhuje aj autonómnych AI agentov (Hermes Agent) v našej internej sieti.
- dôvernosť — zdrojový kód a dáta zostávajú vo firme
- náklady — žiadne poplatky za spracované tokeny
- nezávislosť — prevádzka bez ohľadu na dostupnosť cloudu
- kontrola — celý reťazec vieme merať, ladiť a opravovať
Hardvér a softvér
Jedna pracovná stanica, jedna grafická karta.
GPU
AMD Radeon AI PRO R9700 — architektúra RDNA4, 32 GB VRAM.
Operačný systém a runtime
Windows 11 Pro, AMD ROCm 10 (HIP) — bez Linuxu a WSL.
llama.cpp
Fork stew675 „llama-cpp-rdna-boosts“ s optimalizáciami pre GPU RDNA, doplnený o naše vlastné úpravy nad aktuálnou verziou llama.cpp.
Vlastný build
Náš repozitár a CI build pre ROCm na Windows na GitHube — každá nová verzia prechádza meraním výkonu a kontrolou zhody výstupov.
Používané modely
Produkčný model: Qwen3.8-27B
- kvantizácia Unsloth UD-Q5_K_XL (približne 21 GB)
- hybridná architektúra SSM + attention, podpora obrázkov a uvažovania (reasoning)
- kontext 262 144 tokenov — maximum modelu — v dvoch paralelných slotoch
- KV cache kvantizovaná na q8_0
- špekulatívne dekódovanie MTP (multi-token prediction)
Alternatívne a predchádzajúce modely
- Swift-1.5-Qwen3.8-27B (Q5_K_M, Q6_K_S)
- Qwen3.6-35B-A3B (Mixture of Experts), Qwen3.6-27B
Naše posledné výsledky
Stav k októbru 2026, merané na reálnych promptoch agentov.
| Obdobie | Zmena | Spracovanie promptu | Generovanie |
|---|---|---|---|
| august 2026 | prechod na ROCm a port optimalizácií rdna-boosts | 312 → 574 t/s (+84 %) | — |
| september 2026 | WMMA kernely flash attention pre RDNA4 | 660 → 752 t/s (+14 %) | −12,5 % času na token |
| september 2026 | ďalšie úpravy dekódovania | 743 t/s | −5,4 % času na token |
| október 2026 | Qwen3.8-27B V2, MTP, kontext 262k | 780–835 t/s | 45–47 t/s |
Na začiatku (august 2026, backend Vulkan, model Qwen3.6-27B) sme dosahovali približne 530 t/s pri spracovaní promptu a 21 t/s pri generovaní. Čísla v jednotlivých riadkoch nie sú striktne porovnateľné — medzičasom sa menil model, kvantizácia aj spôsob dekódovania.
Kvalita pri kvantizovanej KV cache
Pri kontexte 126k tokenov s KV cache q8_0 model správne vyhľadal všetkých 120 z 120 testovacích faktov a jeho výstup bol token po tokene zhodný s výstupom pri plnej presnosti — pri výrazne nižšej spotrebe VRAM.
Čo pomohlo a čo nie
Každú zmenu meriame na reálnych úlohách a nasadzujeme len to, čo obstojí.
Pomohlo
- port optimalizácií rdna-boosts (+84 % pri spracovaní promptu)
- preskakovanie maskovaných blokov vo flash attention (+8 až 24 %)
- WMMA kernely pre RDNA4
- KV cache q8_0 (približne o 2 GB menej VRAM)
- jednorazová alokácia pomocného bufferu flash attention — naša úprava, +73k tokenov kontextu
- špekulatívne dekódovanie MTP (+56 % pri generovaní)
- opravy cache promptov — návrat ku konverzácii za 1,2 s namiesto 41 s
Nepomohlo
- väčší micro-batch — pretečenie VRAM
- HIP graphs — bez zisku, nestabilné pri dlhých promptoch
- natívny bf16 prefill — o 47 % pomalší
- knižnica hipBLASLt — nedeterministický výber kernelov, preto vypnutá
Zistenia z prevádzky
- po dlhom behu servera sú merania VRAM nespoľahlivé — pred meraním reštartujeme
- ovládač Adrenalin 26.7 bol nestabilný, používame OEM vetvu ovládačov
- väčšina opakovaného spracovania promptov pochádza z klienta, nie zo servera
Zaujíma vás nasadenie lokálnych LLM?
Radi sa podelíme o skúsenosti s prevádzkou jazykových modelov na vlastnom hardvéri.