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.
Profil urządzenia Tryb Wstępne wypełnienie (tk/s) Dekodowanie (tk/s)
MacBook Pro 2023 M3 CPU 233 28
MacBook Pro 2024 M4 GPU 2265 48
Samsung S24 (Ultra) CPU 111 16
GPU 816 16

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 Kotlinie
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) Pobierz link Urządzenie Wstępne wypełnianie procesora (tk/s) Dekodowanie procesora (klatki/s) Wypełnianie wstępne GPU (tokeny/s) Dekodowanie GPU (klatki/s)
Gemma3-1B Czat 1005 Karta modelu Samsung S24 Ultra 177 33 1191 24
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
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.