一、什么是微调?
微调(Fine-tuning)是一种在自然语言处理(NLP)中使用的技术,用于将预训练的语言模型适应于特定任务或领域。Fine-tuning的基本思想是采用已经在大量文本上进行训练的预训练语言模型,然后在小规模的任务特定文本上继续训练它。
Fine-tuning的概念已经存在很多年,并在各种背景下被使用。Fine-tuning在NLP中最早的已知应用是在神经机器翻译(NMT)的背景下,其中研究人员使用预训练的神经网络来初始化一个更小的网络的权重,然后对其进行了特定的翻译任务的微调。
经典的fine-tuning方法包括将预训练模型与少量特定任务数据一起继续训练。在这个过程中,预训练模型的权重被更新,以更好地适应任务。所需的fine-tuning量取决于预训练语料库和任务特定语料库之间的相似性。如果两者相似,可能只需要少量的fine-tuning。如果两者不相似,则可能需要更多的fine-tuning。
在NLP中,fine-tuning最著名的例子之一是由OpenAI开发的OpenAI GPT(生成式预训练变压器)模型。GPT模型在大量文本上进行了预训练,然后在各种任务上进行了微调,例如语言建模,问答和摘要。经过微调的模型在这些任务上取得了最先进的性能。
二、微调技术有哪些?
常见的微调技术有Instruction Tuning、BitFit、Prefix Tuning、Prompt Tuning、P-Tuning、Adapter Tuning、LoRA、RLHF等:
本文仅介绍前两种非常重要的微调技术:指令微调和RLHF。
指令微调(Instruction Tuning)
指令微调是一种用有标记的指令提示和相应输出数据集对大型语言模型(LLM)进行微调的技术。它不仅在特定任务上提高了模型的性能,而且在一般情况下提高了模型的性能,从而有助于将预训练的模型适应实际使用。
指令微调是用于调整预先训练的基础模型的更广泛的微调技术类别的子集。从样式自定义到补充预训练模型的核心知识和词汇到优化特定用例的性能,因此可以对基础模型进行微调。尽管微调并不是任何特定领域或人工智能模型体系结构的独特之处,但它已成为LLM生命周期不可或缺的一部分。
指令微调可以被视为有监督微调(Supervised Fine-Tuning,SFT)的一种特殊形式。但是,它们的目标依然有差别。SFT是一种使用标记数据对预训练模型进行微调的过程,以便模型能够更好地执行特定任务。而指令微调是一种通过在包括(指令,输出)对的数据集上进一步训练大型语言模型(LLMs)的过程,以增强LLMs的能力和可控性。指令微调的特殊之处在于其数据集的结构,即由人类指令和期望的输出组成的配对。这种结构使得指令微调专注于让模型理解和遵循人类指令。
指令微调与其他微调技术并不是互斥的。例如,聊天模型经常从人类反馈(RLHF)中进行指导调整和强化学习,这是一种微调技术,旨在提高诸如帮助和诚实之类的抽象素质;用于编码的模型经常进行指令调整(以广泛优化以下说明的响应),以及对特定于编程的数据进行其他微调(以增强模型的编码语法和词汇的了解)。
指令微调的作用与大多数微调技术一样,在于预训练的大模型没有针对对话或指令执行进行优化。从字面意义上讲,大模型不会根据提示词回答问题,它们只是根据提示词向其添加生成的文本。指令调优有助于使大模型的回答更有用。
基于人类反馈的强化学习(RLHF)
基于人类反馈的强化学习 (Reinforcement Learning from Human Feedback, RLHF) ,思想就是使用强化学习的方式直接优化带有人类反馈的语言模型。RLHF 使得在一般文本数据语料库上训练的语言模型能和复杂的人类价值观对齐。
RLHF 是一种特殊技术,用于与其他技术(例如有监督学习和无监督学习)一起训练人工智能系统,使其更加人性化。首先,将模型的响应与人类的响应进行比较。然后,人类会评测不同机器响应的质量,对哪些响应更人性化进行评分。分数可以基于人类的内在品质,例如友善、适当程度的情境化和心情。
RLHF 在自然语言理解方面表现得非常突出,但也可用于其他生成式人工智能应用程序。
RLHF 是一项涉及多个模型和不同训练阶段的复杂概念,一般会分为三步,这也是一个生成自己大模型所必需的:
第一步是监督微调(Supervised Fine Tuning,SFT),即用数据集进行模型微调,预训练一个语言模型 (LM);
第二步是训练一个奖励模型,它通过对于同一个 prompt 的不同输出进行人工排序,聚合问答数据并训练一个奖励模型 (Reward Model,RM);
奖励基于三个原则:
- 有用性(Helpful):判断模型遵循用户指令以及推断指令的能力。
- 真实性(Honest):判断模型产生幻觉(编造事实)的倾向。
- 无害性(Harmless):判断模型的输出是否适当、是否诋毁或包含贬义的内容。
第三步则是用强化学习算法(RL) 方式微调 LM。
下图为RLHF学习过程的概述。
Takeaways
- 超大规模的****预训练语言模型的学习目标主要通过预测下一个单词实现,仍不能很好地遵循人类指令,甚至会输出无用的、有害的信息,难以有效对齐人类的偏好。因此,它只是一个基座模型,并不能直接使用。
- 解决这些问题,需要进行微调改进,其中主要有两种大模型改进技术,包括Google公司在2021年提出的指令微调(Fine-Tuning)以及OpenAI公司2022年提出的基于人类反馈的强化学习 (Reinforcement Learning from Human Feedback, RLHF) 。
- 正是因为这两项微调技术才促使了以ChatGPT为代表的现代生成式人工智能(GAI)的诞生。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
第一阶段(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 的正确特征了。