LiteRT-LM est un framework d'inférence Open Source prêt à l'emploi, conçu pour offrir des déploiements de LLM hautes performances et multiplateformes sur des appareils de périphérie.
- Compatibilité multiplateforme : exécutez-le sur Android, iOS, le Web, un ordinateur et l'IoT (par exemple, Raspberry Pi).
- Accélération matérielle : obtenez des performances optimales et une stabilité du système en tirant parti des accélérateurs GPU et NPU sur différents matériels.
- Multimodalité : créez des LLM compatibles avec la vision et l'audio.
- Utilisation des outils : prise en charge des appels de fonction pour les workflows d'agent avec décodage contraint pour une meilleure précision.
- Large compatibilité avec les modèles : exécutez Gemma, Llama, Phi-4, Qwen et plus encore.
Démonstration de l'IA générative sur l'appareil
Google AI Edge Gallery est une application expérimentale conçue pour présenter les fonctionnalités d'IA générative sur l'appareil, qui s'exécute entièrement hors connexion à l'aide de LiteRT-LM.
- Google Play : utilisez des LLM localement sur les appareils Android compatibles.
- App Store : découvrez l'IA sur l'appareil sur votre appareil iOS.
- Source GitHub : consultez le code source de l'application Galerie pour découvrir comment intégrer LiteRT-LM dans vos propres projets.
Modèle présenté : Gemma-4-E2B
- Taille du modèle : 2,58 Go
Pour en savoir plus, consultez la fiche de modèle HuggingFace.
Plate-forme (appareil) Backend Préremplissage (jetons/s) Décodage (jetons/s) Délai d'émission du premier jeton (en secondes) Mémoire maximale du processeur (Mo) Android (S26 Ultra) Processeur 557 47 1,8 1733 GPU 3808 52 0,3 676 iOS (iPhone 17 Pro) Processeur 532 25 1,9 607 GPU 2878 56 0,3 1450 Linux (Arm 2,3 et 2,8 GHz, NVIDIA GeForce RTX 4090) Processeur 260 35 4 1628 GPU 11234 143 0,1 913 macOS (MacBook Pro M4) Processeur 901 42 1,1 736 GPU 7835 160 0,1 1623 IoT (Raspberry Pi 5 16 Go) Processeur 133 8 7,8 1546
Créer des applications
Les extraits suivants montrent comment commencer à utiliser la CLI LiteRT-LM, ainsi que les API Python, Kotlin et C++.
CLI
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;
| Langue | État | Idéal pour... | Documentation |
|---|---|---|---|
| CLI | 🚀 Aperçu anticipé |
Premiers pas avec LiteRT-LM en moins d'une minute. | Guide de la CLI |
| Python | ✅ Stable |
Prototypage rapide, développement sur ordinateur et Raspberry Pi. | Guide Python |
| Kotlin | ✅ Stable |
Applications Android natives et outils de bureau basés sur la JVM. Optimisé pour les coroutines. | Guide Android (Kotlin) |
| C++ | ✅ Stable |
Logique de base multiplateforme hautes performances et systèmes intégrés. | Guide C++ |
| Swift | 🚀 En développement |
Intégration native à iOS et macOS avec prise en charge spécialisée de Metal. | Bientôt disponible |
Backends et plates-formes compatibles
| Accélération | Android | iOS | macOS | Windows | Linux | IoT |
|---|---|---|---|---|---|---|
| Processeur | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| GPU | ✅ | ✅ | ✅ | ✅ | ✅ | - |
| NPU | ✅ | - | - | - | - | - |
Modèles compatibles
Le tableau suivant répertorie les modèles compatibles avec LiteRT-LM. Pour obtenir des chiffres de performances plus détaillés et des fiches de modèle, consultez la communauté LiteRT sur Hugging Face.
| Modèle | Type | Taille (Mo) | Détails | Appareil | Préremplissage du processeur (jetons/s) | Décodage du processeur (jetons/s) | Préremplissage du GPU (jetons/s) | Décodage du GPU (jetons/s) |
|---|---|---|---|---|---|---|---|---|
| Gemma4-E2B | Chat | 2583 | Fiche de modèle | Samsung S26 Ultra | 557 | 47 | 3808 | 52 |
| iPhone 17 Pro | 532 | 25 | 2878 | 57 | ||||
| MacBook Pro M4 | 901 | 42 | 7835 | 160 | ||||
| Gemma4-E4B | Chat | 3654 | Fiche de modèle | Samsung S26 Ultra | 195 | 18 | 1293 | 22 |
| iPhone 17 Pro | 159 | 10 | 1189 | 25 | ||||
| MacBook Pro M4 | 277 | 27 | 2560 | 101 | ||||
| Gemma-3n-E2B | Chat | 2965 | Fiche de modèle | MacBook Pro M3 | 233 | 28 | - | - |
| Samsung S24 Ultra | 111 | 16 | 816 | 16 | ||||
| Gemma-3n-E4B | Chat | 4235 | Fiche de modèle | MacBook Pro M3 | 170 | 20 | - | - |
| Samsung S24 Ultra | 74 | 9 | 548 | 9 | ||||
| Gemma3-1B | Chat | 1005 | Fiche de modèle | Samsung S24 Ultra | 177 | 33 | 1191 | 24 |
| FunctionGemma | Couches | 289 | Fiche de modèle | Samsung S25 Ultra | 2238 | 154 | - | - |
| phi-4-mini | Chat | 3906 | Fiche de modèle | Samsung S24 Ultra | 67 | 7 | 314 | 10 |
| Qwen2.5-1.5B | Chat | 1598 | Fiche de modèle | Samsung S25 Ultra | 298 | 34 | 1668 | 31 |
| Qwen3-0.6B | Chat | 586 | Fiche de modèle | Vivo X300 Pro | 165 | 9 | 580 | 21 |
| Qwen2.5-0.5B | Chat | 521 | Fiche de modèle | Samsung S24 Ultra | 251 | 30 | - | - |
Problèmes concernant les rapports
Si vous rencontrez un bug ou si vous souhaitez demander une fonctionnalité, signalez-le dans la section Problèmes GitHub de LiteRT-LM.