服务器摆设llama3 并使用LLaMA-Factory实现微调

打印 上一主题 下一主题

主题 1847|帖子 1847|积分 5551

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
llama3的编译环境要求:

必要的软件,硬件资源:
python=3.11 pytorch==2.1.2 torchvision==0.16.2 torchaudio==2.1.2 pytorch-cuda=12.2

第一步下载必要的python版本

1.下载3.11.4python
wget https://www.python.org/ftp/python/3.10.0/Python-3.11.4.tgz https://www.python.org/ftp/python/3.11.4/Python-3.11.4.tgz
2.使用tar命令解压
tar -xvf Python-3.11.4.tgz
3. 安装 预备编译环境,执行如下命令:
yum -y install make gcc epel-release zlib-devel openssl-devel bzip2-devel ncurses-devel gdbm-devel readline-devel sqlite-devel libffi-devel tk-devel xz-devel cd Python-3.11.4 ./configure --prefix=/usr/local make sudo make install
4.添加软毗连
ln -s /usr/local/tools/Python-3.7.12/bin/python3.7 /usr/bin/python3
可使用命令ls -l /usr/bin/查看软毗连是否已创建乐成
第二步创建虚拟环境

python3.11 -m venv envsllamav3
激活Python虚拟环境
source ~/envsllamav3/bin/activate
第三步安装依赖

安装cuda
输入 nvidia-smi 查看必要下载的cuda版
llama支持的最低cuda版本为11.6,因此必要更新cuda版本。
1.下载cuda驱动
官网地点:下载最新官方 NVIDIA 驱动
选择
llama3的编译环境要求:

必要的软件,硬件资源:
python=3.11 pytorch==2.1.2 torchvision==0.16.2 torchaudio==2.1.2 pytorch-cuda=12.2

第一步下载必要的python版本

1.下载3.11.4python
  1. [/code] wget https://www.python.org/ftp/python/3.10.0/Python-3.11.4.tgz https://www.python.org/ftp/python/3.11.4/Python-3.11.4.tgz
  2. 2.使用tar命令解压
  3. [code]
复制代码
tar -xvf Python-3.11.4.tgz
3. 安装 预备编译环境,执行如下命令:
  1. [/code] yum -y install make gcc epel-release zlib-devel openssl-devel bzip2-devel ncurses-devel gdbm-devel readline-devel sqlite-devel libffi-devel tk-devel xz-devel cd Python-3.11.4 ./configure --prefix=/usr/local make sudo make install
  2. 4.添加软毗连
  3. [code]
复制代码
ln -s /usr/local/tools/Python-3.7.12/bin/python3.7 /usr/bin/python3
可使用命令ls -l /usr/bin/查看软毗连是否已创建乐成
第二步创建虚拟环境

  1. [/code] python3.11 -m venv envsllamav3
  2. 激活Python虚拟环境
  3. [code]
复制代码
source ~/envsllamav3/bin/activate
第三步安装依赖

安装cuda
输入 nvidia-smi 查看必要下载的cuda版本

llama支持的最低cuda版本为11.6,因此必要更新cuda版本。
1.下载cuda驱动
官网地点:下载最新官方 NVIDIA 驱动
选择
查找相干驱动并下载
2.去官网下载对应版本
https://developer.nvidia.com/cuda-12-2-0-download-archive?target_os=Linux&target_arch=x86_64&Distribution=CentOS&target_version=7&target_type=runfile_local
选择型号后复制蓝色的命令执行
wget https://developer.download.nvidia.com/compute/cuda/12.2.0/local_installers/cuda_12.2.0_535.54.03_linux.run sudo sh cuda_12.2.0_535.54.03_linux.run
accept后
去掉勾选driver,install
安装完成后修改环境变量
vim ~/.bashrc
输入
export PATH=/usr/local/cuda-12.2/bin${PATH:+{PATH}} export LD_LIBRARY_PATH=/usr/local/cuda-12.2/lib64${LD_LIBRARY_PATH:+{LD_LIBRARY_PATH}}
然后保存退出
:wq
最后
source ~/.bashrc
然后执行
nvcc --version
查看cuda版本显示
cuda下载完成
第四步下载微调框架LLaMA-Factory

LLaMA-Factory/README_zh.md at main · hiyouga/LLaMA-Factory
下载LLaMA-Factory框架和相干依赖
git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git cd LLaMA-Factory pip install -e ".[torch,metrics]"
这个依赖会下好久推荐使用清华镜像源下载
  再微调之前必要下载modescope 请不要下载1.15版本的会出下下载异常
pip install modelscope==1.17
  可视化微调
llamafactory-cli webui export USE_MODELSCOPE_HUB=1 //选择从modelscope中下载模型
  执行命令后如图:会出现登录的端标语7860
  第五步模型微调

  登录页面后显示:/root/liujingjing11/Meta-Llama-3.1-70B-Instruct
  具体参数说明:
