大模型微调系列(三)QLoRA微调

💡 本文会带给你

  1. 认识常用的指令监督微调数据集
  2. 如何构建自定义数据集
  3. 为什么是QLoRA
  4. 学会使用LLamFactory 进行QLoRA微调大模型

一、数据集

常用的数据集有 Alpaca 格式和 ShareGPT 格式,下面我们分别介绍这两种格式数据集。

Alpaca 格式数据集

Alpaca 数据集可以适用不同的任务,如指令监督微调、预训练、偏好训练、KTO、多模态,下面我们主要介绍指令监督微调数据集。

指令监督微调数据集

指令监督微调(Instruct Tuning)通过让模型学习详细的指令以及对应的回答来优化模型在特定指令下的表现。

指令监督微调数据集格式为:

In [ ]:

[  
  {  
    "instruction": "人类指令(必填)",  
    "input": "人类输入(选填)",  
    "output": "模型回答(必填)",  
    "system": "系统提示词(选填)",  
    "history": [  
      ["第一轮指令(选填)", "第一轮回答(选填)"],  
      ["第二轮指令(选填)", "第二轮回答(选填)"]  
    ]  
  }  
]  

instruction 列对应的内容为人类指令, input 列对应的内容为人类输入, output 列对应的内容为模型回答。下面是一个例子

In [ ]:

{
  "instruction": "计算这些物品的总费用。 ",
  "input": "输入:汽车 - $3000,衣服 - $100,书 - $20。",
  "output": "汽车、衣服和书的总费用为 $3000 + $100 + $20 = $3120。"
},

在进行指令监督微调时, instruction 列对应的内容会与 input 列对应的内容拼接后作为最终的人类输入,即人类输入为 instruction\ninput。而 output 列对应的内容为模型回答。

在上面的例子中,人类的最终输入是: 计算这些物品的总费用。
输入:汽车 - 3000,衣服−3000,衣服−100,书 - $20。

模型的回答是:汽车、衣服和书的总费用为 3000+3000+100 + 20=20=3120。

如果指定, system 列对应的内容将被作为系统提示词。

history 列是由多个字符串二元组构成的列表,分别代表历史消息中每轮对话的指令和回答。注意在指令监督微调时,历史消息中的回答内容也会被用于模型学习。
指令监督微调数据集 格式要求 如下:

In [ ]:

[  
  {  
    "instruction": "人类指令(必填,最后的指令)",  
    "input": "人类输入(选填)",  
    "output": "模型回答(必填)",  
    "system": "系统提示词(选填)",  
    "history": [  
      ["第一轮指令(选填)", "第一轮回答(选填)"],  
      ["第二轮指令(选填)", "第二轮回答(选填)"]  
      ...  
      ["第N轮指令(选填)", "第N轮回答(选填)"]  
    ]  
  }  
]  

下面是一个 alpaca 格式 多轮 对话的例子,对于单轮对话只需省略 history 列即可。

In [ ]:

[  
  {  
    "instruction": "今天的天气怎么样?", 
    "input": "",   
    "output": "今天的天气不错,是晴天。",  
    "history": [  
      [
        "今天会下雨吗?",  
        "今天不会下雨,是个好天气。"  
      ],  
      [  
        "今天适合出去玩吗?",  
        "非常适合,空气质量很好。"  
      ]  
    ]  
  }  
]  

ShareGPT

ShareGPT数据集可以适用不同的任务,如指令监督微调、偏好训练、OpenAI格式,ShareGPT 格式中的 KTO数据集(样例)和多模态数据集(样例) 与 Alpaca 格式的类似, 预训练数据集不支持 ShareGPT 格式。下面我们主要介绍指令监督微调数据集。

指令监督微调数据集

格式为:

In [ ]:

[
  {
    "conversations": [
      {
        "from": "human",
        "value": "人类指令"
      },
      {
        "from": "function_call",
        "value": "工具参数"
      },
      {
        "from": "observation",
        "value": "工具结果"
      },
      {
        "from": "gpt",
        "value": "模型回答"
      }
    ],
    "system": "系统提示词(选填)",
    "tools": "工具描述(选填)"
  }
]

相比 alpaca 格式的数据集, sharegp

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值