在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

相关推荐
SRC_BLUE_1729 分钟前
SQLI LABS | Less-39 GET-Stacked Query Injection-Intiger Based
android·网络安全·adb·less
无尽的大道4 小时前
Android打包流程图
android
镭封5 小时前
android studio 配置过程
android·ide·android studio
夜雨星辰4875 小时前
Android Studio 学习——整体框架和概念
android·学习·android studio
邹阿涛涛涛涛涛涛5 小时前
月之暗面招 Android 开发,大家快来投简历呀
android·人工智能·aigc
IAM四十二6 小时前
Jetpack Compose State 你用对了吗?
android·android jetpack·composer
奶茶喵喵叫6 小时前
Android开发中的隐藏控件技巧
android
Winston Wood8 小时前
Android中Activity启动的模式
android
众乐认证8 小时前
Android Auto 不再用于旧手机
android·google·智能手机·android auto
三杯温开水8 小时前
新的服务器Centos7.6 安卓基础的环境配置(新服务器可直接粘贴使用配置)
android·运维·服务器