大模型、多模态以及新趋势

proanimer 发布于 2025-02-02 899 次阅读



这半年要论AI哪些方向最火,那关键词必然包括多模态,AI Agent,RAG等等(事实上已经火了一轮开始冷饭热炒了),一些做之前基础大模型的公司基本开始转向做应用甚至其他方向了. 这里整理一些关于AI Agents的知识和相关基础框架,并结合多智能体协同感知看看有哪些能做的结合.

视觉语言模型

引用lilianweng的博客,视觉语言模型可以粗略分为四类:

  1. 将图像转换为可以与标记嵌入联合训练的嵌入特征(将图像转为可以与语言编码的特征一起训练的特征)
  2. 学习作为冻结、预训练语言模型前缀的良好图像嵌入(训练图像特征作为冻结的预训练语言模型的输入前缀)
  3. 使用专门设计的交叉注意力机制将视觉信息融合到语言模型的层中(使用交叉注意力融合视觉信息到大模型中)
  4. 无需训练即可结合视觉和语言模型

同时训练图像和文本

VisualBERT将文本输入和图像区域同时输入 BERT,使其能够通过自注意力机制发现图像和文本之间的内部对齐

在训练时同时输入图像和文本,mask相关文本并加上图像的相关信息,任务是预测遮挡的信息同时提供两个标题区分哪个与图像相关.

image-20250111165850291

与 BERT 中的文本嵌入类似,VisualBERT 中的每个视觉嵌入也总结了三种类型的嵌入,即分词特征分割嵌入位置嵌入,具体来说:

  1. 一种通过卷积神经网络计算出的图像边界区域的视觉特征向量;
  2. 一个表示嵌入是否用于视觉而非文本的段嵌入
  3. 一种用于对齐边界区域顺序的位置嵌入。

SimVLM是一种简单的前缀语言模型,其中前缀序列的处理方式类似于 BERT 的双向注意力,但主要的文本输入序列只有因果注意力类似于 GPT。图像被编码为前缀标记,以便模型可以完全消耗视觉信息,然后以自回归方式生成相关文本。

SimVLM 将图像分割成更小的块,形成一个平铺的 1D 块序列。他们使用由 ResNet 的前 3 个块组成的卷积阶段来提取上下文化的块,这种设置被发现比简单的线性投影效果更好。

img

这种方法的学习目标更像是通过视觉信息前缀,通过transformer结构进行自回归学习,这也是它与前者较大的差距. 因此通过图像编码器编码图像特征然后通过掩码语言建模(Masked Language Modeling)(类似完形填空)或自回归学习训练原本的大语言模型使其拥有视觉能力.

学习图像嵌入

如果不想在适应处理视觉信号时更改语言模型参数,那么以学习一个与语言模型兼容的图像嵌入空间。

受前缀或提示调整的启发,Frozen和 ClipCap仅在训练期间更新视觉模块的参数,以生成可以与预训练的冻结语言模型一起工作的图像嵌入。两者都使用对齐的图像标题数据集进行训练,以根据图像和先前的文本标记生成下一个文本标记。通过冻结 LM 参数,保留了强大的语言能力。此外,尽管这种设置是在有限的图像标题数据上训练的,但它们在测试时也可以依赖语言模型的知识库

img

从框架图看来就是只是用了一个视觉编码器将得到的embedding与预训练固定参数的text encoder和大模型同时训练更新视觉编码器

ClipCap 依靠 CLIP 进行视觉编码,但它需要由光映射网络处理,以便将图像嵌入向量转换为与预训练 LM 相同的语义空间。该网络将 CLIP 嵌入向量映射到一系列嵌入向量中,每个向量与 GPT2 中的单词嵌入具有相同的维度。增加前缀大小有助于提高性能。CLIP 视觉编码器和 LM 在训练期间都会被冻结,并且只学习映射网络。

ClipCap学习的是一个映射网络,它同时利用了预训练的CLIP和大模型

img

交叉注意力混合视觉和文本信息

