说出来你们可能不信,我上周在地铁上用我的Pixel 8跑了一个7B参数的本地大模型,用来帮我写代码。是的,你没听错,就是那种以前只能在高配台式机上运行的LLM,现在居然能在手机里跑了。
事情是这样的。前几天我看到一个开源项目叫SmolChat,可以在Android上跑本地LLM配合Whisper做语音识别。我寻思这玩意儿能有多大能耐?抱着"踩坑"的心态,我花了一下午时间在我的手机上捣鼓起来了。
跑本地LLM需要什么准备?
先说说硬件要求。根据Google AI Edge的官方文档,现在Android手机跑本地LLM主要有几种方式:
第一种是最简单的——Google AI Edge Gallery这个App。它本质上就是一个模型运行环境,官方支持一些预转换好的模型,比如Gemma 2B啥的。你只需要下载App,选一个模型,就能直接跑。我试了一下,效果嘛...怎么说呢,聊聊天气还行,但你要让它帮你写代码,那就要看你的耐心有多少了。
第二种方式更硬核——自己用llama.cpp或者mlc-llm编译一个Android版本。这就需要你有Linux环境、会用NDK交叉编译、还得懂点Android JNI调用。说实话门槛不低,但灵活性高,可以跑各种GGUF格式的模型。
还有一种就是用MediaPipe的LLM Inference API。Google官方的方案,集成到自己App里比较方便,支持的模型也越来越多。
实测:我的手机能跑多快?
我花了大概500MB存储空间下了一个4B参数的Q4量化模型。开什么玩笑,你们知道现在一个7B模型全尺寸是多少吗?14GB!谁没事在手机上存14GB的模型啊。
实测结果是这样的:生成速度大概是每秒5-8个token。这是什么概念呢?差不多就是你在微信里打字有人帮你补全一句话的速度。你说它能用来写代码?嗯...你需要一个很长的等待时间。
但是!转折来了。如果你的需求只是:
- 让你写的代码注释更完善
- 帮你想一个函数名
- 解释一段你看不懂的代码逻辑
那它完全可以胜任。甚至在某些场景下比联网的API更方便——比如我在地铁里信号不好,或者在飞机上要改bug的时候。
隐私这个事儿,必须得聊
我觉得本地LLM最大的价值不是性能,而是隐私。
你们有没有想过一个问题:你问ChatGPT的那个secret项目代码,其实有可能被传送到美国的服务器上?虽然OpenAI说数据不会保存,但商业机密的东西,谁敢100%保证?
本地运行的话,数据完全不出手机。我后来专门测试了一下,我让它分析一个包含API密钥的文件——放心,模型根本没联网,密钥完全没有泄露的风险。
这让我想起之前和一个做安全的朋友聊天,他说现在很多金融公司、政府机构禁用ChatGPT,不是因为模型不够好,而是因为数据安全合规。本地LLM正好解决了这个问题。
我踩过的那些坑
说真的,这玩意儿不是给普通用户用的。我总结了一下我踩过的坑:
模型选择:不是所有模型都能在手机上跑得动。我试了一个7B模型,直接内存溢出闪退。后来换成4B的Q4量化版本,才能正常使用。所以大家别贪参数大,够用就行。
发热和续航:跑LLM的时候手机发热明显,电池掉得也快。我测试了一下,满电状态下大概能跑40分钟。这还是只是对话场景,如果是持续推理写作,可能更短。边充电边跑的话...我劝你悠着点,小心电池鼓包。
中文支持:很多开源模型对中文的支持很差。我试了一个英文为主的模型,它居然把中文回复拆成单个字输出,完全没有词边界概念。后来换了一个专门微调过中文的版本,才好转。
上下文长度:手机上受限于内存,context window普遍比云端版本短。我用的那个模型最多只有4K token,放一段长代码就满了。你让它分析一个完整的Android项目?门都没有。
未来的可能性
说句心里话,我现在对移动端LLM的态度是:它不是现在的主流,但未来可期。
几个趋势很明显:
第一,模型会越来越小但越来越聪明。Google的Gemma、Meta的Llama系列,都在往轻量化发展。以后1B参数的模型,可能比现在7B的还强。
第二,专用芯片会普及。听说下一代骁龙和天玑芯片都会有NPU专门跑LLM,速度提升明显。我那台Pixel 8还是用的Tensor G3,理论上以后Pixel 10这类旗舰机会更快。
第三,应用场景会更明确。我觉得不是所有场景都适合本地LLM,但特定场景会很香:比如语音助手、比如代码补全、比如隐私敏感的文档处理。
我的结论
作为一个写了五年Android的开发者,我对这件事的态度是:谨慎乐观。
如果你想现在就在生产环境用本地LLM,我劝你再等等。速度太慢、发热太高、支持的模型有限,这些问题还需要时间解决。
但如果你想尝尝鲜、体验一下未来,我觉得完全OK。花点时间研究一下Google AI Edge Gallery,或者直接装一个现成的App,都很简单。这个过程本身就是一个很好的学习机会——你会在折腾中理解LLM的原理、性能瓶颈、优化方向。
搞不好哪天你就在面试中被问到"如何在移动端部署LLM"这种问题了。那时候你就可以淡淡地说一句:哦,我用过,在地铁上跑过。
本文实测环境:Pixel 8 + Tensor G3 + 4B Q4量化模型