大模型微调——训练数据集的格式Alpaca 和 ShareGPT


AlpacaShareGPT 是两种常见的数据格式,通常用于训练或微调基于指令(instruction-based)的语言模型。每种格式都反映了数据组织和任务指令的不同方式。

1. Alpaca 格式

Alpaca 是基于 Meta 开源的 LLaMA 模型构建的一种微调数据集格式,特别用于 instruction-tuning,即指令微调。其数据格式的特点是提供了一个明确的任务描述(instruction)、输入(input)和输出(output)三部分。

典型的 Alpaca 数据集格式

{
    "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: 任务的期望输出,也就是模型在给定指令和输入情况下需要生成的内容。

特点

  • 结构简单,易于理解。
  • 明确分离任务指令和输入内容,适合各种自然语言处理任务,如文本生成、翻译、总结等。

2. ShareGPT 格式

ShareGPT 格式来源于通过记录 ChatGPT 与用户对话的数据集,主要用于对话系统的训练。它更侧重于多轮对话数据的收集和组织,模拟用户与 AI 之间的交互。

典型的 ShareGPT 数据集格式

{
    "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: 具体的对话内容。

特点

  • 结构适合对话场景,模型可以学习如何通过多轮互动来处理问题。
  • 更贴近人类与 AI 交互的方式,适用于构建和微调对话模型。

总结

  • Alpaca 格式适用于指令驱动的任务,如文本生成、摘要、翻译等,具有清晰的指令、输入和输出字段。
  • ShareGPT 格式则侧重于多轮对话,适用于对话系统的训练,模拟用户与 AI 的交互。

选择哪种格式取决于你想要微调的模型任务类型。如果是基于指令的任务,Alpaca 格式是理想的选择;如果是对话模型,ShareGPT 格式会更合适。

当你在使用ShareGPT数据集中对LLM(Large Language Model)进行微调时,`dataset_info.json` 文件是一个关键的配置文件,它提供了关于数据集结构、标记规范以及训练相关的元信息。以下是创建或配置这个文件的一些要点: 1. **基本信息**: - `name`: 数据集的名称,例如 "custom_sharpgpt_dataset"。 - `description`: 简短描述数据集的内容目的。 2. **split_info**: - `train`: 训练部分的配置,包括文件路径占总样本的比例。 - `validation`: 验证部分的信息,如果有的话。 - `test` (可选): 测试部分的信息,用于评估模型性能。 3. **tokenizer_config**: 如果使用自定义分词器,可以提供有关如何将文本转换为模型期望格式的细节。 - `model_name_or_path`: LLM的预训练模型名或路径。 - `do_lower_case` 或 `use_fast_tokenizer` (取决于tokenizer): 是否需要进行小写处理或使用快速分词器。 4. **column_names**: 如果数据包含列名,列举出来,例如 "text", "label",表示输入目标标签字段。 5. **additional_metadata** (可选): 可能包含任何额外的元数据,如数据来源、数据清洗步骤等。 示例配置: ```json { "name": "custom_sharpgpt_dataset", "description": "微调ShareGPT的文本生成任务数据", "split_info": { "train": {"file": "train.txt", "percentage": 0.8}, "validation": {"file": "val.txt", "percentage": 0.1}, "test": {"file": "test.txt", "percentage": 0.1} }, "tokenizer_config": { "model_name_or_path": "sharegpt-base", "do_lower_case": false, "use_fast_tokenizer": true }, "column_names": ["input_text", "target_text"], "additional_metadata": { "data_preprocessing_steps": "去除特殊字符数字" } } ``` 记得在实际操作前备份原始数据,并确保文件路径准确无误。完成后,你可以将此配置文件传递给微调脚本,让模型基于提供的数据进行学习。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值