本项目是一个围绕开源大模型、针对国内初学者、基于 AutoDL 平台的中国宝宝专属大模型教程,针对各类开源大模型提供包括环境配置、本地部署、高效微调等技能在内的全流程指导,简化开源大模型的部署、使用和应用流程,让更多的普通学生、研究者更好地使用开源大模型,帮助开源、自由的大模型更快融入到普通学习者的生活中。
本项目的主要内容包括:
- 基于 AutoDL 平台(可扩展,例如阿里云)的开源 LLM 环境配置指南,针对不同模型要求提供不同的详细环境配置步骤;
- 针对国内外主流开源 LLM 的部署使用教程,包括 LLaMA、ChatGLM、InternLM 等;
- 开源 LLM 的部署应用指导,包括命令行调用、在线 Demo 部署、LangChain 框架集成等;
- 开源 LLM 的全量微调、高效微调方法,包括分布式全量微调、LoRA、ptuning 等。
项目的主要内容就是教程,让更多的学生和未来的从业者了解和熟悉开源大模型的食用方法!任何人都可以提出issue或是提交PR,共同构建维护这个项目。
想要深度参与的同学可以联系我们,我们会将你加入到项目的维护者中。
学习建议:本项目的学习建议是,先学习环境配置,然后再学习模型的部署使用,最后再学习微调。因为环境配置是基础,模型的部署使用是基础,微调是进阶。初学者可以选择Qwen1.5,InternLM2,MiniCPM等模型优先学习。
注:如果有同学希望了解大模型的模型构成,以及从零手写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:
-
- Phi-3-mini-4k-instruct FastApi 部署调用
- Phi-3-mini-4k-instruct langchain 接入
- Phi-3-mini-4k-instruct WebDemo 部署
- Phi-3-mini-4k-instruct Lora 微调
-
- gemma-7b-it FastApi 部署调用 @东东 ddl=3月底
- gemma-7b-it langchain 接入 @东东 ddl=3月底
- gemma-7b-it WebDemo 部署 @东东 ddl=3月底
- gemma-7b-it Peft Lora 微调 @东东 ddl=3月底
-
- XVERSE-7B-Chat transformers 部署调用 @acwwt ddl=4月底
- XVERSE-7B-Chat FastApi 部署调用 @acwwt ddl=4月底
- XVERSE-7B-Chat langchain 接入 @acwwt ddl=4月底
- XVERSE-7B-Chat WebDemo 部署 @acwwt ddl=4月底
- XVERSE-7B-Chat Lora 微调 @acwwt ddl=4月底
-
- TransNormerLLM-7B-Chat FastApi 部署调用 @ml67 ddl=3月底
- TransNormerLLM-7B-Chat langchain 接入 @ml67 ddl=3月底
- TransNormerLLM-7B-Chat WebDemo 部署 @ml67 ddl=3月底
- TransNormerLLM-7B-Chat Lora 微调 @ml67 ddl=3月底ß
-
- BlueLM-7B-Chat FatApi 部署调用 @acwwt ddl=3月底
- BlueLM-7B-Chat langchain 接入 @acwwt ddl=3月底
- BlueLM-7B-Chat WebDemo 部署 @acwwt ddl=3月底
- BlueLM-7B-Chat Lora 微调 @acwwt ddl=3月底
-
- DeepSeek-7B-chat FastApi 部署调用 @ 不要葱姜蒜
- DeepSeek-7B-chat langchain 接入 @ 不要葱姜蒜
- DeepSeek-7B-chat WebDemo @ 不要葱姜蒜
- DeepSeek-7B-chat Lora 微调 @ 不要葱姜蒜
- DeepSeek-7B-chat 4bits量化 Qlora 微调 @ 不要葱姜蒜
- DeepSeek-MoE-16b-chat Transformers 部署调用 @Kailigithub
- DeepSeek-MoE-16b-chat FastApi 部署调用 @Kailigithub
- DeepSeek-coder-6.7b finetune colab @Swiftie
- Deepseek-coder-6.7b webdemo colab @Swiftie
-
- MiniCPM-2B-chat transformers 部署调用 @Kailigithub
- MiniCPM-2B-chat FastApi 部署调用 @Kailigithub
- MiniCPM-2B-chat langchain 接入 @不要葱姜蒜
- MiniCPM-2B-chat webdemo 部署 @Kailigithub
- MiniCPM-2B-chat Lora && Full 微调 @不要葱姜蒜
-
- Qwen-Audio FastApi 部署调用 @ jjyaoao
- Qwen-Audio WebDemo @ jjyaoao
-
- Qwen-7B-chat Transformers 部署调用 @娇娇 ddl=12.2
- Qwen-7B-chat FastApi 部署调用 @娇娇 ddl=12.2
- Qwen-7B-chat WebDemo @娇娇 ddl=12.2
- Qwen-7B-chat Lora 微调 @ 不要葱姜蒜
- Qwen-7B-chat ptuning 微调 @ Hongru0306
- Qwen-7B-chat 全量微调 @不要葱姜蒜
- Qwen-7B-Chat 接入langchain搭建知识库助手 @娇娇
- Qwen-7B-chat 低精度训练 @ Hongru0306 ddl=12.11
- Qwen-1_8B-chat CPU 部署 @ 散步
-
- Yi-6B-chat FastApi 部署调用 @ Joe ddl=12.15
- Yi-6B-chat langchain接入 @ Joe ddl=12.15
- Yi-6B-chat WebDemo @ Hongru0306 ddl=12.15
- Yi-6B-chat Lora 微调 @ 娇娇 ddl=12.15
-
- Baichuan2-7B-chat FastApi 部署调用 @ 三山时春い ddl=12.15
- Baichuan2-7B-chat WebDemo @ 三山时春いddl=12.15
- Baichuan2-7B-chat 接入 LangChain 框架 @ 三山时春いddl=12.15
- Baichuan2-7B-chat Lora 微调 @ 三山时春いddl=12.15
-
- InternLM-Chat-7B Transformers 部署调用 @小罗 ddl=11.26
- InternLM-Chat-7B FastApi 部署调用 @不要葱姜蒜
- InternLM-Chat-7B WebDemo @不要葱姜蒜
- Lagent+InternLM-Chat-7B-V1.1 WebDemo @不要葱姜蒜
- 浦语灵笔图文理解&创作 WebDemo @不要葱姜蒜
- InternLM-Chat-7B 接入 LangChain 框架 @ Logan Zou
-
- Atom-7B-chat WebDemo @凯立 ddl=11.24
- Atom-7B-chat Lora 微调 @ Logan Zou
- Atom-7B-Chat 接入langchain搭建知识库助手 @ jjyaoao
- Atom-7B-chat 全量微调 @ Logan Zou
-
- ChatGLM3-6B Transformers 部署调用 @丁悦 ddl=12.2
- ChatGLM3-6B FastApi 部署调用 @丁悦 ddl=12.2
- ChatGLM3-6B chat WebDemo @不要葱姜蒜
- ChatGLM3-6B Code Interpreter WebDemo @不要葱姜蒜
- ChatGLM3-6B 接入 LangChain 框架 @ Logan Zou
- ChatGLM3-6B Lora 微调 @ Hongru0306
-
pip、conda 换源 @不要葱姜蒜
-
AutoDL 开放端口 @不要葱姜蒜
-
模型下载
- hugging face @不要葱姜蒜
- hugging face 镜像下载 @不要葱姜蒜
- modelscope @不要葱姜蒜
- git-lfs @不要葱姜蒜
- Openxlab
-
Issue && PR
- 宋志学(不要葱姜蒜)-项目负责人 (Datawhale成员-河南理工大学)
- 邹雨衡-项目负责人 (Datawhale成员-对外经济贸易大学)
- 肖鸿儒 (Datawhale成员-同济大学)
- 李娇娇 (Datawhale成员)
- 小罗 (Datawhale成员)
- 丁悦 (Datawhale-鲸英助教)
- Kailigithub (Datawhale成员)
- 陈思州 (Datawhale成员)
- 李柯辰 (Datawhale成员)
- 散步 (Datawhale成员)
- 惠佳豪 (Datawhale-宣传大使)
- 颜鑫 (Datawhale成员)
- 郑皓桦(白玉) (内容创作者)
- 郭志航 (内容创作者)
- Swiftie (小米NLP算法工程师)
- 特别感谢@Sm1les对本项目的帮助与支持
- 部分lora代码和讲解参考仓库:https://github.com/zyds/transformers-code.git
- 如果有任何想法可以联系我们 DataWhale 也欢迎大家多多提出 issue
- 特别感谢以下为教程做出贡献的同学!