• 【大模型和智能问答系统】


    大模型前的智能问答系统

    大模型统一代指以ChatGPT为代表的,参数量相比以前模型有明显量级变化的生成模型

    智能问答系统,按照应用可以划分任务型非任务型
    目前智能对话落地较多的为任务型智能对话。而任务型智能对话的一个最基本的要求就是准!!!而目前大模型经常会出现看似正确的错误,这种错误不可控且难以修正。
    任务型问答系统,按照技术实现方式可以划分为,管道式(pipeline)端到端(end-to-end)

    任务型问答系统,多基于管道式方案进行。
    如:Rasa的 NLU+Core模块,对应管道架构中的自然语言理解(NLU)+对话管理(DM);
    科大讯飞的AIUI平台,需要对意图和槽位进行设置;
    思必驰的整体交互逻辑,也把NLU和DM进行了区分。

    管道式问答系统的具体架构如下图:
    管道式问答系统
    ASR:将音频识别成文本;
    NLU:识别文本的意图和槽位信息,供系统决策使用;
    DST:追踪和存储历史的对话状态,供决策使用;
    DPL:基于历史信息(意图/槽位/系统回复),做决策;
    NLG:生成回复文本;
    TTS:将文本转化为语音;

    传统管道式架构存在的问题

    1.NLU基于上下文的理解:多数意图识别是基于本轮文本进行识别。但存在部分需要基于上轮文本进行识别的情况,如:
    一轮:今天天气怎么样?
    二轮:明天呐?
    二轮是基于一轮的省略。
    还有那种仅参考本轮为意图A,参考上轮信息为意图B的情况。

    2.对话管理模块(DM),一直没有找到成熟的解决方案。
    DM就是存储历史信息,并基于历史和当前轮数信息,决定下一步的动作(action)。这相当于人类的大脑的决策过程。
    该模块,从开始的基于规则做特定的逻辑处理,到基于状态机转移,到基于深度学习模型(如rasa的ted模型),一直都不能做到通用和智能。

    3.自然语言生成(NLG)本身就是一种生成。 前期通过将回复答案提前预制,通过分类模型选择哪个预制回复的方式,缺乏通用性和智能化。
    且*以Bert为代表的自编码式的深度学习模型,其更适合做分类任务。*而想要做好智能问答系统(通用/友好),NLG应该是一种生成模型。

    大模型在任务型问答系统中应用

    大模型的相关应用,也是当下探索的热点。下面也是本人的一点理解,勿喷

    大模型辅助任务型问答系统
    大模型在传统智能问答系统的基础上,辅助解决一些具体问题,我认为是现在切实可行的落地方案。而通过大模型完全替代现在的传统方案,是一个可以探索的方向,但该方案的落地,还存在很多的问题。
    上图为大模型在智能问答系统中的一些应用点。

    NLU应用

    在NLU中,通过前置数据预处理模块,将用户的问题处理成系统可以解析的数据。其中,基于上下文的语义理解,可以将用户的上文信息和本文信息通过大模型重新生成一句完整的信息。该方案中,大模型扮演的角色为,通过上文文本和本文文本,重新生成一句完成的文本。执行的任务相对单一,因此在提示词设计时,可以有很强的针对性。
    但生成新文本的任务,对于Bert为代表的分类模型来讲,确实很难做到;

    2.根据实际业务情况,前处理可以包含冗余句过滤,长难句处理等一系列问题。在处理原来句子生成新句子的各项任务中, 大模型先天比分类模型具有更好的效果。

    DM如何使用大模型

    对话管理本质就是在利用历史信息和当前信息进行决策。决策的过程是整合各种历史信息,而决策的结果为生成一个对应动作。最早方案通过规则 状态机把信息分解分析,然后通过分类得到最终结果,将结果和实际的动作做映射。该方案在处理历史信息时,定制性比较强,不同的业务需要写不同的逻辑处理。而通过深度学习模型的方案,如rasa 提出的TED模型,其分类的结果相对于规则较低。
    目前的大模型,其Token数量从几千到几万,对于短距离的上下文问答,已经可以做到很好的支持。对于长距离的问答,可以把历史信息,通过文件的形式存储下俩,在用户出现新问题时,通过将新问题和历史信息文件做embedding相似度检索,找到最相似的一段历史信息,将该历史信息添加到提示词中。
    而针对不同的答案来源,可以按照不同的方式使用大模型。
    如果回复信息,需要从数据库中查找,可用通过使用大模型的text2sql能力。
    回复信息在文本中检索,在需要利用大模型的文本检索embedding方案。
    回复为具体动作时,则需要使用大模型的函数调用能力。
    针对不同的资源,目前有很多的解决方案,但用大模型做对话决策,如何保证结果的准确率? 当出现错误时,如何修正?

    NLG应用

    NLG–自然语言生成。从字面上理解,该模块就是在做生成任务。
    大模型做NLG的方向可以从两个方面入手。第一,直接用大模型生成对应回复文本。第二,按照传统方式生成回复文本后,通过大模型二次加工润色,生成不同的回复风格。
    第一种方案的最大问题还是不可控。
    第二种方案,可以作为提升整个系统智能化的小功能点,但不解决最关键的问题。

    #大模型智能问答系统
    langchain架构,如果将agent引擎使用大模型,基本上就是大模型智能对话的架构了,个人理解,后续有时间补充

  • 相关阅读:
    java计算机毕业设计vue宿舍管理系统MyBatis+系统+LW文档+源码+调试部署
    python如何使用gspread读取google在线excel数据?
    不同抓手的码垛机:适配多元应用场景的灵活之选
    制造业生产类数据都有哪些分类,如何分析?
    飞腾CPU FT-2000/4 uboot下PHY调试记录
    post发送请求
    Java中的static关键字
    深度学习之基于YoloV5交通信号标志识别系统
    zookeeper leader选举机制
    从零实现Web框架Geo教程-中间件-05
  • 原文地址:https://blog.csdn.net/weixin_44319196/article/details/133396004