前言

本文主要总结本人最近跑过的大模型微调项目。

相信大家这几个月都会不断新出的微调大模型项目刷屏,频率基本每天都有高星的项目诞生,部分还宣称自己达到GPT的百分之多少,一方面弄得大家过度乐观,一方面弄得大家焦虑浮躁。

面对这种情况,我的建议是「多动手」。把这些项目 clone 下来,跑跑代码,把项目用到的数据集下载下来做做EDA,把项目训练完的checkpoint下载下来,用自己的例子跑跑。多接触反而心态平定了许多

回归正题,这篇博文聊聊一些热门的大模型微调项目。首先我觉得大量这些项目的诞生是源于以下三个节点:

  • 节点1 ChatGPT:由于 ChatGPT 惊人的效果,让大家意识到AGI的可能性,并重视起了大模型+开放指令微调+强化学习这种三阶段范式

  • 节点2 LLaMA:LLaMA 是 Meta 在今年2月份推出的基座模型,宣称 LLaMA-13B 在大多数基准测试中超过了 GPT-3 (175B),而 LLaMA-65B 与最好的模型 Chinchilla70B 和 PaLM-540B 相比非常有竞争力。此外,该项目还开源了7B、13B、30B和65B版本。

  • 节点3 Stanford Alpaca:在 LLaMA 的基础上,用 Self-Instruct 去制造了52K的指令微调数据集,最后发现训练出来的模型确实是能听懂指令的,能看出ChatGPT的雏形

这三个节点加起来相当于证明了一条可以低成本复现的道路,然后大量的人沿着这条道路去进行时间。

再来说说这些项目的,本质都是:底座模型(ChatGLM/LLaMA/BLOOM)+ 微调数据(主要是指令微调数据集) + 高效微调方案(Fulltuning/Lora/Freeze/Ptuning)

项目

这些介绍几个我认为比较好的,好的定义是:Github star 比较高的,持续在维护更新的,同时作者对自己的项目做了详细解析和深入研究的。

ChatGLM-6B

清华唐杰老师团队

项目: https://github.com/THUDM/ChatGLM-6B

Blog: https://chatglm.cn/blog

