RAG(Retrieval Augmented Generation)是一种基于检索的生成技术,它通过从大规模语料库中检索相关信息来辅助生成文本。长文本是指长度较长的文本,通常包含多个句子或段落。在自然语言处理(NLP)领域,长文本建模是一个重要的研究方向,它旨在提高语言模型对长文本的理解和生成能力。
虽然 RAG 可以减轻模型的记忆负担,但它并不能取代模型本身的语言理解和推理能力。在代码生成方面,研究人员分享了一个最新技术:Task Weaver。Task Weaver 是微软的框架,用 GPT 的一个常规模型来完成。它本质是把一个复杂任务拆成很多小部分,然后再把每个小部分再去做 code intervention,中间用代码的形式来交互。在每一个小部分里面,开始套各种套模板。这种用在长文本的话,可以解决掉内容丢失的问题。但是这个模型上下文不长,超过 8K 就结束了。特别是它里面有个 Tools 叫 RAG,它占用上下文很大,每次调用 Tools,就会把 RAG 里面的东西全部抛进来,RAG 会作为一个 Tools 的 Observation 返回给 Agent。之后,把整个 Agent 的结果成为下一个 RAG 的内容,在下一次 Agent 的时候再套,再把这个记录套回去。如果长文本技术的发展提升,Agent 上限可能会提高。
总的来说,RAG 和长文本各有所长,它们可以相互补充,提高语言模型的性能和泛化能力。
长文本是一种智力能力。拥有一个更好的上下文窗口,可以更好地解决代码的相互依赖和逻辑性问题。如果只是用RAG方式去分段代码,然后再连接起来,再分段提问,是无法满足需求的。RAG更像是能力的边界。如果只使用上下文窗口,而没有好好利用RAG基于检索的方式,很难解决同一个代码工程在多个模块,或者在多个功能上的问题。只能解决比较局部的问题,无法处理多个模块之间的相互关联,例如进行联调测试,而合理使用RAG辅助可以拓展模型的知识边界。编者按:长文本是一种智力能力:从认知科学的角度看,人类处理长文本信息的能力是高级智力的体现。阅读理解一本小说,写作一篇论文,都需要在大脑中维护一个宏大的上下文,同时进行逻辑推理、情节关联等复杂的认知活动。这种能力区别于对简单句子或短语的机械处理。对语言模型而言,长文本建模能力意味着更强的抽象和归纳能力。RAG更像是能力的边界:RAG通过检索相关片段来辅助生成,在一定程度上弥补了语言模型在长文本建模上的不足。
原文链接:https://mp.weixin.qq.com/s/jrgowNLS-cI-ztRHaZNqNg来源:质朴发言发文时间:2024.03.25编者按:当前,AIGC的迭代速度正以指数级的速度增长。2024年2月,谷歌发布的Gemini 1.5 Pro;再次将上下文刷新为100万token,创下了最长上下文窗口的纪录,相当于1小时的视频或者70万个单词。由于Gemini在处理长上下文方面表现出色,甚至有人高喊“RAG已死”。爱丁堡大学博士付尧表示:“一个拥有1000万token上下文窗口的大模型击败了RAG。大语言模型已经是非常强大的检索器,那么为什么还要花时间构建一个弱小的检索器,并将时间花在解决分块、嵌入和索引问题上呢?”随着模型上下文长度的提升,一个问题逐渐显现:RAG技术是否会被取代?由此,我们在3月9日举办了Z沙龙第八期:Long-context & RAG。我们邀请了产业界和学术界的朋友们共同碰撞思想,交流观点;他们分享了关于于Long-context和RAG的看法,并对Context length是否存在摩尔定律展开了精彩讨论。
它提供了一种即时获取背景知识的机制,减轻了模型的记忆负担,但它并不能取代模型本身的语言理解和推理能力。针对代码生成,研究人员分享了一个最新技术:Task Weaver。Task Weaver是微软的框架,用GPT的一个常规模型来完成。本质是把一个复杂任务拆成很多小部分,然后再把每个小部分再去做code intervention,中间用代码的形式来交互。在每一个小部分里面,开始套各种套模板。这种用在长文本的话,可以解决掉内容丢失的问题。但是这个模型上下文不长,超过8K就结束了。特别是它里面有个Tools叫RAG,它占用上下文很大,每次调用Tools,就会把RAG里面的东西全部抛进来,RAG会作为一个Tools的Observation返回给Agent。之后,把整个Agent的结果成为下一个RAG的内容,在下一次Agent的时候再套,再把这个记录套回去。如果长文本技术的发展提升,Agent上限可能会提高。TaskWeaver是一款代码优先的Agent框架,能将用户的自然语言请求转化为可执行代码,并支持海量数据结构、动态插件选择以及专业领域适应的规划过程。