构建基于LLMs混合型大模型的先进事实性问答系统架构

1.引言

传统搜索系统基于关键字匹配,缺少对用户问题理解和答案二次处理能力。本文探索使用大语言模型(Large Language Model, LLM),通过其对自然语言理解(Natural Language Understanding,NLU)和生成(Natural Language Generation,NLG)的能力,深入理解用户意图,并对原始知识点进行汇总、整合,生成更贴切的答案。

大模型能够回答较为普世的问题,但是若要服务于垂直专业领域,也会存在知识深度、知识准确度和时效性不足的问题。为了满足汽车行业的需求,团队投入了大量的时间和精力,构建一个强大的汽车领域知识库。

2.方案分析

2.1

结合传统搜索技术构建基础知识库

为了构建基础知识库,我们可以利用传统的搜索技术进行查询。这种方法具有以下优势:

  • 较高的问答可控性:通过使用传统搜索技术,可以更好地控制问题和回答的准确性。借助精确的搜索匹配,提供更准确和可靠的答案。
  • 适应常见知识库应用场景:不论是处理大规模数据、实现快速查询还是及时更新,传统搜索技术都能满足常见知识库应用场景的需求。其成熟的技术栈可以提供稳定的性能和功能。
  • 技术风险较低:传统搜索技术已经得到广泛应用并积累了丰富的实践经验,能够降低技术探索的风险。

同时,利用语言模型 (LLM) 作为用户与搜索系统之间的交互媒介,能够充分发挥其强大的自然语言处理能力:

  • 实现对用户请求的理解:LLM可以进行纠错、关键点提取等预处理,从而更好地理解用户的意图和问题。
  • 对搜索结果进行二次加工:在保证正确性的前提下,LLM可以进一步概括、分析和推理搜索结果,以提供更全面和深入的答案。

结合两者,能够优化基础知识库的构建和查询过程,从而更高效地处理业务问题。

2.2

方案设计

图片

►2.3.1 LLM

LLM(Large Language Model)具有以下主要功能:

  • 理解用户问题:LLM可以对用户的问题进行理解,包括纠错和提取关键词等操作。它还能引导用户提供更多信息,以便更好地理解用户意图。
  • 对本地检索结果进行二次处理整合:LLM可以对本地检索的TopK答案进行二次加工。例如,可以概括、推理等操作,以提供更全面和深入的答案。
  • 具备上下文交互能力:LLM能够处理各种类型的上下文交互,比如车系比较、油耗、加速性能等各类配置相关的问题。它可以根据上下文信息来给出更准确和个性化的回答。

►2.3.2本地搜索系统

  • 本地搜索系统解决了查询匹配的问题,并具备以下功能:

  • ES Search:通过Elasticsearch(ES)的能力,将结构化数据接入系统,提供车系、关键词等的全文检索功能。

  • Embedding Search:将文字形式的查询请求转换为数值向量形式,并接入Milvus等向量数据库,提供在线相似度查询功能。

  • 去重:在搜索结果中可能存在重复内容,去重操作可以增加大模型接收的信息量,避免重复答案的出现。

  • 相关性排序:针对搜索结果,进行相关性排序,选取TopK最相关的答案,以提供更精准和有用的答案。

    3.方案实现

3.1

工程架构

图片

►3.1.1通用模块

通用模块包括以下功能:

  • 问答改写:根据用户输入信息和上下文历史信息,对输入进行改写,以便更好地理解用户意图。

  • 问答理解:对经过改写的用户输入进行理解,生成向量、关键词、标签、分类等信息,为后续处理提供基础。

  • 召回模块:根据用户的意图和实体信息,召回相关内容,以提供更多可能的答案。

  • 排序模块:通过相关性模型,对召回的内容进行排序,选择与问答最相关的topN内容,并进行数据抽取。

  • 提示词模块:根据用户输入和处理流程,调用不同的提示词(prompt),为生成对话内容提供指导。

  • LLM模型:根据提示词和排序生成的相关数据,生成对话内容,以提供给用户。

  • 日志模块:记录请求全流程日志,用于模型训练、性能分析和案例查询等目的。

►3.1.2管理模块

