随着人工智能领域的迅猛发展,大语言模型(LLM)成为了当下最热门的研究方向之一。从ChatGPT到DeepSeek,每一个新发布的大模型都让世界为之一震,带来了极大的影响力。然而,这些大模型背后的训练过程通常需要庞大的硬件支持和深厚的技术积累,让大多数个人开发者和小团队难以涉足。然而,今天我们将要介绍的MiniMind项目,将彻底改变这一现状。它让每个人都能够以极低的成本和硬件要求,从零开始训练出一个迷你版的ChatGPT!

一、MiniMind项目亮点

1、超轻量化设计,突破硬件限制

MiniMind最小版本的模型仅为25.8MB,相当于GPT-3的1/7000。这种极简化的设计使得即便是普通的个人GPU(例如NVIDIA RTX 3090)也能够训练这个模型,从而降低了大语言模型训练的硬件门槛。通过合理的架构设计,MiniMind的模型结构被压缩到可以在较低性能的设备上运行,并且保持了较高的效率和质量。

2、开源的完整训练流程

MiniMind并不是一个现成的推理模型,而是一个完整的训练过程,让开发者能够从零开始训练一个大语言模型。该项目提供了完整的代码,涵盖了从数据清洗、预训练、监督微调、LoRA微调到偏好强化学习(DPO)、模型蒸馏等所有步骤。最重要的是,所有的代码都是使用PyTorch原生框架重构的,没有依赖任何第三方抽象接口,这使得每个细节都可以被开发者理解和修改。

3、支持多模态任务

MiniMind不仅仅局限于文本处理,它还支持多模态任务(如图像理解),可以扩展到更广泛的应用场景。通过MiniMind-V的扩展,项目提供了处理视觉信息的能力,使得MiniMind不仅能够进行对话任务,还能够处理图像描述等任务。

二、快速开始

第0步:克隆项目

首先,你需要克隆MiniMind的代码库:

git clone https://github.com/jingyaogong/minimind.git  

Ⅰ 测试已有模型效果

1、 环境准备

在开始之前,你需要安装所有的依赖项:

pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple  

2、 下载模型

你可以直接从Hugging Face下载已有的MiniMind模型:

 git clone https://huggingface.co/jingyaogong/MiniMind2  

3、 命令行问答

使用以下命令测试模型效果:

python eval_model.py --load 1 --model_mode 2  

参数--load 1表示从Hugging Face模型加载,而--model_mode 2表示使用的模型为MiniMind2。

4、 启动Web UI

如果你想使用Web界面进行交互,执行以下命令:

pip install streamlit  # 如果未安装Streamlit  
cd scripts  
streamlit run web_demo.py  

Ⅱ 从0开始自己训练

1、 环境准备

和上面的步骤一样,你需要安装所有依赖:

pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple  

在开始训练之前,请确保Torch支持CUDA

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

2、 数据下载

你需要下载相关的数据集并放到./dataset目录下。具体数据集的下载链接会在项目文档中提供。

  1. 开始训练

    3.1 预训练(学知识)

    执行预训练脚本:

  python train_pretrain.py  

这将会使用你提供的数据集进行模型的基础知识训练,生成pretrain_*.pth文件作为输出。

3.2 监督微调(学对话方式)

执行指令微调:

python train_full_sft.py  

这一步将使模型在对话任务上进行微调,生成full_sft_*.pth文件。

4、 测试模型效果

在训练完成后,你可以测试模型的效果。确保训练生成的模型文件位于./out/目录下,然后运行:

python eval_model.py --model_mode 1  # 测试微调后的模型  

如果你只想测试预训练模型,设置--model_mode 0即可。

三、数据集和训练准备

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/filesHuggingFace::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)

dataset

注:各数据集简介

  • 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可以自由选择数据集。

训练策略和模型结构

MiniMind的模型采用了Transformer的Decoder-Only结构,类似于GPT-3,但在架构上做了一些创新。例如,使用了旋转位置嵌入(RoPE),避免了传统位置嵌入在处理长文本时的局限性。MiniMind还实现了一个创新的混合专家模型(MoE),这进一步提升了模型的计算效率和处理能力。
structure-moestructure

四、总结

MiniMind让大语言模型训练的门槛大大降低,任何拥有基本计算资源的开发者都可以从零开始训练一个小型大语言模型。无论你是:

  • 想入门 AI 的开发者

  • 需要定制化 AI 助手的企业

  • 对语言模型感兴趣的研究者

MiniMind都是一个值得探索的项目。通过简单的几步,你就可以完成训练,并在此基础上进行优化和改进。

让我们一起从零开始,感受人工智能创造的魅力吧!

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

img

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

img

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