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

大语言模型的局限性与RAG基本框架和工作流实例

大语言模型的局限性与RAG基本框架和工作流实例

Restrictions of LLMs and Use Cases of RAG Fundamental Framework & Workflow

By Jackson@ML

1. 大语言模型的局限性

大语言模型(Large Language Model, LLMs) 在获取准确的判断和最新的知识方面存在一定的局限性。如果仅依赖大语言模型,那么得出的结果,可能不尽如人意,甚至可能有错误比较离奇的现象。

1) 幻觉

幻觉(Hallucination) 的产生形成了貌似正确但实际存在错误的输出结果。幻觉的问题,出自大语言模型过分自信地生成了不正确的响应。

举个例子,来让大语言模型做个判断即可。

示例,肉夹馍是陕西省的民间美食,用腊汁肉夹到白吉馍中间,人吃人爱。但LLM(使用DeepSeek R1)仍然生成了一个虚构的、具有很强误导性的补全。

提示词:
What is Rou Jia Mo? Does it taste well? (肉夹馍是什么?它的味道如何?)

答案(节选,出现幻觉):

在这里插入图片描述
很显然,“肉夹馍”介绍不充分,同时,配料表的原料(比如酱油(浅色与深色的),绍兴酒)都不是陕西肉夹馍所必须的,且腊汁肉制作配料多达二十多种,也未列出。

尤其是对“馍”的介绍,过于简单,无法体现肉夹馍的香醇可口、外酥内柔的美味。

2) 知识截断

Knowledge Cutoff(知识截断),是指大语言模型反悔的答案与最新最真实的数据不符。由于基础模型(Foundation Model, FM) 在预训练时都有一个知识截断的日期,因此,模型的知识仅限于模型预训练或微调时的数据。

同样做两个试验对比一下。

示例一,利用DeepSeek R1来提问前几天发生的欧国联足球锦标赛决赛:

提示词:
“谁赢得了2025年欧国联足球锦标赛冠军?冠亚军争夺战比分是多少?”

回答:

在这里插入图片描述
此项赛事发生在3天前(比赛时间是北京时间2025年6月9日凌晨2:45),而笔者撰稿时,现在时间则是北京时间2025年6月11日23:00。

DeepSeek在这两天多时间内,已经输入和学习了很多关于本届欧国联足球锦标赛的数据,因此提供信息较为准确。

示例二,对于第三届全国翻译技术大赛第六场培训的问答

提示词:
“2025年6月11日,第三届全国翻译技术大赛举行培训,请问培训主题是什么?由谁主讲?”

回答:
“服务器繁忙,请稍后再试。“

反复利用提示词问了几遍,回答都是一样的答案。看来,DeepSeek未能获取任何相关知识,只能给出默认答案 “服务器繁忙,请稍后再试”

可以看到,示例二发生在笔者写本文的一小时前,因此,大语言模型不可能这么快地得到训练,从而具备知识。这时候,就出现了 “知识截断”

2. RAG

1)基本概念

Retrieval Augmented Generation(增强检索生成,RAG) 本身并不是一门纯粹的技术。
但是,RAG可以将基于大语言模型的应用程序链接到外部数据源和应用程序,一方面克服知识的局限性,另一方面,也会对大语言模型的输出进行矫正和完善。

如果希望大语言模型能访问它在预训练和微调过程中 “学到” 的“记忆“之外的数据,就可以使用RAG来满足。

由于这些数据并没有包含在原始训练数据中,比如:公司内部的私有数据。通过允许模型访问额外信息(或特定信息),而无须持续进行全部数据的微调。

2) RAG基本框架

RAG为大语言模型提供了外部知识源(或知识库)的访问能力,可将这些知识以上下文形式,嵌入原始提示词中以增强提示,并将这些信息一并发送给大语言模型。

RAG知识增强基本框架如下图所示。
在这里插入图片描述

除了该框架外,RAG运行时参考流程如下图。

在这里插入图片描述

3)RAG工作流程

关键查询参考流程如下图:
在这里插入图片描述

4) 提示工程要求

在RAG优化的工作流中,提示工程(Prompt Engineering)有以下关键组件:

  • 1) 系统说明(仅使用上下文回答)
  • 2) 上下文分隔符标记
  • 3) 显式问题格式
  • 4) 访幻觉保护措施

在RAG实现检索增强后,如果想要实现基于上下文推理的应用程序,还需要进一步探索的丰富组件,并且,按照项目开发和测试流程,才能最终完成该应用程序。


AI技术好文陆续推出,敬请关注、收藏和点赞👍。
您的认可,我的动力! 😃

http://www.xdnf.cn/news/981829.html

相关文章:

  • python数据结构和算法(4)
  • R语言缓释制剂QBD解决方案之三
  • 浅析hashmap
  • 7.7 Extracting and saving responses
  • C# 与低代码平台的融合:以活字格为例的 Web API 开发实践
  • 布尔字段命名陷阱:避免序列化错误的关键
  • pytorch 中前向传播和后向传播的自定义函数
  • vscode界面设置透明度--插件Glasslt-VSC
  • 【DETR目标检测】ISTD-DETR:一种基于DETR与超分辨率技术的红外小目标检测深度学习算法
  • 《HarmonyOSNext弹窗:ComponentContent动态玩转企业级弹窗》
  • 新闻类鸿蒙应用全链路测试实践:性能、兼容性与体验的深度优化
  • React Context 性能问题及解决方案深度解析
  • 【普及/提高−】P1025 ——[NOIP 2001 提高组] 数的划分
  • Cilium动手实验室: 精通之旅---23.Advanced Gateway API Use Cases
  • codeforces C. Devyatkino
  • Java并发工具包
  • 【59 Pandas+Pyecharts | 淘宝华为手机商品数据分析可视化】
  • 深度解读谷歌Brain++液态神经网络:重塑动态智能的流体计算革命
  • Gogs:一款极易搭建的自助 Git 服务
  • [Java恶补day22] 240. 搜索二维矩阵Ⅱ
  • React第六十节 Router中createHashRouter的具体使用详解及案例分析
  • android studio向左向右滑动页面
  • Babylon.js引擎
  • MMDG++:构筑多模态人脸防伪新防线,攻克伪造攻击与场景漂移挑战
  • java面向对象高级部分
  • 大数据服务器和普通服务器之间的区别
  • LDStega论文阅读笔记
  • 【基于阿里云上Ubantu系统部署配置docker】
  • RawTherapee:专业RAW图像处理,免费开源
  • 【AI智能体】Coze 数据库从使用到实战操作详解