Home Lab LLM stack

Chci sprovoznit lokální LLM na domacím serveru. Použítí má být:

  • webové rozhraní pro Chat,
  • API pro přistup s VS Code a dalšími nástroji.

Pro akceleraci modelu jsem se rozhodl využít GTX 1070 Ti s 8GB VRAM. Ta má nastavený passhrough do VM s Bazzite pro hraní Steamových her.

Nabízely se dvě možnosti:

  1. Vytvořit další VM s GTX 1070 Ti a LLM stackem -> střídání virtuálních strojů mezi hraním a LLM.
  2. Vytvořit LLM stack v Dockeru (Podman) a využít Bazzite VM.

Spotřebitelksé grafiky GTX jsou známé tím, že namají podporu pro více virtuálních strojů a moc se jim nelíbí přepínání mezi různými virtuálními stroji. Proto jsem se rozhodl pro druhou možnost a využít Bazzite VM, která již má přístup k celé grafice.

Vyhnutí se GPU Reset Bugu: Dynamické předávání karty sem a tam mezi Proxmox LXC a herní VM za běhu u Pascalu (GTX 1070 Ti) často zasekávalo celou PCIe sběrnici. Provozovat LLM přímo uvnitř běžícího Bazzite je nejstabilnější cesta.

FOSS modely pro 1070 Ti – 8 GB VRAM

Rozodl jsem se dát přednost otevřeným / evropským variantám LLM:

  1. Mistral 7B / Mistral instruct (evropský projekt, skvělý výkon ve 4-bit GGUF)
  2. Zephyr 7B (komunitně dotrénovaný model z Hugging Face)
  3. OLMo 3 (Allen Institute – 100% transparentní open-source)

Jak dostat ollama a open-webui do kontejneru?

Github

Server a VM s Bazzite + GTX 1070 Ti vezme ~250 W při běhu LLM stacku.

Integrace do VS Code

Protože kontejner s Ollamou už běží a vystavuje standardní OpenAI-kompatibilní API na portu 11434, nepotřebujeme instalovat žádné další mezivrstvy.

Rozšíření Continue.dev

Open-source standardem pro lokální modely ve VS Code je rozšíření Continue:

  1. Ve VS Code otevřete panel rozšíření (Ctrl+Shift+X).
  2. Vyhledejte Continue (od Continue.dev) a nainstaluj ho.
  3. Na levé liště ti přibude nová ikona (šipka Continue).

Klikněte v panelu Continue na ozubené kolečko (Settings) vpravo dole, což vám otevře konfigurační soubor config.yaml (nebo config.json).

Doplňte sekci modelů následujícím zápisem:

models:
  - name: "Mistral 7B (Homelab)"
    provider: "ollama"
    model: "mistral:instruct"
    apiBase: "http://<IP_ADRESA_BAZZITE>:11434"
    roles:
      - "chat"
      - "edit"

Co získáte v editoru?

  • Agentní chat (Ctrl+L): Otevře boční panel. Můžete psát @Files a odkazovat na konkrétní soubory v projektu, @Folder pro kontext celé složky nebo označit kus kódu a zeptat se “Kde je v tomto skriptu chyba?”
  • Inline editace kódu (Ctrl+I): Označíte funkci, stiskneš Ctrl+I a napíšete prompt: “Převeď tuhle funkci na asynchronní a přidej typové anotace.” Model navrhne diff přímo do editoru.
  • Autodoplňování (Tab autocomplete): Jakmile píšete kód, model vám na pozadí nabízí šedé dokončení řádků/bloků.

Integrovaný Chat

Preš Chat v pravo dole v zadávacím okně promptu zvolíte Models -> Other models -> ozubené kolečko -> Add models -> Ollama (deprecated).

Zde zadáte API URL: http://<IP_ADRESA_BAZZITE>:11434

Ollama Ollama

Model se chová dle očekávání.

Rozšíření Ollama

Napojení ve VS Code Chat na Ollama je zastaralé a tak zvažte použití rozšíření Ollama, které jej má nahradit.