当前位置:AIGC资讯 > AIGC > 正文

基于AutoDL的语言大模型入门——Llama2-chat-13B-Chinese

AutoDL界面

① autodl-tmp文件夹:数据盘,一般用来存放大的文件。

② 其他文件夹“autodl-pub” “miniconda3” “tf-logs”等等存放在系统盘,其中tf-logs是用于存放训练过程tensorboard的记录日志。

迁移数据

① 在保存镜像时,镜像将完整保存系统盘的所有文件,数据盘等不会被保存在其中。

② 跨实例拷贝数据,仅支持拷贝数据盘下的文件(夹)至同地区其它实例,目标实例必须处于开机状态。"跨实例拷贝数据"和“克隆实例”都仅支持同地区间迁移数据。

③ 如果当前使用的实例显卡都被占用了,可以在同地区选择空闲的服务器,然后“跨实例拷贝数据”,比起“克隆实例”要快很多,但是“克隆实例”会把系统盘也克隆过去。

④ 跨地区迁移实例数据盘,参考AutoDL帮助文档

Llama2-chat-13B-Chinese-50W部署测试

项目参考教程:‌⁠‌‍‌​‍​‌‌​⁠​​​​​⁠​​⁠​⁠​⁠​‌​‍​⁠​​​‌​⁠⁠​​⁠‍​​Llama2—文字版部署教程 - 飞书云文档 (feishu.cn)

硬件和环境选择

关键问题

问题一:在安装gradio时特别地慢,装了很多重复组件。

解决办法:pip国内镜像解决no matching distribution found for XXX_error: no matching distribution found for python==-CSDN博客

问题二:在有卡模式开机,运行大模型时,命令“python gradio_demo.py --base_model /root/autodl-tmp/Llama2-chat-13B-Chinese-50W --tokenizer_path /root/autodl-tmp/Llama2-chat-13B-Chinese-50W --gpus 0”报错:

