LiteRT-LM は、エッジ デバイスで高性能のクロスプラットフォーム LLM デプロイを実現するように設計された、プロダクション レディなオープンソース推論フレームワークです。
- クロス プラットフォーム サポート: Android、iOS、ウェブ、パソコン、IoT(Raspberry Pi など)で実行できます。
- ハードウェア アクセラレーション: さまざまなハードウェアで GPU と NPU アクセラレータを活用して、最高のパフォーマンスとシステムの安定性を実現します。
- マルチモーダリティ: 画像と音声のサポートを備えた LLM を使用して構築します。
- ツールの使用: 精度向上のための制約付きデコードによるエージェント ワークフローの関数呼び出しをサポートします。
- 幅広いモデルのサポート: Gemma、Llama、Phi-4、Qwen などを実行します。
オンデバイス生成 AI の紹介
Google AI Edge ギャラリーは、LiteRT-LM を使用して完全にオフラインで実行されるオンデバイスの生成 AI 機能をデモするために設計された試験運用版アプリです。
- Google Play: 対応する Android デバイスで LLM をローカルで使用します。
- App Store: iOS デバイスでオンデバイス AI を体験できます。
- GitHub ソース: 写真アプリのソースコードを表示して、LiteRT-LM を独自のプロジェクトに統合する方法を確認します。
注目のモデル: Gemma-3n-E2B
| デバイス プロファイル | モード | プレフィル(tk/s) | Decode(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 |
構築を開始する
次のスニペットは、LiteRT-LM CLI、Python、Kotlin、C++ API の使用を開始する方法を示しています。
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;
| 言語 | ステータス | 最適な用途 | ドキュメント |
|---|---|---|---|
| CLI | 🚀 早期プレビュー版 |
LiteRT-LM を 1 分以内に使い始めることができます。 | CLI ガイド |
| Python | ✅ Stable |
デスクトップと Raspberry Pi での迅速なプロトタイピングと開発。 | Python ガイド |
| Kotlin | ✅ Stable |
ネイティブ Android アプリと JVM ベースのデスクトップ ツール。コルーチン向けに最適化されています。 | Kotlin ガイド |
| C++ | ✅ Stable |
高パフォーマンスのクロス プラットフォーム コアロジックと組み込みシステム。 | C++ ガイド |
| Swift | 🚀 開発中 |
専用の Metal サポートによる iOS と macOS のネイティブ統合。 | 近日提供予定 |
サポートされているバックエンドとプラットフォーム
| 加速 | Android | iOS | macOS | Windows | Linux | IoT |
|---|---|---|---|---|---|---|
| CPU | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| GPU | ✅ | ✅ | ✅ | ✅ | ✅ | - |
| NPU | ✅ | - | - | - | - | - |
サポートされているモデル
次の表に、LiteRT-LM でサポートされているモデルを示します。パフォーマンスの数値とモデルカードの詳細については、Hugging Face の LiteRT コミュニティをご覧ください。
| モデル | タイプ | サイズ(MB) | ダウンロード リンク | デバイス | CPU プリフィル(tk/秒) | CPU デコード(tk/秒) | GPU プリフィル(tk/秒) | GPU デコード(tk/秒) |
|---|---|---|---|---|---|---|---|---|
| Gemma3-1B | チャット | 1005 | モデルカード | Samsung S24 Ultra | 177 | 33 | 1191 | 24 |
| Gemma-3n-E2B | チャット | 2965 | モデルカード | MacBook Pro M3 | 233 | 28 | - | - |
| Samsung S24 Ultra | 111 | 16 | 816 | 16 | ||||
| Gemma-3n-E4B | チャット | 4235 | モデルカード | MacBook Pro M3 | 170 | 20 | - | - |
| Samsung S24 Ultra | 74 | 9 | 548 | 9 | ||||
| FunctionGemma | ベース | 289 | モデルカード | Samsung S25 Ultra | 2238 | 154 | - | - |
| phi-4-mini | チャット | 3906 | モデルカード | Samsung S24 Ultra | 67 | 7 | 314 | 10 |
| Qwen2.5-1.5B | チャット | 1598 | モデルカード | Samsung S25 Ultra | 298 | 34 | 1668 | 31 |
| Qwen3-0.6B | チャット | 586 | モデルカード | Vivo X300 Pro | 165 | 9 | 580 | 21 |
| Qwen2.5-0.5B | チャット | 521 | モデルカード | Samsung S24 Ultra | 251 | 30 | - | - |
問題の報告
バグが発生した場合や機能リクエストがある場合は、LiteRT-LM GitHub Issues で報告してください。