llmfit – jak dobrać lokalny model LLM do sprzętu

llmfit
Streszczenie AI

llmfit to otwartoźródłowe narzędzie (CLI + TUI), które automatycznie analizuje zasoby sprzętu (RAM, CPU, GPU) i na tej podstawie „right‑size” modele LLM z Hugging Face, prezentując ranking zgodny z dostępnością pamięci i proxy‑toków na sekundę. Dzięki prostym poleceniom lub interaktywnemu interfejsowi użytkownik widzi, które modele faktycznie uruchomi się na danym PC, a tryb Plan lub symulacji pozwala też zaplanować wymagania sprzętowe dla wybranego modelu. Integruje się z popularnymi providery (Ollama, llama.cpp, MLX, LM Studio) oraz oferuje webowy dashboard i REST API, czyniąc llmfit przydatnym zarówno dla indywidualnych użytkowników, jak i do automatycznego zarządzania zasobami w klastrach.

Uruchamianie dużych modeli językowych lokalnie staje się coraz popularniejsze, ale dobór właściwego modelu do konkretnej konfiguracji sprzętowej nie jest trywialny. Narzędzie llmfit rozwiązuje ten problem, automatycznie analizując zasoby RAM, CPU i GPU oraz podpowiadając, które modele faktycznie uruchomią się sensownie na danym komputerze.

Co to jest llmfit i po co powstał?

llmfit to otwartoźródłowe narzędzie terminalowe (CLI + TUI), napisane głównie w Rust, które „right-sizuje” modele LLM do konkretnego sprzętu użytkownika. Jego głównym celem jest odpowiedź na praktyczne pytanie: które modele z Hugging Face i innych źródeł warto próbować uruchamiać lokalnie na danym PC, a które są po prostu za duże.

Narzędzie wykrywa parametry systemu (RAM, liczba rdzeni CPU, obecność i typ GPU, ilość VRAM), ładuje bazę metadanych modeli i wylicza kilka wskaźników jakościowych – m.in. dopasowanie do pamięci, szacowaną szybkość generacji, jakość oraz możliwości kontekstowe. Dzięki temu zamiast ręcznie zgadywać, czy np. Llama 3.1 8B w wersji Q4 będzie działać na laptopie z 16 GB RAM, można uruchomić llmfit i od razu zobaczyć ranking modeli oraz ich „fit” względem posiadanego sprzętu.

Instalacja i podstawowe sposoby uruchomienia

llmfit jest dystrybuowane w wielu formach: jako gotowe binaria, pakiet Python, kontener Docker oraz źródła kompilowane przez Cargo. Na Windows najprostsza instalacja odbywa się przez Scoop, na macOS i Linuksie – przez Homebrew lub szybki skrypt instalacyjny z curl, który pobiera najnowszy release i umieszcza binarium w katalogu systemowym lub w ~/.local/bin bez potrzeby użycia sudo.

Dostępna jest także integracja z uv/pip, gdzie llmfit funkcjonuje jako narzędzie Pythonowe, uruchamiane np. przez uvx bez stałej instalacji. Dla środowisk kontenerowych przewidziano obraz w rejestrze ghcr.io, który po uruchomieniu domyślnie wykonuje rekomendacje i wypisuje JSON, gotowy do dalszej obróbki np. narzędziem jq.

  • Windows: scoop install llmfit – instalacja z repozytorium Scoop.
  • macOS/Linux: brew install llmfit lub skrypt curl -fsSL ... | sh.
  • Docker/Podman: docker run ghcr.io/alexsjones/llmfit z opcjonalną flagą --tui do uruchomienia interfejsu tekstowego.
  • Kompilacja ze źródeł: cargo build --release po sklonowaniu repozytorium.

Interfejs TUI – serce llmfit

image
image

Domyślnym sposobem pracy jest interaktywny interfejs TUI, uruchamiany po prostu komendą llmfit. U góry ekranu wyświetlane są wykryte parametry systemu (CPU, RAM, nazwa GPU, ilość VRAM, wykryty backend), poniżej zaś przewijana lista modeli z punktacją i szacowanymi parametrami pracy.

Każdy wiersz zawiera m.in. nazwę modelu, łączny wynik (score), tok/s, najlepszą dobraną kwantyzację, tryb uruchomienia (GPU, CPU+GPU, CPU, MoE), procent wykorzystania pamięci, rozmiar kontekstu oraz kategorię zastosowania (chat, coding, reasoning itd.). Nawigacja jest inspirowana Vim-em – poruszanie się strzałkami lub klawiszami j/k, filtracja po dopasowaniu (f), sortowanie po kolumnach (s), wybór tematu kolorystycznego (t) oraz wejście w tryb planowania (p).

