为什么需要边缘AI?
云计算解决了大规模AI部署问题,但很多场景无法依赖云端:
- 隐私要求:医疗、金融数据不能上云
- 延迟要求:自动驾驶、实时翻译需要毫秒级响应
- 离线场景:野外、飞机模式、网络不稳定
- 成本控制:大量设备同时运行,云推理成本不可控
边缘AI的目标:在手机、车载芯片、IoT设备上本地运行AI模型。
模型压缩四件套
1. 量化
将模型从FP32压缩到INT8/INT4:
| 精度 | 模型大小(7B) | 精度损失 | 推理速度 |
|---|---|---|---|
| FP16 | 14GB | 0% | 基准 |
| INT8 | 7GB | <1% | 1.5-2x |
| INT4 | 3.5GB | 1-3% | 2-3x |
| 2-bit | 1.75GB | 5-10% | 3-4x |
移动端推荐INT4量化,使用GGUF格式(llama.cpp生态)。常用方案:
- GPTQ:基于二阶信息的权重量化
- AWQ:基于激活分布的权重量化
- GGUF Q4_K_M:移动端最常用格式
2. 蒸馏
将大模型知识"蒸馏"到小模型:
Teacher模型(70B) → 生成回答/中间表示 → Student模型(1B)学习
任务特定蒸馏:只蒸馏目标任务的能力,而非通用能力。效果通常比直接训练小模型好20-30%。
3. 剪枝
移除不重要的参数:
- 结构化剪枝:移除整个attention head或MLP中间维度,可实际加速
- 非结构化剪枝:移除稀疏参数,需特殊硬件支持
移动端推荐结构化剪枝,因为标准硬件就能获得加速。
4. 架构搜索(NAS)
针对特定硬件搜索最优模型结构:
- 确定目标硬件的延迟/功耗预算
- 搜索满足约束的最高精度模型
- MobileNet、EfficientNet就是NAS的经典成果
移动端推理引擎
llama.cpp
- C++实现,无依赖
- 支持GGUF格式
- iOS/Android均可运行
- 支持CPU推理和GPU加速
典型使用:
1. 将模型量化为GGUF格式
2. 编译llama.cpp for Android/iOS
3. 通过JNI或C API调用
4. 管理上下文窗口和内存
MLC-LLM
- 基于TVM编译器
- 自动优化模型到目标硬件
- 支持GPU加速(Metal/Vulkan)
- 跨平台:iOS/Android/Web
ONNX Runtime Mobile
- 微软出品,支持ONNX格式
- Android/iOS支持完整
- 包体积极小(<10MB运行时)
- 支持NNAPI/CoreML后端加速
平台原生方案
- iOS:CoreML + MLX
- Android:ML Kit + NNAPI
- 华为:CANN + NPU
端侧部署实战
iOS部署
// 使用MLX框架运行LLM
import MLX
import MLXLMCommon
let model = try await loadModel(name: "qwen-2-1.5b-4bit")
let result = try await model.generate(
prompt: "你好",
maxTokens: 256
)
关键配置:
- 模型选择:Qwen-2-1.5B-Q4(约900MB)
- 内存限制:iOS App内存上限约2GB
- 量化:使用MLX的4bit量化
- Metal加速:确保使用GPU
Android部署
// 使用llama.cpp + JNI
val llama = LlamaCpp()
llama.loadModel(modelPath)
val result = llama.generate("你好", maxTokens = 256)
关键配置:
- 模型选择:1B-3B参数量化模型
- NNAPI加速:启用硬件加速
- 内存管理:控制KV Cache大小
- 电池优化:使用workmanager后台运行
端侧RAG系统
在设备上构建RAG:
[用户查询] → 向量化(本地编码器) → 检索(本地向量库) → 生成(本地LLM)
组件选型
- Embedding模型:all-MiniLM-L6-v2(22MB),ONNX格式运行
- 向量库:FAISS(移动端可用)或简单文件存储+余弦计算
- LLM:Qwen-2-1.5B-Q4(900MB)
- 文档存储:SQLite或本地JSON
典型应用
- 个人知识库助手:检索笔记+生成回答
- 文档问答:本地PDF/Word问答
- 隐私聊天:不上传任何数据
性能调优
内存优化
# 分块加载模型
for layer in model.layers:
layer.to(device) # 按层加载
output = layer(input)
layer.to(cpu) # 用完移回CPU
速度优化
- KV Cache大小控制:限制context长度到2K-4K
- Speculative Decoding:用小模型猜token,大模型验证
- 动态量化:根据设备性能自动调整精度
电池优化
- 批处理请求:合并多次推理为一次
- 后台推理:使用低功耗模式运行
- 缓存策略:相似查询直接返回缓存结果
性能基准
2026年典型设备的LLM推理性能:
| 设备 | 模型 | 速度 | 内存占用 |
|---|---|---|---|
| iPhone 16 Pro | Qwen-2-1.5B-Q4 | 45 tok/s | 1.2GB |
| Pixel 9 | Qwen-2-1.5B-Q4 | 30 tok/s | 1.3GB |
| iPad Pro M4 | Qwen-2-7B-Q4 | 18 tok/s | 4.5GB |
| Snapdragon X Elite | Qwen-2-3B-Q4 | 25 tok/s | 2.5GB |
总结
边缘AI部署正在从"概念演示"走向"生产可用"。1-3B参数的量化模型在主流手机上已能达到30+ tokens/s的生成速度,足以支撑实时对话应用。随着端侧NPU性能提升和模型压缩技术进步,未来两年内7B模型端侧运行将成为常态。对于隐私敏感、离线需求强的场景,边缘AI是最佳选择。