下面列出 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)

增量更新摘要

説明

  1. 表中 規模 為公開可用版本的條目數量,實際使用時常常在 train/validation 劃分後會更少。
  2. 大多數數據集已經在 datasets(🤗 Hub)中註冊,LLaMA‑Factory 會在運行 llamafactory train 時自動下載並轉化為統一的 instruction format{'instruction':..., 'input':..., 'output':...})。
  3. 對於 多語言代碼醫學 等專用領域,建議單獨組合對應子集(如 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/JSONLCSV 格式數據,只要滿足 {'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 工具統一化;也可以在 datasetsmap 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


🎯 快速上手小結

  1. 選定目標(對話、指令、代碼、RLHF…)
  2. 挑選相應數據集(參考上表的推薦組合)
  3. config.yaml 或命令行裏聲明 --datasets(或 --dataset 單個)
  4. 確保混合精度/LoRA/DeepSpeed 兼容(尤其在 V100 等顯卡上)
  5. 跑訓練 + 評估,後續可用 llamafactory evaluatellamafactory inference 檢查效果。

按以上步驟,你就能在 LLaMA‑Factory 中輕鬆加載並微調所需的數據集。如果還有關於特定數據集的細節(如許可、過濾策略)或訓練參數的疑問,隨時再來問我!祝你實驗順利 🚀