VisualGPT 采用self-resurrecting的编码器-解码器注意力机制,用少量的域内图像文本数据快速适应预训练的 LM

img

设I为视觉编码器的输入,H为LM解码器的隐藏状态. 引入激活单元通过两个互补门来控制预训练语言信息和视觉组件之间混合.
$$
\begin{array}{c}{{B^{\mathrm{vs}}\otimes\mathrm{EncDecattn}(H,I)+B^{\mathrm{in}}\otimes H}}\ {{\mathrm{where\,}B^{\mathrm{vs}}[i,j]=\sigma(H[i,j])[\sigma(H[i,j])>\tau]}}\ {{B^{\mathrm{ban}}[i,j]=(1-\sigma(H[i,j])]\ne[1-\sigma(H[i,j])>\tau]}}\end{array}
$$
每层decoder通过门控制单元混合不同的输入.

VC-GPT 将预训练的视觉转换器(CLIP-ViT)作为视觉编码器和预训练的 LM 作为语言解码器相结合。CLIP-ViT 将一系列图像块作为输入和输出,并输出每个块的表示。为避免灾难性的遗忘,VC-GPT 不是将视觉信息直接注入 GPT2,而是在视觉编码器和语言解码器的输出之上引入了额外的交叉注意力层。然后, 一个自集成 模块线性组合单模型语言解码器 logits h^G^和跨模型视觉语言融合模块 logitsh^fuse^ 自集成模块对于性能很重要

img

MERLOT接受了 600 万个 YouTube 视频的训练,并转录了语音 (YT-Temporal-180M),以学习空间(帧级)和时间(视频级)目标,并在微调时在 VQA 和视觉推理任务上表现出强大的表现。每个视频被拆分为多个片段,每个片段从中间的图像帧和关联的单词。图像由学习的图像编码器编码,单词使用学习的嵌入进行编码。然后,两者在一个联合的vision-language transformer中一起编码。

img
  1. 遮罩语言建模(MLM),因为在视频中有许多重复的关键字或填充词。
  2. 对比帧-标题匹配使用联合视觉-语言转换器中的纯语言部分。每个帧 I~t~和 caption w~t~ 的匹配表示形式被视为正面示例,而负面示例来自小批量中的所有其他帧-标题对。
  3. 时间重新排序学习时间推理:打乱随机i帧,并将段级位置嵌入替换为随机且唯一的位置嵌入。随机位置嵌入被学习,允许模型以正确排序的帧为条件取消这些 “'shuffled'” 帧。

Flamingo ( Alayrac et al. 2022) 是一种视觉语言模型,它接受与图像/视频交错的文本并输出自由格式的文本。Flamingo 通过基于 transformer 的映射器连接预训练的 LM 和预训练的视觉编码器(即 CLIP 图像编码器)。为了更有效地整合视觉信号,Flamingo 采用基于 Perceiver 的架构,从大量视觉输入特征中生成数百个标记,然后使用与 LM 层交错的交叉注意力层将视觉信息融合到语言解码过程中。训练目标是自回归的 NLL 损失。Perceiver 重采样器从图像/视频输入的视觉编码器接收时空特征,以生成固定大小的视觉标记。冻结的 LM 配备了新初始化的交叉注意力层,这些层在预训练的 LM 层之间交错。因此LM 可以生成以上述视觉标记为条件的文本。

与 ClipCap 类似,两个预训练模型在训练期间都会被冻结,因此 Flamingo 仅经过训练才能将现有的强大语言和视觉模型和谐地连接在一起。ClipCap 和 Flamingo 的主要区别在于,前者将图像嵌入视为 LM 的简单前缀,而后者使用门控交叉注意力密集层来融合图像信息。此外,Flamingo 包含的训练数据比 ClipCap 多得多。

img

