
2小时3元MiniMind从0训练出一个可用的64M对话大模型【免费下载链接】minimind Train a 64M-parameter LLM from scratch in just 2h!项目地址: https://gitcode.com/GitHub_Trending/min/minimind单卡30902.3小时GPU开销约3元用MiniMind从零训练出一个64M参数的大语言模型已经能进行基础中文对话并输出结构化工具调用。本文把克隆仓库到能聊天的完整路径原样复现一遍所有命令都可以直接抄。30秒看懂MiniMind是什么MiniMind是一个完全从0训练而非复现推理的超轻量LLM项目。主线版本minimind-3约64M参数只有GPT-3体积的1/2700个人显卡就能跑完整训练更小的26M版本连消费级入门卡也不在话下。它把预训练、SFT、LoRA、DPO、PPO/GRPO强化学习到蒸馏的全链路代码都开源了且核心算法全部用PyTorch原生实现不套transformers/peft的高层封装。对你来说这意味着每一行训练逻辑都能读得懂卡在哪里都能定位而不是面对黑盒报错。4条命令跑通对话demo先确认环境再跑官方权重全程10分钟项目最低要求说明GPU单卡≥8GB显存推荐30902小时3元基于单卡3090测算约1.3元/时LoRA阶段CPU也能跑Python3.10跑WebUI必须≥3.10CUDA12.2推荐先确认torch.cuda.is_available()为True磁盘约4GBmini数据集约2.8GB 依赖git clone https://gitcode.com/GitHub_Trending/min/minimind cd minimind pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple modelscope download --model gongjy/minimind-3 --local_dir ./minimind-3 python eval_llm.py --load_from ./minimind-3跑完立刻能看效果选[0] 自动测试会连答8道内置测试题末尾还会打印decode速度tokens/s。选[1] 手动输入就可以直接开聊。核心训练流程从0到对话模型的4步不想等权重、想自己训的按下面4步走。mini数据组合在单卡3090上总计约2.31小时、3元。第1步准备mini数据集两个jsonl就够目的pretrain_t2t_mini.jsonl1.2GBsft_t2t_mini.jsonl1.6GB是官方推荐的快速复现组合已经清洗去重无需任何预处理。操作从项目配套数据集下载这两个文件放入./dataset/目录即可数据规范见 dataset/dataset.md。验证wc -l dataset/*.jsonl确认文件非空再首行检查text/conversations字段完整。第2步从0预训练建立语言基础目的让模型学会高质量词语接龙把语言规律和基本知识吸进参数这是后面一切能力的地基。操作cd trainer python train_pretrain.py默认2个epoch、max_seq_len3403090上约1.2小时1.5元。验证python eval_llm.py --weight pretrain输出应是通顺的续写文本比如解释天空为什么是蓝色能答到散射而不是乱码。第3步SFT指令微调得到对话模型目的让模型适应user/assistant多轮模板从会接龙变成会对话同时混入的Tool Call样本让它具备基础工具调用能力。操作cd trainer python train_full_sft.py3090上约1.1小时1.4元产出out/full_sft_768.pth。验证python eval_llm.py --weight full_sft模型应以助手口吻回答问题而非继续续写提问。第4步可选LoRA垂直适配注入私有领域知识目的在不动基座的前提下用低秩参数把医疗、法律等垂域知识压进去保留通用能力。LoRA实现见 model/model_lora.py纯手写不依赖peftCPU上也能跑。操作把私有问答整理成与SFT相同的多轮jsonl格式放入./dataset/然后cd trainer python train_lora.py --data_path ../dataset/lora_xxx.jsonl --lora_name lora_xxx验证python eval_llm.py --weight full_sft --lora_weight lora_xxx确认回答风格已贴合垂域。训完还可以用scripts/convert_model.py把LoRA合并回基座导出完整权重。关键参数速查各脚本参数默认值已调好改之前先对照这张表参数默认值生效脚本什么时候动它--max_seq_len340预训练/SFT/LoRAmini数据建议340~768需要长上下文用YaRN外推不必改训练参数--epochs2预训练mini数据2轮足够完整主线数据再加--learning_rate5e-4 / 1e-4 / 4e-8预训练 / LoRA / DPODPO必须压到≤5e-8否则会遗忘基座能力--accumulation_steps8预训练显存吃紧时降batch_size、调大累积步数补偿--use_moe0全部训练脚本想试198M-A64M的MoE版设为1耗时约多50%--from_resume0全部训练脚本训练中断后设为1自动从checkpoints/恢复进阶技巧后训练对齐在SFT权重上继续跑偏好优化或RL入口是 trainer/train_grpo.py默认CISPO loss和train_dpo.py。训完用python eval_toolcall.py --weight full_sft验证工具调用效果对比可参考项目公开榜单一键起OpenAI兼容服务scripts/serve_openai_api.py 起一个兼容OpenAI协议的服务端支持reasoning_content和tool_calls接第三方Chat UI只改base_url即可。常见坑 FAQQCPU能不能训LoRA阶段可以预训练和SFT不建议——CPU上那2小时会变成数天。Q输出截断、语义断裂检查max_seq_len与数据匹配本项目tokenizer中文约1.5~1.7字符/token设得太小会截断语义太大则padding浪费算力。Q训练中断了怎么办加--from_resume 1重跑同一脚本自动检测检查点续训还支持跨不同GPU数量恢复。Q能改模型规模吗能。层数、维度、词表都在 model/model_minimind.py 中配置768维/8层/6400词表是官方在效率与效果间的平衡点缩小到512维会明显变差。Q加载旧版权重报错2025-04-26更新后命名和位置编码方式有变旧权重需重新映射校准建议直接用新发布权重。写在最后如果你第一次碰LLM训练最划算的路径就是拿mini数据把预训练SFT这两步完整走一遍花3块钱换来一套逐行可读的全链路代码和真正属于自己的权重。跑通之后再试LoRA适配自己的领域或把GRPO拉起来看强化学习曲线每一步都有现成脚本。遇到问题先看仓库Issue区解决不了的直接提Issue或提交你的PR。实操提示24GB显存的3090保持全部默认即可显存更小的卡优先降batch_size并用accumulation_steps补回来别一上来就动max_seq_len。【免费下载链接】minimind Train a 64M-parameter LLM from scratch in just 2h!项目地址: https://gitcode.com/GitHub_Trending/min/minimind创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考