大模型数据集全景总结:训练、预训练、微调、评测数据集完整指南

在这里插入图片描述

本文全面梳理大模型领域相关的开源数据集,涵盖预训练语料、指令微调数据、偏好对齐数据、评测基准数据四大类,提供下载地址、使用方法和最佳实践。

目录


一、数据集全景图

1.1 数据集分类体系

┌─────────────────────────────────────────────────────────────────┐
│                    大模型数据集分类                                │
├─────────────────────────────────────────────────────────────────┤
│                                                                  │
│  1. 预训练语料(海量无标注文本)                                   │
│     ├── 通用网页数据: Common Crawl, C4, RefinedWeb               │
│     ├── 代码数据: The Stack, StarCoder Data                      │
│     ├── 学术论文: arXiv, S2ORC                                   │
│     ├── 书籍: Books3, Gutenberg                                  │
│     └── 百科: Wikipedia                                           │
│                                                                  │
│  2. 指令微调数据(输入→输出对)                                    │
│     ├── 通用指令: Alpaca, ShareGPT, OpenAssistant               │
│     ├── 中文指令: BELLE, Firefly, COIG                           │
│     ├── 代码指令: CodeAlpaca, Magicoder                         │
│     └── 数学指令: MetaMath, WizardMath                           │
│                                                                  │
│  3. 偏好对齐数据(chosen/rejected 对)                            │
│     ├── DPO 数据: UltraFeedback, Nectar                         │
│     ├── RLHF 数据: Anthropic HH, OpenAI Summarize              │
│     └── 安全对齐: SafeRLHF, BeaverTails                         │
│                                                                  │
│  4. 评测基准数据(标准化测试)                                     │
│     ├── 知识: MMLU, ARC, C-Eval                                 │
│     ├── 推理: GSM8K, MATH, BBH                                  │
│     ├── 代码: HumanEval, MBPP                                   │
│     ├── 对话: MT-Bench, AlpacaEval                              │
│     └── 安全: TruthfulQA, ToxicChat                             │
│                                                                  │
└─────────────────────────────────────────────────────────────────┘

1.2 数据集速查表

数据集类型规模语言用途下载
C4预训练750GB英文通用预训练c4
RefinedWeb预训练5TB英文高质量网页tiiuae/refinedweb
The Stack v2预训练67TB多语言代码预训练bigcode/the-stack-v2
Wikipedia预训练20GB多语言百科知识wikimedia/wikipedia
Alpaca微调52K英文通用指令tatsu-lab/alpaca
ShareGPT微调90K多语言对话数据anon8231489123/ShareGPT
BELLE微调3.5M中文中文指令BelleGroup/train_3.5M_CN
Firefly微调1.1M中文中文多任务YeungNLP/firefly-train-1.1M
UltraChat微调1.5M英文高质量对话stingning/ultrachat
UltraFeedback偏好64K英文DPO训练openbmb/UltraFeedback
Anthropic HH偏好170K英文安全对齐Anthropic/hh-rlhf
MMLU评测14K英文知识评估cais/mmlu
GSM8K评测8.5K英文数学推理openai/gsm8k
HumanEval评测164英文代码生成openai/openai_humaneval
C-Eval评测14K中文中文知识ceval/ceval-exam
CMMLU评测12K中文中文知识haonan-li/cmmlu

二、预训练语料数据集

2.1 通用网页数据

Common Crawl

属性
规模PB 级网页数据
更新频率每月更新
网址commoncrawl.org
使用方式需要大量清洗

C4 (Colossal Clean Crawled Corpus)

属性
规模750GB 纯文本
来源Common Crawl 清洗版
语言主要英文
HuggingFacedatasets.load_dataset("c4", "en")
用途T5、LLaMA 等预训练
from datasets import load_dataset
dataset = load_dataset("c4", "en", split="train", streaming=True)
for item in dataset.take(5):
    print(item["text"][:200])

RefinedWeb (Falcon 使用)

属性
规模5TB 高质量文本
特点严格去重和过滤
HuggingFacetiiuae/refinedweb
用途Falcon 模型预训练

RedPajama v2

属性
规模100B+ 文档,30TB+ 文本
特点完整开源,包含质量信号
HuggingFacetogethercomputer/RedPajama-Data-V2
用途LLaMA 复现

FineWeb (HuggingFace)

属性
规模15TB,1000亿文档
特点HuggingFace 精心清洗
HuggingFaceHuggingFaceFW/fineweb
用途高质量预训练
from datasets import load_dataset
dataset = load_dataset("HuggingFaceFW/fineweb", name="sample-10BT", split="train")

