今天给大家带来一篇大模型微调相关的最新综述,主要大模型微调归纳为7个阶段分别为数据准备、模型初始化、训练环境配置、模型微调、模型评估与验证、模型部署以及模型监控与维护。
Paper: https://arxiv.org/abs/2408.13296
模型微调(Fine-Tuning)就是以预训练模型为基础,通过相对较少的特定数据集进行的进一步训练,主要是在模型预先存在的知识之上用过减少数据和计算成本来提高特定任务的效果。
模型预训练与微调之间差距
大模型微调的优势:
-
迁移学习:利用预训练过程中获得的知识,通过减少计算时间和资源,将其适应于特定任务
-
减少数据需求:需要较少的标注数据,专注于将预训练的特征调整到目标任务
-
改善泛化能力:增强了模型对特定任务或领域的泛化能力,捕捉通用语言特征并对其进行定制
-
高效的模型部署:微调后的模型更适合实际应用,计算效率高,适合特定任务
-
适应各种任务:能够适应广泛的任务,在各种应用中表现良好
-
特定领域的性能:允许模型通过调整目标领域的细微差别和词汇,从而在特定领域的任务中表现出色
-
更快收敛:从通用语言特征的权重开始训练,能够更快地收敛
虽然,很多任务通过提示工程或RAG技术可能完美解决,但如果你需要模型调整其行为、写作风格或融入特定领域的知识,那么微调仍然是必不可少的。
下面从7个不同阶段来详细介绍大模型微调所要准备的工作。
数据准备
-
高质量数据收集:确保数据的高质量、多样化和代表性,确保数据在不同场景下的全面覆盖,以增强模型的鲁棒性;
-
有效的数据预处理:去除噪声、错误和不一致性的数据对于模型至关重要;
-
数据不平衡处理:过采样、欠采样和SMOTE等技术有助于平衡数据集;
-
数据增强和合成:采用数据增强手段对数据集扩充但需要确保数据标注的一致性;同时利用提示工程或多步生成的方式合成数据;
-
道德数据处理:审查数据中有害或有偏见的内容,以防止模型输出有害结果;
-
定期评估和迭代:持续评估和迭代数据准备流程,利用反馈循环和性能指标确保持续改进并适应新的数据需求。
模型初始化
在该阶段主要配置环境、安装依赖项、选择合适的大模型、下载对应的模型、预先在特定任务执行模型。
在模型选择时,需要考虑选择的模型与目标任务的一致性如何、模型的可用性和兼容性、模型的架构、资源的限制等等。
训练设置
主要是在模型训练过程中设置优化器、损失函数、参数调节。
-
学习率调节:一般使用较低的学习率,采用学习率预热也会有益;
-
Batch大小:一般更大的Batch可以获得更好的效果,但需要选择一个平衡显存限制和训练效率的Batch大小;
-
定期保存检查点:不同间隔定期保存模型权重,实施及早停止测略,防止模型过拟合;
-
数据并行和模型并行:考虑使用数据并行或模型并行技术,将训练工作负载分布在多个GPU或TPU上;
-
定期监控和记录:踪训练指标、资源使用和潜在瓶颈,可以用TensorBoard、Weights & Biases、MLflow等工具;
-
混合精度训练:以减少内存使用并提高计算效率,可以显著加快训练速度并减少所需的内存占用;
-
评估和迭代:使用单独的验证集不断评估模型性能,并根据结果对训练过程进行迭代;
-
模型可重复:通过设置随机种子并提供训练过程的详细记录来确保可重复性,有助于调试和进一步开发。
微调技术
主要有特定任务的微调、特定领域的微调、参数高效微调、半微调、偏好对齐、MoE、MOA等。
参数高效微调
评估和验证
有效评估LLMs需要根据模型性能的各个方面指定一些特殊的评价指标:
-
困惑度:衡量概率分布或模型预测样本的程度
-
事实性:评估LLM所提供信息的准确性
-
LLM不确定性:利用每个生成令牌的对数概率,衡量模型输出文本的置信度
-
提示困惑度:评估模型对输入提示的理解程度
-
上下文相关性:衡量检索到的上下文与用户查询的相关性
-
完整性:评估模型的响应是否根据提供的上下文完全回答了查询
-
Chuk归属和利用:评估检索到的信息块对最终响应的贡献效果如何
-
数据错误潜力:量化了模型在学习训练数据时面临的困难,数据质量越高,错误潜力越低
-
安全指标:确保LLM的输出适当且无害
评测榜单
安全性评测指标
模型部署
本地部署、云平台部署、分布式部署、模型量化等。
模型监控
性能监控、准确性监控、错误监控、日志分析、警报机制、反馈循环、安全监控、模型版本控制、提示词监控、输出结果监控、LLM知识更新等。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(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 的正确特征了。