Présentation de LiteRT-LM

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

Capture d'écran de la galerie Google AI Edge

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.
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.