<div align="center">
![logo](./images/logo.png)
</div>
<div align="center">
![visitors](https://visitor-badge.laobi.icu/badge?page_id=jingyaogong/minimind)
[![GitHub Repo stars](https://img.shields.io/github/stars/jingyaogong/minimind?style=social)](https://github.com/jingyaogong/minimind/stargazers)
[![GitHub Code License](https://img.shields.io/github/license/jingyaogong/minimind)](LICENSE)
[![GitHub last commit](https://img.shields.io/github/last-commit/jingyaogong/minimind)](https://github.com/jingyaogong/minimind/commits/master)
[![GitHub pull request](https://img.shields.io/badge/PRs-welcome-blue)](https://github.com/jingyaogong/minimind/pulls)
[![Collection](https://img.shields.io/badge/🤗-MiniMind%20%20Collection-blue)](https://huggingface.co/collections/jingyaogong/minimind-66caf8d999f5c7fa64f399e5)
</div>
<div align="center">
<h3>"大道至简"</h3>
</div>
<div align="center">
中文 | [English](./README_en.md)
</div>
* 本开源项目旨在完全从0开始,最快仅用3小时!即可训练出仅为26M大小的微型语言模型**MiniMind**。
* **MiniMind**极其轻量,体积约是 GPT3 的 $\frac{1}{7000}$,力求做到最普通的个人GPU也可快速推理甚至训练。
* **MiniMind**改进自DeepSeek-V2、Llama3结构,项目包含整个数据处理、pretrain、sft、dpo的全部阶段,包含混合专家(MoE)模型。
* 这是一个既是开源项目,又是入门LLM教程,同时也是一个初具雏形的开源模型,希望能起到抛砖引玉的作用。
---
<div align="center">
https://github.com/user-attachments/assets/88b98128-636e-43bc-a419-b1b1403c2055
[Bilibili视频链接](https://www.bilibili.com/video/BV12dHPeqE72/?share_source=copy_web&vd_source=670c2504f88726f8cf4a21ef6147c0e8)
</div>
# 📌 Introduction
大语言模型(LLM)领域,如 GPT、LLaMA、GLM 等,虽然它们效果惊艳,
但动辄10 Bilion庞大的模型参数个人设备显存远不够训练,甚至推理困难。
几乎所有人都不会只满足于用Lora等方案fine-tuing大模型学会一些新的指令,
这约等于在教牛顿玩21世纪的智能手机,然而,这远远脱离了学习物理本身的奥妙。
此外,卖课付费订阅的营销号漏洞百出的一知半解讲解AI的教程遍地,
让理解LLM的优质内容雪上加霜,严重阻碍了学习者。
因此,本项目的目标是把上手LLM的门槛无限降低,
直接从0开始训练一个极其轻量的语言模型。
> [!TIP]
> (截至2024-9-17)minimind训练了3个型号模型,最小仅需26M(0.02B),即可具备流畅的对话能力!
| 模型 (大小) | tokenizer长度 | 推理占用 | release | 主观评分(/100) |
|-------------------------|-------------|--------|------------|------------|
| minimind-v1-small (26M) | 6400 | 0.5 GB | 2024.08.28 | 50' |
| minimind-v1-moe (4×26M) | 6400 | 1.0 GB | 2024.09.17 | 55' |
| minimind-v1 (108M) | 6400 | 1.0 GB | 2024.09.01 | 60' |
> 该分析在一个带有Torch 2.1.2、CUDA 12.2和Flash Attention 2的RTX 3090 GPU上运行。
项目包含:
- 公开MiniMind模型代码(包含Dense和MoE模型)、Pretrain、SFT指令微调、LoRA微调、DPO偏好优化的全过程代码、数据集和来源。
- 兼容`transformers`、`accelerate`、`trl`、`peft`等流行框架。
- 训练支持单机单卡、单机多卡(DDP、DeepSpeed)训练。训练过程中支持在任意位置停止,及在任意位置继续训练。
- 在Ceval数据集上进行模型测试的代码。
- 实现Openai-Api基本的chat接口,便于集成到第三方ChatUI使用(FastGPT、Open-WebUI等)。
希望此开源项目可以帮助LLM初学者快速入门!
### 👉**最近更新**
<details close>
<summary> <b>2024-09-17 (new🎉)</b> </summary>
- 更新minimind-v1-moe模型
- 为了防止歧义,不再使用mistral_tokenizer分词,全部采用自定义的minimind_tokenizer作为分词器。
</details>
<details close>
<summary> <b>2024-09-01</b> </summary>
- 更新minimind-v1 (108M)模型,采用minimind_tokenizer,预训练轮次3 + SFT轮次10,更充分训练,性能更强。
- 项目已部署至ModelScope创空间,可以在此网站上体验:
- [ModelScope在线体验](https://www.modelscope.cn/studios/gongjy/minimind)
</details>
<details close>
<summary> <b>2024-08-27</b> </summary>
- 项目首次开源
</details>
# 📌 Environment
仅是我个人的软硬件环境配置,自行酌情更改:
* Ubuntu == 20.04
* Python == 3.9
* Pytorch == 2.1.2
* CUDA == 12.2
* [requirements.txt](./requirements.txt)
# 📌 Quick Inference & Test
<div align="center" style="font-size: 1.5em; font-weight: bold;">
<img src="https://huggingface.co/front/assets/huggingface_logo-noborder.svg" alt="Hugging Face Logo" style="vertical-align: middle; height: 30px;" />
Hugging Face
[MiniMind (HuggingFace)](https://huggingface.co/collections/jingyaogong/minimind-66caf8d999f5c7fa64f399e5)
<img src="https://g.alicdn.com/sail-web/maas/1.15.0/static/modelscopeIcon.cd89353f.svg" alt="Hugging Face Logo" style="vertical-align: middle; height: 30px;" />
[MiniMind (ModelScope)](https://www.modelscope.cn/models/gongjy/minimind-v1)
</div>
```bash
# step 1
git clone https://huggingface.co/jingyaogong/minimind-v1
```
```bash
# step 2
python 2-eval.py
```
或者启动streamlit,启动网页聊天界面
```bash
# or step 3, use streamlit
streamlit run fast_inference.py
```
![](./images/streamlit.png)
<div align="center">
项目已部署至ModelScope创空间,可以在此网站上体验:
[ModelScope在线体验](https://www.modelscope.cn/studios/gongjy/minimind)
</div>
# 📌 Quick Start
* 0、环境安装
```bash
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
```
* 1、克隆项目代码
```text
git clone https://github.com/jingyaogong/minimind.git
```
* 2、如果你需要自己训练
* 2.1 下载[数据集下载地址](#数据集下载地址)放到`./dataset`目录下
* 2.2 `python data_process.py`处理数据集,例如pretrain数据提前进行token-encoder、sft数据集抽离qa到csv文件
* 2.3 在`./model/LMConfig.py` 中调整model的参数配置
* 2.4 `python 1-pretrain.py` 执行预训练
* 2.5 `python 3-full_sft.py` 执行指令微调
* 2.6 `python 4-lora_sft.py` 执行lora微调(非必须)
* 2.7 `python 5-dpo_train.py` 执行DPO人类偏好强化学习对齐(非必须)
* 3、测试模型推理效果
* 确保需要使用的,训练完成的参数权重位于`./out/`目录下
* 也可以直接去[训练完成的模型权重](#训练完成的模型权重)下载使用我训练好的
```text
out
├── multi_chat
│ ├── full_sft_512.pth
│ ├── full_sft_512_moe.pth
│ └── full_sft_768.pth
├── single_chat
│ ├── full_sft_512.pth
│ ├── full_sft_512_moe.pth
│ └── full_sft_768.pth
├── pretrain_768.pth
├── pretrain_512_moe.pth
├── pretrain_512.pth
```
* `python 0-eval_pretrain.py`测试预训练模型的接龙效果
* `python 2-eval.py`测试模型的对话效果
![2-eval](./images/2-eval.png)
🍭 【Tip】预训练和全参微调pretrain和full_sft均支持多卡加速
* 单机N卡启动训练(DDP)
```bash
torchrun --nproc_per_node N 1-pretrain.py
# and
torchrun --nproc_per_node N 3-full_sft.py
```
* 单机N卡启动训练(DeepSpeed)
```bash
deepspeed --master_port 29500 --num_gpus=N 1-pretrain.py
# and
deepspeed --master_port 29500 --num_gpus=N 3-full_sft.py
```
# 📌 Data sources
- 🤖 分词器:nlp中的Tokenizer类似于词典,将单词从自然语言通过“词典”映射到0,1,36这样的数字,可以理解为数字就代表了单词在“词典�
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
minimind最小开源大模型,可以自己训练自己的大模型 (250个子文件)
civil_servant_test.csv 168KB
accountant_test.csv 163KB
tax_accountant_test.csv 160KB
logic_test.csv 136KB
legal_professional_test.csv 114KB
college_economics_test.csv 106KB
high_school_chinese_test.csv 104KB
urban_and_rural_planner_test.csv 98KB
teacher_qualification_test.csv 96KB
physician_test.csv 78KB
high_school_politics_test.csv 78KB
environmental_impact_assessment_engineer_test.csv 76KB
fire_engineer_test.csv 75KB
college_programming_test.csv 74KB
law_test.csv 73KB
business_administration_test.csv 70KB
middle_school_politics_test.csv 67KB
electrical_engineer_test.csv 64KB
high_school_physics_test.csv 56KB
probability_and_statistics_test.csv 52KB
high_school_history_test.csv 51KB
college_physics_test.csv 50KB
mao_zedong_thought_test.csv 50KB
high_school_biology_test.csv 50KB
education_science_test.csv 48KB
modern_chinese_history_test.csv 45KB
advanced_mathematics_test.csv 45KB
middle_school_physics_test.csv 44KB
middle_school_chemistry_test.csv 42KB
high_school_chemistry_test.csv 42KB
middle_school_biology_test.csv 42KB
metrology_engineer_test.csv 41KB
middle_school_history_test.csv 41KB
college_chemistry_test.csv 40KB
high_school_mathematics_test.csv 37KB
clinical_medicine_test.csv 37KB
high_school_geography_test.csv 36KB
computer_architecture_test.csv 35KB
professional_tour_guide_test.csv 34KB
veterinary_medicine_test.csv 34KB
marxism_test.csv 34KB
art_studies_test.csv 33KB
discrete_mathematics_test.csv 32KB
computer_network_test.csv 31KB
ideological_and_moral_cultivation_test.csv 31KB
middle_school_mathematics_test.csv 28KB
sports_science_test.csv 28KB
chinese_language_and_literature_test.csv 27KB
plant_protection_test.csv 27KB
operating_system_test.csv 26KB
basic_medicine_test.csv 24KB
middle_school_geography_test.csv 20KB
civil_servant_val_result.csv 20KB
civil_servant_val.csv 20KB
accountant_val_result.csv 18KB
accountant_val.csv 18KB
tax_accountant_val_result.csv 18KB
tax_accountant_val.csv 17KB
logic_val_result.csv 15KB
logic_val.csv 15KB
college_economics_val_result.csv 13KB
college_economics_val.csv 13KB
urban_and_rural_planner_val_result.csv 12KB
legal_professional_val_result.csv 12KB
urban_and_rural_planner_val.csv 11KB
legal_professional_val.csv 11KB
teacher_qualification_val_result.csv 11KB
teacher_qualification_val.csv 11KB
high_school_chinese_val_result.csv 10KB
high_school_chinese_val.csv 10KB
fire_engineer_val_result.csv 9KB
fire_engineer_val.csv 9KB
college_programming_val_result.csv 9KB
college_programming_val.csv 9KB
environmental_impact_assessment_engineer_val_result.csv 8KB
high_school_politics_val_result.csv 8KB
business_administration_val_result.csv 8KB
high_school_politics_val.csv 8KB
environmental_impact_assessment_engineer_val.csv 8KB
business_administration_val.csv 8KB
physician_val_result.csv 8KB
law_val_result.csv 8KB
electrical_engineer_val_result.csv 7KB
physician_val.csv 7KB
law_val.csv 7KB
electrical_engineer_val.csv 7KB
middle_school_politics_val_result.csv 7KB
high_school_physics_val_result.csv 7KB
advanced_mathematics_dev.csv 7KB
legal_professional_dev.csv 7KB
high_school_physics_val.csv 7KB
middle_school_politics_val.csv 7KB
probability_and_statistics_dev.csv 7KB
high_school_history_val_result.csv 6KB
high_school_history_val.csv 6KB
college_physics_val_result.csv 6KB
high_school_biology_val_result.csv 6KB
college_physics_val.csv 6KB
metrology_engineer_val_result.csv 6KB
high_school_biology_val.csv 6KB
共 250 条
- 1
- 2
- 3
资源评论
youzj0925
- 粉丝: 125
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功