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 en local 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-3n-E2B
| Profil de l'appareil | Mode | Préremplissage (jetons/s) | Décodage (jetons/s) |
|---|---|---|---|
| MacBook Pro 2023 M3 | Processeur | 233 | 28 |
| MacBook Pro 2024 M4 | GPU | 2265 | 48 |
| Samsung S24 (Ultra) | Processeur | 111 | 16 |
| GPU | 816 | 16 |
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 | Application idéale | Documentation |
|---|---|---|---|
| CLI | 🚀 Preview anticipée |
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 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) | Lien de téléchargement | 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) |
|---|---|---|---|---|---|---|---|---|
| Gemma3-1B | Chat | 1005 | Fiche de modèle | Samsung S24 Ultra | 177 | 33 | 1191 | 24 |
| 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 | ||||
| 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.