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
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.
Wyróżniony model: Gemma-3n-E2B
| 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.