管理模块包括以下功能:

  • 会话管理:保存用户的历史问答信息,以便在对话过程中进行上下文的保持和引用。
  • Prompt管理:配置不同场景下的提示词信息,以适应不同的用户需求和使用场景。
  • 插件管理:针对不同渠道的用户,可以使用不同的插件配置,例如IM用户可以选择是否访问产品库插件。
  • 日志管理:管理请求日志、性能日志和结果日志,以便进行日志的存储、检索和分析。

►3.1.3知识入库

图片

​ 目前采用Elasticsearch(ES)作为结构化数据的存储支持,并利用ES的IK分词插件实现全文检索功能。

  • 在数据向量化方面,我们使用了大语言模型生成的向量来更准确地捕捉语义相关性。向量化的处理流程如下:
  • 数据导入:根据不同的数据源内容,如数据库、PDF、Word等,进行数据导入操作。
  • 数据处理:对目录、无效信息等进行数据预处理,将文档切片以便更容易捕捉到语义相关的内容(文章长度越长,语义粒度越粗)。
  • 段落处理:基于上下文相关性,生成段落信息。
  • 模型处理:选择适配的模型对段落数据进行向量化。

​ 在存储方面,尽管许多传统数据库或存储中间件已经提供了向量化支持,但专业的解决方案是使用向量数据库,例如Vearch、Milvus等。本文中我们选择了Milvus作为向量索引的存储,根据实际情况可以选择适合的向量索引数据库。

3.2

搜索

► 3.2.1召回

当前的召回设计分为两类:

  • **明文召回:**首先,通过API对用户问题进行解析,提取关键词(例如车系、品牌、分类等)。然后,利用这些关键词从ES索引中进行全文检索,找到与之最匹配的N条记录。
  • **非明文召回:**在这种方法中,我们使用嵌入模型将用户问题进行嵌入,并获取问题向量。接下来,使用问题向量在Milvus中进行检索,找到与之最匹配的N条记录。

通过这样的召回方式,我们可以针对用户问题进行全文检索或基于嵌入模型的向量检索,以获取与之最相关的记录。这种设计能够提高召回的准确性和效率,为后续的答案生成和排序提供更可靠的基础。

►3.2.2相关性(TopK选取)

目前,我们采用了基于Boosting算法集成的xgboost模型作为相关性模型,其重点在于确保最终结果的稳定性和可控性。这个模型的实现与传统搜索逻辑类似:

首先,我们将查询(Query)特征、物品(Item)特征和相关性特征进行组合,同时也考虑了查询和物品之间的交叉特征。经过特征转换模块,如归一化和取对数等操作,我们将这些特征输入到xgboost模型中进行预测得分。然后,我们选取TopK个预测结果作为最终的排序。

通过这样的优化设计,我们能够更好地利用xgboost模型的强大分类能力,并确保结果的稳定性和可控性。

3.3

大模型

***►*3.3.1模型介绍

​ 我们构建了一个汽车领域的大语言模型仓颉,旨在解决看车、买车、用车、换车全流程问题。该模型基于先进的自然语言处理技术和深度学习算法,具备强大的语义理解和信息处理能力。无论是了解车型性能、比较品牌优劣,还是寻找购车建议或了解保养、维修等知识,我们的模型都能提供准确、全面的答案。

►3.3.2模型数据

为了满足汽车行业的需求,团队投入了大量的时间和精力,构建一个强大的汽车领域知识库。下面是是训练模型使用的部分数据介绍:

图片

  • 口碑文章:我们收集了大量的口碑文章,涵盖了各种汽车品牌和型号的评价和评论。这些文章包含了消费者对汽车性能、外观、舒适度等方面的真实反馈,为我们的模型提供了宝贵的参考。
  • 问答数据:我们整理了大量的汽车领域问答数据,包括消费者提出的问题以及专家给出的回答。这些问答涉及到汽车购买、保养、维修等方面的知识,为我们的模型提供了广泛而丰富的信息。
  • 参配品库:我们建立了一个详尽的汽车参配品库,包含了各种汽车配件和配置的信息。这些数据可以帮助用户了解不同汽车型号的配置选项,从而做出更明智的购买决策。
  • 百科知识:我们清洗和过滤了大量的百科知识数据,包括来自公开领域的百科的高质量内容。这些数据涵盖了汽车行业的历史、技术、发展趋势等方面的知识,为我们的模型提供了全面而准确的背景信息。
  • 网页和书籍数据:我们还整理了大量的网页和书籍数据,其中包含了关于汽车领域的专业知识和研究成果。这些数据来源广泛,覆盖了汽车行业的各个方面,为我们的模型提供了多样化的学习材料。