Vocab of the base model: 49954
Vocab of the tokenizer: 49954
Traceback (most recent call last):
  File "gradio_demo.py", line 298, in <module>
    user_input = gr.Textbox(
AttributeError: 'Textbox' object has no attribute 'style'

解决办法:打开Llama2/gradio_demo.py文件,删除第301、302行“.style(container=False)”. 删除之后点击Ctrl+S保存。

问题三:还是在运行大模型这一步,报错:

Could not create share link. Please check your internet connection or our status page: https://status.gradio.app

这个错误是因为gradio无法生成可分享的外部连接,解决方法:cd进入frpc_linux_amd64文件的位置(这里是在miniconda3/lib/python3.8/site-packages/gradio),输入以下命令给予权限:

chmod +x frpc_linux_amd64_v0.2

注意这里不要开启Autodl的学科加速,要开启自己的VPN才能生成外部分享链接。

最终效果

Llama2  8Bit试运行效果:

python gradio_demo.py --base_model /root/autodl-tmp/Llama2-chat-13B-Chinese-50W --tokenizer_path /root/autodl-tmp/Llama2-chat-13B-Chinese-50W --load_in_8bit --gpus 0

Llama2  原始模型运行效果:

python gradio_demo.py --base_model /root/autodl-tmp/Llama2-chat-13B-Chinese-50W --tokenizer_path /root/autodl-tmp/Llama2-chat-13B-Chinese-50W --gpus 0

实例监控:

过程分析与总结

        部署过程还是比较顺利的,就是安装gradio的时候出了点问题安装特别慢。使用“8bit”运行时GPU只占用了50%左右,生成文字反倒比较慢,可能是这块环境更多的是在原始模型上进行的优化,原始模型运行是比较流畅的。

Llama2-chat-13B-Chinese-50W微调训练

项目参考教程:‌​‍⁠​​​​​​‬​‬‌‌‬​​​‍​​‌​​⁠⁠⁠​​‌​​‬​​​​​Llama2—文字版微调教程(针对autodl平台) - 飞书云文档 (feishu.cn)

硬件和环境选择

原本使用的是上面的 V100-32G*1 的服务器,但是按教程中运行在微调时出现显存溢出的情况,不得已改成用 A100-40G*1服务器。

关键问题

问题一:在教程中使用access token在jupyter中登录Hugging Face用以后面导入模型,但实际操作时无论使用Autodl的学科加速还是挂VPN都登录不进去。

解决办法:不使用登录Hugging Face的方式,而是在导入相关的包时,使用它的镜像网站。pycharm通过hf mirror镜像访问huggingface模型(无需翻墙)_import os os.environ() hf-mirror-CSDN博客

import os
os.environ['HF_ENDPOINT'] = 'https://hf-mirror.com'

from datasets import load_dataset
import torch,einops
from transformers import AutoModelForCausalLM, BitsAndBytesConfig, AutoTokenizer, TrainingArguments
from peft import LoraConfig
from trl import SFTTrainer

问题三:按教程中的步骤微调模型显卡爆显存,即使换成A100显卡也爆显存。

解决办法:没有很好的办法,把batch_size调成2。

问题四:在保存合并模型的时候,数据盘空间不足。

解决办法:这也没有很好的办法。。。要么扩容数据盘,要么换成小体量的模型。这里我扩容了20G硬盘,合并后保存的模型居然有25G,难怪硬盘会爆。

最终效果

过程分析与总结

        大模型微调这块需要的显存和硬盘空间都超乎想象,不知道为什么比教程里消耗的资源要高不少。在使用LoRA微调时,batch_size=2才能在A100上跑起来,合并后保存的模型占用硬盘容量25G,不愧是大模型。因为训练的轮数很少,所以效果一般,并且这是chat模型,微调的Belle数据集也是对话数据集,因此只适合通用知识的对话。

总结

**文章总结:AutoDL界面及Llama2-chat-13B-Chinese-50W模型的部署与微调**
---
### AutoDL界面
**数据存储架构**:
- **autodl-tmp文件夹**:作为数据盘,主要用于存储大文件。
- **其他文件夹(如autodl-pub、miniconda3、tf-logs)**:存放在系统盘,tf-logs用于记录训练过程的TensorBoard日志。
### 迁移数据
**镜像与文件迁移策略**:
- 保存镜像时仅包含系统盘文件,不包含数据盘。
- 支持跨同地区实例间的数据盘文件拷贝/克隆,目标实例需开机状态。跨实例数据复制相比克隆实例更快,但不包含系统盘文件。
- 跨地区迁移实例数据盘请参考AutoDL帮助文档。
### Llama2-chat-13B-Chinese-50W部署测试
**部署过程中的关键问题与解决办法**:
1. **问题一:gradio安装过慢**
- **解决办法**:使用pip国内镜像源解决。

2. **问题二:在有卡模式运行大模型时报错**
- **现象**:`AttributeError: 'Textbox' object has no attribute 'style'`
- **解决办法**:删除Llama2/gradio_demo.py中相关行的`.style(container=False)`代码。
3. **问题三:gradio无法生成分享链接**
- **现象**:由于网络问题导致的链接生成失败
- **解决办法**:为frpc_linux_amd64文件增加执行权限,并 确 保VPN或正确的网络连接方式已启用。
**运行效果**:
- 使用8bit运行时GPU占用约50%,生成速度较慢。
- 使用原始模型运行较为流畅。
### Llama2-chat-13B-Chinese-50W微调训练
**硬件与环境选择**:
- 最初使用V100显卡因显存溢出问题改用A100。
**关键问题与解决办法**:
1. **问题一:Hugging Face登录问题**
- **现象**:无法通过Autodl加速或VPN登录Hugging Face
- **解决办法**:使用Hugging Face镜像网站。
2. **问题二:显存溢出**
- **解决办法**:降低batch_size到2。
3. **问题三:数据盘空间不足**
- **解决办法**:扩容数据盘或改用较小模型。最终扩容20G硬盘以满足需求。
**总结与分析:**
- 大模型微调对显存和硬盘空间要求极高,按教程设置可能不足以支持完整训练流程。使用LoRA微调时需在A100上以极小的batch_size运行,合并后模型占用空间多达25G。微调后模型因训练轮数少,效果一般,适用于通用知识对话。

更新时间 2024-08-17