PaddleNLP icon indicating copy to clipboard operation
PaddleNLP copied to clipboard

在 `paddlenlp 3.0` 的微调案例中数据结构有限性无法满足当前大模型微调所需要的数据结构

Open natureLanguageQing opened this issue 5 months ago • 1 comments

Feature request

问题描述

当前在 paddlenlp 3.0 的微调过程中,使用的文本生成数据结构如下:

{
  "src": "类型#裙*颜色#蓝色*风格#清新*图案#蝴蝶结",
  "tgt": "裙身处采用立体蝴蝶结装饰辅以蓝色条带点缀,令衣身造型饱满富有层次的同时为其注入一丝甜美气息。将女孩清新娇俏的一面衬托而出。"
}

虽然此结构有效,但在实际应用中发现它未能达到最佳的生成效果。经过分析,智谱的数据结构似乎更适合文本生成模型。

期望的数据结构

建议将数据结构改为类似智谱的数据结构,以提升模型的性能。智谱的数据结构的格式如下:

{
  "messages": [
    {
      "role": "user",
      "content": "请描述一下裙子的细节:类型、颜色、风格和图案。"
    },
    {
      "role": "assistant",
      "content": "类型#裙*颜色#蓝色*风格#清新*图案#蝴蝶结"
    },
    {
      "role": "user",
      "content": "请根据这些细节生成一段描述裙子的文本。"
    },
    {
      "role": "assistant",
      "content": "裙身处采用立体蝴蝶结装饰辅以蓝色条带点缀,令衣身造型饱满富有层次的同时为其注入一丝甜美气息。将女孩清新娇俏的一面衬托而出。"
    }
  ]
}

修改建议

  1. 数据结构调整: 将数据结构从单一的 srctgt 形式改为 messages 列表格式,模拟用户与助手的对话。
  2. 内容组织: 每个对话轮次包含 rolecontent 字段,更清晰地分隔输入和输出。
  3. 上下文提供: 通过模拟对话过程,让模型理解和生成更准确的文本描述。

实施步骤

  1. 更新数据生成脚本: 修改现有的数据生成脚本,以输出符合新数据结构的 JSON 格式。
  2. 调整微调配置: 根据新的数据结构更新微调配置,以确保模型能够处理新的输入格式。
  3. 测试和验证: 使用修改后的数据结构进行模型微调,测试生成效果是否有所改进。

附加信息

如有进一步问题或需要讨论的地方,请在此 issue 中留言。谢谢!

Motivation

  1. 数据结构调整: 将数据结构从单一的 srctgt 形式改为 messages 列表格式,模拟用户与助手的对话。
  2. 内容组织: 每个对话轮次包含 rolecontent 字段,更清晰地分隔输入和输出。
  3. 上下文提供: 通过模拟对话过程,让模型理解和生成更准确的文本描述。

Your contribution

  1. 数据结构调整: 将数据结构从单一的 srctgt 形式改为 messages 列表格式,模拟用户与助手的对话。
  2. 内容组织: 每个对话轮次包含 rolecontent 字段,更清晰地分隔输入和输出。
  3. 上下文提供: 通过模拟对话过程,让模型理解和生成更准确的文本描述。

natureLanguageQing avatar Aug 26 '24 08:08 natureLanguageQing