目录

LiteRT-LM:Google 生产级边缘设备 LLM 推理框架完全指南

LiteRT-LM:Google 生产级边缘设备 LLM 推理框架完全指南

学习目标

通过本文,你将全面掌握以下核心能力:

  • 深入理解 LiteRT-LM 的项目定位与边缘 AI 推理的技术价值
  • 掌握 LiteRT-LM 的核心特性、技术架构和支持的模型
  • 学会在 Android、iOS、Web、桌面端和 IoT 设备上部署 LLM
  • 掌握 LiteRT-LM 的多语言 API(Kotlin、Python、C++、Swift)
  • 理解 Tool Use / Function Calling 在边缘设备上的实现方式
  • 学会使用 LiteRT-LM CLI 进行快速原型开发和测试
  • 掌握从源码编译和定制优化的方法
  • 了解 Gemma、Llama、Phi-4、Qwen 等模型的部署实践

1. 项目概述

1.1 是什么

LiteRT-LM 是 Google AI Edge 推出的生产级、高性能、开源边缘设备 LLM 推理框架。它专为在资源受限的边缘设备上部署大型语言模型而设计,覆盖 Android、iOS、Web、桌面端和 IoT(如树莓派)等全平台。

LiteRT-LM 已集成到 Google 的多个产品中,包括 Chrome、Chromebook Plus、Pixel Watch 等。这意味着它经过了大量真实用户场景的验证,不是实验性项目。

1.2 核心数据

指标数值
GitHub Stars1.8k
GitHub Forks198
Watchers47
最新版本v0.10.1(2026-04-03)
发布版本数17 个
分支数137
提交数1,350
LicenseApache-2.0

1.3 技术栈

语言占比
C++76.6%
CMake7.1%
Starlark5.0%
Rust4.1%
Python3.9%
Kotlin1.8%
其他1.5%

1.4 版本历史

版本发布内容
v0.10.1最新版本,DataStream 增强
v0.10.0Tool Use 工具调用持续改进
v0.9.0Function Calling 能力改进,应用性能稳定性增强
v0.8.0桌面 GPU 支持和多模态能力
v0.7.0Gemma 模型的 NPU 加速支持

2. 核心特性详解

2.1 跨平台支持

LiteRT-LM 支持的平台覆盖了主流边缘设备场景:

平台状态说明
Android✅ 稳定Kotlin API,生产就绪
iOS🚧 开发中Swift API,即将发布
Web✅ 稳定通过 Wasm/WebGL
桌面端✅ 稳定Linux/macOS/Windows (WSL)
IoT✅ 稳定Raspberry Pi 等ARM设备

Android 覆盖范围:手机、平板、Android Auto、车载系统 iOS 覆盖范围:iPhone、iPad、Apple Watch(未来规划)

2.2 硬件加速

LiteRT-LM 通过 GPU 和 NPU 加速器实现峰值性能:

加速类型支持硬件
GPU 加速Qualcomm Adreno、ARM Mali、Apple GPU
NPU 加速Qualcomm Hexagon、Apple Neural Engine、联发科 NPU
CPU 优化ARM NEON、SIMD 指令集优化

2.3 多模态支持

LiteRT-LM 支持视觉和音频输入的多模态模型:

模态支持的输入示例模型
视觉图片、图表、文档Gemma Vision、Qwen2-VL
音频语音、音频流Gemma 3n(语音模型)

2.4 工具调用(Tool Use)

LiteRT-LM 实现了 Function Calling / Tool Use API,支持代理工作流(Agentic Workflows):

功能说明
函数调用结构化输出,JSON Schema 约束
外部约束支持 Llguidance 语法约束
RAG 支持检索增强生成的内置支持

2.5 支持的模型

LiteRT-LM 广泛支持主流开源大模型:

模型家族代表模型说明
GemmaGemma 4、Gemma 3nGoogle 自家模型,深度优化
LlamaLlama 3.xMeta 开源模型
PhiPhi-4Microsoft 小而美模型
QwenQwen2、Qwen2.5阿里通义千问
** Gemma Tool**FunctionGemma工具调用专用变体

3. 技术架构深度解析

3.1 整体架构

LiteRT-LM 采用分层架构设计:

┌─────────────────────────────────────────────────────────┐
│                    应用层 (Application)                 │
├─────────────────────────────────────────────────────────┤
│  Kotlin API  │  Python API  │  C++ API  │  Swift API  │
├─────────────────────────────────────────────────────────┤
│                    推理引擎 (Inference Engine)          │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐    │
│  │ Tokenizer  │  │   Model    │  │  Tool Use  │    │
│  │   分词器   │  │   推理    │  │  函数调用  │    │
│  └─────────────┘  └─────────────┘  └─────────────┘    │
├─────────────────────────────────────────────────────────┤
│                 硬件适配层 (Hardware Adaptation)         │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐    │
│  │    GPU     │  │    NPU     │  │    CPU     │    │
│  │  加速器   │  │   加速器   │  │   优化    │    │
│  └─────────────┘  └─────────────┘  └─────────────┘    │
├─────────────────────────────────────────────────────────┤
│                    运行时 (Runtime)                    │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐    │
│  │  Android   │  │    iOS     │  │   Linux    │    │
│  │  Runtime   │  │  Runtime   │  │  Runtime   │    │
│  └─────────────┘  └─────────────┘  └─────────────┘    │
└─────────────────────────────────────────────────────────┘