​ 为了轻松处理带有交错图像的文本,Flamingo 中的遮罩设计为文本标记仅交叉关注与最后一个前图像对应的视觉标记,从而大大减少了某个文本标记可以看到的视觉标记的数量。他们发现这比允许文本标记直接处理所有前面的图像效果更好。文本仍然可以处理所有以前的图像,因为文本编码器中存在因果自我注意依赖关系。此设计可以处理上下文中任意数量的图像。从互联网上抓取了 4300 万个网页,名为 MultiModal MassiveWeb (M3W) 数据集,其中包含带有交错图像的文本。此外,Flamingo 还在配对的图像/文本和视频/文本数据集上进行了训练,包括 ALIGN、LTIP 和 VTP。

​ CoCa捕捉到了对比学习和图像到标题生成的优点。它是一个联合训练的模型,在 CLIP 风格的表示上具有对比损失,在图像描述上具有生成损失,在各种多模态评估任务上实现了 SoTA 零样本转移。

img

CoCa 是从头开始预训练的,使用 Web 规模的替代文本数据 ALIGN 和注释图像,将所有标签视为 JTB-3B 中的文本

img

无训练方法

可以通过将预训练的语言和视觉模型拼接在一起来解决视觉语言任务,而无需训练任何其他参数。

MAGiC 根据名为 magic score 的基于 CLIP 的分数进行引导解码,以对下一个标记进行采样,而无需微调。鼓励生成的文本与给定图像相关,同时仍与先前生成的文本保持一致.与其他无监督方法相比,MAGiC 具有不错的性能,但与有监督方法仍然存在很大差距. MAGiC核心就是更改了采样方式,第t步采样的token会通过基于CLIP的分数计算与图像编码相似的值.

image-20250112122938693

​ 对于基于知识的 VQA 任务,PICa首先将图像转换为标题或标签,然后使用少数镜头示例提示 GPT3 提供答案。图像标题或标记由某些现有模型(例如 VinVL)或 Azure 标记 API 提取。GPT3 被认为是一个非结构化的隐式知识库.

苏格拉底模型是一个框架,通过语言(提示)将不同模态的多个预训练模型组合成一个模型,而无需进一步训练。在这里,语言被认为是不同模型可以交换信息的中间表示。关键思想是使用多模型多模态提示,其中非语言模型的输出入到语言提示中,然后用于 LM 进行推理. SM 可以生成图像字幕,首先使用 VLM 对不同的地点类别、对象类别、图像类型和人数进行零拍摄预测;然后将 VLM 填充的语言提示输入到因果 LM 中以生成候选字幕。Socratic 方法在图像字幕方面与 ClipCap 的性能仍然存在差距,但考虑到它不涉及任何培训,因此相当不错。 简单来说就是将不同模态模型,比如vision-language model,language model,audio-language model结合在一起,通过一种相对固定的prompt template通信,SM 可以生成图像字幕,首先使用 VLM 对不同的地点类别、对象类别、图像类型和人数进行零拍摄预测;然后将 VLM 填充的语言提示输入到因果 LM 中以生成候选字幕

img

大模型驱动的Agents

​ 多个大模型之间协作增强输出并设计一些类似模仿一个系统中负责不同功能的组件组成Agent. 目前许多大模型公司在做应用时都是往这个方向发展.在 LLM 驱动的自主代理系统中,LLM 充当代理的大脑,并辅以几个关键组件:

规划:子目标和分解:智能体将大型任务分解为较小的、可管理的子目标,从而能够高效处理复杂任务。反思和完善:智能体可以对过去的行为进行自我批评和自我反省,从错误中吸取教训并为未来的步骤进行改进,从而提高最终结果的质量。(任务分解和完善行为)

记忆: 短期记忆:所有的上下文学习(参见提示工程)都是利用模型的短期记忆来学习的。长期记忆:这为代理提供了在较长时间内保留和调用(无限)信息的能力,通常是通过利用外部向量存储和快速检索。

工具使用:智能体学习调用外部 API 以获取模型权重中缺少的额外信息(通常在预训练后很难更改),包括当前信息、代码执行能力、对专有信息源的访问等

img

规划

任务分解