KlawiszFunkcja
Up/Down, j/kNawigacja po liście modeli.
fPrzełączanie filtra „fit”: All, Runnable, Perfect, Good, Marginal.
sZmiana kolumny sortowania (Score, Params, Mem%, Ctx, Date, Use Case).
pPlan Mode – obliczenie wymagań sprzętowych dla wybranego modelu.
UFiltracja po rodzaju zastosowania (chat, coding, reasoning, embedding itp.).
DMenadżer pobierania modeli (Download Manager).
bWidok Community Leaderboard – realne wyniki benchmarków społeczności.
IInference Bench – lokalne benchmarki na działających providerach.
tPrzełączanie motywów kolorystycznych (Dracula, Nord, Solarized, Catppuccin itd.).

Plan Mode i symulacja sprzętu

Plan Mode odwraca typowe pytanie „co uruchomi się na moim sprzęcie?” na „jakiego sprzętu potrzebuję, żeby uruchomić ten konkretny model w wybranej konfiguracji?”. Po wciśnięciu p na wybranym wierszu można edytować m.in. docelową długość kontekstu, rodzaj kwantyzacji i docelowe tokens per second, a llmfit wyliczy wymagania minimalne oraz rekomendowane dla VRAM, RAM i liczby rdzeni CPU.

Tryb symulacji sprzętu (klawisz S) pozwala z kolei „zasymulować” inne konfiguracje – np. docelową stację roboczą z 48 GB VRAM lub serwer z 128 GB RAM – i zobaczyć, jak zmieni się lista modeli możliwych do uruchomienia. Zmiana wartości RAM, VRAM i liczby rdzeni jest natychmiast uwzględniana w rankingach oraz ocenach „fit”, a aktywną symulację oznacza widoczne oznaczenie SIM w pasku statusu.

Jak llmfit liczy „fit”, szybkość i jakość

Mechanika działania llmfit opiera się na kilku krokach: najpierw wykrywany jest sprzęt (RAM, CPU, GPU/VRAM, backend), następnie ładowana jest baza modeli z Hugging Face, a na koniec każdy model jest oceniany pod kątem pamięci, szybkości, jakości i kontekstu. Bazę stanowi wygenerowany skryptem plik JSON z setkami modeli różnych producentów – Meta Llama, Mistral, Qwen, Gemma, Phi, DeepSeek, Granite, OLMo, Grok i wielu innych – wraz z informacjami o liczbie parametrów, kontekście i dostępnych wariantach kwantyzacji.

Szybkość generacji jest przybliżana na bazie przepustowości pamięci GPU – w uproszczeniu tok/s ≈ (bandwidth w GB/s / rozmiar modelu w GB) × współczynnik efektywności, modyfikowany przez typ kwantyzacji i tryb uruchomienia. Dla nierozpoznanych GPU stosowane są stałe dla backendów (np. CUDA, Metal, ROCm, CPU x86/ARM), co pozwala zachować sensowne szacunki także w mniej typowych konfiguracjach.

WymiarCo mierzy
QualityLiczba parametrów, reputacja rodziny modeli, kara za kwantyzację, dopasowanie do konkretnego zadania.
SpeedSzacowane tokens/sec w zależności od backendu, rozmiaru i kwantyzacji.
FitWykorzystanie pamięci względem dostępnej VRAM/RAM, z preferowanym zakresem 50–80%.
ContextMożliwości okna kontekstowego względem potrzeb danego use-case.

Każdy z tych wymiarów jest przeskalowany do zakresu 0–100 i złożony w wynik łączny, przy czym waga poszczególnych składników zależy od zastosowania – dla czatu większy nacisk jest na szybkość, dla rozumowania na jakość. Modele, które nie są w ogóle uruchamialne (Too Tight), trafiają zawsze na dół listy, a użytkownik może filtrować widok tylko do poziomów Perfect/Good/Marginal.

Integracja z providerami: Ollama, llama.cpp, MLX, LM Studio

llmfit nie jest samodzielnym silnikiem inferencyjnym – zamiast tego integruje się z lokalnymi providerami, takimi jak Ollama, llama.cpp, MLX, Docker Model Runner oraz LM Studio. Wykrywa zainstalowane modele, potrafi je pobierać z poziomu TUI, oznacza zainstalowane pozycje specjalnym znacznikiem i dobiera rekomendacje pod kątem dostępnych backendów.

Dla Ollama używany jest domyślny endpoint HTTP, konfigurowany zmienną OLLAMA_HOST, co pozwala łączyć się z instancją działającą na innym serwerze w sieci lokalnej. W przypadku llama.cpp llmfit zarządza katalogiem GGUF, mapuje nazwy modeli z Hugging Face na właściwe pliki GGUF, a pobieranie odbywa się bezpośrednio z repozytoriów na Hugging Face.

  • Ollama: wykrywanie przez /api/tags, pobieranie przez /api/pull, obsługa remote przez OLLAMA_HOST.
  • llama.cpp: integracja z llama-cli/llama-server, mapowanie nazw, zarządzanie cache GGUF.
  • MLX: specjalne wsparcie dla Apple Silicon, korzystanie z mlx-community repozytoriów.
  • Docker Model Runner i LM Studio: integracja z ich własnymi API do listowania i pobierania modeli.

Community Leaderboard i Inference Bench

