新手教程之使用LLaMa-Factory微调LLaMa3

文章目录

为什么要用LLaMa-Factory

如果你尝试过微调大模型,你就会知道,大模型的环境配置是非常繁琐的,需要安装大量的第三方库和依赖,甚至需要接入一些框架。

但是大模型微调的方法又是非常类似的,那有没有一种工具可以统一这些操作,让大模型微调变成一个简单易上手的事情,LLaMa-Factory就是为了解决这个问题应运而生


什么是LLaMa-Factory

本来不想说这么多废话的,想来想去还是简单介绍一下,也加深自己的了解:

LLaMA Factory是一款支持多种LLM 微调方式的工具,包括预训练、指令监督微调和奖励模型训练等。它支持LoRA和QLoRA微调策略,广泛集成了业界前沿的微调方法 。特点在于支持多种LLM模型,提供了WebUI页面 ,使非开发人员也能方便进行微调工作。

代码地址:LLaMA-Factory


LLaMa-Factory环境搭建

  1. 克隆项目
bash 复制代码
git clone https://github.com/hiyouga/LLaMA-Factory.git
  1. 创建环境
bash 复制代码
conda create -n llama_factory python=3.10
conda activate llama_factory
  1. 安装依赖
bash 复制代码
cd LLaMA-Factory
pip install -e .[torch,metrics]
  1. 启动web UI界面
bash 复制代码
export CUDA_VISIBLE_DEVICES=0
python src/webui.py

启动成功之后,游览器会打开如下界面:


微调LLaMA3

  1. 准备模型

方法一:克隆我们要微调的模型到本地,然后将在web UI界面填入我们的模型名称和本地的模型地址

bash 复制代码
git clone https://www.modelscope.cn/LLM-Research/Meta-Llama-3-8B-Instruct.git

方法二 :直接去魔塔Meta-Llama-3-8B-Instruct地址复制对应的文件名和路径,微调时,程序会自动​去魔搭下载模型!

(这个方法小编浅浅试了一下,没成功,还是下载到本地靠谱)

  1. 准备数据集

LLaMA-Factory项目内置了丰富的数据集,统一存储于data目录下。

如果你想基于自己的数据集微调,你需要

(1)将你的数据集也放到data目录下

注意:你需要将你的数据集改为一样的格式,具体可参考data下内置数据集的格式

这里提供一个小编基于LooksJuicy/ruozhiba数据集改好的一个数据集:

https://pan.baidu.com/s/1FYYlBIXWy697xdagrHiIeg

提取码:2333

(2)修改data下的dataset_info.json文件,添加如下内容:

其中my_data.json是我自己的数据集文件,my_data是对应的数据集文件名

bash 复制代码
"my_data": {
    "file_name": "my_data.json"
  },

添加到第一层大括号内的第一个元素前,也就是identity前面

  1. 微调

这里我直接通过web ui界面进行微调

训练需要二十分钟左右,训练完成之后,会出现下述界面:

左下角会显示训练完毕,右边会出现训练过程中损失变化的一个可视化

  1. 与微调之后的模型对话

这样看来,使用LLaMa-Factory微调确实很简单方便!!!


参考博文

相关推荐
花花少年1 个月前
快速体验LLaMA-Factory 私有化部署和高效微调Llama3模型(曙光超算互联网平台异构加速卡DCU)
llama-factory·llama3·scnet·dcu·国产异构加速卡
一个处女座的程序猿2 个月前
LLMs之llama3-from-scratch:llama3-from-scratch(从头开始利用pytorch来实现并解读LLaMA-3模型的每层代码)的简介、核心思路梳理
大语言模型·llama3
段智华3 个月前
Llama模型家族之Stanford NLP ReFT源代码探索 (四)Pyvene论文学习
transformer·llama3·reft
段智华3 个月前
Llama模型家族之Stanford NLP ReFT源代码探索 (一)数据预干预
llama3·reft
段智华3 个月前
Llama模型家族之拒绝抽样(Rejection Sampling)(五)蒙特卡罗算法在拒绝抽样中:均匀分布与样本接受标准
llama3·reject sample
段智华3 个月前
Llama模型家族之拒绝抽样(Rejection Sampling)(九) 强化学习之Rejection Sampling
llama3·reject sample
段智华3 个月前
Llama模型家族之Stanford NLP ReFT源代码探索 (二)Intervention Layers层
llama3·reft
段智华3 个月前
Llama模型家族之使用 ReFT技术对 Llama-3 进行微调(三)为 ReFT 微调准备模型及数据集
llama3·reft
段智华3 个月前
Llama模型家族之拒绝抽样(Rejection Sampling)(二)均匀分布简介
llama3·reject sample