Ai-Agent学习历程——大模型的概念
Ai-Agent学习历程——大模型的概念
- 导读
- 基本概念了解
- 1. 大模型的训练四大阶段
- 一、预训练(Pre-training)
- 二、有监督的微调(Supervised Fine-Tuning——SFT)
- 三、奖励模型训练(Reward Model Training——RM)
- 四、强化学习优化(Reinforcement Learning Optimization——RL)
- 五、总结(重点)
- 2 大模型的分类
- AI大模型分类总览
- 1. 按模态数量进行划分(理解简单,最常见)
- 单模态模型
- 多模态模型
- 多模态模型和单模态模型的区别
- 2. 按架构划分(从技术手段)
- 1. Decoder-Only模型(自回归生成模型)
- 2. Encoder-Only模型(双向理解模型)
- 3. Encoder-Decoder模型(序列到序列模型)
- 总结
- 3. 按应用分类
- 其它分类
- 总结与展望
- 3. 大模型的工作流程(主要是NLP模型怎么通过用户的输入给出最佳答案)
- Step1:从文字到数字——分词与编码(简称预处理)
- Step2:模型内部处理
- Step3:生成输出——解码与生成
- Step4:输出后处理
- Step5:持续学习反馈
- 关于束搜索的扩展
- 1. 贪心算法 vs. 束搜索
- 2. 基本原理
- 3. 搜索步骤
- 4. 优缺点
- 5. 束搜索的变种
- 总结:
- 结尾
导读
在目前的发展中AI发挥了巨大的作用,无论是国际形势还是社会发展,AI已经不可否认的成为了最大的科技发展趋势,尤其是当国家发出了关于致力于发展AI的红头文件
之后,这已经,一发不可收拾。
我是一位发展方向主要为人力资源系统的全栈工程师,当我已经掌握了前后端的大部分核心知识时,我感觉,这应该够了。但是AI的冲击力实在是影响巨大,迫使我转头学习AI,当你知道它有多强大的时候,你就会有危机感,而且后续的开发,AI将是主流。
关于目前我所熟知并且已经频繁使用的AI如下:
- Deepseek:
国内免费AI,效果强大
,在代码编写和知识问答上有着天然的优势,中文支持最好,相比与ChatGPT,在单一问题处理上表现良好,但在复杂问题下稍有下降。 - ChatGPT:目前来说
各方面支持最好的AI
,尤其是复杂问题处理和文本编写、知识问答方面表现优异,唯一弊端就是需要VPN访问,而且完整功能需要花钱订阅。 - Gemini:最大的优势就是
超强的上下文分析能力
,支持几十到几百不成问题,文件的处理上表现相当不错,对于学术研究者来说是不二选择。 通义灵码
:阿里开发,生态完善,各方面能力适中,目前我认为最大的好处是对于idea的集成
,其代码提示能力优秀,能大幅度加快你的开发进度,基于你的书写习惯和当前项目的编程规范进行辅助提示,效果优异。当然,在代码处理和问答上也是相当不错。- Kimi:对于Word、PPT支持非常好,尤其是
PPT
,不二选择,其余方面不做赘述,我目前用到的就是PPT的制作。 Cursor(推荐!!!)
:这是目前我觉得最强也是性价比最高的一个AI编程
,公认世界排名第二,第一是Claude(太贵了,一个月二百多美金)。Cursor的上下文处理和AI-Agent的实现非常好,能给出类似开发者的思考过程和代码编写,会基于你的需求进行扩展和优化,能大幅度节省你的开发时间,当然,不要太过于依赖,这是当你遇到无法解决和需要重复工作的时候,这是首选,但是思路和怎么写你得知道,不然脱离AI不会写代码可不行。收费的话包年是二百多美金,综合下来一年1400左右,可以接受。即梦AI
:目前国内最受欢迎的图片、视频生成工具
,对于大部分人来说已经够用了,有详细的说明文档,跟着文档操作,处理出来的图片和视频也是非常的不错,同时对于Deepseek有集成,可以优化提示词,效果也是相当的不错。
上述是我目前常用的一些AI,那么实际上AI的生态已经相当全面了,还有很多很多的AI没有说到,如果有兴趣可以详细了解,上面所说的只不过是我感觉性价比、功能各方面最适合普通开发者的。
基本概念了解
1. 大模型的训练四大阶段
一、预训练(Pre-training)
📌 这是整个过程中最耗时、耗资的巨大阶段,决定了模型的基础能力和上限。
- 目标:让模型学习最基础、最广泛的语言知识、语法结构、事实信息以及世界知识,简单来说就是让学习博览群书,成为一个无所不知的学者。(可以理解为在我们上大学之前的义务教育)
- 数据:使用海量的无标注数据进行训练,数据量可以达到TB或者PB,包括书籍、网页、代码等等各方面的知识
扩展——无标注数据——Start
-
原始性 (Raw):数据保持其最初始的形态,直接来自源头。例如:
- 社交媒体上的原始推文或帖子
- 新闻网站的一篇文章
- 一本小说或电子书的全文
- 客户评论、论坛讨论
- 任何未经处理的文本文档
-
无额外信息:除了文本内容本身,没有任何人为添加的“元数据”或“标签”。例如:
-
没有情感标签(如“正面”、“负面”、“中性”)
-
没有主题分类(如“体育”、“科技”、“政治”)
-
没有实体标注(如将“苹果”标记为“公司”而非“水果”)
-
没有任何总结、摘要或关键词
-
❓思考:为什么要使用“无标注数据”进行预训练?
方面 | 原因 | 好处 |
---|---|---|
数据可用性 | 有标注数据稀缺昂贵,无标注数据海量易得。 | 能够利用互联网上99%的数据,突破数据瓶颈。 |
知识获取 | 让模型学习通用语言规律、语法、语义和世界知识。 | 模型成为一个强大的“语言专家”,而非“文盲”。 |
迁移学习 | 为下游任务提供一个高质量的初始模型。 | 微调时只需少量标注数据,就能获得极佳性能,大大降低应用成本。 |
性能提升 | 预训练模型对语言的理解更深。 | 在几乎所有NLP任务上,效果都远超仅使用有标注数据训练的模型。 |
扩展——无标注数据 ——end
- 训练方式
预训练方式 | 代表模型 | 核心任务 | 学习重点 |
---|---|---|---|
自回归 | GPT | 给定前文,预测下一个词 | 语言生成逻辑和流畅性 |
自编码 | BERT | 预测被掩盖的词汇 | 深度上下文理解和双向关系 |
- 特点:
- 计算密集型:需要成千上万的GPU/TPU训练数周甚至数月
- 成本极高:一次预训练耗资数百万至数千万美元。
- 产出:得到一个“基础模型”,如GPT-3 base。它很有知识,但还不会很好地遵循指令、进行对话或安全地回答问题。它可能胡言乱语、产生有害内容或不听从指令。
二、有监督的微调(Supervised Fine-Tuning——SFT)
📌 这个阶段是对齐
的基本过程,因为前一步骤已经拥有了大量的知识,但是无法有效的使用,这一步就是让其变得“有效
”和“听话
”
- 目标:教会模型如何理解和遵循人类的指令,并生成符合格式、有帮助、高质量的回复
- 数据:对少量(数万到数十万条)的高质量人工标注数据。每条数据都是一个“指令-回复”对。
- 指令: “用Python写一个函数计算斐波那契数列。”
- 期望回复: “def fibonacci(n): …”
- 方法:
- 使用标准的有
监督学习
方法,在“指令-回复”数据上继续训练(微调)预训练模型。 - 训练目标是
最小化
模型生成的内容和标注人员提供的“标准答案”之间的差异
。
- 使用标准的有
- 特点:
-
经过SFT后,模型从一个“
博学的学者
”变成了一个“有问必答的助手
”。 -
它的行为得到了初步对齐,能够进行对话和完成任务。但其回复
可能还不是最优的
,或者在复杂、开放性的问题上表现不稳定
。
-
三、奖励模型训练(Reward Model Training——RM)
📌 为了进一步优化模型,我们需要一个“裁判”来评判模型回复的好坏。这个阶段就是训练这个“裁判”。
- 目标:训练一个独立的模型(
奖励模型
),能够根据人类的偏好,对任何给定的提示和模型回复给出一个“好坏”的分数(奖励值
)。 - 数据:由人工标注员对同一提示的多个不同模型回复进行
排序
- 例如,对于同一个问题,模型生成了回复A、B、C、D。标注员需要将其从好到坏排序:B > A > D > C。这种排序数据比直接写一个完美回复(SFT阶段)更容易获得,也更能体现人类的主观偏好。
- 方法:
- 使用
对比学习
来训练RM - 训练目标是让RM学会:对于一对回复,被人类
排名更高
的那个回复,从RM那里得到的奖励分数应该显著高于
排名低的那个。
- 使用
- 特点:
-
RM本身也是一个神经网络(通常比主模型小得多)。
-
它学习的是人类模糊、主观的偏好,如“更有帮助”、“更真实”、“更无害”等。
-
扩展:监督学习和对比学习——start
核心区别概览
维度 | 监督学习 (Supervised Learning) | 对比学习 (Contrastive Learning) |
---|---|---|
核心范式 | 基于标签的学习 | 基于对比的学习 |
数据需求 | 需要大量人工标注数据 | 仅需无标注数据 |
学习信号 | 来自显式标签(如类别标签、边界框) | 来自数据自身的相似性与差异性 |
主要目标 | 最小化预测结果与真实标签之间的误差 | 拉近相似样本(正样本对),推远不相似样本(负样本对) |
训练方式 | 模型学习从输入到标签的直接映射 | 模型学习数据在特征空间中的分布结构 |
详细对比
- 数据与标签
监督学习 | 对比学习 | |
---|---|---|
数据形式 | (数据, 标签) 对,例如 (图像, "猫") | 只需原始数据本身,例如 图像 |
标签来源 | 外部人工标注,成本高昂 | 自生成(通过数据增强、模态关联等) |
数据依赖 | 严重依赖标注质量和数量 | 依赖数据本身的多样性和数据增强策略 |
- 学习机制
监督学习 | 对比学习 | |
---|---|---|
核心方法 | 使用交叉熵损失、均方误差等,直接优化模型输出与标签的差异 | 使用对比损失(如InfoNCE, NT-Xent),在特征空间中优化样本间距离 |
学习内容 | 学习与特定任务高度相关的特征 | 学习通用、稳健的数据内在表征 |
灵活性 | 模型特征与训练任务强绑定,迁移性较差 | 学到的特征易于迁移到多种下游任务 |
- 结果与输出
监督学习 | 对比学习 | |
---|---|---|
直接输出 | 任务特定的预测(如类别概率、回归值) | 数据在隐空间中的表征(向量) |
优势 | 在数据充足时,在特定任务上性能卓越 | 能充分利用海量无标注数据,学习到更通用的特征,泛化能力强 |
劣势 | 受限于标注数据的规模和质量,易过拟合 | 需要精心设计数据增强和负采样策略,训练计算成本较高 |
总结与应用场景
监督学习 | 对比学习 | |
---|---|---|
本质 | “老师教”:模型根据标准答案学习 | “自学”:模型通过比较和辨别进行学习 |
典型模型 | 经典CNN、ResNet、BERT(有监督微调阶段) | SimCLR, MoCo, CLIP, BERT(预训练阶段) |
适用场景 | 任务明确、标注数据充足的场景(如图像分类、目标检测) | 无标注/少标注数据场景、预训练、表征学习、跨模态任务 |
扩展:监督学习和对比学习——end
四、强化学习优化(Reinforcement Learning Optimization——RL)
📌 这是最终的精炼阶段,使用第三阶段训练好的“裁判”来指导主模型进行自我改进。
- 目标:让
SFT模型
的策略(即生成回复的方式)进行调整,以最大化从奖励模型那里得到的奖励分数,从而使其输出更符合人类偏好。 - 数据:不需要新的标注数据,而是利用预训练数据、SFT模型和奖励模型。
- 方法:
- 通常使用强化学习算法,最著名的是
近端策略优化
。 - 过程:
-
SFT模型针对一个提示生成一个回复。
-
奖励模型对这个回复打分。
-
PPO算法根据这个分数来更新SFT模型的参数:如果得分高,就鼓励模型未来多产生类似的回复;如果得分低,就减少这种倾向。
-
为了
防止模型“作弊”
(比如为了高分生成胡言乱语或过度优化),通常会引入一个约束:更新后的模型不能偏离原来的SFT模型太远
(“近端”的含义),同时也会混合一些预训练
损失来保持模型的基础知识不退化。
-
- 通常使用强化学习算法,最著名的是
- 特点:
- 经过RLHF优化后,模型的回复在有用性、准确性和安全性上通常达到最佳状态。
- 我们熟知的ChatGPT、Claude等产品,都是经过了RLHF过程的模型。
五、总结(重点)
阶段 | 核心目标 | 训练数据 | 方法 | 产出模型特点 |
---|---|---|---|---|
1. 预训练 | 学习语言、语法、事实知识,构建世界模型 | 海量无标注文本(TB-PB级),如书籍、网页 | 自监督学习(语言建模,下一个词预测) | 基础模型:拥有广泛知识,但不会遵循指令,行为未对齐 |
2. 有监督微调 | 教会模型如何遵循指令并进行对话 | 少量高质量标注数据(数万条),格式为"指令-期望回复"对 | 有监督学习,在指令-回复数据上微调预训练模型 | SFT 模型:能够进行对话和完成任务,但回复可能不是最优 |
3. 奖励模型训练 | 训练一个"裁判",学习人类对回复质量的主观偏好 | 人类比较数据,同一提示的多个回复由人工从好到坏排序 | 对比学习,学习区分回复的优劣并给出分数(奖励) | 奖励模型:一个可以给任何回复打分的模型,代表人类偏好 |
4. 强化学习优化 | 让模型调整策略,生成更符合人类偏好的回复 | 无需新标注数据,利用预训练语料和奖励模型 | 强化学习(如PPO),用奖励模型的分数引导SFT模型优化 | 最终模型(RLHF模型):回复更有用、准确、安全,完全对齐 |
注意:并不是说完全按钮上面的步骤进行训练,往往第三和第四步是一个循环。
2 大模型的分类
AI大模型分类总览
分类维度 | 类别 | 核心思想 | 典型代表 | 适合场景 |
---|---|---|---|---|
1. 按架构分类 | Decoder-Only | 自回归生成:像猜谜,根据上文逐个猜下一个词,适合创造性任务。 | GPT系列, LLaMA, PaLM | 文本生成、对话、创作 |
Encoder-Only | 双向理解:同时看到所有词,深度理解上下文含义,擅长分析。 | BERT, RoBERTa | 情感分析、搜索、文本分类 | |
Encoder-Decoder | 序列转换:先编码理解输入,再解码生成全新输出,擅长转换任务。 | T5, BART, Flan-T5 | 翻译、摘要、问答 | |
2. 按能力特点分类 | 基座模型 | 通才:拥有广博知识,但未经“调教”,行为不可控。 | LLaMA, GPT-Base | 作为起点,供开发者进一步微调 |
对话/指令模型 | 专才 (对话):经过调教,能安全、有帮助地遵循人类指令。 | ChatGPT, Claude, ChatGLM | 智能助手、客服 | |
代码专用模型 | 专才 (代码):在代码数据上深度训练,精通编程。 | Codex, CodeLlama, StarCoder | 代码补全、生成、解释 | |
3. 按模态数量分类 | 单模态模型 | 文本专家:只能处理和生成文本这一种信息。 | 绝大多数传统LLM | 纯文本任务 |
多模态模型 | 多媒体专家:能处理和理解多种类型的信息(文本、图像、音频等)。 | GPT-4V, Gemini 1.5, LLaVA | 图像描述、视觉问答、文档分析 | |
4. 按参数量级分类 | 轻量级 (<10B) | 效率优先:参数少,速度快,可在手机、笔记本上运行。 | Phi-3, Gemma-2B | 边缘设备、快速原型开发 |
中等规模 (10B~100B) | 平衡之选:在能力与效率间取得最佳平衡。 | LLaMA2-70B, Mixtral 8x7B | 企业级应用、服务器部署 | |
超大规模 (>100B) | 能力极致:参数巨多,能力最强,但成本极高。 | GPT-4, Claude 3 Opus | 前沿研究、顶级商业产品 |
用图片表示如下:
1. 按模态数量进行划分(理解简单,最常见)
单模态模型
📌 核心思想:
单模态模型是指只能处理单一类型的数据
。例如文本、图片、音频等。主要专注于同一类型的数据结构和信息,并且只能处理这一种类型。
📌 特点
- 数据类型:单一
- 任务类型:任务纯粹,例如文本分类、图像识别
- 计算效率:通常比较快,因为任务单一的缘故
📌 代表产品
- 文本单模态模型:如BERT、GPT等
- 图像单模态模型:如ResNet、VGG等
📌 应用场景
- 文本处理:情感分析、文本生成、机器翻译
- 图像识别:如目标检测、分类、图像分割
📌优势
- 高效性:在特定领域中表现较好,速度和准确性都不错
- 训练简单:比起多模态来说,训练较为简单
- 技术成熟:比如我们常用的图片验证码,停车场智能识别等技术都已经很成熟了
📌 劣势
- 无法处理复杂的多模态任务:如任务同时需要设计图像、文本、音频等
从宏观角度来说,单模态应用在以下两个方面:
领域 | 自然语言处理(NLP) | 计算机视觉(CV) |
---|---|---|
任务类型 | 主要处理文本数据,包括分类、生成、翻译等。 | 主要处理图像数据,包括分类、检测、分割等。 |
代表模型 | BERT、GPT系列、RoBERTa | ResNet、VGGNet、YOLO |
常见应用场景 | 情感分析、机器翻译、文本生成、语义理解等。 | 图像分类、目标检测、图像分割、生成对抗网络等。 |
优势 | 专注文本任务,擅长语言理解与生成。 | 专注图像任务,擅长图像分类与对象检测。 |
劣势 | 无法处理图像或音频等其他模态数据。 | 无法理解或生成文本,无法处理多模态任务。 |
多模态模型
📌 核心思想
多模态顾名思义就是能处理多种不同类型的数据
(如文本、图像、音频等),并且能够在不同模态下进行融合
,提供更加全面和多元化的理解。也就是我们现在常用的文生图、用文本来修改图片视频等,是AI的重大改革,使其更像人类进行思考。
📌 特点
- 多模态融合:不同类型的输入数据可以同时处理,并且可以互相补充。
- 任务类型:在不同模态之间建立联系,适用于跨模态任务。
- 计算需求:计算需求非常高
📌 代表产品
-
CLIP(Contrastive Language-Image Pretraining):它能够同时理解图像和文本,主要用于图像与文本的匹配。
-
DALL·E:它能够根据文本生成图像,体现了图像和文本之间的双向生成能力。
-
GPT-4V:将视觉和语言结合的模型,能理解图像和文本的多模态任务。
-
Gemini 1.5:同样是一个能够进行多模态任务的模型,适用于图像描述和问答。
📌 应用场景
- 图像与文本匹配
- 文生图
- 视觉问答
- 多模态文档分析
📌 优势
-
增强的理解能力:能够理解和融合不同模态的数据,使得模型对复杂任务的处理能力更强。
-
更广泛的应用场景:适应性强,可以处理多种不同模态的信息,解决传统单模态模型无法完成的任务。
-
更自然的交互:例如,用户可以通过图像和文本进行更自然的交互,生成的内容也更符合多样化需求。
📌 劣势:
-
模型训练复杂:多模态模型需要对多个数据源进行训练,并且要确保它们之间的协调与融合,这使得训练和调优过程更加复杂。
-
高计算需求:处理多种类型的数据需要更多的计算资源和存储空间,可能导致效率较低,尤其在大规模数据处理时。
-
数据同步问题:不同模态的数据需要对齐和同步,这在某些情况下可能带来额外的挑战。
多模态模型和单模态模型的区别
特点 | 单模态模型 | 多模态模型 |
---|---|---|
数据处理能力 | 只能处理一种模态的数据(文本、图像等)。 | 能同时处理和融合多种模态的数据(文本、图像、音频等)。 |
应用场景 | 适用于特定任务,如文本生成、图像识别等。 | 适用于复杂任务,如图像-文本匹配、视觉问答等。 |
计算需求 | 计算需求较低,较为高效。 | 计算需求较高,尤其是在大规模多模态数据的处理上。 |
优势 | 专注于单一模态任务,表现突出。 | 多模态融合增强了任务的表现,适应性更强。 |
劣势 | 无法处理跨模态任务,局限性大。 | 训练和计算复杂度高,需要处理多模态同步问题。 |
2. 按架构划分(从技术手段)
为什么要把这部分放在第二步是因为我们首先要从宏观角度了解大模型的分类,然后从技术角度进行配合,这样更容易理解为什么使用这种技术,哪种大模型应该使用哪种技术。
1. Decoder-Only模型(自回归生成模型)
📌 核心思想
- 自回归生成:模型通过已生成的内容
预测下一个词
,逐步构建输出。每次生成时,模型只依赖于之前的输出和上下文,而不是直接处理输入序列(避免生成时产生影响)。 - 适合生成任务,例如文本生成、对话生成。
📌 代表模型
- GPT系列
- LLaMA:一种基于Transformer的模型
📌 应用场景
- 文本生成:新闻协作、文章自动生成。
- 对话生成:聊天机器人、虚拟助手等。
- 创作任务:编写故事、小说等。
📌 优势
- 生成能力强:因为自回归的特性,生成时根据上下文预测,能够创造连贯和有逻辑性的内容;
- 灵活性
📌 劣势
- 生成质量不可控
- 计算开销大,尤其是在长文本生成时,上下文很大,所以基于上下文预测时就需要巨大的计算量
2. Encoder-Only模型(双向理解模型)
📌 核心思想
- 双向理解:Decoder-Only模型的核心是两个字“预测”,预测的基础是基于生成的上下文,而Encoder-Only则需要关注输入的全局信息,通过双向的上下文理解对每个输入进行深度学习,也就是我们常用的深度思考,一般是用来理解复杂的任务,而且需要关注输入中的各种细节。
- 适合处理文本理解任务,如情感分析、命名实体识别或者某个复杂的问题场景。
📌 代表模型
- BERT(Bidirectional Encoder Representations from Transformers)
- RoBERTa:BERT的改进版,进一步优化了预训练任务。
📌 应用场景
- 情感分析
- 命名实体识别(NER):从文本中识别出特定的实体比如人名、地点等
- 文本分类:如垃圾邮件分类
📌 优势
- 上下文理解强:能更好的捕捉到输入的细节
- 高效的文本表示:适用于大规模的文本数据,而且能够为后续的任务提供深刻的语义理解
📌 劣势
- 仅限理解任务:它主要是理解需求和任务,让生成模型更好的工作。
- 处理长文本时受限:这里的长文本指的是非常长的文本,相当于某个极限。
3. Encoder-Decoder模型(序列到序列模型)
📌 核心思想
- 序列到序列的处理:此模型由Encoder和Decoder两种架构组合而成,首先通过Encoder对输入进行编码,转换为一个上下文向量,之后Decoder通过该上下文进行输出。
📌 代表模型
- T5:能够处理多种任务,并将所有任务都转化为文本到文本的格式
- BART:BART结合了BERT和GPT的优点,既具有双向编码器,又具有自回归解码器,适用于生成和理解任务。
📌 应用场景
- 机器翻译
- 文本摘要
- 文本生成与改写
📌 优势
- 适应性强:同时处理编码和解码,适用于多种转换任务。
- 序列转换能力:在需要输入和输出之间的关系时,能够提供解决方案,比如编码模型Cursor,我们通常需要根据输出对应输入的位置,然后选择是否接受这段代码的更改,或者进行回滚等操作。
📌 劣势
- 模型复杂
- 计算开销大
总结
架构类型 | 核心思想 | 适用任务 | 代表模型 | 优势 | 劣势 |
---|---|---|---|---|---|
Decoder-Only | 自回归生成,通过上下文预测下一个词。 | 文本生成、对话生成、创作等。 | GPT系列, LLaMA, PaLM | 强大的生成能力,适用于多种生成任务。 | 生成内容可能缺乏质量控制,计算效率低。 |
Encoder-Only | 双向理解,通过上下文捕捉全局信息。 | 情感分析、文本分类、命名实体识别等。 | BERT, RoBERTa | 上下文理解强,适合文本分析任务。 | 仅限文本理解任务,无法进行生成任务。 |
Encoder-Decoder | 输入编码后,输出解码生成。 | 机器翻译、文本摘要、问答等。 | T5, BART, Flan-T5 | 适用于序列转换任务,适应性强。 | 模型复杂,计算开销大,尤其在长文本任务中。 |
3. 按应用分类
-
基座模型:经过大规模预训练、但未经过精细调整(如指令微调、RLHF)的模型。它们是“原材料”,功能强大但可能输出有害或不稳定的内容。如:Llama 2基座模型。
-
对话/聊天模型:在基座模型基础上,通过指令微调和人类反馈强化学习精心调教而成的模型,擅长与人进行多轮、安全、有帮助的对话。如:ChatGPT, Claude。
-
代码模型:主要在代码数据上训练,专精于代码生成、补全、解释和调试。如:Codex(GitHub Copilot背后模型), Code Llama。
-
科学计算模型:应用于特定科学领域,如预测蛋白质结构的AlphaFold,或用于气象预测的FourCastNet。
-
图像视频模型:这是目前最新也是最火的一个模型,实现了用文字修改图片和生成图片、视频等,是一个里程碑的提升。
其它分类
当然我们也可以按照是否开源以及量级来进行分类,比如手机平板的小量级模型,普通公司的中型量级模型以及我们常用的大量级模型等等。
总结与展望
AI大模型的发展脉络清晰:以Transformer
为技术基石,通过预训练+微调
的范式,遵循缩放定律不断扩大规模,从而激发出涌现能力,并通过RLHF等技术使其与人类对齐。
未来趋势:
-
多模态融合:从文本、图像、视频到音频的深度融合是必然趋势。
-
Agent(智能体):大模型不再仅仅是应答者,而是能
自主规划、使用工具、执行复杂任务的智能代理
。 -
效率提升:通过模型压缩、剪枝、量化、新架构(如Mamba)来降低大模型的训练和推理成本。
-
可信与安全:如何确保模型的公平性、可解释性、鲁棒性和防止滥用,是至关重要的研究方向。
-
新的范式:探索超越缩放定律和Transformer的下一代架构和训练方法。
📌 这里和大家聊一下现有AI幻觉的问题,这也是之后发展的一个趋势,因为训练方式的特殊性,AI总会给我们一个答案,尽管这个答案是错误的或者不真实存在,这种现象称之为AI幻觉
。
📌 这是目前很难避免的一个问题,这也导致我们并不能完全的相信AI
,后续可能会进化为我知道就知道
,不知道就不知道
,如果真的到了那个时候,AI就已经彻底步入一个新的阶段
,将会被我们大范围使用,也就会实现电影中所演绎的,整个社会将会到处是AI的身影。
3. 大模型的工作流程(主要是NLP模型怎么通过用户的输入给出最佳答案)
📌 这是本章最重要的一点,了解内部机制后有助于我们更好的使用大模型和理解大模型,对之后学习的侧重点也是非常重要的,我们就非常清晰学那些知识点到底有什么用,哪些可以跳过了
。
Step1:从文字到数字——分词与编码(简称预处理)
分词
- 目的:将用户输入的句子拆分成模型“词汇表”中存在的基本单元,也就是“
Token
”,因为要处理为计算机可以识别的单位。词汇表中包含了各种单词、断句和标点符号等等,当然不同语言有不同的词汇表,这个拆分的过程可以称为“分词化
”。 - 分词化的不同粒度(精度)分类:
- 词粒度:适用于大部分西方语言,代表语言是英语,也就是会将 I want to study ACA.拆分为[‘I’, ‘want’, ‘to’, ‘study’, ‘ACA’, ‘.’],注意,标点符号也会进行拆分。
- 字符粒度:是中文最最常用的分词方式,因为中文是以单个汉字为单位的,类似英文中的单词。
- 字词粒度:这是一种更加细的分词方式,它将单词拆分为更小的单位,比如词根、词缀等等,这是GPT现在使用的分词方式,这种方式有两个优点。1是避免了词汇表过大的问题,2是能更好的解析一些新词(比如专有名词或者网络用语)。
编码(也叫向量化)
因为在上一步中我们已经对输入进行了分析化,拆分为了最基本的Token,这在词汇表中会对应一个数字ID,类似数据库的主键。而这也不够,还需要进行转化。
- 目的:将代表Token的整数ID转换为
富含语义信息的高维向量(也叫嵌入向量)
,这样以便模型进行数学计算。 - 过程:通过一个名为嵌入层的查找表,每个Token ID被转换为一个固定长度的向量。
- 位置编码:,这个向量中包含了最基本的文字信息以及位置信息等等,因为后面要使用到Transformer框架,这是
无序的
,同时不同的向量会将其位置信息进行不断的相加来保证顺序。
Step2:模型内部处理
这是模型的大脑,也是最核心的步骤,通过大量的计算得出最佳的答案,一般的构成是数十层甚至上百层Transformer块堆叠
而成的深度网络
中,一般有三个核心机制:
-
自注意力机制:
- 功能:让序列中的每个Token和其他Token进行交互,动态的计算每个Token对理解其它Token的权重(重要程度),也就是
注意力权重
。 - 类比:在处理“苹果很好吃”这句话时,当模型处理“苹果”这个Token时,自注意力机制会帮助它判断是应该更关注“吃”(理解为水果)还是更关注“公司”(理解为品牌),从而
消除歧义
。 - 结果:通过自注意力机制,每个Token又获得了一个
包含全局上下文信息的新向量
。
- 功能:让序列中的每个Token和其他Token进行交互,动态的计算每个Token对理解其它Token的权重(重要程度),也就是
-
前馈神经网络:
- 功能:处理自注意力机制得到的包含全局上下文的新向量,这个过程通常更加精细化,并将其转化为下一层更易于使用的格式。
-
多层堆叠:
- 作用:重复上面两个步骤,进行多次处理,每一次得到的向量都会更加的精细,包含的信息更多,最终得到的上下文建模信息将是最完善的。
Step3:生成输出——解码与生成
- 解码:将上一步计算出的编码逐步解码,生成文本,因为这个过程是
自回归生成
的方式,所以你所看到的信息都是一步一步、一点一点展示的。 - 解码方式:
- 贪心解码:选择每一步概率最大的输出作为下一个词,这个弊端会导致输出过于重复。
- 采样解码:从概率分布中随机选择词汇,一般有
Top-K采样
:在概率达到K
的多个候选词中随机选择;Top-P采样
:从累积概率达到P
的最小候选词集合中随机选择。 - 束采样:保持多个候选输出,最终选择最优的一组
Step4:输出后处理
为什么要有这一个步骤,一般的作用是:
- 去除无意义的词语:比如在一些知识性问答和代码问答等场景需要去除一些语气词等等,使其更加简练和更好理解。
- 句子结构优化:基于上面的不同解码策略生成的句子可能不够流畅和自然,尤其是在对话场景中,可能会使用另一个模型去进行优化。
那么二般的场景是什么呢,那肯定就是一些限制了,比如说法律限制
、人伦限制
、道德限制
等等,其实这也是AI所必须要有的处理,不然就乱套了呀。
Step5:持续学习反馈
这是比较重要的一步,一次的训练肯定是达不到预期的效果的,自我学习永远是主流,不然总归会被淘汰。
主要是通过收集用户的反馈,之后采取人工或者是自动评分机制(ROUGE分数、BLEU分数)等进行持续优化,也就是不断的进行强化学习。
关于束搜索的扩展
这是一个不容易理解,但又比较核心的算法,相比于贪心算法和采样策略更难理解。
1. 贪心算法 vs. 束搜索
-
贪心算法:每一步选择概率最大的词,逐步生成下一个词直到结束。这种方法简单,但
容易陷入局部最优解
,可能会导致生成的句子不自然或语法错误。 -
束搜索:相对于贪心算法,束搜索通过在每一步
保留多个候选序列
,从而增加了搜索空间
,减少了陷入局部最优解的风险。束搜索是基于宽度优先搜索的策略。
2. 基本原理
在每一时刻,模型不仅会考虑概率最大的词,同时要保留多个候选序列(即“束”),然后在后续的步骤中继续从这些候选序列中选择最有可能的词,最终生成概率最高的完整序列。
- 束宽度:束搜索的关键超参数是“束宽度”(beam width),它定义了每一时刻保留的
候选序列的数量
。较大的束宽度意味着搜索空间更广,但计算成本也更高。 - 候选序列:在每个步骤中,模型会根据当前的候选序列生成下一个词,并计算生成该词的概率。
- 选择候选:模型选择
概率最高的“束宽度”个候选序列
,继续进行下一步的生成,直到生成结束。
3. 搜索步骤
- 初始化:在初始时刻,模型会从起始符(如“”)开始,生成一个词的概率分布。
- 第一步生成:模型根据当前的输入和起始符生成下一个词的概率分布。然后,按照概率选择前
束宽度个
最可能的词,这些词成为候选序列的扩展
。 - 后续生成:在每个后续步骤中,模型基于当前候选序列的最后一个词,再次生成概率分布。对于每个候选序列,模型会扩展其所有可能的下一个词,并计算概率。
- 选择最优候选:在每个步骤结束时,模型会选择
束宽度个最可能的候选序列进行扩展
,而将其他较差的候选序列淘汰。 - 终止条件:生成序列直到达到最大长度或者遇到结束符(如“”)。最终,从保留的候选序列中选择最优的一个作为最终输出。
4. 优缺点
优点:
- 避免局部最优:由于束搜索在每个步骤中保留多个候选序列,相比贪心算法,它能避免只依赖于单一路径生成序列,从而避免了局部最优解,提升了生成质量。
- 更灵活:通过
调整束宽度
,可以在计算效率
和生成质量
之间进行平衡。较小的束宽度计算速度较快,较大的束宽度则能更好地优化生成质量。
缺点:
- 计算成本高:束搜索会保留多个候选序列,因此每一步的计算量比贪心算法大。随着束宽度的增加,
计算量会呈指数级增长
,因此在实际应用中需要在计算成本和生成质量之间做权衡。 - 因为诸多限制,可能仍然不是全局最优:虽然束搜索比贪心算法更强大,但它并不是全局最优解的保证。由于它
限制了搜索的宽度
,仍然有可能错过一些更优的序列。特别是在束宽度较小时,模型可能无法探索到生成序列中的某些最佳路径。
5. 束搜索的变种
-
束宽度动态调整(Dynamic Beam Width):在某些情况下,可以根据每个时间步的候选序列的质量动态调整束宽度。例如,当模型的某个候选序列的概率分布较为集中时,束宽度可以适当缩小。
-
集束搜索(Diverse Beam Search):为了进一步提高多样性,集束搜索会在保留最优序列的同时,确保候选序列之间有足够的差异,从而避免生成重复或过于相似的序列。
总结:
通过上述的阅读其实就可以发现,为什么会有深度思考这个选项,为什么不同模型之间有差距?为什么越强大的模型收费要越高呢?其实还是主要体现在计算量上面,如果我们将束宽度调大几个数量级,那计算量就会指数倍增长,会非常消耗GPU资源。
其实这也是后续AI发展所经历的必要路程,如果说要解决这个问题,可以通过优化算法、选择更高算力的硬件、增加硬件的部署数量等,无论从哪一步来说,都是非常困难的,同时在这个基础上,我们还要解决AI幻觉和AI欺骗的问题,这也是目前可能最大的两个问题。
结尾
以上就是关于大模型的基础概念,Agent是基于大模型的,所以这是我们在学习Agent的必要知识。