通过对以上数据的深度清洗和过滤,我们的模型已经取得了令人瞩目的训练效果。它能够准确理解和回答与汽车相关的问题,提供有用的建议和信息,帮助用户更高效地处理业务问题。

►3.3.3模型训练

图片

大语言模型训练采用了一系列创新的技术,包括 LoRA、QLoRA、RoPE scaling 插值、DPO training 以及 dataset streaming。

首先,采用了 LoRA 和 QLoRA 技术,这两种技术都能有效地减少内存和 GPU 的使用,从而缩短训练时间。这意味着我们可以更快地处理数据,为公司节省宝贵的时间和资源。

其次,使用了 RoPE scaling 插值技术来扩展 LLaMA 模型的上下文长度。这使得我们的模型能够更好地理解和处理复杂的语言环境,从而提供更准确的结果。

此外,还采用了 DPO training 技术来简化 RLHF。通过只需要训练单独的 DPO 模型,我们成功地替代了 RLHF 的奖励模型+PPO 强化模型,解决了 RLHF 训练极不稳定,超参敏感,调参困难的问题。这使得我们的模型训练过程更加稳定,也更容易进行参数调整。

最后,使用了 dataset streaming 技术实现大模型流式训练。这一技术解决了大模型数据集加载内存的开销问题,明显提升了训练速度。这意味着我们可以更快地处理大量数据,带来更高的效率。

3.4

效果评测

为了满足汽车领域的特有评测指标,通过构建了汽车领域的专业评测集,自研大模型在汽车领域远超开源模型,并在通用领域与主流开源模型持平。以下是我们部分评测项:

►3.4.1评估标准

图片

►3.4.2汽车领域评测集

  • exam:涵盖车系品牌、参配等相关信息,判断是否能够准确理解和回答相关问题能力。

  • 领域情感:对于用户在汽车领域的情感表达,判断情感分析和信息反馈能力。

  • 类目:针对汽车领域的不同类目,判断是否具备丰富的知识和理解能力。

  • auto_rc、qcr_rc:这两个评测项用于判别汽车领域的阅读理解任务。

  • 领域问答:涵盖领域内各方向问题

***►*3.4.3通用领域评测集

​ 除了在汽车领域的评测,在通用领域的评测集上也做了相关对比评测。以下是一些评测集的示例:

  • afqmc:句子对匹配任务,判断两个句子之间的关系能力。
  • ocnli:自然语言推理任务,对给定的前提和假设进行推理和判断。
  • weibo:微博文本分类任务,对微博文本进行准确分类判断。
  • c3:中文阅读理解任务,理解并回答相关问题能力。
  • cmrc:机器阅读理解任务,阅读理解的能力。
  • harder_rc:更具挑战性的阅读理解任务,判断应对复杂的问题和场景的能力。
  • 通用问答:涵盖知识问答、写文章、推理、娱乐等问答知识

​ 在汽车垂直领域取得了明显的效果,当然,在评测时也出现了一些模型幻觉、格式异常等情况,我们也在对模型进行持续的迭代和优化。

3.5

结果整合

​ 结果整合,可以对本地搜索系统返回的结果进行进一步加工和优化,充分发挥LLM的多项能力,从而使文章表述更加精炼明确,提高文章的可读性和信息传达效果:

  • 总结和概括:对搜索结果进行总结和概括,提取出关键信息,使其更具有可读性和易理解性。

  • 格式整理:进行格式化整理,使其呈现方式更加清晰和统一,提高用户阅读体验。

  • 去重和翻译:排除搜索结果中的重复内容,确保给用户呈现唯一性的答案。同时,LLM还支持翻译功能,可以将搜索结果翻译为用户需要的语言,满足多语言环境下的需求。

  • 上下文分析和处理:通过分析会话历史和提取上下文信息,LLM能够更好地理解用户意图,并在结果整合过程中考虑到上下文的影响。这使得生成的答案更加准确和个性化。

