datawhalechina / self-llm
《开源大模型食用指南》针对中国宝宝量身打造的基于Linux环境快速微调(全参数/Lora)、部署国内外开源大模型(LLM)/多模态大模型(MLLM)教程
AI Architecture Analysis
This repository is indexed by RepoMind. By analyzing datawhalechina/self-llm in our AI interface, you can instantly generate complete architecture diagrams, visualize control flows, and perform automated security audits across the entire codebase.
Our Agentic Context Augmented Generation (Agentic CAG) engine loads full source files into context, avoiding the fragmentation of traditional RAG systems. Ask questions about the architecture, dependencies, or specific features to see it in action.
Repository Summary (README)
Preview中文 | English
</div>本项目是一个围绕开源大模型、针对国内初学者、基于 Linux 平台的中国宝宝专属大模型教程,针对各类开源大模型提供包括环境配置、本地部署、高效微调等技能在内的全流程指导,简化开源大模型的部署、使用和应用流程,让更多的普通学生、研究者更好地使用开源大模型,帮助开源、自由的大模型更快融入到普通学习者的生活中。
本项目的主要内容包括:
- 基于 Linux 平台的开源 LLM 环境配置指南,针对不同模型要求提供不同的详细环境配置步骤;
- 针对国内外主流开源 LLM 的部署使用教程,包括 LLaMA、ChatGLM、InternLM 等;
- 开源 LLM 的部署应用指导,包括命令行调用、在线 Demo 部署、LangChain 框架集成等;
- 开源 LLM 的全量微调、高效微调方法,包括分布式全量微调、LoRA、ptuning 等。
项目的主要内容就是教程,让更多的学生和未来的从业者了解和熟悉开源大模型的食用方法!任何人都可以提出issue或是提交PR,共同构建维护这个项目。
想要深度参与的同学可以联系我们,我们会将你加入到项目的维护者中。
学习建议:本项目的学习建议是,先学习环境配置,然后再学习模型的部署使用,最后再学习微调。因为环境配置是基础,模型的部署使用是基础,微调是进阶。初学者可以选择Qwen1.5,InternLM2,MiniCPM等模型优先学习。
进阶学习推荐 :如果您在学习完本项目后,希望更深入地理解大语言模型的核心原理,并渴望亲手从零开始训练属于自己的大模型,我们强烈推荐关注 Datawhale 的另一个开源项目—— Happy-LLM 从零开始的大语言模型原理与实践教程 。该项目将带您深入探索大模型的底层机制,掌握完整的训练流程。
注:如果有同学希望了解大模型的模型构成,以及从零手写RAG、Agent和Eval等任务,可以学习Datawhale的另一个项目Tiny-Universe,大模型是当下深度学习领域的热点,但现有的大部分大模型教程只在于教给大家如何调用api完成大模型的应用,而很少有人能够从原理层面讲清楚模型结构、RAG、Agent 以及 Eval。所以该仓库会提供全部手写,不采用调用api的形式,完成大模型的 RAG 、 Agent 、Eval 任务。
注:考虑到有同学希望在学习本项目之前,希望学习大模型的理论部分,如果想要进一步深入学习 LLM 的理论基础,并在理论的基础上进一步认识、应用 LLM,可以参考 Datawhale 的 so-large-llm课程。
注:如果有同学在学习本课程之后,想要自己动手开发大模型应用。同学们可以参考 Datawhale 的 动手学大模型应用开发 课程,该项目是一个面向小白开发者的大模型应用开发教程,旨在基于阿里云服务器,结合个人知识库助手项目,向同学们完整的呈现大模型应用开发流程。
项目意义
什么是大模型?
大模型(LLM)狭义上指基于深度学习算法进行训练的自然语言处理(NLP)模型,主要应用于自然语言理解和生成等领域,广义上还包括机器视觉(CV)大模型、多模态大模型和科学计算大模型等。
百模大战正值火热,开源 LLM 层出不穷。如今国内外已经涌现了众多优秀开源 LLM,国外如 LLaMA、Alpaca,国内如 ChatGLM、BaiChuan、InternLM(书生·浦语)等。开源 LLM 支持用户本地部署、私域微调,每一个人都可以在开源 LLM 的基础上打造专属于自己的独特大模型。
然而,当前普通学生和用户想要使用这些大模型,需要具备一定的技术能力,才能完成模型的部署和使用。对于层出不穷又各有特色的开源 LLM,想要快速掌握一个开源 LLM 的应用方法,是一项比较有挑战的任务。
本项目旨在首先基于核心贡献者的经验,实现国内外主流开源 LLM 的部署、使用与微调教程;在实现主流 LLM 的相关部分之后,我们希望充分聚集共创者,一起丰富这个开源 LLM 的世界,打造更多、更全面特色 LLM 的教程。星火点点,汇聚成海。
我们希望成为 LLM 与普罗大众的阶梯,以自由、平等的开源精神,拥抱更恢弘而辽阔的 LLM 世界。
项目受众
本项目适合以下学习者:
- 想要使用或体验 LLM,但无条件获得或使用相关 API;
- 希望长期、低成本、大量应用 LLM;
- 对开源 LLM 感兴趣,想要亲自上手开源 LLM;
- NLP 在学,希望进一步学习 LLM;
- 希望结合开源 LLM,打造领域特色的私域 LLM;
- 以及最广大、最普通的学生群体。
项目规划及进展
本项目拟围绕开源 LLM 应用全流程组织,包括环境配置及使用、部署应用、微调等,每个部分覆盖主流及特点开源 LLM:
Example 系列
-
Chat-嬛嬛: Chat-甄嬛是利用《甄嬛传》剧本中所有关于甄嬛的台词和语句,基于LLM进行LoRA微调得到的模仿甄嬛语气的聊天语言模型。
-
Tianji-天机:天机是一款基于人情世故社交场景,涵盖提示词工程 、智能体制作、 数据获取与模型微调、RAG 数据清洗与使用等全流程的大语言模型系统应用教程。
-
AMChat: AM (Advanced Mathematics) chat 是一个集成了数学知识和高等数学习题及其解答的大语言模型。该模型使用 Math 和高等数学习题及其解析融合的数据集,基于 InternLM2-Math-7B 模型,通过 xtuner 微调,专门设计用于解答高等数学问题。
-
数字生命: 本项目将以我为原型,利用特制的数据集对大语言模型进行微调,致力于创造一个能够真正反映我的个性特征的AI数字人——包括但不限于我的语气、表达方式和思维模式等等,因此无论是日常聊天还是分享心情,它都以一种既熟悉又舒适的方式交流,仿佛我在他们身边一样。整个流程是可迁移复制的,亮点是数据集的制作。
已支持模型
<p align="center"> <strong>✨ 已支持 50+ 主流大语言模型 ✨</strong><br> <em>每个模型都提供完整的部署、微调和使用教程</em><br> 📖 <strong><a href="./support_model.md">查看完整模型列表和教程</a></strong> | 🎯 <strong><a href="./support_model.md#通用环境配置">快速开始</a></strong> </p> <table align="center"> <tr> <td valign="top" width="25%"> • <a href="./support_model.md#kimi-k25">Kimi-K2.5</a><br> • <a href="./support_model.md#step-35-flash">Step-3.5-Flash</a><br> • <a href="./support_model.md#glm-47-flash">GLM-4.7-Flash</a><br> • <a href="./support_model.md#gemma3">Gemma3</a><br> • <a href="./support_model.md#minimax-m2">MiniMax-M2</a><br> • <a href="./support_model.md#qwen3">Qwen3</a><br> • <a href="./support_model.md#qwen3-vl-4b-instruct">Qwen3-VL</a><br> • <a href="./support_model.md#spatiallm">SpatialLM</a><br> • <a href="./support_model.md#hunyuan3d-2">Hunyuan3D-2</a><br> • <a href="./support_model.md#qwen2-vl">Qwen2-VL</a><br> • <a href="./support_model.md#minicpm-o-2_6">MiniCPM-o</a><br> • <a href="./support_model.md#qwen25-coder">Qwen2.5-Coder</a><br> • <a href="./support_model.md#deepseek-coder-v2">DeepSeek-Coder-V2</a><br> • <a href="./support_model.md#gpt-oss-20b">gpt-oss-20b</a><br> • <a href="./support_model.md#glm-41-thinking">GLM-4.1-Thinking</a> </td> <td valign="top" width="25%"> • <a href="./support_model.md#deepseek-r1-distill">DeepSeek-R1</a><br> • <a href="./support_model.md#internlm3">InternLM3</a><br> • <a href="./support_model.md#phi4">phi4</a><br> • <a href="./support_model.md#glm-45-air">GLM-4.5-Air</a><br> • <a href="./support_model.md#hunyuan-a13b-instruct">Hunyuan-A13B</a><br> • <a href="./support_model.md#deepseek-深度求索">DeepSeek</a><br> • <a href="./support_model.md#baichuan-百川智能">Baichuan</a><br> • <a href="./support_model.md#internlm">InternLM</a><br> • <a href="./support_model.md#kimi">Kimi</a><br> • <a href="./support_model.md#ernie-45">ERNIE-4.5</a><br> • <a href="./support_model.md#llama4">Llama4</a><br> • <a href="./support_model.md#apple-openelm">Apple OpenELM</a> </td> <td valign="top" width="25%"> • <a href="./support_model.md#llama31-8b-instruct">Llama3.1</a><br> • <a href="./support_model.md#gemma-2-9b-it">Gemma-2</a><br> • <a href="./support_model.md#qwen25">Qwen2.5</a><br> • <a href="./support_model.md#qwen2">Qwen2</a><br> • <a href="./support_model.md#glm-4">GLM-4</a><br> • <a href="./support_model.md#qwen-15">Qwen 1.5</a><br> • <a href="./support_model.md#phi-3">phi-3</a><br> • <a href="./support_model.md#minicpm">MiniCPM</a><br> • <a href="./support_model.md#yi-零一万物">Yi 零一万物</a><br> • <a href="./support_model.md#yuan20">Yuan2.0</a><br> • <a href="./support_model.md#yuan20-m32">Yuan2.0-M32</a><br> • <a href="./support_model.md#哔哩哔哩-index-19b">哔哩哔哩 Index</a> </td> <td valign="top" width="25%"> • <a href="./support_model.md#characterglm-6b">CharacterGLM</a><br> • <a href="./support_model.md#bluelm-vivo-蓝心大模型">BlueLM</a><br> • <a href="./support_model.md#qwen-audio">Qwen-Audio</a><br> • <a href="./support_model.md#transnormerllm">TransNormerLLM</a><br> • <a href="./support_model.md#atom-llama2">Atom</a><br> • <a href="./support_model.md#chatglm3">ChatGLM3</a><br> • <a href="./support_model.md#qwen2-57b-a14b-instruct">Qwen2-57B-A14B-Instruct</a><br> • <a href="./support_model.md#qwen2-72b-instruct">Qwen2-72B-Instruct</a><br> • <a href="./support_model.md#qwen2-7b-instruct">Qwen2-7B-Instruct</a><br> • <a href="./support_model.md#internlm2-20b">InternLM2-20B</a><br> • <a href="./support_model.md#tele-chat">Tele-Chat</a><br> • <a href="./support_model.md#xverse2">XVERSE2</a> </td> </tr> </table>AMD GPU 专区
<p align="center"> <strong>🚀 AMD GPU 平台已支持模型</strong><br> <em>每个模型都提供完整的 AMD 环境配置和部署教程</em><br> <em>感谢 AMD University Program 对本项目的支持</em><br> 📖 <strong><a href="./support_model_amd.md">查看完整 AMD 平台模型列表和教程</a></strong><br> </p> <table align="center"> <tr> <td valign="top" width="50%"> • <a href="./support_model_amd.md#谷歌-gemma3">谷歌 Gemma3</a><br> • AMD 环境准备与配置<br> • NPU 推理加速支持 </td> <td valign="top" width="50%"> • <a href="./support_model_amd.md#qwen3">Qwen3</a><br> • lemonade-server SDK 部署<br> • Ryzen AI 300 系列优化 </td> </tr> </table>昇腾Ascend NPU 专区
<p align="center"> <strong>🚀 昇腾Ascend NPU 平台已支持模型</strong><br> <em>每个模型都提供完整的昇腾Ascend NPU 环境配置和部署教程</em><br> 📖 <strong><a href="./support_model_Ascend.md">查看完整昇腾 NPU 平台模型列表和教程</a></strong><br> </p> <table align="center"> <tr> <td valign="top" width="50%"> • <a href="./support_model_Ascend.md#qwen3">Qwen3</a><br> • Ascend NPU 环境配置通用指南<br> • MindIE 服务化部署调用<br> • vLLM-ascend 部署调用<br> • sglang-ascend 部署调用 </td> <td valign="top" width="50%"> • <a href="./support_model_Ascend.md#大模型服务化性能和精度测试">大模型服务化性能和精度测试</a><br> • AISBench 测试工具环境配置<br> • 昇腾大模型服务化性能测试<br> • 昇腾大模型服务化精度测试 </td> </tr> </table>沐曦专区
<p align="center"> <strong><em>Coming Soon!</em></strong> </p>Apple M 专区
<p align="center"> 📖 <strong><a href="./models_mlx/README.md">点击跳转 Apple M 专区</a></strong><br> </p>Welcome More Platforms!
- 🚀 即将支持更多平台(Apple M 系列已有设备测试),敬请期待!
- 🤝 欢迎昇腾 Ascend、摩尔线程 MUSA、沐曦等平台提供技术支持、硬件支持或参与贡献
- 🌟 欢迎各平台开发者共建共享,推动大模型技术在更多国产硬件生态中的繁荣发展!
致谢
核心贡献者
- 宋志学(不要葱姜蒜)-项目负责人 (Datawhale成员)
- 邹雨衡-项目负责人 (Datawhale成员-对外经济贸易大学)
- 刘十一-Ascend专区负责人(Datawhale成员-鲸英助教)
- 姜舒凡(内容创作者-Datawhale成员)
- 郭宣伯(内容创作者-北京航空航天大学)
- 林泽毅(内容创作者-SwanLab产品负责人)
- 林恒宇(内容创作者-广东东软学院-鲸英助教)
- 王泽宇(内容创作者-太原理工大学-鲸英助教)
- 郭志航(内容创作者)
- 陈榆(内容创作者-谷歌开发者机器学习技术专家)
- 肖鸿儒 (Datawhale成员-同济大学)
- 张帆(内容创作者-Datawhale成员)
- 李娇娇 (Datawhale成员)
- 高立业(内容创作者-DataWhale成员)
- Kailigithub (Datawhale成员)
- 丁悦 (Datawhale-鲸英助教)
- 谢好冉(内容创作者-鲸英助教)
- 惠佳豪 (Datawhale-宣传大使)
- 王茂霖(内容创作者-Datawhale成员)
- 孙健壮(内容创作者-对外经济贸易大学)
- 郑皓桦 (内容创作者)
- 荞麦(内容创作者-Datawhale成员)
- 骆秀韬(内容创作者-Datawhale成员-似然实验室)
- 李柯辰 (Datawhale成员)
- 程宏(内容创作者-Datawhale意向成员)
- 李秀奇(内容创作者-DataWhale意向成员)
- 余洋(内容创作者-安徽理工大学副教授-Datawhale成员)
- 陈思州 (Datawhale成员)
- 颜鑫 (Datawhale成员)
- 杜森(内容创作者-Datawhale成员-南阳理工学院)
- 散步 (Datawhale成员)
- 郑远婧(内容创作者-鲸英助教-福州大学)
- Swiftie (小米NLP算法工程师)
- 张友东(内容创作者-Datawhale成员)
- 张晋(内容创作者-Datawhale成员)
- 娄天奥(内容创作者-中国科学院大学-鲸英助教)
- 小罗 (内容创作者-Datawhale成员)
- 邓恺俊(内容创作者-Datawhale成员)
- 赵文恺(内容创作者-太原理工大学-鲸英助教)
- 王熠明(内容创作者-Datawhale成员)
- 黄柏特(内容创作者-西安电子科技大学)
- 左春生(内容创作者-Datawhale成员)
- 杨卓(内容创作者-西安电子科技大学-鲸英助教)
- 付志远(内容创作者-海南大学)
- 三水(内容创作者-鲸英助教)
- 樊奇(内容创作者-上海交通大学)
- 陈辅元(内容创作者-Datawhale成员)
- 谭逸珂(内容创作者-对外经济贸易大学)
- 何至轩(内容创作者-鲸英助教)
- 康婧淇(内容创作者-Datawhale成员)
- 杨晨旭(内容创作者-太原理工大学-鲸英助教)
- 赵伟(内容创作者-鲸英助教)
- 苏向标(内容创作者-广州大学-鲸英助教)
- 陈睿(内容创作者-西交利物浦大学-鲸英助教)
- 张龙斐(内容创作者-鲸英助教)
- 孙超(内容创作者-Datawhale成员)
- 卓堂越(内容创作者-鲸英助教)
- fancy(内容创作者-鲸英助教)
- 谭斐然(西安电子科技大学-鲸英助教)
注:排名根据贡献程度排序
其他
- 特别感谢@Sm1les对本项目的帮助与支持
- 感谢 AMD University Program 对本项目的支持
- 部分lora代码和讲解参考仓库:https://github.com/zyds/transformers-code.git
- 如果有任何想法可以联系我们 DataWhale 也欢迎大家多多提出 issue
- 特别感谢以下为教程做出贡献的同学!