0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于检索的大语言模型简介

深度学习自然语言处理 来源:CS的陋室 2023-11-15 14:50 次阅读

简介

简介章节讲的是比较基础的,主要介绍了本次要介绍的概念,即检索(Retrieval)和大语言模型(LLM):

d63e09b4-7ef0-11ee-939d-92fbcf53809c.png

简单的说,其实就是通过检索的模式,为大语言模型的生成提供帮助,从而使之生成更符合要求的结果,听起来,其实就和最近比较火的另一个概念——检索增强生成(RAG,retrieval augment generation),在我的理解下,就是一件事。

众所周知,LLM其实已经在很多领域和问题下都取得了很好的效果,那为何还需要依赖检索做进一步优化,在本文看来,主要有5个原因:

LLM无法记住所有知识,尤其是长尾的。受限于训练数据、现有的学习方式,对长尾知识的接受能力并不是很高。

LLM的知识容易过时,而且不好更新。只是通过微调,模型的接受能力其实并不高而且很慢,甚至有丢失原有知识的风险。

LLM的输出难以解释和验证。一方面最终的输出的内容黑盒且不可控,另一方面最终的结果输出可能会受到幻觉之类的问题的干扰。

LLM容易泄露隐私训练数据。用用户个人信息训练模型,会让模型可以通过诱导泄露用户的隐私。

LLM的规模大,训练和运行的成本都很大。

而上面的问题,都可以通过数据库检索快速解决:

数据库对数据的存储和更新是稳定的,不像模型会存在学不会的风险。

数据库的数据更新可以做得很敏捷,增删改查可解释,而且对原有的知识不会有影响。

数据库的内容是明确、结构化的,加上模型本身的理解能力,一般而言数据库中的内容以及检索算法不出错,大模型的输出出错的可能就大大降低。

知识库中存储用户数据,为用户隐私数据的管控带来很大的便利,而且可控、稳定、准确。

数据库维护起来,可以降低大模型的训练成本,毕竟新知识存储在数据库即可,不用频繁更新模型,尤其是不用因为知识的更新而训练模型。

问题定义

首先,按照文章的定义:

A language model (LM) that uses an external datastore at test time。

关键词两个:语言模型和数据库。

语言模型这块,我们其实都熟悉了,早些年以bert代表的模型,到现在被大量采用的大模型,其实结构都具有很大的相似性,而且已经相对成熟,模型结构这事就不赘述了。更为重要的是,prompt受到关注的这件事,在现在的视角看来是非常关键的发现,prompt能让大模型能完成更多任务,通过引导能让模型解决不同的问题,同时,效果还是不错,在现在的应用下,prompt精调已经成为了经济高效的调优手段了。

d65bf2c6-7ef0-11ee-939d-92fbcf53809c.png

至于数据库,配合大模型,构造成如下的推理结构:

d6778ebe-7ef0-11ee-939d-92fbcf53809c.png

datastore是数据源,构造成索引后,可以接受query进行检索,检索结果和大模型配合,就能输出结果。

架构

此时,就出现一个问题,大模型和检索查询之间的关系是什么,拆解下来,就是这几个问题:

查什么:query如何构造以及检索的。

如何使用查询:查询结果出来后如何跟大模型协同。

何时查:什么时候触发查询,或者换个说法,如何构造查询query。

d69a1db2-7ef0-11ee-939d-92fbcf53809c.png

section3中,通过论文讲解的方式,讨论了多篇论文在解决上述3个问题下的解决方案,并且讨论了他们的优缺点。

d69a1db2-7ef0-11ee-939d-92fbcf53809c.png

这里总结一些关键要点给大家,让大家理解这些检索策略的不一样会有什么优缺点:

检索不一定检索一次,可以切句,例如机械地n个token地切后查询,会比只查一次要强一些。

RETRO中构造了临时层对检索结果进行解析,提升检索结果的理解和使用能力,但这也意味着这些层需要进行训练后才可使用,训练成本是增加的。

KNN-LM在检索上,从词降级为token,能对低频或域外(out of domain)数据有很好的支持,但存储空间会变大很多,同时该方法缺少输入和检索结果的交互信息。

