# minimind2_deepspeed **Repository Path**: ligan15/minimind2_deepspeed ## Basic Information - **Project Name**: minimind2_deepspeed - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-03-31 - **Last Updated**: 2025-05-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 介绍 项目目的:搭建一个基础简洁的大模型和多模态模型的训练和推理框架。 项目特点: - 模型构建:支持使用pytorch原生搭建(默认)和使用transformers库导入(TODO) - 分布式并行构建:支持使用deepspeed库进行分布式并行训练加速。 - 工作流构建:支持大模型/多模态模型的主流的训练流程,并提供工作流模板,一行代码拉起任务! - 大语言模型:预训练(PTM) -> 指令微调(SFT) -> 人类对齐(RLHF, DPO) -> 离线蒸馏(Distillation) -> 测评; - 图文多模态大语言模型:预训练(VLM_PTM) -> 指令微调(VLM_SFT)-> 测评 ; - 视频文本多模态大语言模型:预训练(VideoLM_PTM) -> 指令微调(VideoLM_SFT)-> 测评 ; - 通用工具库构建:提供以下常用的调试脚本模板 - 数据预处理工具 - tokenizer训练工具 - 权重转换工具 - 精度对齐hook工具 - 画图工具 - 启动WebUI工具 ## 快速开始 下载文件,存放结构如下: ```bash root ├── dataset │ ├── minimind │ │ ├── pretrain_1k_s512.jsonl │ │ ├── sft_1k_s512.jsonl │ │ ├── sft_1k_s2048.jsonl │ │ ├── dpo_1k_s512.jsonl │ │ └── r1_1k_s1024.jsonl │ ├── minimind-v │ │ ├── pretrain_images.lmdb │ │ ├── sft_images.lmdb │ │ ├── pretrain_images_data.jsonl │ │ └── sft_images_data.jsonl │ └── minimind-video │ ├── pretrain_video.lmdb │ ├── sft_video.lmdb │ ├── pretrain_video_data.jsonl │ └── sft_video_data.jsonl ├── model │ ├── ckpt │ │ ├── PT.pth │ │ ├── SFT.pth │ │ ├── SFT_1.pth │ │ ├── DPO.pth │ │ ├── Distillation.pth │ │ ├── VLM_PT.pth │ │ ├── VLM_SFT.pth │ │ ├── Video_PT.pth │ │ └── Video_SFT.pth │ ├── languege_model │ │ └── qwen2-0.5B │ └── vision_model │ ├── clip-vit-base-patch16 │ └── vit-huge-patch14-224-in21k └── minimind_deepspeed ``` 工作流启动: ```python pip install -r requirements.txt cd scripts/workflow # 大语言模型工作流 sh demo_train_llm_workflow.sh # 图文多模态大语言模型工作流 sh demo_train_vlm_workflow.sh # 视频文本多模态大语言模型工作流 sh demo_train_video_workflow.sh ``` ## 训练过程 使用1B-dense模型 | 训练阶段 | 数据量 (大小) | 数据集 | seq_len |训练吞吐RunningAvgSamplesPerSec | |--------------|----------|---------------------|------------|------------| | PT | 1413103 | pretrain_hq.jsonl | 512 | 120 | | SFT | 6800389 | sft_512.jsonl | 512 | 120 | | SFT_2 | 5390665 | sft_2048.jsonl | 2048 | 21 | | DOP | 207339 | dpo.jsonl | 1024 | 10 | | Distillation | 190139 | r1_mix_1024.jsonl | 1024 | 49 | | VLM_PT | 595375 | pretrain_data.jsonl | 640 | 109 | | VLM_SFT | 158710 | sft_data.jsonl | 1536 | 21 | | VLM_SFT | 11974 | video_data.jsonl | 1536 | 33 | 单机八卡的MFU估计: V100 GPU上,Tensor FP16算力为125 TFLOPS。 MFU估算为 (6*phi*s) * throughout/8 / 125000 = phi * s * throughout / 166,666.6 以PT阶段为例:1B参数量+s512,zero1,mbs=16, CurrSamplesPerSec =120,MFU为0.368。 ## 特性 - [ ] 支持单机八卡训练 - [ ] 支持预训练和微调拼接数据训练(构造attention_mask) ## TODO 1. 加入更多的模态输入! 语音,点云等 2. 理解和生成Unify框架,例如复现[janus-pro](https://github.com/deepseek-ai/Janus.git) 3. vlm-R1的[原理](https://www.zhihu.com/column/c_1876579808584007680)和复现 4. [全模态生成和理解框架](https://zhuanlan.zhihu.com/p/1894680046297407615) ## 参考项目 感谢以下优秀项目: - https://github.com/forXuyx/Cinego - https://github.com/jingyaogong/minimind - https://github.com/wdndev/tiny-llm-zh - https://github.com/deepspeedai/DeepSpeedExamples