ChatGLM-6B 是一个开源的、支持中英双语的对话语言模型,基于GLM架构,具有62亿参数。ChatGLM-6B 使用了和 ChatGPT 相似的技术,针对中文问答和对话进行了优化。经过约1T个标识符的中英双语训练,辅以监督微调、反馈自助、人类反馈强化学习等技术的加持。为了方便下游开发者针对自己的应用场景定制模型,项目还开源了基于 P-Tuning v2(https://github.com/THUDM/P-tuning-v2) 的高效参数微调代码。

亮点:

  • GLM 是一种 Prefix decoder 的结构,而目前大模型采用的主流结构是 Casual decoder,可以说GLM走出了自己的道路,但究竟那种结构更优,需要更科学的评定

  • 1T 个token的中英文预训练,对比 175B 的 GPT3 训练了300B个 token,540B的 PaLM 训练了780B个 token,而 ChatGLM-6B 的底座只是6B的模型,却训练了1T个 token,让人有种憧憬,用大数据训练小模型,是否能达到小数据训练大模型的效果

  • 项目号称经过监督微调、反馈自助、人类反馈强化学习

但是 ChatGLM-6B 没有公布它的训练细节和语料是怎么做的,有人说 ChatGLM-6B 的 IFT 也是通过 self-Instruct 得到的,这也不是空穴来风,相信用过 ChatGLM-6B 的人都会觉得,ChatGLM-6B的回复风格跟ChatGPT十分相似。

Alpaca-CoT

中科院的学生做的项目

项目:https://github.com/PhoebusSi/Alpaca-CoT/blob/main/CN_README.md

多接口统一的大模型指令微调平台。该项目做了一个框架,利用这个框架,可以方便地用不同的底座模型+不同的指令数据集进行大模型的微调,不足的地方是,只提供了使用Lora的训练方式。除此之外,该项目主打一个思维链 (CoT),把CoT数据集加入到指令微调中,在项目中还举了很多案例,证明加入了CoT数据集后对模型的提升作用。

亮点:

  • 统一了多个底座模型,包括有 LLaMA、ChatGLM、BLOOM

  • 整理统一了其他公开项目的数据集,如果大家想梳理下现在市面上开源的IFT数据集,建议可以通过这个项目了解

  • 项目集成了 Int8-bitsandbytes、Fp16-mixed precision、LoRA(hugging peft库)等高效训练的方法

  • 首个加入了 CoT 训练后的效果研究

BELLE

贝壳团队开源的项目

项目:https://github.com/LianjiaTech/BELLE

项目基于 Deepspeed-Chat 项目,包括全量参数微调(fine-tuning)和基于LoRA的参数高效微调。

亮点:

  • 开源了一个规模巨大的中文IFT数据集,现在加起来有300万以上,基本都是通过Self-Instructi得到

  • 做了一系列的实验,截止日前已发了4篇技术报告

    • 《Exploring ChatGPT's Ability to Rank Content: A Preliminary Study on Consistency with Human Preferences》

    • 《Exploring the Impact of Instruction Data Scaling on Large Language Models: An Empirical Study on Real-World Use Cases》

    • 《Towards Better Instruction Following Language Models for Chinese: Investigating the Impact of Training Data and Evaluation》

    • 《A Comparative Study between Full-Parameter and LoRA-based Fine-Tuning on Chinese Instruction Data for Instruction Following Large Language Model》

建议大家把它们的数据集下载下来看看,并把这4篇实验报告都看一次。虽然这些实验并不是很客观,例如最后的test集也是用的belle自己的,然后用的是GPT3.5打分。不过整体的实验思路和实验结果还是可以大致参考的。

Chinese-LLaMA-Alpaca

科大讯飞&哈工大团队,很出名的团队,很多耳熟能详的中文预训练模型,如RoBERTa、MacBERT、PERT都出自它们团队

项目:https://github.com/ymcui/Chinese-LLaMA-Alpaca

该项目包括词表扩充、继续预训练和指令精调三部分,其中词表扩充的代码参见 merge_tokenizers.py ;预训练和指令精调代码参考了 transformers中的 run_clm.py 和 Stanford Alpaca 项目中数据集处理的相关部分。

亮点:

  • 相对完整的流程,不紧紧是指令微调这一步,还包括词表扩充、继续预训练

  • 针对LLaMA模型扩充了中文词表,提升了中文编解码效率。这一步是我觉得假如想用LLaMA去做中文必须要做的一个事情,因为原生LLaMA对中文支持不好,很多中文词不在它们的词表中,会被切成两个token,极大影响了效果

  • 对中文继续做了20G语料的预训练,这个预料规模一看就很熟,它们开源的RoBERTa、MacBERT也是在这个规模的预料上训练得到的

  • 在预训练介绍,分成两部分,第一阶段:冻结transformer参数,仅训练embedding,在尽量不干扰原模型的情况下适配新增的中文词向量,第二阶段:使用LoRA技术,为模型添加LoRA权重(adapter),训练embedding的同时也更新LoRA参数。这给大家做高效继续预训练的提供了一个方向。

StackLLaMA

项目:https://huggingface.co/spaces/trl-lib/stack-llama

Blog: https://huggingface.co/blog/stackllama

Hugging Face的研究人员发布的一个70亿参数的模型——StackLLaMA。这是一个通过人类反馈强化学习在LLaMA-7B微调而来的模型。

个人感觉有价值的是Hugging Face研究人员发布的一篇Blog:用RLHF训练LLaMA的实践指南。

亮点:

  • 博客更像是一个教程和指南,介绍如何使用RLHF来训练模型,而不是主要关注模型的性能表现

  • 重点介绍了指令微调和强化学习部分,其中强化学习部分利用的是StackOverflow构建的数据集,利用网民们的upvotes去进行评分,给我们构造强化学习数据集部分提供了一个思路,能否利用微博点赞、知乎点赞等数据去构造一个中文的强化学习数据集呢?

数据集

介绍几个比较有特色的中文数据集

Alpaca-CoT

对大部份中英文的开源IFT数据集进行了整理和汇总,包括有 Guanaco、belle、firefly、COIG,加上项目自己开源的CoT数据集。假如不想自己去疏离数据集的话,就看这个它们整理好的就行了。

Alpaca_GPT4

https://github.com/Instruction-Tuning-with-GPT-4/GPT-4-LLM

微软论文《INSTRUCTION TUNING WITH GPT-4》开源的数据集。亮点是利用 GPT-4 生成的 Alpaca 数据,并做了中文的翻译。由于GPT4比GPT3.5强大很多的,因此质量自然会更高。

belle_data

https://github.com/LianjiaTech/BELLE/tree/main/data/10M

规模很大、类型也较多的数据集

  • School Math:包含约25万条中文数学题数据,包含解题过程。

  • Multiturn Chat:包含约80万条用户与助手的多轮对话。

  • Generated Chat:包含约40万条给定角色的多轮对话。

  • train_2M_CN:包含约200万条与Alpaca类似生成的多样化指令任务数据。

这些数据都是由ChatGPT生成,部分质量是不过关的,需要自己好好筛选一下。

COIG

https://huggingface.co/datasets/BAAI/COIG

规模很大,类型很全的数据集

  • 翻译指令数据集:基于开源数据集精选得到,并通过DeepL高质量翻译、并进行人工验证+人工修正

  • 考试指令数据集:中国高考、中考、公务员考试得到,可用作思维链 (CoT) 语料库

  • 价值对齐数据集:「中文世界的价值观念不同于英语世界的价值观」,作者构建了与普世华人价值观match的数据集,也是通过 self-instruct 生成的

  • 反事实校正数据集:构建了反事实校正多轮聊天数据集(CCMC)。CCMC 数据集包括学生和老师之间的 5 轮角色扮演聊天,以及他们所参考的相应知识。教师根据基本事实知识生成响应,并在每一轮中纠正学生问题或陈述中的事实错误或不一致之处

  • 代码指令数据集:Leetcode 数据集,包含有代码到文本和文本到代码

总体来说,这份数据集质量非常高,需要我们好好根据任务进行挑选。

个人感悟

数据清洗方案如何更好?

  1. 多样性:例如在 Self-Instruct 论文中,会使用 ROUGE 指标,过滤掉生成的指令与已有指令重合的指令。

  2. 高质量:使用 ChatGPT 生成数据,自然训练出来的模型就是模仿 ChatGPT 的回复风格。然而,ChatGPT(指 GPT3.5)自身的缺点包括浓浓的机翻味道、文绉绉的、不够活泼可爱,其次中文生成不够流畅。一种思路是使用 PPL 等指标筛选出生成的指令和回复,计算困惑度 Perplexity。Perplexity 低的通常是不流畅的,可以将低于一定阈值的去掉。

  3. 启发式:例如过滤掉问题是中文但回答是英文的,过滤掉生成的指令包含需要外部知识库的情况。

更多的清洗方案,可以多看看开源数据集中它们是如何处理的,留意里面的数据清洗方式。

哪种微调方案比较好?

从 BELLE 的技术报告《A Comparative Study between Full-Parameter and LoRA-based Fine-Tuning on Chinese Instruction Data for Instruction Following Large Language Model》中可以看出,Full-Tuning 效果应该是最好的,但 Full-Tuning 需要机器资源多,训练时间长。其次是 P-TuningV2/Lora/Freezing 的话,貌似是 P-TuningV2 效果最佳,具体可以看这个https://github.com/liucongg/ChatGLM-Finetuning。然而,这些比较并不严谨,例如每个方案都有自己的超参,是否每个方法都做了超参搜索。

强化学习部分重要吗?

非常重要。现在发现 ChatGLM-6B 的回复虽然一看过去感觉像模像样,但仔细看会发现胡言乱语的情况很严重,也即幻觉问题。也有人会另辟蹊径,例如 COIG 中的 CCMC 数据集,通过将这些数据集加入到 IFT 训练中,让模型学习纠正不正确回复的能力。还有在 prompt 中加入“请不要生成虚假的、自我捏造的回复”等字眼,目的是让模型在生成更加谨慎。然而,这些都是折中的办法。个人认为减少幻觉问题这一步,还得靠强化学习。希望未来能看到更多构建强化学习数据和开源强化学习数据集、训练的方案。

 一、大模型风口已至:月薪30K+的AI岗正在批量诞生

2025年大模型应用呈现爆发式增长,根据工信部最新数据:

国内大模型相关岗位缺口达47万

初级工程师平均薪资28K

70%企业存在"能用模型不会调优"的痛点

真实案例:某二本机械专业学员,通过4个月系统学习,成功拿到某AI医疗公司大模型优化岗offer,薪资直接翻3倍!

二、如何学习大模型 AI ?


🔥AI取代的不是人类,而是不会用AI的人!麦肯锡最新报告显示:掌握AI工具的从业者生产效率提升47%,薪资溢价达34%!🚀

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

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

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

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

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

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

1️⃣ 提示词工程:把ChatGPT从玩具变成生产工具
2️⃣ RAG系统:让大模型精准输出行业知识
3️⃣ 智能体开发:用AutoGPT打造24小时数字员工

📦熬了三个大夜整理的《AI进化工具包》送你:
✔️ 大厂内部LLM落地手册(含58个真实案例)
✔️ 提示词设计模板库(覆盖12大应用场景)
✔️ 私藏学习路径图(0基础到项目实战仅需90天)

 

第一阶段(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%免费】

 

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