3.2 核心模块

模块路径功能
runtime/runtimeC++ 核心推理引擎
kotlin/kotlinAndroid/iOS Kotlin API
python/pythonPython 绑定(nanobind)
c/cC API 接口
rust/rustRust 绑定
cmake/cmakeCMake 构建系统

3.3 数据流

LiteRT-LM 的推理数据流:

用户输入 (Prompt)
       ↓
   Tokenizer (分词器)
       ↓
模型推理 (Model Inference)
       ↓
  Tool Use / Function Calling
       ↓
  Tokenizer (解码器)
       ↓
结构化输出 (JSON/Function Call)

3.4 构建系统

LiteRT-LM 支持多种构建系统:

构建系统用途平台
BazelGoogle 内部构建全平台
CMake跨平台构建Linux/macOS/Windows/Android
BazeliskBazel 版本管理自动管理

4. 快速上手

4.1 CLI 快速尝鲜(无需写代码)

使用 uv 安装 LiteRT-LM CLI:

# 安装 LiteRT-LM
uv tool install litert-lm

# 运行 Gemma 3n 模型
litert-lm run \
  --from-huggingface-repo=google/gemma-3n-E2B-it-litert-lm \
  gemma-3n-E2B-it-int4 \
  --prompt="What is the capital of France?"

# 运行带工具调用的示例
litert-lm run \
  --from-huggingface-repo=litert-community/gemma-4-E2B-it-litert-lm \
  gemma-4-E2B-it.litertlm \
  --prompt="What's the weather in Beijing?"

4.2 Android (Kotlin) 开发

添加依赖

dependencies {
    implementation("com.google.ai.edge.litert:litert:0.10.1")
}

基本用法

import com.google.ai.edge.litert.Model

// 加载模型
val model = Model.fromFile("gemma-3n-e2b-it.litertlm")

// 推理
val response = model.generate("What is the capital of France?")
println(response.text)

4.3 Python 开发

安装

pip install litertlm

基本用法

from litertlm import Model

# 加载模型
model = Model.from_huggingface("google/gemma-3n-E2B-it-litert-lm")

# 推理
result = model.generate("What is the capital of France?")
print(result.text)

4.4 C++ 开发

CMake 配置

find_package(litert_lm REQUIRED)
target_link_libraries(your_app PRIVATE litert_lm::litert_lm)

基本用法

#include <litert_lm/litert_lm.h>

// 加载模型
auto model = litert_lm::Model::FromFile("gemma-3n-e2b-it.litertlm");

// 推理
litert_lm::GenerateOptions options;
options.prompt = "What is the capital of France?";
auto result = model->Generate(options);
std::cout << result.text << std::endl;

5. 工具调用(Function Calling)详解

5.1 什么是工具调用

工具调用允许 LLM 生成结构化的函数调用请求,而非自由文本输出。这使得 LLM 可以:

能力说明
外部 API查询天气、搜索网页、操作数据库
设备能力发送消息、设置闹钟、控制智能家居
计算器精确数学运算

5.2 定义工具

// 定义工具
val weatherTool = Tool(
    name = "get_weather",
    description = "Get current weather for a location",
    parameters = listOf(
        Parameter("location", Type.STRING, "City name")
    )
)

// 加载带工具的模型
val model = Model.fromFile("function-gemma.litertlm")
model.setTools(listOf(weatherTool))

5.3 调用工具

// 用户输入
val input = "What's the weather in Beijing?"

// 生成工具调用
val response = model.generate(input)

// 解析工具调用
if (response.hasToolCall()) {
    val toolCall = response.toolCall
    val args = toolCall.parseArguments()
    val weather = callWeatherAPI(args["location"])
    
    // 提交工具结果
    val finalResponse = model.submitToolResult(toolCall.id, weather)
    println(finalResponse.text)
}

5.4 Llguidance 约束

LiteRT-LM 支持 Llguidance 语法进行输出约束:

// 定义 Llguidance 约束
val grammar = """
    {
        "type": "object",
        "properties": {
            "action": {"type": "string", "enum": ["search", "click", "scroll"]},
            "query": {"type": "string"}
        }
    }
""".trimIndent()

model.setGrammar(grammar)

6. 多模态能力

6.1 视觉输入

// 加载视觉模型
val model = Model.fromFile("gemma-4-vision.litertlm")

// 图片输入
val image = Image.fromFile("chart.png")
val response = model.generate(
    prompt = "Describe this chart",
    image = image
)

6.2 音频输入