中文预训练语料

数据集规模HuggingFace
Wudao200GBshibing624/nli_zh
Chinese Web1.42TBbuilding-chinese-corpus
CLUECorpus100GBcluecorpussmall

2.2 代码数据

The Stack v2 (BigCode)

属性
规模67TB,600+ 编程语言
特点最大的开源代码数据集
HuggingFacebigcode/the-stack-v2
用途StarCoder2 预训练
from datasets import load_dataset
dataset = load_dataset("bigcode/the-stack-v2", split="train", streaming=True)

StarCoder Data

属性
规模783GB,86种语言
HuggingFacebigcode/starcoderdata
用途StarCoder 预训练

CodeSearchNet

属性
规模600万函数
语言Go/Java/JS/PHP/Python/Ruby
HuggingFacecode_search_net
用途代码理解训练

2.3 学术论文数据

数据集规模来源HuggingFace
arXiv200万+论文arxiv.orggfissore/arxiv-abstracts-2021
S2ORC1.3亿学术记录Semantic Scholarallenai/s2orc
PubMed3600万引用PubMedpubmed
Semantic Scholar2亿+论文AI2allenai/peS2o

2.4 书籍数据

数据集规模说明
Books319万本书The Pile 的一部分
Gutenberg6万+免费书公版书籍
BookCorpus1.1万本BERT 训练使用

2.5 百科知识数据

# Wikipedia
from datasets import load_dataset
wiki = load_dataset("wikimedia/wikipedia", "20231101.en", split="train")
print(f"Wikipedia 条目数: {len(wiki)}")

# 中文 Wikipedia
wiki_zh = load_dataset("wikimedia/wikipedia", "20231101.zh", split="train")

2.6 预训练数据集处理工具

# 使用 datatrove 处理预训练数据
from datatrove.pipeline.readers import JsonlReader
from datatrove.pipeline.filters import GopherRepetitionFilter
from datatrove.pipeline.writers import JsonlWriter

pipeline = [
    JsonlReader("raw_data/"),
    GopherRepetitionFilter(),
    JsonlWriter("cleaned_data/")
]

# 使用 dolma 处理
# https://github.com/allenai/dolma

三、指令微调数据集

3.1 英文指令数据

Alpaca (斯坦福)

属性
规模52K 指令
来源GPT-3.5 生成
HuggingFacetatsu-lab/alpaca
格式instruction/input/output
from datasets import load_dataset
dataset = load_dataset("tatsu-lab/alpaca", split="train")
print(dataset[0])
# {'instruction': 'Give three tips for staying healthy.',
#  'input': '', 
#  'output': '1. Eat a balanced diet...'}

ShareGPT / Vicuna

属性
规模90K+ 对话
来源用户分享的 ChatGPT 对话
HuggingFaceanon8231489123/ShareGPT_Vicuna_unfiltered
格式conversations

OpenAssistant (OASST2)

属性
规模66K 对话树
特点人工标注,多语言
HuggingFaceOpenAssistant/oasst2

UltraChat

属性
规模150万对话
特点高质量多轮对话
HuggingFacestingning/ultrachat

SlimOrca

属性
规模518K
特点经过严格过滤的高质量数据
HuggingFaceOpen-Orca/SlimOrca

LIMA

属性
规模1K(仅1000条!)
特点证明数据质量 > 数量
HuggingFaceGAIR/lima

Capybara

属性
规模16K 多轮对话
特点高质量,深度推理
HuggingFaceLDJnr/Capybara

3.2 中文指令数据

BELLE

属性
规模3.5M 中文指令
来源ChatGPT 生成
HuggingFaceBelleGroup/train_3.5M_CN
from datasets import load_dataset
dataset = load_dataset("BelleGroup/train_3.5M_CN", split="train")

Firefly

属性
规模1.1M,23种中文任务
特点任务类型丰富
HuggingFaceYeungNLP/firefly-train-1.1M

COIG (Chinese Open Instruction Generalist)

属性
规模多个子集
HuggingFaceBAAI/COIG-PC-core

Alpaca-GPT4-Chinese

属性
规模48K
特点GPT-4 生成的中文指令
HuggingFaceshibing624/alpaca-zh

MOSS-SFT

属性
规模1.1M
来源复旦 MOSS 项目
HuggingFacefnlp/moss-003-sft-data

Infinity-Instruct

属性
规模1000万+
特点最大规模中文指令集
HuggingFaceBAAI/Infinity-Instruct

3.3 代码指令数据

