Omówienie LiteRT-LM

LiteRT-LM to gotowa do zastosowań produkcyjnych platforma wnioskowania typu open source, która została zaprojektowana z myślą o wdrażaniu na urządzeniach brzegowych dużych modeli językowych o wysokiej wydajności i działających na wielu platformach.

  • Obsługa różnych platform: działa na Androidzie, iOS, w internecie, na komputerach i urządzeniach IoT (np. Raspberry Pi).
  • Akceleracja sprzętowa: uzyskaj maksymalną wydajność i stabilność systemu dzięki wykorzystaniu akceleratorów GPU i NPU na różnych urządzeniach.
  • Multimodalność: twórz aplikacje z użyciem dużych modeli językowych, które obsługują obraz i dźwięk.
  • Korzystanie z narzędzi: obsługa wywoływania funkcji w przypadku przepływów pracy agenta z ograniczonym dekodowaniem, co zwiększa dokładność.
  • Szeroki zakres obsługiwanych modeli: możesz uruchamiać modele Gemma, Llama, Phi-4, Qwen i inne.

Prezentacja generatywnej AI na urządzeniu

Zrzut ekranu z aplikacji Galeria Google AI Edge

Galeria Google AI Edge to eksperymentalna aplikacja, która prezentuje funkcje generatywnej AI na urządzeniu działające całkowicie offline przy użyciu LiteRT-LM.

  • Google Play: korzystaj z LLM lokalnie na obsługiwanych urządzeniach z Androidem.
  • App Store: korzystaj z AI na urządzeniu z iOS.
  • Źródło GitHub: wyświetl kod źródłowy aplikacji galerii, aby dowiedzieć się, jak zintegrować LiteRT-LM z własnymi projektami.
  • Rozmiar modelu: 2,58 GB
  • Dodatkowe szczegóły techniczne znajdziesz na karcie modelu w Hugging Face.

    Platforma (urządzenie) Backend Wstępne wypełnienie (tk/s) Dekodowanie (tk/s) Czas do pierwszego tokena (w sekundach) Maksymalna pamięć procesora (MB)
    Android (S26 Ultra) CPU 557 47 1,8 1733
    GPU 3808 52 0,3 676
    iOS (iPhone 17 Pro) CPU 532 25 1.9 607
    GPU 2878 56 0,3 1450
    Linux (Arm 2,3 i 2,8 GHz, NVIDIA GeForce RTX 4090) CPU 260 35 4 1628
    GPU 11234 143 0,1 913
    macOS (MacBook Pro M4) CPU 901 42 1.1 736
    GPU 7835 160 0,1 1623
    IoT (Raspberry Pi 5 16 GB) CPU 133 8 7.8 1546

Zacznij tworzyć

Poniższe fragmenty kodu pokazują, jak zacząć korzystać z interfejsu wiersza poleceń LiteRT-LM oraz interfejsów API w językach Python, Kotlin i C++.

Interfejs wiersza poleceń

litert-lm run model.litertlm --prompt="What is the capital of France?"

Python

engine = litert_lm.Engine("model.litertlm")

with engine.create_conversation() as conversation:
    response = conversation.send_message("What is the capital of France?")
    print(f"Response: {response['content'][0]['text']}")

Kotlin

val engineConfig = EngineConfig(
    modelPath = "/path/to/your/model.litertlm",
    backend = Backend.CPU(),
)

val engine = Engine(engineConfig)
engine.initialize()

val conversation = engine.createConversation()
print(conversation.sendMessage("What is the capital of France?"))  

C++

auto model_assets = ModelAssets::Create(model_path);
CHECK_OK(model_assets);

auto engine_settings = EngineSettings::CreateDefault(
    model_assets,
    /*backend=*/litert::lm::Backend::CPU);

absl::StatusOr<std::unique_ptr<Engine>> engine = Engine::CreateEngine(engine_settings);
CHECK_OK(engine);

auto conversation_config = ConversationConfig::CreateDefault(**engine);
CHECK_OK(conversation_config);
absl::StatusOr<std::unique_ptr<Conversation>> conversation = Conversation::Create(**engine, *conversation_config);
CHECK_OK(conversation);

absl::StatusOr<Message> model_message = (*conversation)->SendMessage(
    JsonMessage{
        {"role", "user"},
        {"content", "What is the capital of France?"}
    });
CHECK_OK(model_message);

std::cout << *model_message << std::endl;
Język Stan Najlepsze zastosowanie: Dokumentacja
CLI 🚀
Wczesna wersja przedpremierowa
Rozpoczęcie korzystania z LiteRT-LM w mniej niż minutę. Przewodnik po interfejsie CLI
Python
Stabilna
Szybkie prototypowanie i programowanie na komputerach i Raspberry Pi. Przewodnik po Pythonie
Kotlin
Stabilna
Natywne aplikacje na Androida i narzędzia na komputery oparte na JVM. Zoptymalizowany pod kątem korutyn. Przewodnik po Androidzie (Kotlin)
C++
Stabilna
Wysokowydajna, na wielu platformach logika podstawowa i systemy wbudowane. Przewodnik po C++
Swift 🚀
W trakcie opracowywania
Natywna integracja z iOS i macOS ze specjalistyczną obsługą Metal. Już wkrótce

Obsługiwane backendy i platformy

Przyspieszenie Android iOS macOS Windows Linux IoT
CPU
GPU -
NPU - - - - -

Obsługiwane modele

W tabeli poniżej znajdziesz listę modeli obsługiwanych przez LiteRT-LM. Szczegółowe dane dotyczące wydajności i karty modeli znajdziesz na stronie społeczności LiteRT w Hugging Face.

Model Typ Rozmiar (MB) Szczegóły Urządzenie Wstępne wypełnianie procesora (tk/s) Dekodowanie procesora (klatki/s) Wypełnianie wstępne GPU (tokeny/s) Dekodowanie GPU (klatki/s)
Gemma4-E2B Czat 2583 Karta modelu Samsung S26 Ultra 557 47 3808 52
iPhone 17 Pro 532 25 2878 57
MacBook Pro M4 901 42 7835 160
Gemma4-E4B Czat 3654 Karta modelu Samsung S26 Ultra 195 18 1293 22
iPhone 17 Pro 159 10 1189 25
MacBook Pro M4 277 27 2560 101
Gemma-3n-E2B Czat 2965 Karta modelu MacBook Pro M3 233 28 - -
Samsung S24 Ultra 111 16 816 16
Gemma-3n-E4B Czat 4235 Karta modelu MacBook Pro M3 170 20 - -
Samsung S24 Ultra 74 9 548 9
Gemma3-1B Czat 1005 Karta modelu Samsung S24 Ultra 177 33 1191 24
FunctionGemma Podstawa 289 Karta modelu Samsung S25 Ultra 2238 154 - -
phi-4-mini Czat 3906 Karta modelu Samsung S24 Ultra 67 7 314 10
Qwen2.5-1.5B Czat 1598 Karta modelu Samsung S25 Ultra 298 34 1668 31
Qwen3-0.6B Czat 586 Karta modelu Vivo X300 Pro 165 9 580 21
Qwen2.5-0.5B Czat 521 Karta modelu Samsung S24 Ultra 251 30 - -

Zgłaszanie problemów

Jeśli napotkasz błąd lub masz prośbę o dodanie funkcji, zgłoś to w zgłoszeniach GitHub LiteRT-LM.