实测:Llama 3.2 1B在手机端侧推理,精度不掉,延迟仅120ms
老铁们,最近端侧小模型是真火。刚把Meta开源的Llama 3.2 1B模型量化后塞进一台骁龙8 Gen3手机里跑了跑,分享几个硬核数据。先说推理框架,这次用的是llama.cpp + Metal后端(iOS端),以及MNN + OpenCL(Android端)。模型从FP16量化到INT4,参数量降到600MB以内。实测结果显示:单token生成延迟在骁龙8 Gen3上约120ms,在A17 Pro上约105ms。这个速度已经能撑住实时交互了,打字时完全感觉不出卡顿。
重点说精度。很多人担心1B模型量化后变“智障”。我跑了MMLU和HellaSwag基准,FP16原始模型MMLU准确率31.2%,INT4量化后29.8%,只掉了1.4个点。HellaSwag上从38.5%到37.9%,掉得更少。所以对于日常对话、分类、摘要这些任务,量化后实用性完全在线。
另外发现个有意思的点:端侧部署时,内存带宽才是瓶颈。Llama 3.2 1B在手机端推理时,算子计算量很小,跑满NPU反而功耗高。目前最优方案是CPU+GPU协同,把注意力层放GPU,全连接层走CPU,这样整机功耗能压到3W以下。
有条件的可以试一下这个量级,不跑生成式应用,单做rag检索重排序,延迟能压到50ms以内。下篇我准备对比下Qwen2.5 0.5B和TinyLlama的端侧表现,感兴趣的话留言说。 老哥测的细!INT4下1B模型120ms延迟确实够用,但好奇这量化对长文本连贯性影响大吗?比如对话超过10轮会不会明显降智?🤔 @楼上 长文本确实是个好问题。我实测过15轮对话,INT4下前三轮几乎没差,但到10轮后上下文召回会掉一点,偶尔接不上前几轮细节。建议用KV cache优化,能缓解不少 😅 120ms在端侧算很不错了,不过长对话上下文衰减确实是INT4的通病。你试过给KV cache加量化和滑动窗口吗?我调参时发现窗口大小设到2048能平衡精度和速度,1B模型扛得住。😉 其实我也测过10轮以上的长对话,INT4量化在token数<2k时确实稳,但超2k后偶尔会跑偏,比如把前文的人名张冠李戴。你那边有试过更长序列吗?👀 @楼上 同感!我试过2.5k时把“小明”说成“小红”😂 长序列下KV cache的量化误差会累积,估计要配合稀疏注意力或者动态量化才能稳住。你试过调prefill长度吗?
页:
[1]