4.示例展示

以参配场景为例:

23 款奔驰 GLC260 车身尺寸是多少?

图片

宝马 3 系综合油耗是多少?

图片

GL8 的后备箱能放下行李箱和婴儿车吗?

图片

朗逸 1.2t 动力够用吗?

图片

5. 总结

​ LLM+搜索架构融合了意图理解、智能搜索、结果增强等模块。深入理解用户指令,精确驱动查询词的搜索,结合大语言模型技术来优化模型结果生成的可靠性。通过这一系列协同作用,大模型实现了更精确、智能的模型结果回答,通过这种方式减少了模型的幻觉。

如何学习AI大模型?

作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

img

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

img

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

img

四、AI大模型商业化落地方案

img

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/37239.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

阿里云常用的操作

阿里云常见的产品和服务 容器服务 可以查看容器日志、监控容器cpu和内存, 日志服务 SLS 可以查看所有服务的日志, Web应用防火墙 WAF 可以查看 QPS. 阿里云查看集群: 点击 “产品和服务” 中的 容器服务,可以查看 集群列表&…

第五节:如何使用其他注解方式从IOC中获取bean(自学Spring boot 3.x的第一天)

大家好,我是网创有方,上节我们实践了通过Bean方式声明Bean配置。咱们这节通过Component和ComponentScan方式实现一个同样功能。这节实现的效果是从IOC中加载Bean对象,并且将Bean的属性打印到控制台。 第一步:创建pojo实体类studen…

Android进阶之路 - DialogFragment有没有了解的必要?

几个月前写到了弹框业务,以前经常用Dialog、ButtomDialog 、popupWindow 组件,为了契合项目结构参考了原有的 DialogFragment 组件,特此予以记录 我一般在项目中写弹框组件的话,主要用到 alertDialog、popupWindow 组件&#xff0…

用GPT-4纠错GPT-4 OpenAI推出CriticGPT模型

根据OpenAI周四(6月27日)发布的新闻稿,该公司新推出了一个基于GPT-4的模型——CriticGPT,用于捕获ChatGPT代码输出中的错误。CriticGPT的作用相当于让人们用GPT-4来查找GPT-4的错误。该模型可以对ChatGPT响应结果做出批评评论&…

有没有能用蓝牙的游泳耳机,性能超凡的4大游泳耳机力荐

在现代科技的推动下,越来越多具备蓝牙功能的游泳耳机正在改变游泳爱好者的体验方式。这些创新产品不仅在防水性能上有了显著提升,还能让您在水中享受到高质量的音乐。然而,选择一款优秀的蓝牙游泳耳机并不简单,需要考虑到防水等级…

【秋招突围】2024届秋招笔试-科大笔试题-01-三语言题解(Java/Cpp/Python)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系计划跟新各公司春秋招的笔试题 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 文章目录 &#x1f4d6…

基于SSM的大学生家教管理系统【附源码+LW】

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本大学生家教平台就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息&a…

c语言--指针

前言 欢迎来到我的博客 个人主页:北岭敲键盘的荒漠猫-CSDN博客 本文整理c语言中指针的相关知识点。 指针概念 指针存储的就是数据的地址。 直观理解: 李华家是北洋路130号1单元101 用变量处理数据: 我们去李华家拿数据。 用指针处理数据: 我们去北洋路130号1单元101拿数据…

Paragon NTFS与Tuxera NTFS有何区别 Mac NTFS 磁盘读写工具选哪个好