后续的FLARE和Adaptive-LM采用了自适应检索的方式,能提升检索的效率,但当然与之对应的检索策略并不一定是最优的(误差叠加)。

Entities as Experts直接检索实体,能提升效率,但这个位置是需要额外的实体识别的。

训练

在LLM-Retrieval的框架下,训练除了为了更好地让LLM做好推理预测,还需要尽可能让LLM和检索模块协同,而显然,同时训练LLM和检索模块的模型,无疑是成本巨大的,就这个背景,文章总结了4种LLM和检索模块的更新策略。(注意,此处我把training翻译为更新)

首先是独立更新(Independent training),即两者各自更新,互不影响。这个应该是目前我看到最常见的一种方式了。

优点:对频繁更新的索引,大模型不需要频繁更新,甚至不需要更新;每个模块可以独立优化。

缺点:大模型和检索模型两者之间并无协同。

然后是依次训练(Sequential training),即训练其中一个的时候,另一个固定,等此模块训练完训练完以后再训另一个。

优点:和独立更新有相似点,大模型不需要频繁更新,甚至不需要更新;不同的是,大模型可以进行适配检索模块的训练,反之亦然。

缺点:因为是依次训练,所以在训练其中一个时,另一个是固定的,不能做到比较彻底的协同,而且大模型更新的频率不见得跟得上索引库的更新,如果紧跟,成本会变高。

第三种是异步索引更新下的联合训练,即允许索引过时,定期更新即可。这种方式的难点是需要权衡,索引更新的频率是多少,太多了则训练成本昂贵,太少了则索引过时,导致有些问题会出错。

第四种也是联合训练,但考虑到更新索引的频次问题,所以索引通过批次的方式来更新,当然了,这种方式的同样会带来成本的问题,无论是训练阶段,还是索引更新阶段。

总结一下,有关训练阶段,两者协同,有如下优缺点。

d6ddaf0a-7ef0-11ee-939d-92fbcf53809c.png

应用

应用这块,通过这几个月我们的深入使用,大模型给了我们很多的使用空间,到了LLM+检索的场景,我们需要知道的是有哪些优势场景,在本文中,作者总结了如下使用场景:

d6ff8616-7ef0-11ee-939d-92fbcf53809c.png

第一行3个任务主要优势表现在知识密集型的任务中,中间和下面的6个则是比较经典的NLP任务了,中间3个偏向生成,后面3个倾向于分类,此时,我们需要回答两个问题:

如何把LLM+检索这个模式应用在这些任务中?

使用LLM+检索这个模式的时机是什么?

首先是第一个问题,如何应用,这里给出了3种使用方法,分别是微调、强化学习和prompt。我们日常使用的更多的可能是prompt,但是从一些实战经验上,可能还有别的模式可能能让模型更好地利用。

d722bc6c-7ef0-11ee-939d-92fbcf53809c.png

微调方面,只要把整个流程串起来其实就能发现,是完全可行的,ATLAS这篇论文比较典型,再处理知识库的更新上选择了相对独立的策略,从实验来看,效果还是不错的,作者的评价是这样的:

微调能为知识密集型任务提供很大的提升。

对检索库本身的微调也十分重要。

d73deee2-7ef0-11ee-939d-92fbcf53809c.png

而强化学习,也算是最近比较热门的研究方向了,RLHF能把全流程串起来,有人工的评价能为结果带来更多的提升,作者用的是“alignment”,是对齐用户的偏好,然而实际上,这种人工的数据其实还是比较难获得并使用的。

d75b845c-7ef0-11ee-939d-92fbcf53809c.png

在prompt这块,作者首先提出一个问题:“What if we cannot train LMs for downstream tasks?”,这个问题很现实,因为很多原因,我们可能没法训练模型,只能用开源的或者是固定通用的模型(心法利器[102] | 大模型落地应用架构的一种模式),此时,prompt就是一个非常好用的方案了。从结果层面显示,这种方案可以说是非常“effective”,同时作者还提及不用训练和并不差的效果(用的strong),但缺点也比较明显,可控性还是不够,相比微调的效果还是要差点。

