当前位置: 首页 > article >正文

基于LLM的垂直领域问答方案

基于LLM的垂直领域问答方案

  • 垂直领域问答
    • 传统的方案
  • 基于LLM的方案
  • RAG(Retrieval-Augmented Generation)
  • 基于知识体系
  • 综合对比

垂直领域问答

特点:

  1. 问答内容通常不存在于通用语料
  2. 回答内容对准确性要求较高,召回要求相对较低(可以转人工处理)
  3. 扩展性和可控性(可以根据需求,增、删、改特定问题的回答内容、或以特定形式进行回复处理、如进入剧本、非文本回复等)
  4. 需要确切的评价方式

传统的方案

方案: 通过文本匹配知识库问题,找到最终答案。

方案如图:
在这里插入图片描述
相似度计算方式: 目前较为常用的是基于神经网络的文本转向量,用向量相似度代表文本相似度。

基于LLM的方案

简介: 利用LLM的生成能力,直接生成回复。
在这里插入图片描述

前提条件: 需要使用事先准备的QA数据,对LLM进行fine-tune

缺点:
1.fine-tune的困难(算力需求、数据需求)
2.fine-tune带来的模型泛用性下降或消失
3.生成答案不完全可控(不正常回复 bad 误导性回复 worse)
4.不易调整(增加一条新知识、撤掉某条旧知识、某条知识答案要修改)
5.不易评价效果(所有字正确?大部分字正确?有时候个别字错误就会导致语义完全不同,有用的方法:BELU、Rouge)

RAG(Retrieval-Augmented Generation)

简介: 下面是常见的实现流程图,简单来说就是:段落召回+阅读理解
在这里插入图片描述
核心步骤:

  1. 知识文档切分
  2. 根据query召回相关段落context
  3. context+query组成LLM的输入

提示词如下:
prompt = “”“基于以下已知信息,简洁和专业的来回答用户的问题。 如果无法从中得到答案,请说 “根据已知信息无法回答该问题” 或 “没有提供足够的相关信息”,不允许在答案中添加编造成分,答案请使用中文。
已知内容:
{context}
问题:
{question}”“”

注意: 召回部分可以根据情况做,不必完全依赖向量化;随着LLM能力的增强,可以接受的prompt长度越来越长(claude-100k等),对于段落召回的要求会越来越低,所以内容都可以放在输入里。只要LLM的能力够强,不做fine-tune也能直接完成这个流程。

缺点:

  1. 对基础LLM的能力要求比较高
  2. 受召回算法限制,如果召回时正确答案已经被舍弃,LLM无法挽回
  3. 生成结果不完全可控

基于知识体系

简介: 将知识梳理成一个树状的体系,叶节点即为原有的QA对,通过这样的体系最后定位到具体的某一个问题上,找到答案。

如图:
在这里插入图片描述
举例:

  1. 对于每一层级知识体系,设计prompt让LLM做选择题,通过正则解析答案。
    如:
    prompt = “”“你是一个保险公司问答机器人,请根据用户输入的问题,判断该问题属于下列的哪类问题,输出类别序号:
    1.个人保单业务相关问题
    2.金管家操作问题
    3.保险相关名词解释问题
    用户问题:
    {question}”“”

  2. 通过多次重复这一过程,在“知识树”上进行多次选择,找到最终对应的问题,答案并不是生成的,而是根据序号找到对应问题,再给出知识库中问题的标准回答

  3. 在后面的子节点上,分类不一定是交由大模型去进行判断,可用交由小模型进行判断,从而提高效率。

在RAG的生成答案的评价指标上,没有太好的办法,首先,不相同的句子,其结果都有可能是对的,而相同的句子,可能因为关键的某个字,是/否,就会导致意思完全不同。所以评价是比较困难的。

综合对比

在这里插入图片描述


http://www.kler.cn/a/527526.html

相关文章:

  • 第一个3D程序!
  • stm32控制直流电机程序
  • JavaScript系列(50)--编译器实现详解
  • 白嫖DeepSeek:一分钟完成本地部署AI
  • 2501,20个窗口常用操作
  • (Java版本)基于JAVA的网络通讯系统设计与实现-毕业设计
  • 深入理解 C# 与.NET 框架
  • windows电脑运行日志用户行为记录查看和清理工具
  • 【字符串两大注意事项】
  • CF EDU ROUND 171
  • Memcached add 命令详解
  • 计算机网络之计算机网络的分类
  • 对有向无环图进行拓扑排序
  • FFmpeg在Ubuntu18.04上的安装
  • 本地化部署DeepSeek-R1
  • jdk8项目升级到jdk17——岁月云实战
  • 从0开始使用面对对象C语言搭建一个基于OLED的图形显示框架(基础组件实现)
  • 51单片机开发——I2C通信接口
  • Keepalived高可用集群企业应用实例二
  • Qt事件处理:理解处理器、过滤器与事件系统
  • 【机器学习】Google开源大模型Gemma2:原理、微调训练及推理部署实战
  • R 字符串:深入理解与高效应用
  • 推荐一款好用的翻译类浏览器扩展插件
  • 11.QT控件:输入类控件
  • 实验八 JSP访问数据库
  • 【llm对话系统】大模型 Llama 源码分析之并行训练方案