Jednym z ciekawszych elementów llmfit jest powiązanie szacunków teoretycznych z rzeczywistymi pomiarami społeczności. Widok Community Leaderboard (klawisz b) pokazuje dane z localmaxxing.com – realnie zmierzone tok/s, TTFT i użycie VRAM dla konkretnych modeli, backendów i konfiguracji GPU.

Użytkownik może wybrać profil sprzętu z listy kilkudziesięciu popularnych GPU (od RTX 5090 po M1/M4 i karty serwerowe) i porównywać liczby przed decyzją o zakupie lub modernizacji. Inference Bench (klawisz I) z kolei uruchamia lokalne benchmarki na rzeczywiście działających providerach użytkownika, zapisuje wyniki w cache i pozwala je wykorzystać zarówno w TUI, jak i poprzez subkomendę llmfit bench w CLI.

Uwaga

Narzędzie wylicza tok/s na podstawie czystej przepustowości pamięci to tylko szacunek teoretyczny, który może odbiegać od rzeczywistości.

Webowy dashboard i REST API

Po uruchomieniu llmfit w trybie nie-JSON startuje w tle prosty webowy dashboard na porcie domyślnym 8787, dostępny przez przeglądarkę jako panel do eksploracji rekomendacji. Host i port można skonfigurować przez zmienne środowiskowe, a dashboard da się wyłączyć globalną flagą --no-dashboard.

Ten sam mechanizm serwera jest udostępniony jako jawna komenda llmfit serve, która wystawia REST API. Endpoints takie jak /api/v1/models czy /api/v1/models/top zwracają listę modeli wraz z filtrami po „fit”, użyciu, runtime, kontekście, co czyni llmfit praktycznym komponentem do budowy schedulerów w klastrach – np. podejmowania decyzji, jaki model uruchomić na danym węźle.

Zastosowania praktyczne dla użytkowników i zespołów

Dla pojedynczego użytkownika llmfit jest głównie narzędziem do świadomego wyboru lokalnego modelu – można w kilka minut sprawdzić, które modele do czatu, kodowania czy rozumowania są realistyczne na posiadanym laptopie czy desktopie. Zamiast godzin eksperymentów z pobieraniem zbyt dużych modeli, wszystko sprowadza się do przejrzenia tabeli, ustawienia filtra „Runnable” i wybrania topowych pozycji.

W większych środowiskach, szczególnie tam gdzie istnieje wiele serwerów GPU, llmfit może pełnić rolę elementu „planowania zasobów” – API serve pozwala włączyć go do pipeline’u orkiestracji agentów, a integracja z OpenClaw jako skill „llmfit-advisor” umożliwia agentom automatyczne dobieranie modeli do sprzętu. Dodatkowo, Plan Mode oraz symulacja sprzętu są przydatne przy planowaniu zakupów – można zwiększyć np. VRAM w symulacji i natychmiast zobaczyć, jakich nowych modeli nie da się uruchomić bez tej rozbudowy.

Warto także odnotować, że llmfit uwzględnia architektury Mixture-of-Experts, gdzie faktycznie aktywnych parametrów jest mniej niż całkowita liczba parametrów – np. dla Mixtral 8x7B realne wymagania VRAM są istotnie niższe niż wskazywałaby suma parametrów. Dzięki temu rekomendacje dla modeli takich jak DeepSeek V2/V3 czy Mixtral są bliższe realnym możliwościom sprzętu, niż proste szacowanie po „surowej” liczbie parametrów.

Zbuduj własne, prywatne AI

Ten wpis to część naszej bazy projektów open-source. Jeśli szukasz innych modeli, które możesz uruchomić całkowicie offline na własnym sprzęcie, zajrzyj do naszego stale rosnącego Katalogu Lokalnych Narzędzi AI.

Źródła

🧠 Utrwal wiedzę z tego artykułu!

Kliknij pojęcie, by przypomnieć sobie definicję.

C++ inference engine for large language models (llama.cpp)
?
Llama.cpp to otwartoźródłowy silnik wnioskowania napisany w języku C/C++, którego głównym celem jest uruchamianie dużych modeli językowych (LLM) przy minimalnych...
Czytaj pełną definicję
Performance testing of LLM inference (tokens/sec, TTFT) (Inference Benchmark)
?
Inference Benchmark w kontekście modeli LLM to proces oceny wydajności i szybkości generowania odpowiedzi przez sztuczną inteligencję. Głównymi wskaźnikami poddawanymi...
Czytaj pełną definicję
Central Processing Unit, used for AI inference on non‑GPU hardware (CPU)
?
Central Processing Unit (CPU), czyli centralna jednostka obliczeniowa, to główny układ procesora w komputerze, który odpowiada za interpretację i wykonywanie...
Czytaj pełną definicję

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Wymagane pola są oznaczone *

Powiązane posty

Zacznij wpisywać wyszukiwane hasło powyżej i naciśnij Enter, aby wyszukać. Naciśnij ESC, aby anulować.

Powrót do góry