使用 LLaMA-Factory 微调大模型

本文将介绍如下内容:

  • 一、搭建 Docker Container 环境
  • 二、配置大模型训练环境
  • 三、构建、配置数据集
  • 四、训练大模型

一、搭建 Docker Container 环境

笔者此前多篇文章说明,此处不再赘述,可参考:NGC容器中快速搭建Jupyter环境
Eg: NGC 版本为 24.09

二、配置大模型训练环境

1、下载代码
git clone https://github.com/hiyouga/LLaMA-Factory.git

# 切换到此次案例的版本
git checkout c3fda5046d835ba4542d525b8d89cd12838e9f4c
2、配置训练环境
cd LLaMA-Factory
pip install -e ".[torch,metrics]"
pip install deepspeed==0.15.4

三、构建、配置数据集

1、构建数据集

将数据构造为如下格式的json文件:

[
  {
   
    "instruction": "识别并解释给定列表中的两个科学理论:细胞理论和日心说。",
    "input": "",
    "output": "细胞理论是生物科学的一个理论,它认为所有生命体都是由微小的基本单元——细胞所构成。"
  },
  [
  {
   
    "instruction": "识别并解释给定列表中的两个科学理论:细胞理论和日心说。",
    "input": "",
    "output": "细胞理论是生物科学的一个理论,它认为所有生命体都是由微小的基本单元——细胞所构成。这是生物学的一个基础理论,认为细胞是所有生物的基本结构和功能单位,所有的生物都是由一个或>多个细胞组成,细胞只能通过细胞分裂产生新的细胞。这一理论由薛定谔、施瓦内和雪莱于1839年首次提出。\n\n日心说是指太阳是太阳系的中心,也就是说,行星围绕太阳旋转的理论。这个理论打破了传统的
地心说观点,认为地球并不是宇宙的中心。日心说的提出者是尼古拉·哥白尼,他在16世纪初发表了他的著作《天体运行论》,阐述了太阳系行星围绕太阳运行的模型,为天文学的发展做出了巨大贡献。"
  },
]
2、配置数据集

vim LLaMA-Factory/data/dataset_info.json

{
   
### 使用 LLama-Factory 微调开源模型 #### 准备环境与安装依赖 为了使用 LLama-Factory 对开源模型进行微调,首先需要准备合适的开发环境并安装必要的软件包。这通常涉及到设置 Python 虚拟环境以及安装 PyTorch 和其他依赖项。 #### 配置训练参数文件 配置文件定义了用于微调的具体参数和选项。对于 `Llama3-8B-Instruct` 模型而言,可以通过 YAML 文件指定这些细节[^1]: ```yaml model_name_or_path: "path_to_model" output_dir: "./results" per_device_train_batch_size: 4 gradient_accumulation_steps: 2 learning_rate: 5e-6 num_train_epochs: 3 logging_dir: './logs' ``` 此配置示例展示了如何调整批量大小、学习率和其他超参数来优化训练过程。 #### 执行微调操作 一旦完成了上述准备工作,则可通过 CLI 命令执行实际的微调流程。具体来说,就是运行如下命令来进行基于 LoRA 的微调工作[^3]: ```bash CUDA_VISIBLE_DEVICES=0 llamafactory-cli train examples/lora_single_gpu/llama3_lora_sft.yaml ``` 这条指令指定了 GPU 设备编号,并加载预设好的配置文件路径以启动训练任务。 #### 进行推理测试 完成微调之后,可以立即对该改进后的模型做初步评估。同样借助于 CLI 工具,只需更改子命令即可切换到推理模式: ```bash CUDA_VISIBLE_DEVICES=0 llamafactory-cli chat examples/inference/llama3_lora_sft.yaml ``` 该命令允许用户与经过微调的大规模语言模型交互对话,从而直观感受其表现变化。 #### 合并权重保存成果 最后一步是将原始模型与新学到的知识相结合,形成最终版本供后续部署或进一步迭代之用。这一环节也十分简单明了: ```bash CUDA_VISIBLE_DEVICES=0 llamafactory-cli export examples/merge_lora/llama3_lora_sft.yaml ``` 通过这种方式能够有效地保留所有更新过的参数而不会丢失原有结构特性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值