使用LoRA进行大模型数据微调三

TwoAdmin 2025-10-25 3 10/25

大模型微调的数据格式,核心可以归结为两种主流范式:一种是基于“对话结构”的 ShareGPT格式,另一种是基于“指令-回答”结构的 Alpaca格式

下面这两张表可以帮你快速了解它们的核心区别和结构:

特性 ShareGPT格式 (对话式) Alpaca格式 (指令式)
核心结构 一个 messages / conversations 数组,包含多轮对话 instruction + input(可选) + output的独立结构
适用场景 多轮对话、客服、聊天机器人 单轮问答、指令遵循、特定任务(如翻译、摘要)
优点 能清晰、完整地保留对话的上下文和逻辑 结构简单,针对性强,易于构建和扩展
缺点 结构相对复杂,解析和处理成本稍高 不适合处理包含复杂上下文的多轮对

ShareGPT格式

这是目前最流行的多轮对话微调格式,它通过一个messages数组来组织每一轮对话,数组中每个对象都包含role(角色)和content(内容)。

标准单轮示例:

json
{
  "messages": [
    { "role": "user", "content": "什么是机器学习?" },
    { "role": "assistant", "content": "机器学习是人工智能的一个分支,它使计算机能够从数据中学习规律并做出决策。" }
  ]
}

多轮对话示例:

json
{
  "messages": [
    { "role": "system", "content": "你是一位专业的心理健康顾问。" },
    { "role": "user", "content": "我最近总是失眠,怎么办?" },
    { "role": "assistant", "content": "失眠可能与压力和焦虑有关。能告诉我这种情况持续多久了吗?" },
    { "role": "user", "content": "大概两周了。" },
    { "role": "assistant", "content": "建议你尝试建立规律的作息,睡前避免使用电子产品。如果情况没有改善,可以考虑就医。" }
  ]
}

格式要点:对话可以以可选的system消息开始,后续消息必须在userassistant角色间交替,并且必须以assistant的角色结束

Alpaca格式

这种格式结构更为简单直接,非常适合为模型定义具体的、独立的单轮任务

标准Alpaca格式示例:

json
{
  "instruction": "将以下英文句子翻译成中文",
  "input": "Machine learning is revolutionizing technology.",
  "output": "机器学习正在彻底改变技术。"
}

格式要点instruction描述任务,input是可选的输入内容,output是期望的模型回答。如果任务本身足够清晰,input字段可以留空。

进阶格式:思维链与工具调用

为了提升模型在复杂任务上的表现,数据格式还可以变得更“高级”。

  • 思维链 (Chain-of-Thought):通过在assistant的回答中加入<think></think>标签,让模型展示其推理过程。这能显著提升模型在逻辑推理、数学问题上的准确性

    json
    {
      "messages": [
        { "role": "user", "content": "一个笼子里有鸡和兔,共35个头,94只脚,问鸡兔各几只?" },
        { "role": "assistant", "content": "<think>假设全是鸡,则应有70只脚,比实际少24只。每将一只鸡换成一只兔,脚数增加2,所以需要换12只兔。因此,兔有12只,鸡有23只。</think> 兔子有12只,鸡有23只。" }
      ]
    }
  • 工具调用 (Tool Use):这种格式会引入tool_calltool等新角色,用于训练模型在需要时调用外部工具(如搜索引擎、计算器、API)来获取信息或执行操作

    json
    {
      "messages": [
        { "role": "user", "content": "北京今天天气怎么样?" },
        { "role": "assistant", "content": null, "tool_calls": [{"name": "query_weather", "arguments": "{\"city\": \"北京\"}"}] },
        { "role": "tool", "content": "{\"temperature\": \"25°C\", \"condition\": \"晴朗\"}" },
        { "role": "assistant", "content": "北京今天天气晴朗,气温为25°C。" }
      ]
    }

总结与最佳实践

最佳实践 具体说明
选择合适格式 多轮对话选ShareGPT;单轮指令选Alpaca。
保证数据质量 确保回答准确、有用、风格一致,这是微调效果的基石。
确保数据多样性 覆盖不同场景、主题和难度,帮助模型更好地泛化
平衡数据分布 各类别样本数量不应偏差过大,防止模型产生偏见
使用JSONL格式 每一行是一个独立的JSON对象,这是业界通用标准,便于大规模流式处理
统一编码 所有文件使用 UTF-8 编码
- THE END -
Tag:

TwoAdmin

5月19日16:28

最后修改:2026年5月19日
0

非特殊说明,本博所有文章均为博主原创。