LLaMA Factory进行微调训练的时候,有哪些已经注册的数据集呢?
下面列出 LLaMA‑Factory(开源的 LLM 交互式微调与数据标注平台)内置支持的全部数据集及其主要特性、来源和使用方式,方便你快速挑选合适的数据来进行指令微调、RLHF、对话生成等任务。
1️⃣ LLaMA‑Factory 官方提供的“指令/对话”数据集(已在 datasets
中注册)
数据集名称 | 类型 | 规模(示例/条目) | 语言 | 主要来源 | 适用场景 |
---|---|---|---|---|---|
alpaca_gpt4 | 指令 | 52 k | 英文 | Stanford‑Alpaca + GPT‑4 重新标注 | 常规指令微调 |
alpaca | 指令 | 52 k | 英文 | Stanford‑Alpaca (OpenAI text-davinci-003 ) | 快速实验、baseline |
sharegpt | 多轮对话 | 90 k(已去重) | 英文 | ShareGPT 网页抓取 | 多轮对话微调 |
openai_webgpt | 多轮对话 | 28 k | 英文 | OpenAI WebGPT 采样 | 对话回复、检索 |
vicuna_v1.1 | 多轮对话 | 70 k | 英文 | Vicuna‑1.1 (ShareGPT + LLaMA) | 受限对话 |
hh_rlhf | RLHF 反馈 | 70 k (pre‑selected) | 英文 | Anthropic “Helpful‑Harmless” | RLHF/奖励模型训练 |
oasst1 | 多轮对话 | 14 M (raw) / 2 M (filtered) | 多语言 | Open‑Assistant (Reddit) | 大规模多语言对话 |
code_alpaca_gpt4 | 编码指令 | 52 k | 英文 | Code‑Alpaca (GPT‑4) | 编程指令、代码生成 |
codealpaca | 编码指令 | 52 k | 英文 | CodeAlpaca (OpenAI code-davinci-002 ) | 代码微调 |
self_instruct | 指令 | 83 k (synthetic) | 英文 | Self‑Instruct (GPT‑3 生产) | 扩展指令多样性 |
flan_collection | 多任务指令 | 1 M+ (多子集) | 多语言 | FLAN (Google) | 多任务指令微调 |
wizardlm | 多轮对话/指令 | 101 k | 英文 | WizardLM (GPT‑4) | 复杂对话 |
medical_meadow | 医疗指令 | 12 k | 英文 | Medical Meadow (LLM‑Based) | 医疗/健康对话 |
gpt4all | 多轮对话 | 46 k | 多语言 | GPT‑4‑All (OpenAI+LoRA) | 通用对话 |
xsum (as instruction) | 摘要指令 | 200 k | 英文 | XSum (CNN) | 摘要任务 |
samsum (as dialogue) | 对话摘要 | 13 k | 英文 | SAMSum | 对话摘要 |
cnn_dailymail (as summarization) | 摘要 | 287 k | 英文 | CNN/DailyMail | 长文本摘要 |
dolly (databricks) | 指令 | 15 k | 英文 | Dolly 2.0 (OpenAI) | 指令微调 |
gpt4all_prompt_gpt4 | Prompt‑style 指令 | 45 k | 英文 | GPT‑4All prompt collection | Prompt‑engineering |
OpenOrca | 多轮对话 | 8 M+ (filtered 200 k) | 多语言 | OpenOrca (OpenAI) | 大规模对话微调 |
übersetzungs‑corpus | 翻译指令 | 3 M+ | 多语言 | OPUS, WMT | 翻译任务 |
eus (Extract‑Update‑Summarize) | 增量摘要 | 60 k | 英文 | EUS dataset (research) | 增量更新摘要 |
说明
- 表中 规模 为公开可用版本的条目数量,实际使用时常常在
train
/validation
划分后会更少。- 大多数数据集已经在
datasets
(🤗 Hub)中注册,LLaMA‑Factory 会在运行llamafactory train
时自动下载并转化为统一的 instruction format({'instruction':..., 'input':..., 'output':...}
)。- 对于 多语言、代码、医学 等专用领域,建议单独组合对应子集(如
flan_collection
+code_alpaca_gpt4
)进行 混合微调,可以显著提升专业化能力。
2️⃣ 如何在 LLaMA‑Factory 中使用这些数据集
2.1 基础命令(指令微调示例)
# 以 alpaca_gpt4 为例
CUDA_VISIBLE_DEVICES=0 llamafactory train \--model_name_or_path /path/to/llama-7b \--dataset alpaca_gpt4 \--output_dir ./output/llama-7b-alpaca-gpt4 \--do_train True \--do_eval True \--per_device_train_batch_size 4 \--per_device_eval_batch_size 4 \--learning_rate 2e-5 \--num_train_epochs 3 \--fp16 True
2.2 多数据集混合(推荐做法)
# 使用 alpaca_gpt4 + code_alpaca_gpt4 + sharegpt 三个子集
CUDA_VISIBLE_DEVICES=0,1 llamafactory train \--model_name_or_path /path/to/llama-13b \--datasets alpaca_gpt4,code_alpaca_gpt4,sharegpt \--dataset_ratios 0.4,0.3,0.3 # 按比例抽样(可省略,默认均匀抽样) \--output_dir ./output/llama-13b-mixed \--do_train True \--fp16 True \--gradient_accumulation_steps 4 \--per_device_train_batch_size 2 \--learning_rate 1e-5 \--num_train_epochs 5
--datasets
接受 逗号分隔的多个数据集名称。--dataset_ratios
(可选)控制抽样权重,帮助在 大数据集(如 OASST1)和 小数据集(如 medical_meadow)之间平衡。
2.3 使用自定义本地数据
如果你有自己的 JSON/JSONL 或 CSV 格式数据,只要满足 {'instruction':..., 'input':..., 'output':...}
结构,就可以通过 --dataset local
并提供路径:
CUDA_VISIBLE_DEVICES=0 llamafactory train \--model_name_or_path /path/to/llama-7b \--dataset local \--dataset_path ./my_dataset.jsonl \--output_dir ./output/custom \--do_train True
需要注意:文件必须是 UTF‑8 编码,每行必须是合法 JSON 对象。
3️⃣ 关键考量:挑选合适的训练数据
目标 | 推荐数据集组合 | 说明 |
---|---|---|
通用对话 | sharegpt , vicuna_v1.1 , wizardlm | 多轮对话质量高,覆盖常见聊天场景 |
指令遵循 | alpaca_gpt4 , self_instruct , flan_collection | 以指令+答案的格式为主 |
代码生成 | code_alpaca_gpt4 , codealpaca , starcoder_pretrain (外部) | 包含多语言代码(Python/JavaScript/SQL) |
多语言 | flan_collection (多语言子集),openorca (过滤后) | 支持 20+ 语言,对齐/翻译任务 |
医学/健康 | medical_meadow , pubmed_qa (外部) | 专业术语丰富,需要额外的安全过滤 |
RLHF 训练 | hh_rlhf , openai_webgpt , oasst1 (人类对齐) | 用于奖励模型(Reward Model)或 PPO 步骤 |
摘要/长文本 | cnn_dailymail , xsum , samsum | 长文生成、压缩任务常用基准 |
混合领域 | 任选 2‑3 个(如 alpaca_gpt4 + code_alpaca_gpt4 + sharegpt ) | 在微调时加入 任务标签(task_type )可帮助模型学习不同风格 |
4️⃣ 小技巧 & 常见坑
问题 | 解决方案 |
---|---|
下载慢/超时 | 在中国大陆使用 export HF_ENDPOINT=https://hf-mirror.com (或者自行搭建 HuggingFace 镜像),或提前在本地 datasets 缓存。 |
数据大小不匹配(train/eval 不同) | 手动对 train_split / eval_split 进行指定,例:--train_split train[:90%] --eval_split train[90%:] |
显存不足 | 开启 LoRA(--lora_rank 8 ),并使用 FP16 (--fp16 True ) 或 DeepSpeed ZeRO‑3 (--deepspeed ds_config.json ) |
指令/对话格式不统一 | 在 prepare_dataset.py 中使用 llamafactory/data 提供的 convert_to_instruction 工具统一化;也可以在 datasets 中 map lambda,示例:dataset.map(lambda x: {'instruction': x['prompt'], 'output': x['completion']}) |
多语言训练时出现乱码 | 确认文件是 UTF‑8 with BOM(或直接 iconv -f ISO-8859-1 -t UTF-8 转码)并在 DatasetInfo 中声明 language 。 |
RLHF 步骤报错 “no reward model found” | 确保先运行 llamafactory train 产生 reward_model ,路径通过 --reward_model_path 指定;或者在 llamafactory rl 配置文件中显式写入 reward_model_name_or_path 。 |
5️⃣ 参考资源(官方/社区)
资源 | 链接 |
---|---|
LLaMA‑Factory 项目主页 | https://github.com/hiyouga/LLaMA-Factory |
官方数据集文档 (datasets list) | https://github.com/hiyouga/LLaMA-Factory#supported-datasets |
HuggingFace Datasets Hub | https://huggingface.co/datasets |
LoRA + DeepSpeed 示例 | https://github.com/hiyouga/LLaMA-Factory/blob/main/scripts/finetune_lora_deepspeed.sh |
中文社区数据集合集 | https://github.com/THU-KEG/Chinese-LLaMA-Dataset |
RLHF 教程 | https://github.com/hiyouga/LLaMA-Factory/blob/main/docs/rlhf.md |
🎯 快速上手小结
- 选定目标(对话、指令、代码、RLHF…)
- 挑选相应数据集(参考上表的推荐组合)
- 在
config.yaml
或命令行里声明--datasets
(或--dataset
单个) - 确保混合精度/LoRA/DeepSpeed 兼容(尤其在 V100 等显卡上)
- 跑训练 + 评估,后续可用
llamafactory evaluate
或llamafactory inference
检查效果。
按以上步骤,你就能在 LLaMA‑Factory 中轻松加载并微调所需的数据集。如果还有关于特定数据集的细节(如许可、过滤策略)或训练参数的疑问,随时再来问我!祝你实验顺利 🚀