参数说明参数说明
Lang语言选择(en英语 zh中文)Model name微调的模型
Finetuning method微调方法(full 全模型微调freeze冻结层微调 lora层冻结微调)checkpoint path是否保存检查点
stage练习阶段Supervised Fine-Tuning(监视微调), Reward Modeling(夸奖建模)PPO(旨在进步练习服从并实现稳定性)DPO是一种优化算法,用于保护数据隐私。 Pre-Training(预练习)dataset选择数据集(preview dataset可以预览数据集)
learning rate学习率一样平常而言越大 越容易收敛,但很难找到最优解;而学习率小则收敛的速度慢。根据数据集选择符合的学习率。1000条数据建议学习率设置为1e-4epochs一个 epoch 是一次完整的练习数据集,通过模型进行前向传播和反向传播的过程。
Maximum gradient norm最大梯度范数用于对梯度进行裁剪,限制梯度的巨细,以防止梯度爆炸(梯度过大)的题目。一样平常设置1-5范围,其中1通常用于对梯度进行相对较小的裁剪,3到5:用于对梯度进行中等程度的裁剪,实用于一样平常深度学习模型的练习。Compute typeFP16,BF16,FP32 V100是无法使用bf16精度的,只能使用fp16。
cutoff_len用于控制输入文本的截断长度。当输入文本的长度超过 cutoff_len 时,模型会截取前 cutoff_len 个字符或标记Batch size一次练习的样本数
Gradient accumulation就是将多次盘算得到的梯度值进行累加,然后一次性进行参数更新。Val size验证集尺寸
LR scheduler学习率调治器。动态调整学习率,从而找到最优解。常见的有cosine,linear
  配置完参数后选择结果输出路径,然后点击start即可。
  假如下载的模型经常报错文件找不到,推荐在魔塔社区手动下载好模型后,用本地模型练习。
  模型练习:
  损失函数:
  Q&A

  期间遇到许多版本匹配的题目
  1.其中由于centos系统中自带python2.7版本支持的依赖并不能支持python3.7以上的版本,导致以上配置中yum -y install make gcc epel-release zlib-devel openssl-devel bzip2-devel ncurses-devel gdbm-devel readline-devel sqlite-devel libffi-devel tk-devel xz-devel 下载的依赖包默认下载了python2.7的依赖,从而python3.11中必要的包许多都不能导入。
  其中openssl包一直报没有相干模块,而openssl包重要和下载一些依赖有关系。
  报错:ModuleNotFoundError: No module named 'openssl'
  这时必要去下载最新的openssl-3.1.4包解压安装进centos系统中。步调
  1.安装相干依赖
yum group install 'Development Tools' yum -y install zlib-devel zlib perl* yum -y install gcc zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl openssl-devel xz xz-devel libffi-devel libuuid-devel perl-core epel-release tk-devel ncurses-libs gdbm-devel libdbi-devel python-backports-lzm yum -y install
  2.安装openssl3.1.4,源代码可在https://www.openssl.org/source/选择
wget https://www.openssl.org/source/openssl-3.1.4.tar.gz tar -xzvf openssl-3.1.4.tar.gz cd opensl-3.1.4
3.编译、安装openssl3.1.4
./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl --shared zlib
这一步又开始报错,Compilation failed in require at /root/openssl-3.0.1/Configure line 23. BEGIN failed--compilation aborted at /root/openssl-3.0.1/Configure line 23.xian 定位题目也还是由于缺少依赖。下载依赖:
yum install perl-IPC-Cmd
安装
make && make install
安装openssl完成。
2.更换cuda版本时必要卸载原本的cuda11.4,再重新安装新的cuda12.2驱动。下载版本驱动的时间也必要一些依赖,而原本系统支持的cuda11.4的一些依赖不能支持cuda12.2驱动下载。必要更新相干依赖(yum install kernel-devel kernel-headers gcc dkms gcc-c++)Tips 假如系统中已有原本依赖则下载不了最新的依赖
下载最新的kernel-devel , kernel-headers, kernel-doc 依赖 并统一版本。
3.假如模型一直下载不乐成,则先本地下载模型,再调优。
git lfs instal git clone https://www.modelscope.cn/FlagAlpha/Llama3-Chinese-8B-Instruct.gi
查找相干驱动并下载
2.去官网下载对应版本
https://developer.nvidia.com/cuda-12-2-0-download-archive?target_os=Linux&target_arch=x86_64&Distribution=CentOS&target_version=7&target_type=runfile_local
选择型号后复制蓝色的命令执行
wget https://developer.download.nvidia.com/compute/cuda/12.2.0/local_installers/cuda_12.2.0_535.54.03_linux.run sudo sh cuda_12.2.0_535.54.03_linux.run
accept后
去掉勾选driver,install
安装完成后修改环境变量
vim ~/.bashrc
输入
export PATH=/usr/local/cuda-12.2/bin${PATH:+{PATH}} export LD_LIBRARY_PATH=/usr/local/cuda-12.2/lib64${LD_LIBRARY_PATH:+{LD_LIBRARY_PATH}}
然后保存退出
:wq
最后
source ~/.bashrc
然后执行
nvcc --version
查看cuda版本显示

cuda下载完成
第四步下载微调框架LLaMA-Factory

