MiniMind开源项目使用教程
1. 项目介绍
MiniMind是一个由CSDN公司开发的轻量级语言模型,它完全从零开始训练,以极小的成本实现了高效的语言处理能力。MiniMind系列模型极其轻量,最小版本仅为25.8M,非常适合普通个人GPU快速训练。项目包含了大模型的极简结构、数据集清洗、预训练、监督微调、LoRA微调、直接偏好强化学习算法、模型蒸馏算法等全过程的代码。
2. 项目快速启动
以下是快速启动MiniMind项目的步骤:
首先,克隆项目到本地:
git clone https://github.com/jingyaogong/minimind.git
然后,安装项目所需的依赖:
pip install -r requirements.txt
接下来,下载预训练模型(如果需要):
git clone https://huggingface.co/jingyaogong/MiniMind2
进行命令行问答或启动WebUI:
# 命令行问答
python eval_model.py --load 1 --model_mode 2
# 启动WebUI
cd scripts
streamlit run web_demo.py
从零开始自己训练模型:
- 准备数据集,将其放置在
./dataset
目录下。 - 执行预训练:
python train_pretrain.py
- 执行监督微调:
python train_full_sft.py
- 测试模型效果:
python eval_model.py --model_mode 1
3. 应用案例和最佳实践
- 预训练:使用高质量的中文语料库进行预训练,以获取丰富的语言知识。
- 监督微调:针对特定任务,使用标注数据进行监督微调,提高模型的适应性。
- LoRA微调:通过LoRA微调,可以进一步优化模型在特定任务上的表现。
- 模型蒸馏:利用大型模型的知识,通过蒸馏技术迁移到小型模型,提升其性能。
4. 典型生态项目
MiniMind可以与多种第三方框架和工具库兼容,例如transformers、trl、peft等,可以在这些框架的基础上进行进一步的开发和扩展。此外,MiniMind也支持单机多卡训练,以及wandb可视化训练流程,便于用户更好地监控和优化训练过程。