数据集规模HuggingFace特点
CodeAlpaca20Ksahil2801/CodeAlpaca-20k代码指令
Magicoder-OSS-Instruct75Kise-uiuc/Magicoder-OSS-Instruct-75K开源代码指令
Code-Feedback67Km-a-p/Code-Feedback代码反馈
StarCoder-Self-Instruct22Kcodeparrot/self-instruct-starcoder自指令
Evol-Instruct-Code80Knickrosh/Evol-Instruct-Code-80k-v1进化指令
Python Code Instructions18Kiamtarun/python_code_instructions_18kPython专用

3.4 数学指令数据

数据集规模HuggingFace特点
MetaMathQA400Kmeta-math/MetaMathQA数学推理增强
WizardMath96KWizardLM/WizardMath数学进化指令
MathInstruct262KTIGER-Lab/MathInstruct多样数学指令
GSM8K-RFT180Kgsm8k_rftGSM8K 增强
Camel Math50Kcamel-ai/math数学对话
NuminaMath-CoT860KAI-MO/NuminaMath-CoT数学推理链

3.5 指令数据生成工具

Self-Instruct

git clone https://github.com/yizhongw/self-instruct.git
cd self-instruct
python self_instruct.py --num_instructions 10000

Evol-Instruct (WizardLM)

git clone https://github.com/nlpxucan/WizardLM.git
cd WizardLM/Evol-Instruct
python evolve.py --output_file evol_instructions.json

Alpaca-Evol

pip install alpaca-evol
alpaca_evol generate --num 10000 --output alpaca_evol.json

四、偏好对齐数据集(RLHF/DPO)

4.1 英文偏好数据

UltraFeedback

属性
规模64K prompts,256K responses
特点GPT-4 评分的多维度反馈
HuggingFaceopenbmb/UltraFeedback
用途DPO 训练首选
from datasets import load_dataset
dataset = load_dataset("openbmb/UltraFeedback", split="train")
# {'prompt': '...', 'chosen': '...', 'rejected': '...'}

Anthropic HH-RLHF

属性
规模170K 对话
特点安全对齐数据
HuggingFaceAnthropic/hh-rlhf

Nectar

属性
规模183K
特点GPT-4 排序的偏好数据
HuggingFaceberkeley-nest/Nectar

SHP (Stanford Human Preferences)

属性
规模385K
HuggingFacestanfordnlp/SHP

HelpSteer2 (NVIDIA)

属性
规模21K
特点多维度评分
HuggingFacenvidia/HelpSteer2

Distilabel-Capybara-DPO

属性
规模10K
HuggingFaceargilla/distilabel-capybara-dpo-7k-binarized

4.2 中文偏好数据

数据集规模HuggingFace特点
CValues145KCValue/Comparison中文安全对齐
COIG-Pair50KBAAI/COIG-Pair中文偏好对
SafeRLHF40KPKU-Alignment/SafeRLHF安全偏好
Zhihu-RLHF50Km-a-p/zhihu_rlhf_3k知乎风格偏好

4.3 偏好数据构建方法

"""使用 GPT-4 构建 DPO 数据"""
import openai

client = openai.OpenAI()

def generate_preference_pair(question: str) -> dict:
    """生成偏好对"""
    # 生成多个回答
    responses = []
    for temp in [0.3, 0.7, 1.0]:
        resp = client.chat.completions.create(
            model="gpt-4o",
            messages=[{"role": "user", "content": question}],
            temperature=temp
        )
        responses.append(resp.choices[0].message.content)
    
    # 让 GPT-4 评分排序
    eval_prompt = f"""请对以下回答排序(1=最好,3=最差):
问题:{question}
回答A:{responses[0]}
回答B:{responses[1]}
回答C:{responses[2]}

输出格式:A排名X,B排名Y,C排名Z"""
    
    eval_resp = client.chat.completions.create(
        model="gpt-4o",
        messages=[{"role": "user", "content": eval_prompt}],
        temperature=0
    )
    
    # 根据排名构建 chosen/rejected
    # chosen = 最好的回答, rejected = 最差的回答
    return {
        "prompt": question,
        "chosen": responses[0],  # 假设A最好
        "rejected": responses[2]  # 假设C最差
    }

五、评测基准数据集

5.1 综合知识评测

MMLU (Massive Multitask Language Understanding)

属性
规模14K 题目,57个学科
任务多选题
HuggingFacecais/mmlu
难度高中到研究生级别
from datasets import load_dataset
mmlu = load_dataset("cais/mmlu", "all", split="test")
# {'question': '...', 'choices': ['A', 'B', 'C', 'D'], 'answer': 2}

C-Eval (中文评测)

属性
规模14K,52个学科
语言中文
HuggingFaceceval/ceval-exam

