在Android上本地运行Llama-2-7b模型

自ChatGPT发布以来,大语言模型(Large language model, LLM)就成了AI乃至整个计算机科学的话题中心。学术界,工业界围绕大语言模型本身及其应用展开了广泛的讨论,大量的新的实践层出不穷。

由于LLM对计算资源的需求极大,有能力部署大语言模型的公司和实验室一般通过搭建集群,然后开放API或者网页demo的方式让用户可以使用模型。在人们纷纷发挥想象力尝试各种prompt与模型对话的时候,我们也注意到在一些应用场景中,出于定制化、个性化或者隐私性的目的,人们想要自己在各种终端设备中本地运行大语言模型,不需要/不希望连接互联网或者依赖于服务器,我们希望能够让每个人都可以开发,优化和部署AI大模型,让它工作在每个人都能方便获得的设备上。

来自 知乎

本文介绍了一种在Android平台上基于MLC-LLM本地运行Llama-2-7b的方法

演示视频

实践一:使用分发的APK

1:使用官方Demo

预设RedPajama-INCITE-Chat-3B-v1 config,可自行下载其他模型

2:使用我分发的Demo

预设Llama-2-7b-chat-hf config,安装后点击下载模型即可,Llama-2-7b模型需3.79GB,无需科学上网

实践二:自行编译

官方文档已给出编译流程,此处为在Mac上为Android平台编译MLC-LLM+Llama-2的一些补充

1: Git LFS

brew install git-lfs

2: PyTorch

pip3 install torch torchvision torchaudio

3: Conda

Conda

4: TVM

TVM,请注意TVM为Nightly Build,更新频繁,注意检查Hash是否与官方文档推荐的一致,否则如果在TVM调用过程中报错,可能需要考虑自行编译TVM

5: 获取Llama-2权限

注册Hugging Face账号,向Meta申请Llama-2权限

6:构建

按照官方文档编译模型

css 复制代码
python3 -m mlc_llm.build --hf-path togethercomputer/RedPajama-INCITE-Chat-3B-v1 --target android --max-seq-len 768 --quantization q4f16_1

此处对于Llama-2可修改为

css 复制代码
python3 -m mlc_llm.build --hf-path meta-llama/Llama-2-7b-chat-hf --target android --max-seq-len 768 --quantization q4f16_1

按照官方文档构建Android Package

bash 复制代码
cat android/MLCChat/app/src/main/assets/app-config.json
# "model_libs": [
#   ...
#   "vicuna-v1-7b-q4f16_1",
#   ...
# ],

此处app-config.json对于Llama-2可修改为

json 复制代码
{
  "model_libs": [
    "Llama-2-7b-chat-hf-q4f16_1"
  ],
  "model_list": [
    {
      "model_url": "https://huggingface.co/mlc-ai/mlc-chat-Llama-2-7b-chat-hf-q4f16_1/",
      "local_id": "Llama-2-7b-chat-hf-q4f16_1"
    }
  ],
  "add_model_samples": []
}

构建Android Package时,可能会遇到无文件权限写入模型问题,请合并我的这条commit来修复。当然,对于自己构建的APP,可使用adb push的方式直接将模型写入设备,避免重复下载

设备要求

对内存要求比较高,实测在华为nova 7 SE 5G(麒麟820+8G RAM)上可运行7b模型,如果更好的设备可尝试编译13b

相关推荐
独行soc9 分钟前
2026年渗透测试面试题总结-18(题目+回答)
android·网络·安全·web安全·渗透测试·安全狮
王码码203539 分钟前
Flutter for OpenHarmony 实战之基础组件:第二十七篇 BottomSheet — 动态底部弹窗与底部栏菜单
android·flutter·harmonyos
2501_9151063240 分钟前
app 上架过程,安装包准备、证书与描述文件管理、安装测试、上传
android·ios·小程序·https·uni-app·iphone·webview
vistaup1 小时前
OKHTTP 默认构建包含 android 4.4 的TLS 1.2 以及设备时间不对兼容
android·okhttp
常利兵1 小时前
ButterKnife在Android 35 + Gradle 8.+环境下的适配困境与现代化迁移指南
android
撩得Android一次心动1 小时前
Android LiveData 全面解析:使用Java构建响应式UI【源码篇】
android·java·android jetpack·livedata
熊猫钓鱼>_>1 小时前
移动端开发技术选型报告:三足鼎立时代的开发者指南(2026年2月)
android·人工智能·ios·app·鸿蒙·cpu·移动端
Rainman博11 小时前
WMS-窗口relayout&FinishDrawing
android
baidu_2474386114 小时前
Android ViewModel定时任务
android·开发语言·javascript
有位神秘人14 小时前
Android中Notification的使用详解
android·java·javascript