Chain of Thoughts已成为提高模型在复杂任务上性能的标准提示技术。该模型被指示 “逐步思考”,以利用更多的测试时计算将困难的任务分解为更小、更简单的步骤。CoT 将大任务转化为多个可管理的任务,并阐明对模型思维过程的解释

Tree of Thoughts通过在每一步探索多种推理可能性来扩展 CoT。它首先将问题分解为多个思考步骤,每个步骤生成多个思考,从而创建一个树状结构。搜索过程可以是 BFS(广度优先搜索)或 DFS(深度优先搜索),每个状态都由分类器(通过提示)或多数投票进行评估。

任务分解可以通过以下方式完成:(1) 由 LLM 使用简单的提示,如 "Steps for XYZ.\n1.""What are the subgoals for achieving XYZ?" , (2) 通过使用特定于任务的指令;例如 "Write a story outline." 用于写小说,或 (3) 人工输入

另一种非常不同的方法 LLM+P ( Liu et al. 2023) 涉及依靠外部经典规划师进行长期规划。这种方法利用规划域定义语言 (PDDL) 作为中间接口来描述规划问题。在这个过程中, LLM (1) 将问题翻译成 “问题 PDDL”,然后 (2) 请求经典规划师基于现有的 “领域 PDDL” 生成 PDDL 计划,最后 (3) 将 PDDL 计划翻译回自然语言。从本质上讲,规划步骤外包给外部工具,假设特定领域的 PDDL 和合适的规划器可用,这在某些机器人设置中很常见,但在许多其他领域中并不常见

自我反思

自我反省允许自主智能体通过改进过去的行动决策和纠正以前的错误来迭代改进。它在不可避免地需要试错的实际任务中起着至关重要的作用。

​ ReAct通过将动作空间扩展为特定于任务的离散动作和语言空间的组合,将推理和行动整合到 LLM 中。前者使 LLM 能够与环境交互(例如使用维基百科搜索 API),而后者则提示 LLM 以自然语言生成推理轨迹。

Reflexion 是一个框架,用于为智能体提供动态记忆和自我反思能力,以提高推理技能。Reflexion具有标准的 RL 设置,其中奖励模型提供简单的二进制奖励,操作空间遵循ReAct中的设置,其中特定于任务的操作空间通过语言进行扩充,以支持复杂的推理步骤。在每个操作a~t~之后,智能体会计算启发式 h~t~,并且可以根据自我反思结果选择性地决定重置环境以开始新的试用。

img

启发式函数确定轨迹何时效率低下或包含幻觉,何时应停止。低效的规划是指花费太长时间而没有成功的轨迹。幻觉被定义为遇到一系列连续的相同动作,这些动作导致在环境中进行相同的观察。

自我反思是通过向 LLM 展示两张照片的例子来创建的,每个例子都是一对(失败的轨迹,指导计划中未来变化的理想反思)。然后将反射添加到 agent 的工作内存中,最多三个,用作查询 LLM 的上下文。

Chain of Hindsight鼓励模型通过明确呈现一系列过去的输出来改进自己的输出,每个输出都带有反馈注释.CoH 的理念是在上下文中呈现连续改进的产出的历史,并训练模型顺应趋势以产生更好的产出。算法蒸馏将相同的想法应用于强化学习任务中的跨集轨迹,其中算法被封装在一个长期受历史条件限制的策略中。考虑到代理与环境交互多次,并且每次代理都会变得更好,AD 会将此学习历史记录连接起来,并将其馈送到模型中。

记忆模块

