Przejdź do głównej zawartości

Omówienie

Runtime Local LLM Documentation

Runtime Local LLM to wtyczka, która uruchamia duże modele językowe w pełni na urządzeniu przy użyciu llama.cpp, bez potrzeby połączenia z internetem w czasie działania. Obsługuje pliki modeli GGUF i zapewnia pełne API Blueprint do ładowania modeli, wysyłania wiadomości i odbierania odpowiedzi token po tokenie, wszystko na wątku w tle z wywołaniami zwrotnymi na wątku gry.

Wtyczka obsługuje systemy Windows, Mac, Linux, Android (w tym Meta Quest i inne platformy oparte na Androidzie) oraz iOS.

Kluczowe cechy

  • Pełne wnioskowanie offline: Brak usług chmurowych ani kluczy API w czasie działania
  • Obsługa modeli GGUF: Ładuj dowolny model w formacie GGUF (Llama, Mistral, Phi, Gemma, Qwen itp.)
  • Aktualna wersja llama.cpp: Regularnie aktualizowana na Fab, aby nadążać za wydaniami llama.cpp, dzięki czemu najnowsze formaty modeli GGUF są zawsze obsługiwane
  • Przyspieszenie GPU: Wykorzystuje Vulkan na Windows i Linux, Metal na Mac i iOS oraz CPU + intrinsics na Android i Meta Quest
  • Wiele metod ładowania modeli:
    • Ładowanie ze ścieżki pliku lokalnego
    • Ładowanie według nazwy modelu (wybór z listy rozwijanej w Blueprints)
    • Pobranie z adresu URL i automatyczne załadowanie
    • Tylko pobieranie w celu wstępnego buforowania modeli
  • Strumieniowanie token po tokenie: Otrzymuj każdy token w miarę jego generowania w celu wyświetlania w czasie rzeczywistym
  • Asynchroniczne węzły Blueprint: Węzły z delegatami wyjściowymi do ładowania, wysyłania wiadomości i pobierania
  • Konfigurowalne parametry wnioskowania: Temperatura, Top-P, Top-K, kara za powtórzenia, odciążanie warstw GPU, rozmiar kontekstu, ziarno, liczba wątków i monit systemowy
  • Zarządzanie kontekstem rozmowy: Utrzymuj wieloetapowe rozmowy z obsługą resetowania kontekstu
  • Menedżer modeli w edytorze: Przeglądaj, pobieraj, importuj, usuwaj i testuj modele bezpośrednio w ustawieniach projektu
  • Pakowanie międzyplatformowe: Modele są dostarczane z projektem za pośrednictwem stagingu NonUFS

Jak to działa

  1. Zarządzaj modelami w edytorze: Skorzystaj z panelu ustawień wtyczki, aby przeglądać katalog predefiniowanych modeli, pobierać je lub importować własne pliki GGUF
  2. Załaduj model w czasie działania: Wywołaj jedną z funkcji ładowania (z pliku, według nazwy, z adresu URL lub według metadanych) z własnymi parametrami wnioskowania
  3. Wyślij wiadomości: Przekaż wiadomość użytkownika do instancji LLM; tokeny są przesyłane strumieniowo przez delegaty w miarę generowania odpowiedzi przez model
  4. Wykorzystaj odpowiedź: Wyświetlaj tokeny w interfejsie czatu, steruj dialogami NPC, generuj dynamiczną zawartość lub przekazuj je do innych systemów

Całe wnioskowanie odbywa się na dedykowanym wątku w tle. Wywołania zwrotne (generowanie tokenów, zakończenie, błędy) są wywoływane na wątku gry, dzięki czemu można bezpiecznie aktualizować interfejs użytkownika i stan gry z ich poziomu.

Przechowywanie i pakowanie modeli

Modele są przechowywane jako pliki .gguf w katalogu Content/RuntimeLocalLLM/Models Twojego projektu. Wtyczka automatycznie konfiguruje Additional Non-Asset Directories To Copy (DirectoriesToAlwaysStageAsNonUFS), aby pliki modeli były dołączane do spakowanego projektu i pozostawały dostępne poprzez standardowe operacje wejścia/wyjścia plików w czasie działania.

Każdy model posiada również plik boczny .json, który przechowuje jego metadane (nazwę wyświetlaną, rodzinę, wariant, opis, liczbę parametrów).

Obsługiwane modele

Wtyczka współpracuje z dowolnym modelem w formacie GGUF. Edytor udostępnia katalog popularnych predefiniowanych modeli do pobrania jednym kliknięciem, a ponadto można zaimportować dowolny niestandardowy plik GGUF. Typowe rodziny modeli obejmują:

  • Llama (Meta) — 1B, 3B, 8B i większe
  • Mistral / Mixtral — 7B i większe
  • Phi (Microsoft) — 2B, 3B, 4B
  • Gemma (Google) — 2B, 7B
  • Qwen (Alibaba) — 1.5B, 7B i większe
  • TinyLlama — 1.1B
  • I wiele innych modeli społecznościowych

Kwantyzacja

Modele występują w różnych poziomach kwantyzacji, które stanowią kompromis między jakością a rozmiarem i szybkością:

KwantyzacjaJakośćRozmiarSzybkość
Q2_KNiskaNajmniejszyNajszybsza
Q4_K_MDobraŚredniSzybka
Q5_K_MLepszaWiększyŚrednia
Q8_0WysokaDużyWolniejsza
F16 / F32NajwyższaNajwiększyNajwolniejsza

Dla urządzeń mobilnych i VR zalecane są mniejsze poziomy kwantyzacji (od Q2_K do Q4_K_M) z kompaktowymi modelami (1B–3B parametrów). Na komputerze stacjonarnym można używać większych modeli i wyższych poziomów kwantyzacji w zależności od dostępnej pamięci RAM i zasobów CPU/GPU.

Dodatkowe zasoby

Join our Discord
online · support