google-ai-edge/LiteRT-LM
GitHub: google-ai-edge/LiteRT-LM
Google 开源的跨平台边缘设备 LLM 推理框架,支持 CPU/GPU/NPU 加速,提供生产就绪的端侧大模型部署能力。
Stars: 927 | Forks: 126
# LiteRT-LM
LiteRT-LM 是一个**生产就绪**、**开源**的推理框架,旨在为边缘设备提供**高性能**、**跨平台**的 LLM 部署。
* **生产就绪**:[久经沙场](https://developers.googleblog.com/on-device-genai-in-chrome-chromebook-plus-and-pixel-watch-with-litert-lm/)的基础设施,超越了基本的推理功能,提供了现实世界产品所需的关键功能。
* **开源**:通过开源代码库普及设备端 LLM 能力,为主流开放权重模型提供广泛支持。
* **高性能**:依托 LiteRT 和 ODML 团队优化的 ML 内核,实现 CPU/GPU/NPU 上行业领先的性能和加速。
* **跨平台**:通过扩展的语言绑定(Kotlin, Swift 等),赋能开发者跨移动端、桌面、Web 和 IoT 部署 LLM。

### 支持的后端与平台
平台 | CPU 支持 | GPU 支持 | NPU 支持 |
:----------- | :---------: | :-----------: | :-----------:
**Android** | ✅ | ✅ | ✅ |
**iOS** | ✅ | ✅ | - |
**macOS** | ✅ | ✅ | - |
**Windows** | ✅ | ✅ | - |
**Linux** | ✅ | ✅ | - |
**Embedded** | ✅ | - | - |
## 快速开始
**想先试一试?** 在进行完整设置之前,您可以使用预构建的桌面二进制文件或用于移动端的 [Google AI Edge Gallery](https://github.com/google-ai-edge/gallery) 应用程序立即运行 LiteRT-LM。
### 移动应用
Google AI Edge Gallery 是一款演示应用,在 LiteRT-LM 的支持下,将尖端生成式 AI 模型的力量直接交到您手中。
- [Android AI Edge Gallery App](https://play.google.com/store/apps/details?id=com.google.ai.edge.gallery&hl=en_US&pli=1)
- [iOS AI Edge Gallery app](https://apps.apple.com/us/app/google-ai-edge-gallery/id6749645337)
- [AI Edge Gallery GitHub](https://github.com/google-ai-edge/gallery)
### 桌面 CLI (Lit)
- [MacOS ARM64](https://github.com/google-ai-edge/LiteRT-LM/releases/download/v0.9.0-alpha03/lit.macos_arm64)
- [Linux x86_64](https://github.com/google-ai-edge/LiteRT-LM/releases/download/v0.9.0-alpha03/lit.linux_x86_64)
- [Linux ARM64](https://github.com/google-ai-edge/LiteRT-LM/releases/download/v0.9.0-alpha03/lit.linux_arm64)
- [Windows x86_64](https://github.com/google-ai-edge/LiteRT-LM/releases/download/v0.9.0-alpha03/lit.windows_x86_64.exe)
下载 `lit` 二进制文件后,只需运行 `lit` 即可查看选项。
这里有一个简单的用例:
```
# 在 HUGGING_FACE_HUB_TOKEN 环境变量中设置 HuggingFace token
# 以便 lit 可以从 HuggingFace 拉取模型。
# 在 Linux 或 MacOS 上
export HUGGING_FACE_HUB_TOKEN="your_huggingface_token"
# 在 Windows 命令提示符中
set HUGGING_FACE_HUB_TOKEN=your_huggingface_token
# 在 Windows Powershell 中
$env:HUGGING_FACE_HUB_TOKEN = "your_huggingface_token"
```
```
lit list --show_all
lit pull gemma3-1b
lit run gemma3-1b [--backend=]
```
--help`
提示:请按照此 [链接](https://huggingface.co/docs/hub/en/security-tokens) 获取您自己的 Hugging Face token
提示:您可能需要执行 `chmod +x lit` 并明确批准使用预构建的二进制文件。例如,在 MacOS 中,您应该转到 **系统设置 > 隐私与安全性 > 安全性** 以批准该二进制文件。
## 🔧 构建您的应用:API 与 SDK 参考
LiteRT-LM SDK 提供了高级的、符合语言习惯的抽象,让您以最少的样板代码将 LLM 集成到您的应用程序中。这些 API 管理整个生命周期——从**模型加载和 tokenization** 到**硬件加速**和**会话管理**。
## 选择您的平台
| 语言 | 状态 | 最适合... | 文档 |
| :--- | :--- | :--- | :--- |
| **Kotlin** | ✅
稳定 | 原生 Android 应用和基于 JVM 的桌面工具。针对 Coroutines 进行了优化。 | [Kotlin API 参考](./docs/api/kotlin/getting_started.md) | | **C++** | ✅
稳定 | 高性能、跨平台核心逻辑和嵌入式系统。 | [C++ API 参考](./docs/api/cpp/conversation.md) | | **Swift** | 🚀
开发中 | 原生 iOS 和 macOS 集成,具有专门的 Metal 支持。 | 即将推出 | | **Python** | 🚀
开发中 | 快速原型设计、开发和桌面端脚本编写。 | 即将推出 | ## 从源码构建(高级) 🛑 **给应用开发者的提示:** 您**不**需要从源码构建此项目即可在您的应用中使用它。如果您使用的是 Kotlin、Swift 或 Python,请使用上方 [选择您的平台](#choose-your-platform) 部分列出的预构建 SDK。 本节提供了从头开始编译核心 LiteRT-LM C++ 框架的 [说明]((./docs/getting-started/build-and-run.md))。您仅在以下情况下才应遵循这些步骤: * **核心贡献者**,修复 Bug 或向 LiteRT-LM 引擎添加功能。 * **原生 C++ 开发者**,需要为嵌入式系统定制编译标志。 - [部署到 Windows](./docs/getting-started/build-and-run.md#deploy_to_windows) - [部署到 Linux](./docs/getting-started/build-and-run.md#deploy_to_linux) - [部署到 MacOS](./docs/getting-started/build-and-run.md#deploy_to_macos) - [部署到 Android](./docs/getting-started/build-and-run.md#deploy_to_android) ## 支持的模型与性能 LiteRT-LM 使用 `.litertlm` 模型格式。 您可以在下方找到并下载兼容的模型: | 模型 | 用法类型 | 量化 | 上下文大小 | 模型大小 | 试用 | | :------------------ | :----------------------------- | :---------------- | :----------- | :-------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | Gemma3-1B | 对话就绪 | 4-bit per-channel | 4096 | 557 | [下载](https://huggingface.co/litert-community/Gemma3-1B-IT/blob/main/Gemma3-1B-IT_multi-prefill-seq_q4_ekv4096.litertlm) | | Gemma-3n-E2B | 对话就绪 | 4-bit per-channel | 4096 | 2965 | [下载](https://huggingface.co/google/gemma-3n-E2B-it-litert-lm-preview) | | Gemma-3n-E4B | 对话就绪 | 4-bit per-channel | 4096 | 4235 | [下载](https://huggingface.co/google/gemma-3n-E4B-it-litert-lm-preview) | | phi-4-mini | 对话就绪 | 8-bit per-channel | 4096 | 3728 | [下载](https://huggingface.co/litert-community/Phi-4-mini-instruct/resolve/main/Phi-4-mini-instruct_multi-prefill-seq_q8_ekv4096.litertlm) | | qwen2.5-1.5b | 对话就绪 | 8-bit per-channel | 4096 | 1524 | [下载](https://huggingface.co/litert-community/Qwen2.5-1.5B-Instruct/resolve/main/Qwen2.5-1.5B-Instruct_multi-prefill-seq_q8_ekv4096.litertlm) | | FunctionGemma-270M | 基础 (需要微调) | 8-bit per-channel | 1024 | 288 | [微调指南](https://ai.google.dev/gemma/docs/mobile-actions) | | ↪ TinyGarden-270M | 演示 | 8-bit per-channel | 1024 | 288 | [下载](https://huggingface.co/google/functiongemma-270m-it/blob/main/tiny_garden.litertlm) / [试用应用](https://play.google.com/store/apps/details?id=com.google.ai.edge.gallery&hl=en_US) | 以下是在各种设备上运行每个模型的性能数据。请注意,基准测试是在 1024 tokens prefill 和 256 tokens decode 的条件下测量的(Android 设备开启了性能锁)。 | 模型 | 设备 | 后端 | Prefill (tokens/sec) | Decode (tokens/sec) | 上下文大小 | | :--- | :--- | :--- | :--- | :--- | :--- | | Gemma3-1B | MacBook Pro
(2023 M3) | CPU | 422.98 | 66.89 | 4096 | | Gemma3-1B | Samsung S24
(Ultra) | CPU | 243.24 | 43.56 | 4096 | | Gemma3-1B | Samsung S24
(Ultra) | GPU | 1876.5 | 44.57 | 4096 | | Gemma3-1B | Samsung S25
(Ultra) | NPU | 5836.6 | 84.8 | 1280 | | Gemma-3n-E2B | MacBook Pro
(2023 M3) | CPU | 232.5 | 27.6 | 4096 | | Gemma-3n-E2B | Samsung S24
(Ultra) | CPU | 110.5 | 16.1 | 4096 | | Gemma-3n-E2B | Samsung S24
(Ultra) | GPU | 816.4 | 15.6 | 4096 | | Gemma-3n-E4B | MacBook Pro
(2023 M3) | CPU | 170.1 | 20.1 | 4096 | | Gemma-3n-E4B | Samsung S24
(Ultra) | CPU | 73.5 | 9.2 | 4096 | | Gemma-3n-E4B | Samsung S24
(Ultra) | GPU | 548.0 | 9.4 | 4096 | | FunctionGemma | Samsung S25
(Ultra) | CPU | 1718.4 | 125.9 | 1024 | 请注意,首次在特定设备上加载特定模型时,加载时间会较长。这是因为模型权重正在进行排列,以便在您的特定设备上以最佳方式运行。后续加载将会更快,因为优化后的权重已缓存在您的设备上。 ### 模型托管与部署 当模型超过 1.5GB 时,通常会超过蜂窝网络的“空中下载”限制或标准应用包的内部限制。 这就需要一种远程获取策略。 托管您的模型文件,然后让您的应用获取模型 URL 的最新版本进行下载。[Firebase](https://firebase.google.com/) 提供了在 [Android](https://firebase.google.com/docs/storage/android/download-files) 和 [iOS](https://firebase.google.com/docs/storage/ios/download-files) 上下载大文件的解决方案。 或者,您可以使用 [HuggingFace API](https://huggingface.co/docs/huggingface_hub/guides/download) 直接从 HuggingFace 获取模型。 对于私有或受限模型,您需要在下载请求的 `Authorization: Bearer` 标头中包含 Hugging Face 用户访问令牌。
## 文档
有关详细的文档,请访问 [docs](./docs/README.md) 目录。
## 发布说明
* ***2026年1月31日*** **:仓库迁移至 Git LFS**
**LiteRT-LM 仓库已迁移至对所有预构建二进制文件使用 [Git LFS (Large File Storage)](https://git-lfs.com)。**
由于这涉及通过历史重写来缩减仓库大小,所有以前的提交哈希值现已失效。
### 需要采取的操作:
如果您在 **2026年1月31日** 之前拥有此仓库的本地副本,您的本地历史记录现在与远程不兼容。**请不要尝试执行 `git pull`。**
要修复您的本地环境,请执行全新克隆:
```
# 1. 删除旧目录(或将其移动到备份位置)。
rm -rf LiteRT-LM
# 2. 重新克隆 repository。
git clone https://github.com/google-ai-edge/LiteRT-LM.git
cd LiteRT-LM
# 3. 确保 LFS 已初始化。如果这是您首次安装 LFS,
# 请从 https://git-lfs.com 下载 LFS。
git lfs install
git lfs pull
```
* ***2025年11月*** **:桌面 GPU 支持及更多内容 (`v0.8.0`)**
- 桌面 GPU 支持。
- 简单的桌面 CLI:[链接至快速开始部分](#quick_start)
- 多模态支持:当模型支持时,支持视觉和音频输入。
[在此查看更多详情](./docs/api/cpp/conversation.md#multimodal-data-content)
- 适用于 Android 和 JVM (Linux, MacOS, Windows) 的 Kotlin API:
[链接至 LiteRT-LM Kotlin API](./docs/api/kotlin/getting_started.md)
- 对话 API:
[链接至对话 API](./docs/api/cpp/conversation.md)
- 函数调用支持:[链接至工具使用](./docs/api/cpp/tool-use.md)
* ***2025年6月24日*** **:支持 NPU 运行 Gemma 模型 (`v0.7.0`)**
解锁显著的性能提升!我们的最新版本利用搭载 Qualcomm 和 MediaTek 芯片组设备上的神经处理单元 (NPU) 的力量,以极高的效率运行 Gemma3 1B 模型。
**注意:** LiteRT-LM NPU 加速目前仅通过早期访问计划提供。请查看
[此页面](https://ai.google.dev/edge/litert/next/npu) 获取有关如何注册的更多
信息。
* ***2025年6月10日*** **:LiteRT-LM 首秀:面向设备端 LLM 的新框架** 我们很自豪地发布 LiteRT-LM 代码库的早期预览版 (`v0.6.1`)!这一基础版本使您能够在广泛的设备上运行最新的 Gemma 系列模型,并初步支持 CPU 执行和 Android 上强大的 GPU 加速。
## 常见问题解答
### LiteRT vs LiteRT-LM vs MediaPipe GenAI Tasks
LiteRT、LiteRT-LM 和 MediaPipe GenAI Tasks 是 Google AI Edge 技术栈中三个相互依存的库。通过在不同抽象层公开功能,我们希望使开发者能够在灵活性和复杂性之间平衡各自的需求。
[LiteRT](https://ai.google.dev/edge/litert) 是 Google AI Edge 的底层设备端运行时。开发者可以将单个 PyTorch、TensorFlow 和 JAX模型转换为 LiteRT 并在设备上运行它们。
**LiteRT-LM** 为开发者提供了流水线框架,用于将多个 LiteRT 模型与预处理和后处理组件(如 tokenizer、视觉编码器、文本解码器)拼接在一起。
[MediaPipe GenAI Tasks](https://ai.google.dev/edge/mediapipe/solutions/genai/llm_inference)
是开箱即用的原生 API(Kotlin, Swift, JS),只需设置 temperature 和 topK 等少数参数即可运行语言模型。
### .litertlm vs .task
MediaPipe GenAI Tasks 目前使用 `.task` 文件来表示语言模型。
Task 文件是多个 LiteRT 文件、组件和元数据的 zip 归档。
`.litertlm` 是 `.task` 文件格式的演进,旨在包含额外的元数据并实现更好的压缩。
在我们的 LiteRT-LM 预览期间,我们将发布少量 `.litertlm` 文件。MediaPipe API 将继续使用 `.task` 文件。一旦我们发布 LiteRT-LM 的首个完整版本,我们将把 MediaPipe API 迁移至使用新的 `.litertlm` 文件,并在 [LiteRT Hugging Face 社区](https://huggingface.co/litert-community) 发布更广泛的 `.litertlm` 文件集合
## 报告问题
如果您遇到 Bug 或有功能请求,我们鼓励您使用 [GitHub Issues](https://github.com/google-ai-edge/LiteRT-LM/issues/new) 页面进行报告。
在创建新 issue 之前,请搜索现有的 issue 以避免重复。提交新 issue 时,请提供清晰的标题和问题的详细描述,包括重现步骤。您提供的信息越多,我们就越容易为您提供帮助。
提示和平台特定步骤
注意:**在 Windows 上运行 GPU 需要 DirectXShaderCompiler。** 从 https://github.com/microsoft/DirectXShaderCompiler/releases 下载 dxc_2025_07_14.zip 或最新的 zip 文件,解压文件并在 `bin` 下找到正确的架构目录,将 `dxil.dll` 和 `dxcompiler.dll` 复制到与可执行文件(如 `lit` 或 `litert_lm_main`)相同的目录中。 提示:有关更多功能,请使用 `lit --help` 或 `lit稳定 | 原生 Android 应用和基于 JVM 的桌面工具。针对 Coroutines 进行了优化。 | [Kotlin API 参考](./docs/api/kotlin/getting_started.md) | | **C++** | ✅
稳定 | 高性能、跨平台核心逻辑和嵌入式系统。 | [C++ API 参考](./docs/api/cpp/conversation.md) | | **Swift** | 🚀
开发中 | 原生 iOS 和 macOS 集成,具有专门的 Metal 支持。 | 即将推出 | | **Python** | 🚀
开发中 | 快速原型设计、开发和桌面端脚本编写。 | 即将推出 | ## 从源码构建(高级) 🛑 **给应用开发者的提示:** 您**不**需要从源码构建此项目即可在您的应用中使用它。如果您使用的是 Kotlin、Swift 或 Python,请使用上方 [选择您的平台](#choose-your-platform) 部分列出的预构建 SDK。 本节提供了从头开始编译核心 LiteRT-LM C++ 框架的 [说明]((./docs/getting-started/build-and-run.md))。您仅在以下情况下才应遵循这些步骤: * **核心贡献者**,修复 Bug 或向 LiteRT-LM 引擎添加功能。 * **原生 C++ 开发者**,需要为嵌入式系统定制编译标志。 - [部署到 Windows](./docs/getting-started/build-and-run.md#deploy_to_windows) - [部署到 Linux](./docs/getting-started/build-and-run.md#deploy_to_linux) - [部署到 MacOS](./docs/getting-started/build-and-run.md#deploy_to_macos) - [部署到 Android](./docs/getting-started/build-and-run.md#deploy_to_android) ## 支持的模型与性能 LiteRT-LM 使用 `.litertlm` 模型格式。 您可以在下方找到并下载兼容的模型: | 模型 | 用法类型 | 量化 | 上下文大小 | 模型大小 | 试用 | | :------------------ | :----------------------------- | :---------------- | :----------- | :-------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | Gemma3-1B | 对话就绪 | 4-bit per-channel | 4096 | 557 | [下载](https://huggingface.co/litert-community/Gemma3-1B-IT/blob/main/Gemma3-1B-IT_multi-prefill-seq_q4_ekv4096.litertlm) | | Gemma-3n-E2B | 对话就绪 | 4-bit per-channel | 4096 | 2965 | [下载](https://huggingface.co/google/gemma-3n-E2B-it-litert-lm-preview) | | Gemma-3n-E4B | 对话就绪 | 4-bit per-channel | 4096 | 4235 | [下载](https://huggingface.co/google/gemma-3n-E4B-it-litert-lm-preview) | | phi-4-mini | 对话就绪 | 8-bit per-channel | 4096 | 3728 | [下载](https://huggingface.co/litert-community/Phi-4-mini-instruct/resolve/main/Phi-4-mini-instruct_multi-prefill-seq_q8_ekv4096.litertlm) | | qwen2.5-1.5b | 对话就绪 | 8-bit per-channel | 4096 | 1524 | [下载](https://huggingface.co/litert-community/Qwen2.5-1.5B-Instruct/resolve/main/Qwen2.5-1.5B-Instruct_multi-prefill-seq_q8_ekv4096.litertlm) | | FunctionGemma-270M | 基础 (需要微调) | 8-bit per-channel | 1024 | 288 | [微调指南](https://ai.google.dev/gemma/docs/mobile-actions) | | ↪ TinyGarden-270M | 演示 | 8-bit per-channel | 1024 | 288 | [下载](https://huggingface.co/google/functiongemma-270m-it/blob/main/tiny_garden.litertlm) / [试用应用](https://play.google.com/store/apps/details?id=com.google.ai.edge.gallery&hl=en_US) | 以下是在各种设备上运行每个模型的性能数据。请注意,基准测试是在 1024 tokens prefill 和 256 tokens decode 的条件下测量的(Android 设备开启了性能锁)。 | 模型 | 设备 | 后端 | Prefill (tokens/sec) | Decode (tokens/sec) | 上下文大小 | | :--- | :--- | :--- | :--- | :--- | :--- | | Gemma3-1B | MacBook Pro
(2023 M3) | CPU | 422.98 | 66.89 | 4096 | | Gemma3-1B | Samsung S24
(Ultra) | CPU | 243.24 | 43.56 | 4096 | | Gemma3-1B | Samsung S24
(Ultra) | GPU | 1876.5 | 44.57 | 4096 | | Gemma3-1B | Samsung S25
(Ultra) | NPU | 5836.6 | 84.8 | 1280 | | Gemma-3n-E2B | MacBook Pro
(2023 M3) | CPU | 232.5 | 27.6 | 4096 | | Gemma-3n-E2B | Samsung S24
(Ultra) | CPU | 110.5 | 16.1 | 4096 | | Gemma-3n-E2B | Samsung S24
(Ultra) | GPU | 816.4 | 15.6 | 4096 | | Gemma-3n-E4B | MacBook Pro
(2023 M3) | CPU | 170.1 | 20.1 | 4096 | | Gemma-3n-E4B | Samsung S24
(Ultra) | CPU | 73.5 | 9.2 | 4096 | | Gemma-3n-E4B | Samsung S24
(Ultra) | GPU | 548.0 | 9.4 | 4096 | | FunctionGemma | Samsung S25
(Ultra) | CPU | 1718.4 | 125.9 | 1024 | 请注意,首次在特定设备上加载特定模型时,加载时间会较长。这是因为模型权重正在进行排列,以便在您的特定设备上以最佳方式运行。后续加载将会更快,因为优化后的权重已缓存在您的设备上。 ### 模型托管与部署 当模型超过 1.5GB 时,通常会超过蜂窝网络的“空中下载”限制或标准应用包的内部限制。 这就需要一种远程获取策略。 托管您的模型文件,然后让您的应用获取模型 URL 的最新版本进行下载。[Firebase](https://firebase.google.com/) 提供了在 [Android](https://firebase.google.com/docs/storage/android/download-files) 和 [iOS](https://firebase.google.com/docs/storage/ios/download-files) 上下载大文件的解决方案。 或者,您可以使用 [HuggingFace API](https://huggingface.co/docs/huggingface_hub/guides/download) 直接从 HuggingFace 获取模型。 对于私有或受限模型,您需要在下载请求的 `Authorization: Bearer
标签:Android开发, Apex, C++, CPU/GPU/NPU加速, Generative AI, Google AI Edge, iOS开发, IoT, Kotlin, LiteRT, LLM, On-Device AI, Swift, Unmanaged PE, Vectored Exception Handling, 云安全, 大语言模型推理框架, 嵌入式AI, 开源框架, 持续集成, 推理引擎, 数据擦除, 机器学习, 模型优化, 模型部署, 深度学习, 生成式AI, 移动端部署, 端侧AI, 索引, 边缘计算, 高性能推理