MAC本地部署中文AI+LLaMA&Alpaca大语言模型踩坑
MAC本地部署中文AI+LLaMA&Alpaca大语言模型踩坑
noise中文AI+LLaMA&Alpaca大语言模型项目地址:ymcui/Chinese-LLaMA-Alpaca: 中文LLaMA&Alpaca大语言模型+本地CPU/GPU部署 (Chinese LLaMA & Alpaca LLMs) (github.com)
心得记录:
- LLaMA 原版模型实在不容易下载,泄露的全量包为219G
1 | magnet:?xt=urn:btih:b8287ebfa04f879b048d4d4404108cf3e8014352&dn=LLaMA |
- 模型合并很麻烦,位置错误也会不成功
- 如果你下载原版模型遇到困难,可以找我,不过我只下载了13B的模型,大小约12G
本地运行 LLaMA还可使用
cocktailpeanut/dalai: The simplest way to run LLaMA on your local machine (github.com)
主要还是以项目文档里的教程为主,这里引用其中的快速部署及模型对比
本地推理与快速部署
本项目中的模型主要支持以下量化、推理和部署方式。
推理和部署方式 | 特点 | 平台 | CPU | GPU | 量化加载 | 图形界面 | 教程 |
---|---|---|---|---|---|---|---|
llama.cpp | 丰富的量化选项和高效本地推理 | 通用 | ✅ | ✅ | ✅ | ❌ | 链接 |
🤗Transformers | 原生transformers推理接口 | 通用 | ✅ | ✅ | ✅ | ✅ | 链接 |
text-generation-webui | 前端Web UI界面的部署方式 | 通用 | ✅ | ✅ | ✅ | ✅ | 链接 |
LlamaChat | macOS下的图形交互界面(需搭配llama.cpp模型) | MacOS | ✅ | ❌ | ✅ | ✅ | 链接 |
LangChain | LLM应用开发框架,适用于进行二次开发 | 通用 | ✅† | ✅ | ✅† | ❌ | 链接 |
测试任务 | 样例数 | Alpaca-13B | Alpaca-Plus-7B | Alpaca-Plus-13B |
---|---|---|---|---|
💯总平均分 | 200 | 74.3 | 78.2 | 👍🏻80.8 |
知识问答 | 20 | 70 | 74 | 👍🏻79 |
开放式问答 | 20 | 77 | 77 | 77 |
数值计算、推理 | 20 | 61 | 61 | 60 |
诗词、文学、哲学 | 20 | 65 | 👍🏻76 | 👍🏻76 |
音乐、体育、娱乐 | 20 | 68 | 73 | 👍🏻80 |
写信、写文章 | 20 | 83 | 82 | 👍🏻87 |
文本翻译 | 20 | 84 | 87 | 👍🏻90 |
多轮交互 | 20 | 88 | 89 | 89 |
代码编程 | 20 | 65 | 64 | 👍🏻70 |
伦理、拒答 | 20 | 82 | 👍🏻99 | 👍🏻100 |
其他说明
[1] 重构需要原版LLaMA模型,去LLaMA项目申请使用或参考这个PR。因版权问题本项目无法提供下载链接。
[2] 经过重构后的模型大小比同等量级的原版LLaMA大一些(主要因为扩充了词表)。
[3] 下载后务必检查压缩包中模型文件的SHA256是否一致,请查看SHA256.md。
[4] Alpaca-Plus模型的合并方法略有不同,请参考合并教程。
压缩包内文件目录如下(以Chinese-LLaMA-7B为例):
1 | chinese_llama_lora_7b/ |
以下是各原模型和4-bit量化后的大小,转换相应模型时确保本机有足够的内存和磁盘空间(最低要求):
模型版本 | 7B | 13B | 33B | 65B |
---|---|---|---|---|
原模型大小(FP16) | 13 GB | 24 GB | 60 GB | 120 GB |
量化后大小(8-bit) | 7.8 GB | 14.9 GB | - | - |
量化后大小(4-bit) | 3.9 GB | 7.8 GB | 19.5 GB | 38.5 GB |
合并模型
前面提到LoRA模型无法单独使用,必须与原版LLaMA进行合并才能转为完整模型,以便进行模型推理、量化或者进一步训练。请选择以下方法对模型进行转换合并。
方式 | 适用场景 | 教程 |
---|---|---|
在线转换 | Colab用户可利用本项目提供的notebook进行在线转换并量化模型 | 链接 |
手动转换 | 离线方式转换,生成不同格式的模型,以便进行量化或进一步精调 | 链接 |
模型下载并完成合并后,MAC用户可以直接下载llamachat
安装LlamaChat
只需将LlamaChat拖入Applications即可(其他文件夹亦可)。
配置模型
按照向导配置模型即可。在本实例中,选择Alpaca模型。
给模型取一个名字,头像自行选择,下面的Format
下拉列表选择PyToch格式(.pth
扩展名)或者GGML格式(.bin
扩展名),指定模型路径和模型大小。其中GGML格式就是llama.cpp中转换得到的模型格式,具体参考llama.cpp转换。
⚠️ LlamaChat暂不支持最新的量化方法,例如Q5或者Q8。
第四步:聊天交互
添加模型成功之后即可和模型进行交互。点击聊天框左侧的图标可以结束当前轮次的对话(清除上下文缓存,但不删除相应的聊天记录)。
(提示:生成第一句话时需要加载模型,之后速度就会恢复正常了)
自定义设置
v1.2版本支持了自定义参数,提供了更加灵活的解码方式,可根据实际情况自行修改。