CMMLU (中文多任务)

属性
规模12K,67个任务
语言中文
HuggingFacehaonan-li/cmmlu

5.2 数学推理评测

GSM8K

属性
规模8.5K 小学数学题
特点需要多步推理
HuggingFaceopenai/gsm8k
from datasets import load_dataset
gsm8k = load_dataset("openai/gsm8k", "main", split="test")
# {'question': 'Natalia sold clips to 48 of her friends...', 
#  'answer': 'She sold 48/2 = 24 clips to her friends...\n#### 72'}

MATH

属性
规模12.5K 高等数学
难度高中竞赛级别
HuggingFacehendrycks/competition_math

GSM8K-Platinum

属性
规模8.5K(修正版)
特点修复了原始GSM8K的错误
HuggingFaceTAUR-Lab/GSM8K-Platinum

5.3 代码评测

HumanEval

属性
规模164 Python 编程题
评测pass@1, pass@10
HuggingFaceopenai/openai_humaneval
from datasets import load_dataset
humaneval = load_dataset("openai/openai_humaneval", split="test")
# {'task_id': 'HumanEval/0', 'prompt': 'def has_close_elements...', 
#  'canonical_solution': '...', 'test': 'def check(candidate)...'}

MBPP

属性
规模974 Python 编程题
HuggingFacegoogle-research-datasets/mbpp

MultiPL-E

属性
规模HumanEval 的多语言版本
语言18种编程语言
HuggingFacenuprl/MultiPL-E

5.4 推理评测

ARC (AI2 Reasoning Challenge)

属性
规模7.7K 科学题
HuggingFaceallenai/ai2_arc

HellaSwag

属性
规模10K 常识推理
HuggingFaceRowan/hellaswag

BBH (BIG-Bench Hard)

属性
规模6.5K,23个任务
特点困难推理任务
HuggingFacelukaemon/bbh

GPQA

属性
规模448 研究生级问题
特点非常困难
HuggingFaceIdavidrein/gpqa

5.5 对话评测

MT-Bench

属性
规模80 个多轮对话
评测GPT-4 评分 (1-10)
下载github.com/lm-sys/FastChat

AlpacaEval

属性
规模805 指令
评测与 GPT-4 对比胜率
下载github.com/tatsu-lab/alpaca_eval

Arena-Hard-Auto

属性
规模500 困难问题
评测自动评估
下载github.com/lm-sys/arena-hard-auto

5.6 安全评测

数据集规模HuggingFace评测内容
TruthfulQA817truthfulqa/truthful_qa真实性
ToxicChat10Klmsys/toxic-chat毒性检测
BBQ58Kheegyu/bbq偏见检测
HarmBench8Kwalledai/HarmBench安全性

5.7 基准测试速查

类别基准模型预期分数(7B级)
知识MMLU60-70%
中文C-Eval55-65%
数学GSM8K50-80%
数学MATH15-30%
代码HumanEval30-60%
代码MBPP40-60%
推理ARC-Challenge60-75%
常识HellaSwag75-85%
对话MT-Bench6-8 分
安全TruthfulQA40-60%

六、领域专用数据集

6.1 医疗健康

数据集规模HuggingFace用途
MedMCQA194Kopenlifescienceai/medmcqa医学问答
PubMedQA1Kqiaojin/PubMedQA医学问答
MedQA12Kbigbio/med_qa医学考试
HealthCareMagic200Kwangrongsheng/HealthCareMagic-100k-en医疗对话
cMedQA2108Kzhangtao23/cMedQA2中文医疗QA

6.2 金融

数据集规模HuggingFace用途
FinQA8KTheFinAI/finqa金融问答
ConvFinQA3KTheFinAI/convfinqa金融对话
FIQASA1.7Kpauri32/fiqasa金融情感

6.3 法律

数据集规模HuggingFace用途
LegalBench17Knguha/legalbench法律推理
CUAD510theatticusproject/cuad合同分析
CaseHOLD53Kcasehold/casehold法律引用

6.4 教育

数据集规模HuggingFace用途
ARC7.7Kallenai/ai2_arc科学问答
SciQ13.7Kallenai/sciq科学问答
MMLU-STEM3Kcais/mmlu (STEM子集)STEM知识

七、多模态数据集

7.1 图文数据

数据集规模HuggingFace用途
LAION-5B50亿图文对laion/laion2B-enCLIP训练
COYO7亿图文对kakaobrain/coyo-700m图文预训练
CC3M330万google-research-datasets/conceptual_captions图文预训练
CC12M1200万pixparse/cc12m-wds图文预训练
ShareGPT4V100KLin-Chen/ShareGPT4V视觉指令