然后,下一个问题,就是使用检索这个模式的时机了。说到时机,其实回归到前面所提到的原因就知道了,即长尾知识、知识过时、内容难验证、隐私问题和训练成本问题,经过作者的整理,从使用检索的原因,转为提及检索这个模式的优势,则是6点:长尾知识、知识更新能力、内容可验证性、参数效率、隐私以及域外知识的适配性(可迁移性)。

多模态

多模态是让自然语言处理超越文字本身的窗口了,知识的形式是丰富多样的,可以是文章、图谱、图片、视频音频等,如果能把多种信息进行解析,那对知识的支撑能力无疑是新的提升(毕竟不是所有信息都通过文字传播),在这章,更多是给了很多知识应用的思路,论文还不少,此处不赘述,大家可以去PPT里面钱问题记得网站上面找参考文献。

挑战和展望

总算到了挑战和展望,本章在总结前文的基础上,提出了很多新的问题,研究者们可以参考作为新的研究方向。

首先是基于检索的LLM的规模,第一个问题是小模型+大数据库,是否能约等于一个大模型,

小模型+大数据库,是否能约等于一个大模型?两者在规模上的关系是什么样的。

两者的缩放规则是什么样的,当知识库能支撑知识层面的需求后,语言模型的参数量、token量对结果有什么影响。

检索效率问题,一个是速度,另一个是空间。

第二个问题是,需要探索其应用。

开放式文本生成下,基于检索的大模型在蕴含和推理能力上还有局限性,毕竟光靠相似度的检索不太够,同时知识库大了以后,面对相似但是困难的知识点也会对推理造成干扰。

对于复杂的推理任务,有没有更好的潜在方案可探索,例如多次检索、query改写等策略。

再然后,是一些开放的问题:

基于检索的LLMs下最优的结构和训练策略是什么样的。

对模型的规模,我们无法比较好地去拓展和提升,尤其在具有检索能力支持的情况下。

下游任务上,需要更多更好的解码、推理等方案,甚至是自适应的。

小结

这篇文章写了挺久的,可以说是大开眼界吧,里面的论文看了不少,收获还是挺大的,让我知道有关检索-LLM这个模式下有那么多前人尝试过的玩法,后面有些我应该也会去尝试,看看提升如何。






审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 语言模型
    +关注

    关注

    0

    文章

    435

    浏览量

    10047
  • LLM
    LLM
    +关注

    关注

    0

    文章

    202

    浏览量

    233

原文标题:ACL23 | 基于检索的大语言模型-陈丹琦报告阅读

