使用unsloth本地微调开源大模型步骤

一、微调前准备工作

环境准备:建议使用linux系统和anaconda进行环境的部署,输入

cat /proc/version 

查看版本信息,以下是我所用的版本信息:

Linux version 6.8.0-38-generic (buildd@lcy02-amd64-049) (x86_64-linux-gnu-gcc-13 (Ubuntu 13.2.0-23ubuntu4) 13.2.0, GNU ld (GNU Binutils for Ubuntu) 2.42) #38-Ubuntu SMP PREEMPT_DYNAMIC Fri Jun  7 15:25:01 UTC 2024

创建anaconda环境,记得使用python3.11,anaconda在linux上安装和创建环境的过程可以去其他教程查找,暂且不多赘述。

安装unsloth:

unsloth官网地址:https://github.com/unslothai/unsloth

下载unsloth文件,这里只需要其中的unsloth文件,这里修改成了在Linux上微调,

我们之后会使用pytorch2.3.0配合cuda12.1版本的gpu进行微调所以安装cuda12.1版本的unsloth以下是官方给出的安装代码:

conda create --name unsloth_env \
    python=3.11 \
    pytorch-cuda=12.1 \
    pytorch cudatoolkit xformers -c pytorch -c nvidia -c xformers \
    -y
conda activate unsloth_env

pip install "unsloth[colab-new] @ git+https://github.com/unslothai/unsloth.git"

pip install --no-deps "trl<0.9.0" peft accelerate bitsandbytes

安装必要的依赖项,运行微调代码的时候缺什么安装什么就行,这里主要注意torch和xformer的安装以及版本匹配问题。

建议使用我给出的版本以避免版本冲突问题:

pip install torch==2.3.0 --index-url https://download.pytorch.org/whl/cu121
pip install xformers==0.0.25.post1

测试安装是否成功:

nvcc  --version
python -m xformers.info
python -m bitsandbytes

二、资源准备工作

从huggingface(https://huggingface.co/)上下载你需要的模型,这里我选择shenzhi-wang/Llama3-8B-Chinese-Chat做示范,事实上qwen的中文预训练模型也很不错。

准备json格式的数据集,huggingface上有公共的数据集,也可以通过chatGPT上的Alpaca Dataset制作自己的数据集。这里我选择huggingface上的数据集下载下来:Seikaijyu/Beautiful-Chinese,也可以自定义自己的数据集,只要是json格式的就行,可以使用以下chatGPT的插件Alpaca Dataset制作自己的数据集,

下载脚本文件:GitHub - onekid/unsloth: unsloth的本地化改造

将模型文件和数据集都放到unsloth根目录中,其中的fine-tuning.py为微调脚本,在我们之前设置的环境中运行,出现的lora_model文件夹就是生成的lora模型,output文件夹中为微调的大模型。


因为项目过去两个月可能有细节出错,但是大致流程是没问题的,欢迎在评论区指出问题,当前得到的模型是未经过量化的.safetensors格式,下一期我将描述如何使用llama.cpp量化所得到的模型文件,欢迎关注~

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值