// 加载音频模型
val model = Model.fromFile("gemma-3n-audio.litertlm")

// 音频输入
val audio = Audio.fromFile("speech.wav")
val response = model.generate(
    prompt = "Transcribe and translate this audio",
    audio = audio
)

7. 性能优化

7.1 量化支持

LiteRT-LM 支持多种量化精度:

精度内存占用性能适用场景
FP16100%最优桌面端、服务器
INT850%良好移动端
INT425%较好资源受限设备
INT212.5%可用极致受限场景

7.2 KV Cache 量化

// 启用 KV Cache 量化
val options = LmOptions(
    kvCacheQuantization = KvCacheQuantization.INT8,
    kvCacheQuantizationThreshold = 0.8f
)
val model = Model.fromFile("model.litertlm", options)

7.3 批处理优化

// 批量推理
val prompts = listOf(
    "What is AI?",
    "What is ML?",
    "What is DL?"
)
val results = model.batchGenerate(prompts)

8. 平台特定配置

8.1 Android 配置

AndroidManifest.xml

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

GPU 加速(通过 ML Pipeline):

val options = LmOptions(
    runtime = Runtime.GPU,  // 使用 GPU 加速
    threads = 4
)

8.2 iOS 配置

Swift Package Manager

dependencies: [
    .package(url: "https://github.com/google-ai-edge/LiteRT-LM.git", from: "0.10.0")
]

Metal 加速

let options = LmOptions(
    runtime: .metal,
    gpuMemoryFraction: 0.8
)

8.3 树莓派配置

# 安装依赖
sudo apt-get install libopenblas-dev liblapack-dev

# 编译(使用 CMake)
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j$(nproc)

9. 从源码构建

9.1 准备环境

# 安装 Bazelisk
npm install -g @bazel/bazelisk

# 克隆仓库
git clone https://github.com/google-ai-edge/LiteRT-LM.git
cd LiteRT-LM

# 查看可构建目标
bazel query //...

9.2 Android 构建

# 构建 AAR
bazel build //kotlin:litert-lm-aar

# 构建 APK 示例
bazel build //examples/android:llm-chat

9.3 C++ 库构建

# 使用 CMake
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release \
      -DLITERT_BUILD_TESTS=ON \
      ..
make -j$(nproc)

10. 与同类框架对比

10.1 对比 llama.cpp

维度LiteRT-LMllama.cpp
定位Google 生产级学术/民间
多平台Android/iOS/Web/IoT桌面端为主
工具调用原生支持需第三方扩展
Google 集成深度集成 Gemma
多模态原生支持有限

10.2 对比 MNN

维度LiteRT-LMMNN
厂商支持Google 官方阿里开源
移动端优化深度优化优秀
工具调用原生支持需扩展
开源生态活跃活跃

11. 常见问题

Q: LiteRT-LM 和 LiteRT 是什么关系?

A: LiteRT-LM 是 LiteRT(Google 的移动端机器学习运行时)的 LLM 专用版本。LiteRT-LM 专注于语言模型的推理优化,而 LiteRT 是更通用的 ML 推理框架。

Q: 支持中文模型吗?

A: 支持。Qwen、Phi 等主流开源中文模型都已通过测试。

Q: iOS 版本什么时候发布?

A: Swift API 正在开发中("🚀 In Dev"状态),预计近期发布。

Q: 如何贡献代码?

A: 查看 CONTRIBUTING.md,提交 PR 后会经过 Google 团队的代码审查。


12. 总结

LiteRT-LM 代表了边缘设备 LLM 推理的最先进方案。它的核心价值在于:

为什么选择 LiteRT-LM:

优势说明
Google 生产验证已在 Chrome、Pixel Watch 等产品中大规模部署
全平台覆盖Android、iOS、Web、桌面端、IoT 一站式解决方案
工具调用原生支持无需第三方扩展,原生 Function Calling
多模态能力视觉、音频多模态开箱即用
Gemma 深度优化Google 自家模型,性能最优

适用场景:

  • 移动应用需要本地 LLM 能力
  • 隐私敏感场景(数据不离设备)
  • 离线 LLM 应用
  • 边缘计算场景(IoT、嵌入式)

不适用场景:

  • 超大模型(>70B)部署(内存受限)
  • 需要最强推理性能(应使用云端)

随着端侧 AI 的发展,LiteRT-LM 将成为移动和边缘设备上部署 LLM 的重要选择。


附录:相关资源

  • GitHub 仓库:https://github.com/google-ai-edge/LiteRT-LM
  • 产品官网:https://ai.google.dev/edge/litert-lm
  • 技术概述:https://ai.google.dev/edge/litert-lm/overview
  • CLI 指南:https://ai.google.dev/edge/litert-lm/cli
  • Android 文档:https://ai.google.dev/edge/litert-lm/android
  • Python 文档:https://ai.google.dev/edge/litert-lm/python
  • C++ 文档:https://ai.google.dev/edge/litert-lm/cpp