文章出处:【微信号:zenRRan,微信公众号:深度学习自然语言处理】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    语言模型中的语言与知识:一种神秘的分离现象

    自然语言处理领域存在着一个非常有趣的现象:在多语言模型中,不同的语言之间似乎存在着一种隐含的对齐关系。
    发表于 02-20 14:53 153次阅读
    大<b class='flag-5'>语言</b><b class='flag-5'>模型</b>中的<b class='flag-5'>语言</b>与知识:一种神秘的分离现象

    2023年科技圈热词“大语言模型”,与自然语言处理有何关系

    电子发烧友网报道(文/李弯弯)大语言模型(LLM)是基于海量文本数据训练的深度学习模型。它不仅能够生成自然语言文本,还能够深入理解文本含义,处理各种自然
    的头像 发表于 01-02 09:28 1392次阅读

    语言模型使用指南

    在信息爆炸的时代,我们渴望更智能、更高效的语言处理工具。GPT-3.5等大语言模型的崛起为我们提供了前所未有的机会。这不仅是技术的进步,更是人与机器共舞的一幕。本篇文章将带你走进这个奇妙的语言
    的头像 发表于 12-29 14:18 351次阅读

    语言模型概述

    在科技飞速发展的当今时代,人工智能技术成为社会进步的关键推动力之一。在广泛关注的人工智能领域中,大语言模型以其引人注目的特性备受瞩目。 大语言模型的定义及发展历史 大
    的头像 发表于 12-21 17:53 741次阅读

    语言模型简介:基于大语言模型模型全家桶Amazon Bedrock

    本文基于亚马逊云科技推出的大语言模型与生成式AI的全家桶:Bedrock对大语言模型进行介绍。大语言模型
    的头像 发表于 12-04 15:51 409次阅读

    揭秘编码器与解码器语言模型

    Transformer 架构的问世标志着现代语言模型时代的开启。自 2018 年以来,各类语言模型层出不穷。
    的头像 发表于 10-24 11:42 399次阅读
    揭秘编码器与解码器<b class='flag-5'>语言</b><b class='flag-5'>模型</b>

    虹科分享 | 谷歌Vertex AI平台使用Redis搭建大语言模型

    基础模型和高性能数据层这两个基本组件始终是创建高效、可扩展语言模型应用的关键,利用Redis搭建大语言模型,能够实现高效可扩展的语义搜索、
    的头像 发表于 09-18 11:26 339次阅读
    虹科分享 | 谷歌Vertex AI平台使用Redis搭建大<b class='flag-5'>语言</b><b class='flag-5'>模型</b>

    腾讯发布混元大语言模型

    腾讯发布混元大语言模型 腾讯全球数字生态大会上腾讯正式发布了混元大语言模型,参数规模超千亿,预训练语料超2万亿tokens。 作为腾讯自研的通用大
    的头像 发表于 09-07 10:23 852次阅读

    FPGA加速器支撑ChatGPT类大语言模型创新

    作者:Bill Jenkins,Achronix人工智能/机器学习产品营销总监 探索FPGA加速语言模型如何通过更快的推理、更低的延迟和更好的语言理解来重塑生成式人工智能 简介:大
    的头像 发表于 09-04 16:55 372次阅读
    FPGA加速器支撑ChatGPT类大<b class='flag-5'>语言</b><b class='flag-5'>模型</b>创新

    训练大语言模型带来的硬件挑战

    生成式AI和大语言模型(LLM)正在以难以置信的方式吸引全世界的目光,本文简要介绍了大语言模型,训练这些模型带来的硬件挑战,以及GPU和网络
    的头像 发表于 09-01 17:14 1118次阅读
    训练大<b class='flag-5'>语言</b><b class='flag-5'>模型</b>带来的硬件挑战

    检索增强的语言模型方法的详细剖析

      本篇内容是对于ACL‘23会议上陈丹琦团队带来的Tutorial所进行的学习记录,以此从问题设置、架构、应用、挑战等角度全面了解检索增强的语言模型,作为对后续工作的准备与入门,也希望能给大家带来
    的头像 发表于 08-21 09:58 1324次阅读
    <b class='flag-5'>检索</b>增强的<b class='flag-5'>语言</b><b class='flag-5'>模型</b>方法的详细剖析

    TFllite模型的格式简介

    ;quot;运算,得到最终输出。 所以需要搞明白模型怎么解析,这篇讲TFllite模型的格式以及它的解析。 1 TFLite格式简介 Tflite文件由Tensorflow提供的TOCO工具生成的轻量级
    发表于 08-18 07:01

    语言模型的发展历程 基于神经网络的语言模型解析

    简单来说,语言模型能够以某种方式生成文本。它的应用十分广泛,例如,可以用语言模型进行情感分析、标记有害内容、回答问题、概述文档等等。但理论上,语言
    发表于 07-14 11:45 514次阅读
    <b class='flag-5'>语言</b><b class='flag-5'>模型</b>的发展历程 基于神经网络的<b class='flag-5'>语言</b><b class='flag-5'>模型</b>解析

    大型语言模型的应用

       大型语言模型(LLM) 是一种深度学习算法,可以通过大规模数据集训练来学习识别、总结、翻译、预测和生成文本及其他内容。大语言模型(LLM)代表着 AI 领域的重大进步,并有望通过
    的头像 发表于 07-05 10:27 1626次阅读

    PyTorch教程9.3.之语言模型

    电子发烧友网站提供《PyTorch教程9.3.之语言模型.pdf》资料免费下载
    发表于 06-05 09:59 0次下载
    PyTorch教程9.3.之<b class='flag-5'>语言</b><b class='flag-5'>模型</b>