macOS系统虽然以稳定、安全系数高等优点著称,但因其封闭性,不能对NTFS格式磁盘写入数据常被人们诟病。优质的解决方案是使用磁盘管理软件Paragon NTFS for Mac(点击获取激活码)和Tuxera NTFS(点击获取激活码&#xff0…

2024年科技型中小企业申报指南

01 什么是科技型中小企业 科技型中小企业是指依托一定数量的科技人员从事科学技术研究开发活动,取得自主知识产权并将其转化为高新技术产品或服务,从而实现可持续发展的中小企。 02 申请“科技型中小企业”的好处 一、政策扶持与优惠 1.税收减免&…

Vue2组件传值(通信)的方式

1.父传后代 ( 后代拿到了父的数据 ) 1. 父组件引入子组件&#xff0c;绑定数据 <List :str1‘str1’></List> 子组件通过props来接收props:{str1:{type:String,default:}}***这种方式父传子很方便&#xff0c;但是父传给孙子辈分的组件就很麻烦&#xff08;父》子…

《GPT模型揭秘:数据驱动AI的核心概念与GPT系列对比分析》

DS&#xff1a;《What Are the Data-Centric AI Concepts behind GPT Models?通过三个数据为中心的人工智能目标(训练数据开发、推理数据开发和数据维护)揭示GPT模型背后的数据为中心的人工智能概念》解读—GPT-1/GPT-2/GPT-3系列对比(语料大小参数量解码层数上下文长度隐藏层…

技术学习的奥秘与乐趣

人不走空 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌赋&#xff1a;斯是陋室&#xff0c;惟吾德馨 在当今快速发展的科技时代&#xff0c;学习技术已经成为了许多人追求的重要目标之一。无论是为了个人发展&#…

并发编程基础概念

相关概念 并行 并行是指同一个时刻&#xff0c;多个任务同时进行。只有在多核CPU下才会发生。 并发 并发是指单个CPU在不同任务之间来换切换工作&#xff0c;但是同一时刻只有一个任务在工作。由于CPU的切换速度很快&#xff0c;给人的感受是多个任务在一起运行。 串行 串行…

Ansys Zemax|在设计抬头显示器(HUD)时需要使用哪些工具?

附件下载 联系工作人员获取附件 汽车抬头显示器或汽车平视显示器&#xff0c;也被称为HUD&#xff0c;是在汽车中显示数据的透明显示器&#xff0c;不需要用户低头就能看到他们需要的重要资讯。这个名字的由来是由于该技术能够让飞行员在头部“向上”并向前看的情况下查看信息…

RocketMQ快速入门:linux安装rocketmq并配置开机自启(十一)

目录 0. 引言1. 下载安装包1.1 高版本直接下载安装包1.2 下载源码包进行编译 2. namesrv和broker安装2.1 安装2.2 放开服务器端口2.3 测试 3. 配置开机自启3.1 配置namesrv开机自启3.2 配置broker开机自启 0. 引言 之前我们针对本机电脑安装rocketmq进行了讲解&#xff0c;同时…

Java--回顾方法的定义

1.修饰符 public 公共的 修饰String类型 2.返回类型 返回的值得类型 返回值为String&#xff08;字符串&#xff09;类型 3.break continue return的区别 break&#xff0c;结束整个循环 continue&#xff0c;结束本次循环 return&#xff0c;结束整…

远程过程调用RPC实现原理

Hi~&#xff01;这里是奋斗的小羊&#xff0c;很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~~ &#x1f4a5;&#x1f4a5;个人主页&#xff1a;奋斗的小羊 &#x1f4a5;&#x1f4a5;所属专栏&#xff1a;C语言 &#x1f680;本系列文章为个人学习…

运算放大器输出相位反转和输入过压保护

运算放大器输出电压相位反转 本教程讨论两个与运算放大器相关的话题&#xff1a;输出相位反转和输入过压保护。 超过输入共模电压(CM)范围时&#xff0c;某些运算放大器会发生输出电压相位反转问题。其原因通常是运算放大器的一个内部级不再具有足够的偏置电压而关闭&#xff…

昇思25天学习打卡营第4天|常见的数据变换 Transforms类型

导入数据集相关库和模块 首先导入了一些必要的库和模块&#xff0c;包括 numpy&#xff08;np 是其常用的别名&#xff09;、PIL 库中的 Image 模块&#xff0c;以及自定义的 download 模块&#xff0c;还有 mindspore.dataset 中的 transforms、vision、text 模块。然后使用 m…