REILX's picture
Update README.md
4fc636e verified
metadata
license: apache-2.0
datasets:
  - REILX/neo_sft_phase2_conversations
  - REILX/neo_sft_phase2_multi
  - REILX/neo_sft_phase2_single
language:
  - en
  - zh
pipeline_tag: text-generation
tags:
  - text-generation-inference
  - qwen
  - chat
  - sft
  - conversational
  - lora

基础模型:

https://huggingface.co/Qwen/Qwen2-7B-Instruct

数据集

以 m-a-p/neo_sft_phase2 数据集为基石,构建了四个子数据集,分别如下:

  1. REILX/neo_sft_phase2_conversations
  2. REILX/neo_sft_phase2_multi
  3. REILX/neo_sft_phase2_single
  4. REILX/neo_sft_phase2_all_pair

数据集构建规则

REILX/neo_sft_phase2_conversations

  • 方法: 将每轮对话视作独立的问答对,融入上下文信息构建样本。
  • 具体步骤:
    1. 针对每个“conversation”,逐一遍历其对话轮次。
    2. 将当前“human”轮次的“value”与之前所有轮次的对话内容拼接,构成完整的“instruction”。
    3. 将当前“gpt”轮次的“value”作为最终的“output”。
    4. “input”可为空白,亦可注入适当的提示信息。

REILX/neo_sft_phase2_multi

  • 方法: 将每轮对话视作独立的问答对,利用上下文信息构建样本。
  • 具体步骤:
    1. 针对每个“conversation”,逐一遍历其对话轮次。
    2. 将每个“conversation”中所有“human”的“value”拼接,构成完整的“instruction”。
    3. 将每个“conversation”中所有“gpt”的“value”拼接,构成最终的“output”。
    4. “input”可为空白,亦可注入适当的提示信息。

REILX/neo_sft_phase2_single

  • 具体步骤:
    1. 针对每个“conversation”,逐一遍历其对话轮次。
    2. 仅保留包含一轮对话的“conversation”,舍弃多轮对话数据。
    3. 将该“conversation”的“human”的“value”作为“instruction”。
    4. 将该“conversation”的“gpt”的“value”作为“output”。
    5. “input”可为空白,亦可注入适当的提示信息。

REILX/neo_sft_phase2_all_pair

  • 具体步骤:
  1. 输入为一个json文件,遍历每一个conversations
  2. conversations包含多轮对话,需要按照对应的轮数构成新数据集
  3. 比如1、2轮构成一个jsonl的一行,3、4构成一行,5、6构成一行等等等,直到完整的使用结束conversations
  4. 将该“conversation”的“human”的“value”作为“instruction”
  5. 将该“conversation”的“gpt”的“value”作为“output”
  6. “input”可为空白,亦可注入适当的提示信息。

训练参数

REILX/neo_sft_phase2_conversations

  • learning_rate: 5e-06
  • train_batch_size: 1
  • eval_batch_size: 8
  • cutoff_len:8192
  • seed: 42
  • distributed_type: multi-GPU
  • num_devices: 8
  • gradient_accumulation_steps: 8
  • total_train_batch_size: 64
  • total_eval_batch_size: 64
  • optimizer: Adam with betas=(0.9,0.999) and epsilon=1e-08
  • lr_scheduler_type: cosine
  • lr_scheduler_warmup_ratio: 0.1
  • num_epochs: 5.0

REILX/neo_sft_phase2_multi

  • learning_rate: 5e-05
  • train_batch_size: 1
  • eval_batch_size: 8
  • cutoff_len:8192
  • seed: 42
  • distributed_type: multi-GPU
  • num_devices: 8
  • gradient_accumulation_steps: 8
  • total_train_batch_size: 64
  • total_eval_batch_size: 64
  • optimizer: Adam with betas=(0.9,0.999) and epsilon=1e-08
  • lr_scheduler_type: cosine
  • lr_scheduler_warmup_ratio: 0.1
  • num_epochs: 5.0

REILX/neo_sft_phase2_single

  • learning_rate: 5e-05
  • train_batch_size: 1
  • eval_batch_size: 8
  • cutoff_len:4096
  • seed: 42
  • distributed_type: multi-GPU
  • num_devices: 8
  • gradient_accumulation_steps: 8
  • total_train_batch_size: 64
  • total_eval_batch_size: 64
  • optimizer: Adam with betas=(0.9,0.999) and epsilon=1e-08
  • lr_scheduler_type: cosine
  • lr_scheduler_warmup_ratio: 0.1
  • num_epochs: 5.0

REILX/neo_sft_phase2_all_pair

  • learning_rate: 2e-05
  • train_batch_size: 1
  • eval_batch_size: 8
  • cutoff_len:4096
  • seed: 42
  • distributed_type: multi-GPU
  • num_devices: 8
  • gradient_accumulation_steps: 8
  • total_train_batch_size: 64
  • total_eval_batch_size: 64
  • optimizer: Adam with betas=(0.9,0.999) and epsilon=1e-08
  • lr_scheduler_type: cosine
  • lr_scheduler_warmup_ratio: 0.1
  • num_epochs: 5.0

损失图

REILX/neo_sft_phase2_conversations

neo_sft_phase2_conversations_loss

REILX/neo_sft_phase2_multi

neo_sft_phase2_multi_loss

REILX/neo_sft_phase2_single

neo_sft_phase2_single_loss

REILX/neo_sft_phase2_all_pair

neo_sft_phase2_all_pair_loss