Powrót do strony głównej

Uruchomienie MoE GPT-OSS-120B na 6 GB GPU do 30 t/s

Artykuł opisuje uruchomienie modelu MoE 120B GPT-OSS-120B na GPU z 6 GB VRAM do 30 t/s. Wyjaśniono architekturę MoE, parametry -cmoe, --fit dla efektywnego rozdzielenia tensorów między CPU i GPU.

30 t/s na 6 GB: optymalizacja GPT-OSS-120B MoE
Advertisement 728x90

# Optymalizacja modeli MoE na słabym GPU: uruchomienie GPT-OSS-120B z 6 GB VRAM do 30 t/s

Model GPT-OSS-120B liczący 120B parametrów działa na GPU z 6 GB VRAM przy prędkości 30 tokenów/s. Kluczowym czynnikiem jest wykorzystanie RAM zamiast VRAM dzięki architekturze Mixture of Experts (MoE) i parametrowi -cmoe. Pozwala to efektywnie rozdzielać tensory między CPU i GPU bez modernizacji sprzętu.

Architektura Mixture of Experts

Modele MoE aktywują ograniczoną liczbę ekspertów z ogólnego puli na każdej warstwie. Router (gating network) wybiera 2–4 ekspertów spośród 128 do generowania tokena, co zmniejsza obciążenie obliczeniowe nawet 24-krotnie w porównaniu z modelami dense.

Każda warstwa zawiera:

Google AdInline article slot
  • Bloki uwagi (wspólne tensory)
  • Bloki FFN zastąpione grupą ekspertów
  • Router do routingu

Eksperci to izolowane mini-FFN, specjalizujące się w zakresach danych wejściowych. Podczas generowania tokena przechodzą przez wszystkie warstwy (12–100+), na przemian MoE i dense-warstwy.

W modelach dense FFN to monolityczny blok, w MoE — struktura rzadka. Całkowita liczba parametrów jest duża, ale aktywnych na przejście — mała. Problemy: nakładanie się ekspertów, nieoptymalny routing routera.

Dlaczego VRAM jest nieefektywne dla MoE

Wyładowanie całych warstw MoE na GPU prowadzi do bezczynności: z 128 ekspertów aktywnych jest 4, reszta marnuje VRAM. Tensory uwagi (wspólne) są małe objętościowo, ich wyładowanie zapewnia stałe obciążenie GPU.

Google AdInline article slot

Porównanie konfiguracji:

| Konfiguracja | Zajęte VRAM | Obliczone | Efektywność |

|---------------|-------------|-----------|-------------|

Google AdInline article slot

| Całe warstwy | 16 bloków | 8 bloków | 50% |

| Tensory attn | 16 bloków | 16 bloków | 100% |

Dla GPT-OSS-120B z -cmoe obciążenie VRAM ~3 GB, prędkość 30 t/s. Modele dense nie mają przerw, VRAM proporcjonalne do obliczeń.

Parametry optymalizacji w llama.cpp

Główny parametr -cmoe / --cpu-moe

Pozostawia ekspertów MoE (tensory exps) na CPU, wyładowuje:

  • Tensory uwagi wszystkich warstw
  • Wspólne warstwy (bez exps w nazwie)
  • Wspólni eksperci (shexp)

Logika uruchomienia:

  • -ngl 999 — wszystko na GPU
  • -cmoe — MoE z powrotem na CPU

Ważne: Nie używać ik_llama dla GPT-OSS-120B.

-ncmoe N / --n-cpu-moe N

Kontroluje warstwy na CPU przy nadmiarze VRAM. GPT-OSS-120B: 37 warstw.

  • -cmoe — 3 GB VRAM
  • -ncmoe 30 — wypełnia do limitu

-ncmoe jest ignorowane przy -cmoe (priorytet ma ten ostatni).

Nowy parametr --fit (grudzień 2025)

Automatyczne wypełnianie VRAM:

  • --fit — domyślnie, dla MoE włącza ncmoe
  • --fit-ctx 4096 — limit kontekstu (domyślnie 4096 zamiast 128k)
  • --fit-target 1024 — wolne VRAM w MB (domyślnie 1 GB)

Automatycznie ustawia -fa, -ngl, -t na maksimum. Problem: -t = CPU cores - 1, dla hybrydowych CPU (rdzenie E/P) podawać jawnie -t 8.

Dodatkowe optymalizacje pamięci

  • -fa 1 — flash attention / swa / mla, auto-wykrywanie
  • -ub 4096 -b 4096 — kwantyzacja KV-cache
  • -ctk q8_0 -ctv q8_0 — kwantyzacja kontekstu

Nowy --models-dir — zmiana modeli z UI, --models-max 1 przeciw OOM.

Co ważne

  • Modele MoE (GPT-OSS-120B, DeepSeek V3) wymagają RAM > VRAM
  • -cmoe wyładowuje tylko tensory attention na GPU
  • --fit automatyzuje dobór parametrów
  • Prędkość 30 t/s na 6 GB VRAM jest osiągalna
  • Unikać ik_llama i auto---t na hybrydowych CPU

— Editorial Team

Advertisement 728x90

Czytaj dalej