自ChatGPT发布以来,大言语模型(Large language model, LLM)就成了AI甚至整个核算机科学的论题中心。学术界,工业界环绕大言语模型自身及其运用展开了广泛的评论,很多的新的实践层出不穷。

由于LLM对核算资源的需求极大,有才能布置大言语模型的公司和实验室一般经过建立集群,然后敞开API或许网页demo的办法让用户可以运用模型。在人们纷纷发挥想象力测验各种prompt与模型对话的时候,咱们也注意到在一些运用场景中,出于定制化、个性化或许隐私性的意图,人们想要自己在各种终端设备中本地运转大言语模型,不需要/不希望连接互联网或许依赖于服务器,咱们希望可以让每个人都可以开发,优化和布置AI大模型,让它作业在每个人都能方便获得的设备上。

来自 知乎

本文介绍了一种在Android渠道上根据MLC-LLM本地运转Llama-2-7b的办法

演示视频

基于MLC-LLM在Android上本地运行Llama-2-7b模型

实践一:运用分发的APK

1:运用官方Demo

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

基于MLC-LLM在Android上本地运行Llama-2-7b模型

2:运用我分发的Demo

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

基于MLC-LLM在Android上本地运行Llama-2-7b模型

实践二:自行编译

官方文档已给出编译流程,此处为在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权限,请保持邮箱与Hugging Face共同

6:构建

按照官方文档编译模型

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

此处关于Llama-2可修改为

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

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

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

{
 "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