7.2 视频数据

数据集规模HuggingFace用途
WebVid1070万temporalwebvideos/webvid-10m视频文本
VideoChat11KOpenGVLab/VideoChat2-IT视频对话
ActivityNet20K视频lmms-lab/ActivityNetQA视频理解

7.3 语音数据

数据集规模HuggingFace用途
LibriSpeech1000小时librispeech_asr语音识别
Common Voice2500小时mozilla-foundation/common_voice_17_0多语言ASR
GigaSpeech1万小时speechcolab/gigaspeech语音识别

八、数据集使用最佳实践

8.1 数据下载与加载

# ===== HuggingFace datasets 库 =====
from datasets import load_dataset

# 加载数据集
dataset = load_dataset("tatsu-lab/alpaca", split="train")

# 流式加载(大数据集)
dataset = load_dataset("HuggingFaceFW/fineweb", split="train", streaming=True)

# 自定义缓存目录
dataset = load_dataset("openai/gsm8k", cache_dir="./data/cache")

# 加载本地数据
dataset = load_dataset("json", data_files="my_data.json")
dataset = load_dataset("csv", data_files="my_data.csv")

# ===== 使用 modelscope(国内更快)=====
from modelscope.msdatasets import MsDataset
dataset = MsDataset.load("chinese_alpaca_sft")

8.2 数据处理 Pipeline

from datasets import load_dataset

# 1. 加载原始数据
raw = load_dataset("tatsu-lab/alpaca", split="train")

# 2. 数据清洗
def clean(example):
    # 过滤空数据
    if not example["instruction"] or not example["output"]:
        return False
    # 过滤太短的数据
    if len(example["output"]) < 10:
        return False
    return True

filtered = raw.filter(clean)

# 3. 格式化
def format_chatml(example):
    return {
        "messages": [
            {"role": "user", "content": example["instruction"] + example.get("input", "")},
            {"role": "assistant", "content": example["output"]}
        ]
    }

formatted = filtered.map(format_chatml)

# 4. 划分训练/验证集
split = formatted.train_test_split(test_size=0.1, seed=42)
train_set = split["train"]
val_set = split["test"]

# 5. 保存处理后的数据
train_set.to_json("train_processed.json")
val_set.to_json("val_processed.json")

8.3 数据混合策略

"""混合多个数据集"""
from datasets import concatenate_datasets, interleave_datasets

# 加载多个数据集
alpaca = load_dataset("tatsu-lab/alpaca", split="train")
sharegpt = load_dataset("anon8231489123/ShareGPT_Vicuna_unfiltered", split="train")
code = load_dataset("sahil2801/CodeAlpaca-20k", split="train")

# 方法1: 简单拼接
mixed = concatenate_datasets([alpaca, sharegpt, code])

# 方法2: 交错采样(按比例混合)
mixed = interleave_datasets(
    [alpaca, sharegpt, code],
    probabilities=[0.5, 0.3, 0.2],  # 50% 通用, 30% 对话, 20% 代码
    seed=42
)

print(f"混合数据集大小: {len(mixed)}")

8.4 数据质量检查

"""数据质量检查清单"""
def quality_check(dataset):
    stats = {
        "total": len(dataset),
        "empty": 0,
        "too_short": 0,
        "too_long": 0,
        "duplicates": 0
    }
    
    seen = set()
    for item in dataset:
        text = item.get("text", "") or str(item)
        
        if not text.strip():
            stats["empty"] += 1
        elif len(text) < 20:
            stats["too_short"] += 1
        elif len(text) > 10000:
            stats["too_long"] += 1
        
        if text in seen:
            stats["duplicates"] += 1
        seen.add(text)
    
    print(f"总样本: {stats['total']}")
    print(f"空样本: {stats['empty']}")
    print(f"过短: {stats['too_short']}")
    print(f"过长: {stats['too_long']}")
    print(f"重复: {stats['duplicates']}")
    
    return stats

quality_check(dataset)

8.5 数据集大小参考

训练类型推荐数据量说明
LoRA 微调1K-100K少量高质量数据即可
Full 微调100K-1M需要更多数据避免过拟合
DPO 对齐10K-100K偏好对数据
预训练100B+ tokens海量数据

8.6 数据许可证注意事项

许可证说明可商用
Apache 2.0宽松许可
MIT最宽松
CC BY 4.0署名即可
CC BY-NC 4.0非商用
CC BY-SA 4.0相同方式共享✅(需同许可)
GPL开源义务✅(需开源)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Together_CZ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值