当前位置:   article > 正文

ChatGLM-6B环境部署搭建_gradiodeprecationwarning: the `style` method is de

gradiodeprecationwarning: the `style` method is deprecated. please set these

1、安装Nvidia驱动和Cuda

  1. wget https://us.download.nvidia.com/tesla/525.105.17/NVIDIA-Linux-x86_64-525.105.17.run
  2. sh NVIDIA-Linux-x86_64-525.105.17.run
  3. wget https://developer.download.nvidia.com/compute/cuda/12.0.0/local_installers/cuda_12.0.0_525.60.13_linux.runsudo
  4. sh cuda_12.0.0_525.60.13_linux.run
  5. /usr/local/cuda/bin/nvcc -V

2、安装Anaconda并创建虚拟环境

安装anconda:略

创建虚拟环境

  1. conda create -n chatglm python=3.8.3
  2. conda activate chatglm

3、安装git

  1. #git工具的安装参考下面命令
  2. yum install git -y

4、安装pytorch

cuda和pytorch版本关系如下要求 https://pytorch.org/get-started/previous-versions/

虚拟环境中,运行nvcc -V返回的是系统cuda版本(/usr/local/cuda),想要查看虚拟环境的cuda版本,使用print(torch.version.cuda)

5、检查虚拟环境

  1. python
  2. >>>import torch
  3. print(torch.version.cuda)
  4. print(torch.cuda.is_available())
  5. print(torch.__version__)
  6. print(torch.cuda.get_device_name(0))
  7. print(torch.cuda.device_count())
  8. print(torch.cuda.current_device())

6、下载模型文件

  1. #1、下载github上的ChatGLM-6B的模型启动对应的文件
  2. git clone https://github.com/THUDM/ChatGLM-6B.git
  3. cd chatglm-6b
  4. #安装依赖
  5. pip install -r requirements.txt
  6. #github clone下来的requirements包含的依赖较少,只包含了以下,未包含微调所需的datasets、deepspeed、jieba、rouge_chinese、nltk等,可以自行安装
  7. #protobuf
  8. #transformers==4.27.1
  9. #cpm_kernels
  10. #torch>=1.10
  11. #gradio
  12. #mdtex2html
  13. #sentencepiece
  14. #accelerate
  15. #2、下载模型文件,可从http://huggingface.co下载,由于模型文件太大,下载太慢,可先下小文件,之后用清华源下载大模型,采用如下爬虫脚本下载大模型文件
  16. vim download.py
  17. import requests
  18. url1='https://cloud.tsinghua.edu.cn/d/fb9f16d6dc8f482596c2/files/?p=%2Fpytorch_model-0000'
  19. url2='-of-00008.bin&dl=1'
  20. save_path1='pytorch_model-0000'
  21. save_path2='-of-00008.bin'
  22. headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'}
  23. # 循环获取models,总共有8个基础模型
  24. for i in range(8):
  25. url=url1+str(i+1)+url2
  26. save_path=save_path1+str(i+1)+save_path2
  27. res = requests.get(url,headers=headers)
  28. file1 =open(save_path,'wb')
  29. file1.write(res.content)
  30. file1.close()
  31. print("第{}个模型下载已完成".format(i+1))
  32. #注意:其他文件需要都下载,从https://www.huggingface.co/THUDM/chatglm-6b/tree/main,不然会报错ValueError: Unrecognized configuration class <class 'transformers_modules.local.configuration_chatglm.ChatGLMConfig'> to build an AutoTokenizer.

7、运行GLM

本地模型启动,需要把从Hugging Face Hub加载改为本地路径加载,在/root/ChatGLM-6B/下的cli_demo.py和web_demo.py文件中进行修改。

web_demo.py:基于Gradio 的网页版 Demo

web_demo2.py: 基于 Streamlit 的网页版 Demo

  1. (chatglm) [root@iv-ychkunxoyy5id7hu8o1o ChatGLM-6B]# vim web_demo.py
  2. (chatglm) [root@iv-ychkunxoyy5id7hu8o1o ChatGLM-6B]# python web_demo.py
  3. Explicitly passing a `revision` is encouraged when loading a model with custom code to ensure no malicious code has been contributed in a newer revision.
  4. Explicitly passing a `revision` is encouraged when loading a configuration with custom code to ensure no malicious code has been contributed in a newer revision.
  5. Explicitly passing a `revision` is encouraged when loading a model with custom code to ensure no malicious code has been contributed in a newer revision.
  6. Loading checkpoint shards: 100%|█████████████████████████████████████████████████████████████████████████| 8/8 [00:05<00:00, 1.60it/s]
  7. /root/anaconda3/envs/chatglm/lib/python3.8/site-packages/gradio/components/textbox.py:259: UserWarning: The `style` method is deprecated. Please set these arguments in the constructor instead.
  8. warnings.warn(
  9. Running on local URL: http://127.0.0.1:7860
  10. To create a public link, set `share=True` in `launch()`.

8、微调

  1. cd ChatGLM-6B/ptuning
  2. //下载数据集文件
  3. wget --no-check-certificate -O AdvertiseGen.tar.gz https://cloud.tsinghua.edu.cn/f/b3f119a008264b1cabd1/?dl=1
  4. tar -xzvf AdvertiseGen.tar.gz

 train.sh

  1. #/root/ChatGLM-6B/ptuning/train.sh
  2. PRE_SEQ_LEN=128 #预序列长度
  3. LR=2e-2 #学习率
  4. CUDA_VISIBLE_DEVICES=0 python3 main.py \
  5. --do_train \ #是否进行训练
  6. --do_eval \ #是否进行预测
  7. --train_file AdvertiseGen/train.json \ #训练数据集相对路径
  8. --validation_file AdvertiseGen/dev.json \ #验证数据集相对路径
  9. --prompt_column content \ #提示信息字段
  10. --response_column summary \ #响应信息字段
  11. --overwrite_cache \ # 重写数据集缓存
  12. --model_name_or_path ChatGLM-6B/THUDM \ #模型文件名称或路径
  13. --output_dir output/adgen-chatglm-6b-pt-$PRE_SEQ_LEN-$LR \ #训练好的模型保存的地址
  14. --overwrite_output_dir \
  15. --max_source_length 64 \
  16. --max_target_length 64 \
  17. --per_device_train_batch_size 1 \ #每个设备上的训练批次大小,调整batch_size,显存利用率上升
  18. --per_device_eval_batch_size 1 \
  19. --gradient_accumulation_steps 16 \
  20. --predict_with_generate \
  21. --max_steps 3000 \
  22. --logging_steps 10 \
  23. --save_steps 1000 \
  24. --learning_rate $LR \
  25. --pre_seq_len $PRE_SEQ_LEN \
  26. # --quantization_bit 4

ds_train_finetune.sh 

使用Deepspeed数据并行, 需要调整最大步长,batchsize,不然2卡A10跑不起来

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/189638?site
推荐阅读
相关标签
  

闽ICP备14008679号