三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

手机变身AI工作站:用Termux在安卓上跑通ChatGLM-6B模型(保姆级避坑指南)

手机变身AI工作站:用Termux在安卓上跑通ChatGLM-6B模型(保姆级避坑指南)

手机变身AI工作站:用Termux在安卓上跑通ChatGLM-6B模型(保姆级避坑指南)

你是否想过,口袋里那台闲置的安卓手机,也能变身成为运行大语言模型的AI工作站?本文将带你用Termux这把"瑞士军刀",在安卓设备上从零部署ChatGLM-6B模型。整个过程无需root权限,仅需一部性能尚可的安卓手机,就能体验大模型推理的乐趣。

1. 环境准备:打造手机上的Linux系统

Termux堪称移动端开发者的神器,它能在安卓系统上构建完整的Linux环境。我们首先需要为这个"微型服务器"打好基础:

pkg update && pkg upgrade pkg install git cmake make python

常见踩坑点

  • 国内用户建议先配置清华镜像源加速安装(在Termux中执行):
    sed -i 's@^\(deb.*stable main\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/termux-packages-24 stable main@' $PREFIX/etc/apt/sources.list
  • 存储空间不足时,可扩展Termux的存储权限:
    termux-setup-storage

提示:骁龙7系及以上芯片的手机运行效果更佳,建议准备至少8GB内存和64GB存储空间。

2. 模型部署:轻量化方案选择

直接运行原始ChatGLM-6B对手机来说负担过重,我们需要采用量化方案。fastllm是目前移动端最友好的推理框架之一:

git clone https://github.com/ztxz16/fastllm cd fastllm && mkdir build && cd build cmake .. -DCMAKE_CXX_FLAGS="-march=native" # 启用CPU指令集优化 make -j4 # 根据手机CPU核心数调整并行编译数

性能对比表

量化方式模型大小内存占用骁龙870推理速度
FP1612GB>6GB无法运行
INT86GB4-5GB0.5 token/s
INT43GB3-4GB1-1.5 token/s

注意:编译过程可能耗时30分钟以上,建议连接充电器并保持屏幕常亮。

3. 模型获取与传输技巧

官方提供的INT4量化模型(chatglm-6b-int4.flm)是最适合手机运行的版本。获取模型后,推荐这些传输方案:

  1. 局域网传输(最快):

    • PC端启动HTTP服务:python -m http.server 8000
    • Termux中下载:wget http://<电脑IP>:8000/chatglm-6b-int4.flm
  2. 云存储中转

    curl -L "https://cloud.example.com/model.flm" -o chatglm-6b-int4.flm
  3. OTG U盘直连

    cp /sdcard/Download/chatglm-6b-int4.flm ~/

验证模型完整性

md5sum chatglm-6b-int4.flm # 对比官方提供的MD5值

4. 实战推理与性能优化

基础启动命令:

./main -p chatglm-6b-int4.flm --threads 4

高级参数调优

  • --threads:设置为CPU大核数量的1.5倍效果最佳
  • --tokens:限制生成长度避免内存溢出
  • --temp:调整温度参数控制生成随机性

散热管理方案

  • 金属手机壳辅助散热
  • 冷冻室降温法(将手机放入密封袋后冷藏5分钟)
  • 限制CPU频率:
    su -c "echo 'powersave' > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor"

5. 应用场景扩展

虽然手机端推理速度较慢,但以下场景特别适合:

  1. 离线知识问答:提前加载专业领域模型作为移动知识库
  2. 代码辅助:Termux+vim+ChatGLM组成移动编程环境
  3. 教学演示:直观展示大模型工作原理

典型内存占用监控

top -d 1 | grep main

在骁龙8 Gen2设备上,经过优化后可以达到2-3 token/s的推理速度,足以应对简单的交互需求。记得关闭后台应用,为模型运行预留足够的内存空间。

← 返回列表