LLaMA-Factory 使用 alpaca 格式的数据集

打印 上一主题 下一主题

主题 933|帖子 933|积分 2803

LLaMA-Factory 使用 alpaca 格式的数据集

flyfish
alpaca 格式最初与Stanford大学的一个研究项目相关联,该项目旨在通过少量高质量的数据来微调大型语言模型。它受到了Alpaca模型(一种基于LLaMA的指令跟随模型)的影响,该模型是在Meta AI的LLaMA根本上进行改进而来的。
alpaca 格式的数据集应遵循以下格式:
  1. [
  2.   {
  3.     "instruction": "user instruction (required)",
  4.     "input": "user input (optional)",
  5.     "output": "model response (required)",
  6.     "system": "system prompt (optional)",
  7.     "history": [
  8.       ["user instruction in the first round (optional)", "model response in the first round (optional)"],
  9.       ["user instruction in the second round (optional)", "model response in the second round (optional)"]
  10.     ]
  11.   }
  12. ]
复制代码
在 data/dataset_info.json 文件中提供您的数据集定义,并采用以下格式:
对于 alpaca 格式的数据集,其 dataset_info.json 文件中的列应为:
  1. "dataset_name": {
  2.   "file_name": "dataset_name.json",
  3.   "columns": {
  4.     "prompt": "instruction",
  5.     "query": "input",
  6.     "response": "output",
  7.     "system": "system",
  8.     "history": "history"
  9.   }
  10. }
复制代码
字段作用

instruction: 用户给出的指令或标题,是必须提供的信息。
input: 可选的额外输入信息,可以为空,用于提供给定指令的上下文或具体例子。
output: 模型根据指令和输入产生的响应,是必须提供的信息。
system: 可选的系统提示,用来为整个对话设定场景或提供指导原则。
history: 一个列表,包含之前轮次的对话记载,每一对都是用户消息和模型回复。这有助于保持对话的一致性和连贯性。
示例1: 单轮对话

  1. [
  2.   {
  3.     "instruction": "解释一下什么是人工智能。",
  4.     "input": "",
  5.     "output": "人工智能(Artificial Intelligence, AI)是指由人制造出来的具有一定智能的系统,能够理解和学习人类的行为,并且能够执行任务、解决问题以及适应新环境。它通常包括机器学习、自然语言处理、计算机视觉等技术领域。",
  6.     "system": "你是一位专业的AI讲师。",
  7.     "history": []
  8.   }
  9. ]
复制代码
在这个例子中:
instruction 是用户给模型的指令。
input 字段为空,因为没有额外的信息提供给模型。
output 是模型根据指令生成的回答。
system 提供了一个角色设定,让模型扮演一位AI讲师。
history 列表为空,表示这是一个新的对话,之前没有对话汗青。
示例2: 多轮对话

  1. [
  2.   {
  3.     "instruction": "告诉我明天济南的天气。",
  4.     "input": "",
  5.     "output": "明天济南的天气预报显示是晴天,气温大约在15到25摄氏度之间。",
  6.     "system": "你是一位气象专家。",
  7.     "history": [
  8.       ["今天济南的天气怎么样?", "今天济南的天气是多云转晴,气温大约在10到20摄氏度之间。"]
  9.     ]
  10.   },
  11.   {
  12.     "instruction": "那后天呢?",
  13.     "input": "",
  14.     "output": "后天济南可能会有小雨,气温会稍微下降一些,预计在13到22摄氏度左右。",
  15.     "system": "你是一位气象专家。",
  16.     "history": [
  17.       ["今天济南的天气怎么样?", "今天济南的天气是多云转晴,气温大约在10到20摄氏度之间。"],
  18.       ["告诉我明天济南的天气。", "明天济南的天气预报显示是晴天,气温大约在15到25摄氏度之间。"]
  19.     ]
  20.   }
  21. ]
复制代码
在这个多轮对话的例子中:
第一条记载包含了用户扣问明天济南天气的指令,以及模型给出的回答。
history 包含了前一轮对话的内容,这样可以让模型理解当前对话的上下文。
第二条记载则是继续上一轮的对话,扣问后天的天气情况,同时history也更新为包含前面所有对话的汗青。
模型能够一次性从消息文章中提取出多个关键信息(如事件范例、地点、时间等),alpaca格式的数据集

  1. [
  2.   {
  3.     "instruction": "从以下文本中提取发生的事件类型、地点和时间。",
  4.     "input": "昨天,在加州的一家购物中心发生了一起火灾事故,幸好没有人员伤亡。",
  5.     "output": "事件类型: 火灾; 地点: 加州; 时间: 昨天",
  6.     "system": "你是一位信息分析师,擅长从文本中提取关键信息。",
  7.     "history": []
  8.   },
  9.   {
  10.     "instruction": "从以下文本中提取发生的事件类型、地点和时间。",
  11.     "input": "本周三,加州市中心的一座办公楼发生了爆炸,造成多人受伤。",
  12.     "output": "事件类型: 爆炸; 地点: 加州市中心; 时间: 本周三",
  13.     "system": "你是一位信息分析师,擅长从文本中提取关键信息。",
  14.     "history": []
  15.   },
  16.   {
  17.     "instruction": "从以下文本中提取发生的事件类型、地点和时间。",
  18.     "input": "上个月底,加州的一个工业园区内发生化学品泄漏,导致附近居民紧急疏散。",
  19.     "output": "事件类型: 化学品泄漏; 地点: 加州的一个工业园区; 时间: 上个月底",
  20.     "system": "你是一位信息分析师,擅长从文本中提取关键信息。",
  21.     "history": []
  22.   }
  23. ]
复制代码
instruction 给出了明确的任务指示,即从给定文本中提取事件范例、地点和时间。
input 是包含相关信息的原始消息文本。
output 则是模型应该生成的答案,它以结构化的方式列出了所有的关键信息。
system 提供了角色设定,帮助模型理解其任务配景。
history 在这个情况下为空,因为每个条目都是独立的单轮对话。

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

使用道具 举报

0 个回复

正序浏览

快速回复

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

本版积分规则

东湖之滨

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表