type: entity tags: [推理框架, iOS, LiteRT, Gemma, on-device, multimodal, Swift] related: [[gemma4-ondevice]], [[google-ai-edge-gallery]], [[gemma-cpp-inference]], [[coremltools-9]] sources: - url: https://github.com/mylovelycodes/LiteRTLM-Swift title: "LiteRTLM-Swift: Swift package for running LiteRT-LM models on iOS" date: 2026-04-16 reliability: high - url: https://github.com/google-ai-edge/LiteRT-LM title: "Google LiteRT-LM (upstream C API)" date: 2026-04-16 reliability: high created: 2026-04-17 updated: 2026-04-17
LiteRTLM-Swift¶
社区项目,将 Google LiteRT-LM C API 封装为 Swift async/await 接口,在 iOS 上运行 Gemma 4 E2B 多模态推理。支持文本生成、视觉理解、音频理解和流式输出。
核心问题¶
Google 的 LiteRT-LM 提供了强大的端侧推理 C API,但 iOS 开发者缺乏原生 Swift 封装。直接使用 C API 需要手动管理内存、线程安全和模型生命周期,门槛极高。LiteRTLM-Swift 填补了这一空白,让 iOS 开发者可以像使用任何其他 Swift 库一样使用端侧大模型。
架构与能力¶
支持的推理模式¶
| 模式 | 方法 | 说明 |
|---|---|---|
| 文本生成 | generate() / generateStreaming() |
需要 Gemma 4 turn marker 格式 |
| 单图理解 | vision(imageData:prompt:) |
支持 JPEG/PNG/HEIC |
| 多图理解 | visionMultiImage(imagesData:prompt:) |
跨图比较 |
| 音频理解 | audio(audioData:prompt:format:) |
WAV/FLAC/MP3,自动 16kHz 重采样 |
| 多模态融合 | multimodal(audioData:imagesData:prompt:) |
音频 + 图像联合推理 |
| 多轮对话(文本) | openSession() / sessionGenerateStreaming() |
KV Cache 复用 |
| 多轮对话(多模态) | openConversation() / conversationSend() |
任意组合音频/图像/文本 |
KV Cache 复用:关键性能优化¶
多轮对话的核心优化在于 KV Cache 复用: - 首轮 TTFT:~15-20 秒(完整 prefill) - 后续轮次 TTFT:~1-2 秒(增量 prefill,仅处理新 token)
这意味着在 iPhone 上运行多轮对话的体验接近云端 API 的延迟水平,但完全离线。
硬件要求¶
- iOS 17.0+,Xcode 16+
- iPhone 13 Pro 或更高(6 GB+ RAM)
- 需要
increased-memory-limitentitlement(模型加载需要 ~4 GB RAM) - 模型大小:~2.6 GB(Gemma 4 E2B,从 HuggingFace 下载)
架构设计¶
┌──────────────────────────────────────────┐
│ Your iOS App │
├──────────────────────────────────────────┤
│ LiteRTLMSwift │
│ ┌──────────────────┐ ┌────────────────┐ │
│ │ LiteRTLMEngine │ │ ModelDownloader│ │
│ │ .generate() │ │ .download() │ │
│ │ .vision() │ │ .pause() │ │
│ │ .audio() │ │ .cancel() │ │
│ │ .multimodal() │ │ │ │
│ │ .openSession() │ │ │ │
│ └────────┬─────────┘ └────────────────┘ │
│ Serial DispatchQueue (线程安全) │
├──────────────────────────────────────────┤
│ CLiteRTLM.xcframework (C API) │
│ Session API (文本) │ Conversation API │
│ │ (多模态 JSON) │
└──────────────────────────────────────────┘
两个 API 层:
- Session API:原始文本 prompt,开发者控制格式。用于 generate() 系列方法。
- Conversation API:基于 JSON 的消息格式,内部处理图像解码/缩放/patchify 和音频解码/重采样/Mel 频谱图。
所有 C API 调用通过串行 DispatchQueue 序列化确保线程安全(LiteRT-LM 同时只支持一个活跃 session)。
构建 XCFramework¶
预构建的 CLiteRTLM.xcframework 已包含在仓库中。如需从源码构建:
- 需要 Bazel 7.6.1 + Xcode 16 + ~20 GB 磁盘空间
- 运行 ./scripts/build-xcframework.sh 自动克隆并构建
- 支持 ios_arm64(真机)和 ios_sim_arm64(模拟器)
为什么重要¶
- 端侧多模态推理的开发者体验革命:这是首个提供完整 Swift async/await 封装的端侧大模型推理库,让 iOS 开发者可以零 C 代码使用 Gemma 4 的文本+视觉+音频能力。
- KV Cache 复用实现可用延迟:15-20s → 1-2s 的 TTFT 跨越了从"技术演示"到"可用产品"的门槛。
- 社区驱动的端侧生态:非 Google 官方项目,说明社区正在主动填补端侧 AI 的工具链空白。
- 与 [[coremltools-9]] 和 [[google-ai-edge-gallery]] 互补:Core ML 提供通用 ML 推理,LiteRT-LM 专注于 LLM/VLM 推理,两者覆盖不同场景。
关联¶
- [[gemma4-ondevice]] — Gemma 4 是 LiteRTLM-Swift 默认支持的模型
- [[google-ai-edge-gallery]] — Google 官方端侧 AI 演示应用,使用相同底层 API
- [[gemma-cpp-inference]] — C++ 端侧推理方案,LiteRTLM-Swift 是其 Swift 封装
- [[coremltools-9]] — Apple 官方 ML 框架,与 LiteRT 覆盖不同推理场景