数据集和训练准备
Ⅰ Tokenizer
分词器(Tokenizer)是语言模型训练中的一个关键步骤。MiniMind使用了一个简化版的tokenizer,以控制词表的大小并减少计算开销。你可以选择自己训练词典,或者使用现成的tokenizer来加速训练。
Ⅱ 预训练数据(Pretrain Data)
预训练数据用于模型的初步训练,MiniMind采用了一些高质量的数据集(例如pretrain_hq.jsonl
),经过清洗和格式化,可以用来为模型提供基本的语言知识。
Ⅲ 监督微调数据(SFT Data)
监督微调数据集用于帮助模型学习对话的结构和行为,MiniMind已经准备了多个中文和英文的对话数据集,帮助模型在实际对话中更加自然。
Ⅳ 强化学习数据(RLHF Data)
MiniMind还使用了强化学习优化模型,使得其回答更加符合用户的偏好。dpo.jsonl
文件包含了训练数据,经过进一步优化,可以使得模型更好地回应用户的提问。
Ⅴ Reason数据集
Reason数据集主要用于推理任务,它结合了Llama3.1和DeepSeek的技术,模拟了人类的推理过程,进一步提升了模型的推理能力。
Ⅵ 更多数据集
MiniMind不断更新数据集,包括中文的LLM相关数据集、中文对话数据集等,确保模型在多个任务中都能得到优化。
MiniMind训练数据集(无需全部clone,可单独下载所需的文件)
- ModelScope:https://www.modelscope.cn/datasets/gongjy/minimind_dataset/files
- HuggingFace:https://huggingface.co/datasets/jingyaogong/minimind_dataset/tree/main
将下载的数据集文件放到./dataset/
目录下(✨为推荐的必须项):
./dataset/
├── dpo.jsonl (909MB)
├── lora_identity.jsonl (22.8KB)
├── lora_medical.jsonl (34MB)
├── pretrain_hq.jsonl (1.6GB, ✨)
├── r1_mix_1024.jsonl (340MB)
├── sft_1024.jsonl (5.6GB)
├── sft_2048.jsonl (9GB)
├── sft_512.jsonl (7.5GB)
├── sft_mini_512.jsonl (1.2GB, ✨)
└── tokenizer_train.jsonl (1GB)
注:各数据集简介
dpo.jsonl
-- RLHF阶段数据集lora_identity.jsonl
-- 自我认知数据集(例如:你是谁?我是minimind...),推荐用于LoRA训练(亦可用于全参SFT,勿被名字局限)lora_medical.jsonl
-- 医疗问答数据集,推荐用于LoRA训练(亦可用于全参SFT,勿被名字局限)pretrain_hq.jsonl
✨ -- 预训练数据集,整合自jiangshu科技r1_mix_1024.jsonl
-- DeepSeek-R1-1.5B蒸馏数据,每条数据字符最大长度为1024(因此训练时设置max_seq_len=1024
)sft_1024.jsonl
-- 整合自Qwen2.5蒸馏数据(是sft_2048
的子集),每条数据字符最大长度为1024(因此训练时设置max_seq_len=1024
)sft_2048.jsonl
-- 整合自Qwen2.5蒸馏数据,每条数据字符最大长度为2048(因此训练时设置max_seq_len=2048
)sft_512.jsonl
-- 整合自匠数科技SFT数据,每条数据字符最大长度为512(因此训练时设置max_seq_len=512
)sft_mini_512.jsonl
✨ -- 极简整合自匠数科技SFT数据+Qwen2.5蒸馏数据(用于快速训练Zero模型),每条数据字符最大长度为512(因此训练时设置max_seq_len=512
)tokenizer_train.jsonl
-- 均来自于匠数大模型数据集,这部分数据相对次要,(不推荐自己重复训练tokenizer,理由如上)如需自己训练tokenizer可以自由选择数据集。