把大模型塞进手机这件事,我从去年就开始折腾。一开始用的是云端API,后来发现两个问题让人越来越难受:一是数据无论如何都要过别人的服务器,哪怕脱敏也总觉得别扭;二是地铁、高铁、飞机上断网的时候,一个能用的助手都叫不出来。于是我把目标定成“所有东西都跑在本地,手机离了网也能用”,最终搭起了一套移动端本地知识库加大模型的组合,效果超过我预期。这篇文章就是把我踩过的坑、试出来的方案、实测的性能数据,从头到尾写清楚,给想在手机或者平板上跑本地大模型和私有知识库的朋友一个可以直接参考的落地路线。
先说结论:移动端完全能跑,但和PC、服务器上的玩法完全不一样。模型不能贪大,知识库的“向量化”和“检索”工作要提前想清楚放在哪一侧做,推理引擎也要挑对。下面我就按照“为什么这么选、具体怎么做、实际跑起来什么问题最多”的顺序来写,你可以直接对照自己的硬件条件选择路线。
1. 移动端部署的底层逻辑与可行性判断
1.1 手机跑大模型卡在哪:内存、算力与内存带宽
很多人觉得手机跑大模型不现实,是因为把PC上跑模型的标准带过来了。PC动辄32GB、64GB内存,显卡显存几十GB,手机这边普遍是8GB、12GB、16GB内存,看起来完全不是一个量级。但对大模型推理来说,关键瓶颈其实是内存带宽,不是单纯的算力。
大模型生成token的过程是自回归的,每生成一个token,都要把模型权重完整读一遍。这个读取速度由内存带宽决定。手机SoC的内存带宽一般是多少?旗舰芯片大概在60GB/s到100GB/s之间,中端芯片更低,30GB/s到50GB/s。一个7B参数、Q4量化后的模型大约4.5GB,理论上每秒能生成的token数就是带宽除以模型体积:90GB/s除以4.5GB,大约20 tokens/s。这其实已经是一个可用的速度了。
所以“能不能跑”的核心判断公式就变成:模型文件大小必须小于可用内存,内存带宽决定了生成速度的下限。这也是为什么我建议移动端优先选1.5B到7B之间的小模型,而不是14B、32B这样的大参数模型。参数越大,内存装不下,速度也会掉到没法看的水平。
1.2 端侧模型选型:跑得动又够好用的小模型
移动端模型选型是个平衡艺术。我试过几条路线,先说结论:对话类场景,Qwen2.5系列是当前这个阶段端侧最优选之一。原因主要有三点:中文能力强,指令跟随好,GGUF量化版本非常全,从0.5B到72B都有现成的量化文件,尤其1.5B和3B的Q4版本在手机上跑得很舒服。
具体文件大小可以提前估算,一般来说Q4_K_M量化下,1.5B大约1.1GB,3B大约1.9GB,7B大约4.4GB。如果你的手机是8GB内存,建议最高3B;12GB以上可以试试7B,但要保证后台应用清干净。16GB内存的旗舰机型,7B是甜点位,14B还是算了,速度会掉到5 tokens/s左右,体验很差。
除了Qwen2.5,Llama 3.2 1B/3B也是个好选择,英文场景表现很好,中文差一些。Phi-3.5 mini在推理能力上不错,但生态不如Qwen方便。还有一个思路是用DeepSeek-R1的蒸馏小模型,比如Distill-Qwen-1.5B,代码和数学推理有明显增强,适合知识库偏技术文档的场景。建议手头留一个“对话模型”加一个“嵌入模型”,后面做知识库要用。
1.3 三条部署路线:全端侧、端云混合与局域网调度
我开始想的是“一步到位全端侧”,也就是模型、知识库、推理全部在手机本地完成。后来在实际使用中意识到,不是所有场景都需要绝对离线,于是我把方案拆成了三条路线,各有适用场景:
- 全端侧:模型和知识库都在手机本地,完全断网可用。适合隐私强敏感内容,比如个人日记、病历、会议纪要。代价是模型规模受限,效果上限不高。
- 端云混合:知识库在本地,模型优先请求本地,如果手机跑不动就自动切换云端API。适用日常通用问答,兼顾效果和隐私。
- 局域网调度:手机作为客户端,模型和知识库跑在家里的PC或NAS上,手机通过局域网访问。这个方案跑大模型完全没有硬件压力,但离了家就没法用。
本文核心讲的是第一条路线,因为这是最硬核、最完整的技术闭环。后面涉及局域网方案时我会单独标注,方便你按需参考。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 本地模型推理引擎:选型和实战
2.1 Android首选方案:Termux环境下的极简部署
先讲Android,因为Android生态开放,可以跑完整Linux环境。我用的是Termux加Ollama的组合。Ollama本身主要面向桌面和服务器,但官方Release里有linux-arm64的二进制,Termux可以直接跑。这是我试过的最省事的方式,不需要自己编译llama.cpp,也不需要折腾LD库。
具体操作步骤:
bash复制# 1. 安装Termux,并更新基础包
pkg update && pkg upgrade -y
# 2. 安装必要工具
pkg install curl wget git -y
# 3. 下载Ollama的linux-arm64二进制
# 从GitHub Release页面找到对应版本,替换下面的版本号
wget https://github.com/ollama/ollama/releases/download/v0.5.x/ollama-linux-arm64.tgz
tar -xzf ollama-linux-arm64.tgz
# 4. 放到PATH目录下
mv ollama /data/data/com.termux
