关于大模型有个进展,就是Meta发布视频模型Meta Movie Gen,主打的点是Movie Gen能直接生成带背景音乐的视频,目前Sora、Runway、Luma等一线产品都无法提供该功能。感兴趣的可以去看看去92页的技术报告,https://ai.meta.com/static-resource/movie-gen-research-paper。
其中,论文里提及到的videos地址: https://go.fb.me/MovieGenResearchVideos,对应的Blogpost地址:https://ai.meta.com/blog/movie-gen-media-foundation-models-generative-ai-video/
但是,这个目前并未对外开放,无法使用。所以,我们继续来看技术,昨天看了两个问题,一个是关于问题的定义和RAG中查询的四个层次,另一个是关于RAG中的查询-文档对齐的几种策略。
今天,继续来看,看关于迭代式RAG的几种思路、特定领域数据注入到大模型的方式以及关于基于图谱的RAG增强方式三个问题。
持续跟进,持续思考,供大家一起参考并思考。
一、关于迭代式RAG的几种思路
迭代式RAG处理的是那些涉及隐式事实的查询,这类查询通常需要通过多步骤的推理来解答。这些查询的答案不会直接呈现在任何单一文本段落中,而是需要通过搜集和处理多个文档中的信息,并将这些信息组合起来,通过常识推理得出结论。
迭代式RAG方法的核心在于,会动态地控制多步骤的RAG过程,通过迭代地收集或纠正信息,直到找到正确答案。
1、基于规划的方法
在检索前阶段生成逐步检索计划,或在检索过程中动态生成,可以细化每次检索的重点,有效地指导迭代式RAG系统。
例如,ReAct《React: Synergizing reasoning and acting in language models》逐步更新每个步骤的目标,减少回答查询所需的知识差距。
IRCoT《Interleaving retrieval with chain- of-thought reasoning for knowledge-intensive multi-step questions》和RAT《Rat: Retrieval augmented thoughts elicit context-aware reasoning in long-horizon generation》使用思维链来指导RAG流程,基于先前召回的信息决定当前检索目标。
GenGround《Generate-then-ground in retrieval-augmented generation for multi-hop question answering》使LLM能够在两个阶段之间交替进行,直到得出最终答案:(1)生成一个更简单的单步问题并产生直接答案,(2)将问题-答案对回溯到检索的文档,以验证和纠正预测中的任何不准确之处。这种迭代过程确保了更可靠和准确的响应。
2、基于信息差距填补的方法
ITRG《Retrieval-generation synergy augmented large language models》引入了一个迭代式检索-生成协作框架,基于现有知识生成答案,然后继续检索和生成后续轮次中未知部分的答案。
类似地,FLARE《Active retrieval augmented generation》在每次迭代中重新审视并修改答案中低概率的标记。
另一方面,Self-RAG《Self-rag: Learning to retrieve, generate, and critique through self-reflection》微调一个大模型,以自主决定何时搜索和何时停止搜索并开始回答问题。
这些方法通过将复杂查询分解为一系列更简单的检索操作,并逐步聚合结果以形成综合答案,从而有效地处理隐式事实查询。
二、关于基于图谱的RAG增强方式
处理隐式事实查询需要从多个参考资料中综合信息。无论是基于知识的图谱还是数据结构化的图谱,图或树都自然地表达了文本之间的关联关系,因此非常适合这类数据检索问题。
1、传统知识图谱Traditional Knowledge Graph
最初考虑用于提高LLMs效能的结构之一是传统知识图谱,其中每个节点代表一个实体,节点之间的边表示这些实体之间的关系。
例如,《Unifying large language models and knowledge graphs: A roadmap》介绍了LLMs和知识图谱(KGs)结合的前瞻性发展路线图,包括:
1)知识图谱增强的LLMs,在LLMs的预训练和推理阶段整合知识图谱,以加深模型对获取知识的理解;
2)LLMs增强的知识图谱,利用LLMs执行各种知识图谱任务,如嵌入、补全、构建、图到文本生成和问答;
3)协作的LLMs+KGs方法,LLMs和KGs扮演互补的角色,通过数据和知识驱动的双向推理相互增强。
Rigel-KQGA《Knowledge graph-augmented language models for complex question answering》模型,是一个端到端的知识图谱问答模型,它根据查询预测所需的知识图谱节点,并将此与LLM结合起来得出答案。像Think-on-Graph《Think-on-graph: Deep and responsible reasoning of large language model on knowledge graph》和KnowledgeNavigator《Knowledgenavigator: Leveraging large language models for enhanced reasoning over knowledge graph》这样的工作提取查询中涉及的实体,然后在图上执行迭代的广度优先搜索(BFS),使用LLM作为思考机器来确定最优的探索路径并执行剪枝。
R3《Right for right reasons: Large language models for verifiable commonsense knowledge graph question answering》引入了几种可能的常识公理通过LLM来处理查询,顺序搜索相关的知识子图,以评估当前信息是否足以回答问题,继续进行直到问题解决。
2、数据块图/树Data Chunk Graph/Tree
LLMs的卓越阅读理解能力使它们能够有效地理解文本,而无需将其分解成最细粒度的实体和关系。在这种情况下,研究人员开始尝试使用文本块或数据块作为图或树上的节点,使用边来表示高级或更复杂设计的关联。
Knowledge-Graph-Prompting《Knowledge graph prompting for multi-document question answering》讨论了需要从(a)桥接问题依赖于顺序推理,(b)比较问题依赖于不同段落的并行推理,以及©结构问题依赖于相应文档结构中挖掘隐式事实的三种常见问题类型。
为了解决这些问题,Knowledge-Graph-Prompting使用实体识别、TF-IDF、KNN和文档结构层次来构建文档图,并提取子图以回答问题。
MoGG《Mix-of-granularity: Optimize the chunking granularity for retrieval-augmented generation》将一句话或两句话作为最小的语义单元,使用这些作为节点,并根据节点之间的语义相似性构建边。它还训练一个预测器来决定回答查询所需的文本粒度,通过决定需要多大的子图。
为了捕捉文本块之间更高级别的语义关系,RAPTOR《Raptor: Recursive abstractive processing for tree-organized retrieval》使用聚类算法将最细粒度的文本块进行层次聚类。它在每个层次级别上总结新的语义信息,回忆起节点内折叠树中最必要的信息。
同样,GraphRAG《From local to global: A graph rag approach to query-focused summarization》采用了聚类方法。它最初基于语义相似性连接最小的文本块,然后使用社区检测算法对节点进行分组。最后,它通过分析每个节点社区内的回答来总结查询的全局答案。
三、特定领域数据注入到大模型的方式
图 6 描述了将特定领域数据注入到大型语言模型(LLM)中的三种方式:
1、基于查询提取领域数据作为上下文输入
在这种方法中,系统会根据用户的查询从领域数据中提取相关的数据片段,并将这些片段作为上下文信息输入到LLM中。
这样,模型在生成回答时可以利用这些上下文信息来提供更加准确和相关的回答。这种方法的优点在于它能够提供较好的解释性和稳定性,但挑战在于上下文窗口有限,且可能会在处理过程中丢失中间信息。
b) 训练小型模型引导外部信息的整合
在这种方法中,首先使用特定领域的数据训练一个小型模型。这个小型模型随后用于指导如何整合外部信息到LLM中。
这种方法的优点是可以减少训练时间和资源消耗,并且可以处理大量的数据。但它的有效性依赖于小型模型的能力,并且可能会限制LLM在处理更复杂任务时的性能。
c) 直接使用领域知识进行微调
在这种方法中,直接使用外部的领域特定知识对通用的大型语言模型进行微调,使其成为领域专家模型。
微调可以帮助模型快速掌握新的领域特定知识,提高其在特定任务上的表现。然而,微调可能会影响模型在处理与训练数据不相关或未包含在训练数据中的任务时的性能。
这三种方法各有优势和局限性,选择哪一种方法取决于数据源的特性、任务需求、以及可用的计算资源。在实际应用中,可能会根据特定需求和条件选择最合适的方法,或者将这些方法结合起来使用,以达到最佳效果。
总结
本文主要回顾了三个话题,关于迭代式RAG的几种思路、特定领域数据注入到大模型的方式以及关于基于图谱的RAG增强方式。
如何学习大模型 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 的正确特征了。