LiteRT-LM 概览

LiteRT-LM 是一款可用于生产用途的开源推理框架,旨在在边缘设备上实现高性能、跨平台的 LLM 部署。

  • 跨平台支持:可在 Android、iOS、Web、桌面设备和 IoT 设备(例如 Raspberry Pi)上运行。
  • 硬件加速:利用各种硬件中的 GPU 和 NPU 加速器,获得最佳性能和系统稳定性。
  • 多模态:使用支持视觉和音频的 LLM 构建。
  • 工具使用:支持在智能体工作流中使用函数调用,并采用受限解码来提高准确性。
  • 广泛的模型支持:运行 Gemma、Llama、Phi-4、Qwen 等模型。

设备端生成式 AI 演示

Google AI Edge Gallery 屏幕截图

Google AI Edge Gallery 是一款实验性应用,旨在展示完全离线运行的设备端生成式 AI 功能(使用 LiteRT-LM)。

  • Google Play:在支持的 Android 设备上本地使用 LLM。
  • App Store:在 iOS 设备上体验设备端 AI。
  • GitHub 来源:查看相册应用的源代码,了解如何在自己的项目中集成 LiteRT-LM。
设备配置文件 模式 预填充(每秒 token 数) 解码(每秒 token 数)
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 🚀
早期预览版
在不到 1 分钟的时间内开始使用 LiteRT-LM。 CLI 指南
Python
稳定版
在桌面设备和 Raspberry Pi 上进行快速原型设计和开发。 Python 指南
Kotlin
稳定版
原生 Android 应用和基于 JVM 的桌面工具。针对协程进行了优化。 Kotlin 指南
C++
稳定版
高性能、跨平台的核心逻辑和嵌入式系统。 C++ 指南
Swift 🚀
开发中
原生 iOS 和 macOS 集成,提供专门的 Metal 支持。 即将推出

支持的后端和平台

加速 Android iOS macOS Windows Linux IoT
CPU
GPU -
NPU - - - - -

支持的模型

下表列出了 LiteRT-LM 支持的模型。如需了解更详细的性能数据和模型卡片,请访问 Hugging Face 上的 LiteRT 社区

型号 类型 大小 (MB) 下载链接 设备 CPU 预填充(每秒处理的令牌数) CPU 解码 (tk/s) GPU 预填充(每秒千次) GPU 解码 (tk/s)
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 - -

报告问题

如果您遇到 bug 或有功能请求,请在 LiteRT-LM GitHub 问题中报告。