三种类型的记忆

  1. 感官记忆:这是记忆的最早阶段,提供在原始刺激结束后保留感官信息(视觉、听觉等)印象的能力。感官记忆通常最多只持续几秒钟。子类别包括图标记忆(视觉)、回声记忆(听觉)和触觉记忆(触觉
  2. 短期记忆 (STM) 或工作记忆:它存储我们目前知道的和执行复杂认知任务(如学习和推理)所需的信息。短期记忆被认为具有大约 7 项的容量 (Miller 1956) 并持续 20-30 秒。
  3. 长期记忆 (LTM):长期记忆可以存储信息非常长的时间,从几天到几十年不等,具有基本上无限的存储容量。LTM 有两种亚型: ​ 显性 / 陈述性记忆:这是对事实和事件的记忆,指的是那些可以被有意识地回忆起来的记忆,包括情景记忆(事件和经历)和语义记忆(事实和概念) ​ 内隐/程序记忆:这种类型的记忆是无意识的,涉及自动执行的技能和例程,例如骑自行车或在键盘上打字。

感官记忆作为原始输入(包括文本、图像或其他模态)的学习嵌入表示;

短期记忆作为上下文学习。它简短而有限,因为它受 Transformer 的有限上下文窗口长度的限制。

长期内存作为代理在查询时可以处理的外部向量存储,可通过快速检索访问。

最大内积搜索

外部存储器可以缓解有限注意力持续时间的限制。标准做法是将信息的嵌入表示保存到可以支持快速最大内积搜索 (MIPS) 的向量存储数据库中。为了优化检索速度,常见的选择是近似最近邻 (ANN) 算法,以返回大约 k 个前 k 个最近邻,以牺牲一点准确性损失来换取巨大的加速

LSH(Locality-Sensitive Hashing):它引入了一个哈希函数,以便将相似的输入项以高概率映射到相同的存储桶,其中存储桶的数量远小于输入的数量

ANNOY (Approximate Nearest Neighbors Oh Yeah):核心数据结构是随机投影树,这是一组二叉树,其中每个非叶节点代表一个将输入空间分成两半的超平面,每个叶子存储一个数据点。树是独立且随机构建的,因此在某种程度上,它模仿了哈希函数。ANNOY 搜索发生在所有树中,以迭代搜索最接近查询的一半,然后聚合结果。这个想法与 KD 树非常相关,但更具可扩展性。

HNSW(分层可导航小世界):它的灵感来自小世界网络的思想,其中大多数节点可以在少量步骤内被任何其他节点到达;例如社交网络的“六度分离”功能。HNSW 构建了这些小世界图的分层,其中底层包含实际数据点。中间的图层创建快捷方式以加快搜索速度。在执行搜索时,HNSW 从顶层的随机节点开始,并导航到目标。当它无法更靠近时,它会向下移动到下一层,直到到达底层。上层的每次移动都可能覆盖数据空间中的很长一段距离,而下层的每一次移动都会提高搜索质量。

FAISS(meta相似性搜索):它的运行基于以下假设:在高维空间中,节点之间的距离遵循高斯分布,因此应该存在数据点的聚类。FAISS 通过将向量空间划分为多个聚类,然后在聚类内优化量化来应用向量量化。Search 首先查找具有粗略量化的候选集群,然后进一步查找具有更精细量化的每个集群。

工具使用

工具的使用是人类的一个显著特征。我们创造、修改和利用外部物体来做超出我们身体和认知极限的事情。为 LLMs 配备外部工具可以显着扩展模型功能。

HuggingGPT 是一个以 ChatGPT 作为任务规划器的框架,根据模型描述选择 HuggingFace 平台中可用的模型,并根据执行结果总结响应. 系统调用包括任务规划,模型选择,任务执行,生成响应.

API-Bank 是评估工具增强 LLMs 性能的基准。它包含 53 个常用的 API 工具、一个完整的工具增强 LLM 工作流程,以及 264 个带注释的对话,涉及 568 个 API 调用。API 的选择非常多样化,包括搜索引擎、计算器、日历查询、智能家居控制、日程管理、健康数据管理、帐户身份验证工作流程等。因为 API 数量众多,所以 LLM 首先要有 API 搜索引擎,找到合适的 API 进行调用,然后用相应的文档进行调用。

参考资料

  1. LLM Powered Autonomous Agents | Lil'Log
  2. Generalized Visual Language Models | Lil'Log

此作者没有提供个人介绍。
最后更新于 2025-02-02