【多模态大模型MLLM】指令微调的一点思考
对于Alpaca 格式和ShareGPT 格式的区别在于,Alpaca 格式将问-答对中的问题拆成了任务描述(instruction)和输入(input)两部分,个人认为这样做的优势在于,模型学习的时候attention模块可以着重学习任务的统一范式,而将输入的细节放置在次要位置。这样对于某一些相同类型的任务,能够更快的收敛到较好的程度。
Alpaca 格式
Alpaca 是基于 Meta 开源的 LLaMA 模型构建的一种微调数据集格式,特别用于 instruction-tuning,即指令微调。其数据格式的特点是提供了一个明确的任务描述(instruction)、输入(input)和输出(output)三部分。
{
"instruction": "Summarize the following text.",
"input": "Artificial intelligence (AI) is a rapidly growing field...",
"output": "AI is an evolving technology that is growing quickly in various fields..."
}
字段说明:
instruction: 任务的指令,告诉模型需要完成什么操作。
input: 任务所需的输入。如果任务是开放式的或者不需要明确的输入,这一字段可以为空字符串。
output: 任务的期望输出,也就是模型在给定指令和输入情况下需要生成的内容。
ShareGPT 格式
ShareGPT 格式来源于通过记录 ChatGPT 与用户对话的数据集,主要用于对话系统的训练。它更侧重于多轮对话数据的收集和组织,模拟用户与 AI 之间的交互。
{
"conversations": [
{
"role": "user",
"content": "What is the capital of France?"
},
{
"role": "assistant",
"content": "The capital of France is Paris."
},
{
"role": "user",
"content": "Can you tell me more about Paris?"
},
{
"role": "assistant",
"content": "Paris is the largest city and the capital of France. It is known for its art, culture, and history..."
}
]
}
字段说明:
conversations: 这是一个对话列表,包含每轮对话的角色和内容。
role: 表示对话的角色,通常为“user”表示用户,“assistant”表示AI助手。
content: 具体的对话内容。