LLaMA-Factory/README_zh.md at main · hiyouga/LLaMA-Factory
下载LLaMA-Factory框架和相干依赖
git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git cd LLaMA-Factory pip install -e ".[torch,metrics]"
这个依赖会下好久推荐使用清华镜像源下载
  再微调之前必要下载modescope 请不要下载1.15版本的会出下下载异常
pip install modelscope==1.17
  可视化微调
llamafactory-cli webui export USE_MODELSCOPE_HUB=1 //选择从modelscope中下载模型
  执行命令后如图:会出现登录的端标语7860

  第五步模型微调

  登录页面后显示:/root/liujingjing11/Meta-Llama-3.1-70B-Instruct

  具体参数说明:

参数说明参数说明
Lang语言选择(en英语 zh中文)Model name微调的模型
Finetuning method微调方法(full 全模型微调freeze冻结层微调 lora层冻结微调)checkpoint path是否保存检查点
stage练习阶段Supervised Fine-Tuning(监视微调), Reward Modeling(夸奖建模)PPO(旨在进步练习服从并实现稳定性)DPO是一种优化算法,用于保护数据隐私。 Pre-Training(预练习)dataset选择数据集(preview dataset可以预览数据集)
learning rate学习率一样平常而言越大 越容易收敛,但很难找到最优解;而学习率小则收敛的速度慢。根据数据集选择符合的学习率。1000条数据建议学习率设置为1e-4epochs一个 epoch 是一次完整的练习数据集,通过模型进行前向传播和反向传播的过程。
Maximum gradient norm最大梯度范数用于对梯度进行裁剪,限制梯度的巨细,以防止梯度爆炸(梯度过大)的题目。一样平常设置1-5范围,其中1通常用于对梯度进行相对较小的裁剪,3到5:用于对梯度进行中等程度的裁剪,实用于一样平常深度学习模型的练习。Compute typeFP16,BF16,FP32 V100是无法使用bf16精度的,只能使用fp16。
cutoff_len用于控制输入文本的截断长度。当输入文本的长度超过 cutoff_len 时,模型会截取前 cutoff_len 个字符或标记Batch size一次练习的样本数
Gradient accumulation就是将多次盘算得到的梯度值进行累加,然后一次性进行参数更新。Val size验证集尺寸
LR scheduler学习率调治器。动态调整学习率,从而找到最优解。常见的有cosine,linear
  配置完参数后选择结果输出路径,然后点击start即可。
  假如下载的模型经常报错文件找不到,推荐在魔塔社区手动下载好模型后,用本地模型练习。
  模型练习:

  损失函数:

  Q&A

  期间遇到许多版本匹配的题目
  1.其中由于centos系统中自带python2.7版本支持的依赖并不能支持python3.7以上的版本,导致以上配置中yum -y install make gcc epel-release zlib-devel openssl-devel bzip2-devel ncurses-devel gdbm-devel readline-devel sqlite-devel libffi-devel tk-devel xz-devel 下载的依赖包默认下载了python2.7的依赖,从而python3.11中必要的包许多都不能导入。
  其中openssl包一直报没有相干模块,而openssl包重要和下载一些依赖有关系。
  报错:ModuleNotFoundError: No module named 'openssl'
  这时必要去下载最新的openssl-3.1.4包解压安装进centos系统中。步调
  1.安装相干依赖
  1. [/code] yum group install 'Development Tools' yum -y install zlib-devel zlib perl* yum -y install gcc zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl openssl-devel xz xz-devel libffi-devel libuuid-devel perl-core epel-release tk-devel ncurses-libs gdbm-devel libdbi-devel python-backports-lzm yum -y install
  2.   2.安装openssl3.1.4,源代码可在https://www.openssl.org/source/选择
  3. [code]
复制代码
wget https://www.openssl.org/source/openssl-3.1.4.tar.gz tar -xzvf openssl-3.1.4.tar.gz cd opensl-3.1.4
3.编译、安装openssl3.1.4
  1. [/code] ./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl --shared zlib
  2. 这一步又开始报错,Compilation failed in require at /root/openssl-3.0.1/Configure line 23. BEGIN failed--compilation aborted at /root/openssl-3.0.1/Configure line 23.xian 定位题目也还是由于缺少依赖。下载依赖:
  3. [code]
复制代码
yum install perl-IPC-Cmd
安装
  1. [/code] make && make install
  2. 安装openssl完成。
  3. 2.更换cuda版本时必要卸载原本的cuda11.4,再重新安装新的cuda12.2驱动。下载版本驱动的时间也必要一些依赖,而原本系统支持的cuda11.4的一些依赖不能支持cuda12.2驱动下载。必要更新相干依赖(yum install kernel-devel kernel-headers gcc dkms gcc-c++)Tips 假如系统中已有原本依赖则下载不了最新的依赖
  4. 下载最新的kernel-devel , kernel-headers, kernel-doc 依赖 并统一版本。
  5. 3.假如模型一直下载不乐成,则先本地下载模型,再调优。
  6. [code]
复制代码
git lfs instal git clone https://www.modelscope.cn/FlagAlpha/Llama3-Chinese-8B-Instruct.git

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

篮之新喜

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表