镜像社区
部署GPU实例
文档中心
常见问题(FAQ)
LLM
minimind
minimind 配置以及预训练
0/小时
v1.0

Minimind 项目说明手册

目录结构

minimind/
├── dataset/                # 存放数据集的目录
├── model/                  # 模型配置文件
├── out/                    # 输出权重文件
├── requirements.txt        # Python依赖包
├── data_process.py         # 数据处理脚本
├── 1-pretrain.py           # 预训练脚本
├── 2-eval.py               # 模型评估脚本
├── 3-full_sft.py           # 指令微调脚本
├── 4-lora_sft.py           # LoRA微调脚本
├── 5-dpo_train.py          # DPO训练脚本
└── 0-eval_pretrain.py      # 预训练模型评估脚本

环境准备

  1. 克隆项目代码

    git clone https://github.com/jingyaogong/minimind.git
    cd minimind
    
  2. 安装依赖

    pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
    
  3. 测试 PyTorch 是否可用 CUDA

    import torch
    print(torch.cuda.is_available())
    

    如果不可用,请前往 PyTorch 官网 下载相应的 .whl 文件并进行安装。

数据集准备

  1. 下载数据集

    • 使用 Hugging Face CLI 下载

      huggingface-cli download --resume-download jingyaogong/minimind_dataset --local-dir ./dataset --repo-type dataset --token
      
    • 下载 SFT 数据

      wget https://www.modelscope.cn/datasets/deepctrl/deepctrl-sft-data/resolve/master/sft_data_zh.jsonl
      
  2. 数据处理

    • 将下载的数据集放入 ./dataset 目录。

    • 运行数据处理脚本:

      python data_process.py
      

模型训练

  1. 调整模型配置

    • 修改 ./model/LMConfig.py 中的模型参数配置:
      • dimn_layers:分别设置为 (512+8) 或 (768+16),对应于 minimind-v1-smallminimind-v1
      • use_moe 参数根据需要进行调整。
  2. 执行预训练

    python 1-pretrain.py --data_path ./dataset/pretrain_data.csv #目前目录在这个里面,如果需要更换,则更换每个内容即可
    

    预训练将生成 pretrain_*.pth 文件作为输出权重。

  3. 执行指令微调

    python 3-full_sft.py
    

    指令微调将生成 full_sft_*.pth 文件作为输出权重。

  4. (可选)执行 LoRA 微调

    python 4-lora_sft.py
    
  5. (可选)执行 DPO 训练

    python 5-dpo_train.py
    

模型评估

确保训练完成的权重文件位于 ./out/ 目录下。

  1. 评估预训练模型

    python 0-eval_pretrain.py
    
  2. 评估对话效果

    python 2-eval.py
    

多卡训练

  • 单卡训练

    python 1-pretrain.py
    python 3-full_sft.py
    
  • N 卡训练(DDP)

    torchrun --nproc_per_node N 1-pretrain.py
    torchrun --nproc_per_node N 3-full_sft.py
    
  
- **N 卡训练(DeepSpeed)**
  ```bash
  deepspeed --master_port 29500 --num_gpus=N 1-pretrain.py
  deepspeed --master_port 29500 --num_gpus=N 3-full_sft.py

训练过程记录

通过添加 --use_wandb 参数,可以记录训练过程:

torchrun --nproc_per_node N 1-pretrain.py --use_wandb
python 1-pretrain.py --use_wandb

可在 WandB 网站上查看训练过程。可通过修改 wandb_projectwandb_run_name 参数,指定项目名称和运行名称。

注意事项

  • 请确保 CUDA 驱动正常安装并且可用。
  • 在多卡训练时,确保你的环境中已安装相关的分布式训练库。
  • 训练过程中可根据需要调整超参数以获得最佳性能。
镜像信息
@敢敢のwings
已使用
14
镜像大小60GB
最近编辑2024-10-28
支持卡型
RTX40系48G RTX40系
+2
框架版本
PyTorch-Ubuntu24.04+CUDA12.4
CUDA版本
12.4
应用
JupyterLab: 8888
版本
v1.0
2025-07-02
PyTorch:Ubuntu24.04+CUDA12.4 | CUDA:12.4 | 大小:60.00GB