采集类淘宝客网站怎么做,广告设计公司简介文案,简述网站建设有哪些步骤,企业网络推广哪家公司好ShareGPT 格式 提出背景#xff1a;ShareGPT 格式起初来自于用户在社交平台上分享与聊天模型的对话记录#xff0c;这些记录涵盖了丰富的多轮对话内容。研究者们意识到#xff0c;这类真实的对话数据可以帮助模型更好地学习多轮对话的上下文保持、回应生成等能力。因此…ShareGPT 格式 提出背景ShareGPT 格式起初来自于用户在社交平台上分享与聊天模型的对话记录这些记录涵盖了丰富的多轮对话内容。研究者们意识到这类真实的对话数据可以帮助模型更好地学习多轮对话的上下文保持、回应生成等能力。因此ShareGPT 格式逐渐被用于多轮对话的指令微调。 目标帮助模型理解复杂的多轮交互提升模型的对话连贯性、上下文一致性和信息检索能力。 主要应用ShareGPT 格式应用于需要模拟自然对话流的场景例如聊天机器人、客服问答、陪伴式 AI 助手等。其设计结构支持用户与助手之间交替对话的记录适合训练多轮对话模型。Alpaca 格式 提出背景Alpaca 格式由斯坦福大学的研究人员在 2023 年提出他们旨在通过一种低成本的方式对大型语言模型进行指令微调。Alpaca 项目使用 OpenAI 的 GPT-3.5 模型生成了大量指令数据并采用简化的格式——instruction、input 和 output 字段——来表述单轮任务。这个结构化的指令-响应格式使模型可以专注于对特定任务的理解。 目标Alpaca 格式的设计重点在于让模型理解明确的任务指令以便模型在接到特定任务时能生成更精确的响应。 主要应用Alpaca 格式被广泛应用于以任务为导向的指令微调任务中尤其适合单轮任务如总结、翻译、问答等并不依赖多轮对话上下文结构简洁且任务导向清晰。 总结 ShareGPT适用于多轮对话微调背景是对多轮自然对话数据的需求。 Alpaca适用于单轮指令微调背景是低成本的指令微调需求通过简单的指令-响应结构实现任务定向训练。
dataset_info.json 包含了所有经过处理的 本地数据集 和 在线数据集。如果使用本地数据集 务必在 dataset_info.json 中添加对应数据集及其内容的定义
目前支持 Alpaca 格式 和 ShareGPT 的格式
1.Alpaca
针对不同任务数据集格式要求如下
指令监督微调预训练偏好训练KTO多模态
1.指令监督微调 样例如下 解释 instruction 对应的内容是人类指令 input 对应内容是人类输入 output 对应内容是模型回答 在进行指令监督微调时 instruction 列的内容会与 input 列对应内容拼接后作为最终人类的输入即人类输入为 instruction\ninput。而 output 为模型回答 如果指定 system 列对应内容将被作为系统提示词 history 列是由多个字符串二元组构成的列表分别代表历史消息中每轮对话的指令和回答。注意在指令监督微调时历史消息中的回答内容也会被用于模型学习 最终指令微调的格式要求如下 [{instruction: 人类指令必填,input: 人类输入选填,output: 模型回答必填,system: 系统提示词选填,history: [[第一轮指令选填, 第一轮回答选填],[第二轮指令选填, 第二轮回答选填]]}
]样例如下 [{instruction: 今天的天气怎么样,input: ,output: 今天的天气不错是晴天。,history: [[今天会下雨吗,今天不会下雨是个好天气。],[今天适合出去玩吗,非常适合空气质量很好。]]}
]对于上述的数据dataset_info.json 的数据集描述应为 数据集名称: {file_name: data.json,columns: {prompt: instruction,query: input,response: output,system: system,history: history}
}2.预训练数据 样例如下 大语言模型通过学习未被标记的文本进行预训练从而学习语言的表征。通常预训练数据集从互联网上获得因为互联网上提供了大量的不同领域的文本信息有助于提升模型的泛化能力。 预训练数据集文本描述格式如下 [{text: document},{text: document}
]在预训练的时候只有 text 列中的内容(document)会用于模型学习 对于上述数据dataset_info.json 的数据集描述为 数据集名称: {file_name: data.json,columns: {prompt: text}
}3.偏好数据集
偏好数据集用于奖励模型训练、DPO训练 和 ORPO 训练。对于系统指令和人类输入偏好数据集给出了一个更优的回答和一个更差的回答。
一些研究 表明通过让模型学习“什么更好”可以使得模型更加迎合人类的需求。 甚至可以使得参数相对较少的模型的表现优于参数更多的模型。 偏好数据集需要在 chosen 列中提供更优的回答并在 rejected 中提供更差的回答在一轮问答中格式如下 [{instruction: 人类指令必填,input: 人类输入选填,chosen: 优质回答必填,rejected: 劣质回答必填}
]dataset_info.json 的数据集描述为 数据集名称: {file_name: data.json,ranking: true,columns: {prompt: instruction,query: input,chosen: chosen,rejected: rejected}
}DPODirect Preference Optimization和 ORPOOff-Policy Preference Optimization是两种用于偏好优化的训练方法主要用于提升语言模型对用户偏好的响应能力。它们在强化学习RLHF, Reinforcement Learning with Human Feedback框架下使用。 1. DPODirect Preference Optimization: 目标: 直接通过用户反馈优化模型输出的偏好使模型更加符合用户的选择。方法: 不使用强化学习的奖励建模而是直接在训练数据中根据人类偏好来优化。通过给定两种生成结果用户给出偏好模型学习去优化自己生成更符合偏好的结果。优点: 不依赖复杂的奖励函数设计直接根据人类偏好进行优化训练过程简单且高效。适用场景: 适合场景是有明确的偏好数据并且希望快速迭代和调整模型的偏好输出。 2. ORPOOff-Policy Preference Optimization: 目标: 在偏离当前策略的数据上使用偏好信息优化模型使其在长期上更加符合用户的期望。方法: 利用“离线”策略的偏好反馈通过基于强化学习的优化手段来调整模型。 ORPO 使用先前收集的数据进行优化而不需要像 DPO 那样直接使用偏好进行梯度优化。它与 DPO 不同的是模型可以在已经采集好的数据上进行偏好训练不需要实时获取偏好反馈。优点: 更适合在大规模历史数据上进行训练训练更为稳健可以更好地处理复杂的偏好优化问题。适用场景: 适合有大量历史偏好数据的情况尤其是难以获取实时偏好反馈的场景。 两者主要区别在于 DPO 是一种直接基于偏好梯度进行优化的策略而 ORPO 通过强化学习的方式在离线数据上进行优化。 4.KTO 数据集
KTO 数据集与偏好数据集类似但不同于给出一个更优的回答和一个更差的回答KTO 数据集对每一轮问答只给出一个 true/false 的 label。除了 instruction 以及 input 组成的人类最终输入和模型回答 outputKTO 数据集还需要一个额外的 kto_tag 列(true/false) 来表示人类反馈 一轮问答中的格式如下 [{instruction: 人类指令必填,input: 人类输入选填,output: 模型回答必填,kto_tag: 人类反馈 [true/false]必填}
]dataset_info.json 数据集名称: {file_name: data.json,columns: {prompt: instruction,query: input,response: output,kto_tag: kto_tag}
}KTO 在这里指的是 “Knowledge Transfer Optimization”知识迁移优化相关的数据集。它用于优化模型在知识迁移过程中的能力特别是在人机交互场景中评估模型生成的答案是否符合人类的预期。 主要内容 KTO 数据集不仅包含模型的生成结果还包括人类的反馈用来优化模型的响应能力。这种数据集设计类似于偏好优化数据集Preference Optimization但区别在于KTO 不是让人类对两种回答进行排序而是对每一轮问答通过 true/false 的标签直接评估模型的回答是否合格。 数据集结构 Instruction: 人类的指令或提问。Input: 人类最终的输入内容。Output: 模型生成的回答。kto_tag: 人类反馈true/false用于标注该模型的回答是否符合预期。 应用场景 KTO 数据集特别适合用于模型优化尤其是在模型需要从训练数据中学习如何更好地回应人类问题时。通过这种数据集模型能够更高效地识别正确的反馈模式从而提升在实际应用中的表现。这类数据集常用于大语言模型的强化学习阶段用来替代复杂的奖励建模过程。 5.多模态数据集
多模态数据集需要额外添加一个 images 列包含输入图像的路径。目前仅支持单张图像输入。
[{instruction: 人类指令必填,input: 人类输入选填,output: 模型回答必填,images: [图像路径必填]}
]dataset_info.json 描述为
数据集名称: {file_name: data.json,columns: {prompt: instruction,query: input,response: output,images: images}
}2.ShareGPT 格式 Note ShareGPT 格式中的 KTO数据集(样例)和多模态数据集(样例) 与 Alpaca 格式的类似。预训练数据集不支持 ShareGPT 格式。 1.指令监督微调数据集
与 alpaca 格式相比sharegpt 格式支持更多的角色种类如 human、gpt、observation、function 等。他们构成一个对象列表呈现在 conversations 列中。
样例如下
{conversations: [{from: human,value: 你好我出生于1990年5月15日。你能告诉我我今天几岁了吗},{from: function_call,value: {\name\: \calculate_age\, \arguments\: {\birthdate\: \1990-05-15\}}},{from: observation,value: {\age\: 31}},{from: gpt,value: 根据我的计算你今天31岁了。}],tools: [{\name\: \calculate_age\, \description\: \根据出生日期计算年龄\, \parameters\: {\type\: \object\, \properties\: {\birthdate\: {\type\: \string\, \description\: \出生日期以YYYY-MM-DD格式表示\}}, \required\: [\birthdate\]}}]
}Note human 和 observation 必须出现在奇数位置gpt 和 function 必须出现在偶数位置 dataset_info.json 描述为
数据集名称: {file_name: data.json,formatting: sharegpt,columns: {messages: conversations,system: system,tools: tools}
}2.偏好数据集
与 alpaca 类似
{conversations: [{from: human,value: 老虎会吃哪一个草还是树叶}],chosen: {from: gpt,value: 我很高兴能帮助你解答问题不过我必须指出这个问题本身可能没有意义。老虎是食肉动物通常不吃草或树叶。它们的饮食主要包括大型有蹄动物、小型哺乳动物和鸟类。\n\n如果你提出这个问题是出于好奇或有特定原因我很乐意帮助你找到更多关于老虎饮食习惯的信息或者建议资源让你更多了解这些壮丽的生物。请告诉我如何进一步协助你},rejected: {from: gpt,value: 一只老虎是食肉动物这意味着它的饮食主要是肉类。老虎主要猎捕和吃其他动物如鹿和野猪。它们不会选择吃草或树叶因为这些不是它们自然饮食的一部分。}
}格式如下
[{conversations: [{from: human,value: 人类指令},{from: gpt,value: 模型回答},{from: human,value: 人类指令}],chosen: {from: gpt,value: 优质回答},rejected: {from: gpt,value: 劣质回答}}
]dataset_info.json 的描述为
数据集名称: {file_name: data.json,formatting: sharegpt,ranking: true,columns: {messages: conversations,chosen: chosen,rejected: rejected}
}3.OpenAI 格式
OpenAI 格式仅仅是 sharegpt 格式的一种特殊情况其中第一条消息可能是系统提示词
[{messages: [{role: system,content: 系统提示词选填},{role: user,content: 人类指令},{role: assistant,content: 模型回答}]}
]dataset_info.json
数据集名称: {file_name: data.json,formatting: sharegpt,columns: {messages: messages},tags: {role_tag: role,content_tag: content,user_tag: user,assistant_tag: assistant,system_tag: system}
}