AI漂移在检索增强生成中——以及——如何控制它!

本周,我收到了一封来自一位顾客的奇怪电子邮件。

嘿伙计们,我注意到AI的回应质量在过去几天里有所下降。这怎么可能呢?

几周前一切都还好。但是现在我之前提出的相同问题得到的回答却变得不好了。

解释他的意思:

他建议两周来,检索增强生成(RAG)流水线的回应有所漂移。

换句话说,几天前情况还完全正常,得到的回应让他很开心,而现在情况逐渐变得更糟。

这对我来说相当震惊,因为根据定义,检索增强生成(RAG)在人工智能回应方面比其他预测系统等人工智能系统更加稳定。

Controlling AI Drift in RAG

所以在这篇博客文章中,我将介绍AI漂移及其在RAG管道中的发生情况,更重要的是如何控制它们。

什么是AI漂移?

AI漂移,感谢我们来自IBM的朋友们,是指AI的性能随着时间的推移逐渐下降。

模型漂移是机器学习中的一种现象,当数据的统计特性(分布)随时间变化时发生。这种转变可能导致准确性降低、模型性能下降和意想不到的结果。

从历史角度来看,这更多地与预测性人工智能有关,就像您在电子商务中熟悉的系统一样,人工智能被用于预测您做某事的可能性。

IBM 的经典案例谈到了当预测人工智能(AI)在一个数据集上进行训练后,一旦你将其投入生产环境,AI 将会看到完全不同的信号集,并且随着时间的推移,从这些数据中学习并开始产生偏差。

Example : What Is AI Drift?
IBM’s Example of Predictive AI Drift

仅供讨论之用,假设您的预测人工智能是针对男性进行训练的,然后随着时间的推移,当您将其投入生产中使用时,女性的使用量会逐渐增加。

所以现在,突然间,预测行为发生了巨大的变化,因为你知道,男人来自火星,女人来自金星。(对不起-我不知道为什么要把那句话扔进来!)

RAG中的AI漂移是什么意思?

在RAG中,生产环境下没有运行时机器学习。它只是从您的“真实知识”中提取片段,用于生成响应并提供给像ChatGPT这样的LLM。

INFOGRAPHIC: AI Drift in RAG Pipelines
INFOGRAPHIC: AI Drift in RAG Pipelines — AND How to Control It

那么在检索增强生成的流水线中为什么会出现AI漂移呢?

为了深入了解这个问题,让我们来看一下人工智能漂移的三个主要来源,其中包括本周之前不满意的客户的一个来源。

内容漂移。

所以在我们不满意的客户的案例中,碰巧他一直在知识库中添加和删除内容。

正如您所知,此内容将被添加到向量数据库(如Pinecone)中,并用于生成响应。

所以,他的内容和向量数据库由于添加和删除而日益变化得剧烈。

由于这个原因,他的回答开始偏离了这周初的状态。

当我们深入挖掘时,事实证明那就是根本原因。一旦确定了这一点并且他改正了他的内容,他的回答再次变得出色,他从一个不满意的客户变成了一个满意的客户。

如何控制内容漂移?

控制内容漂移与传统的内容管理系统(CMS)和知识变更管理并无差异。

想象它就像一个不断变化的 GitHub 仓库。

希望您的RAG流程管道,无论是自己构建(请停下来读一下这个!)还是使用一个好的RAG SaaS平台,都能让您控制内容的更改和相关的CDC(变更数据捕获)能力。

相信与否,这是RAG管道中非常棘手的一个方面。如果你使用像LangChain这样的工具自己构建了RAG管道(我希望不是!),你将痛苦地遇到与知识相关的管理和变更数据捕获问题。

只是想一想:

  • 如果你们网站上的定价发生变化,会有什么结果?
  • 或者如果你们网站上有关于常见问题的更新呢?
  • 或者您的产品手册有新版本吗?

你的 RAG chatbot 跟得上这些变化,并且与你公司的知识库同步吗?

如果不这样做的话,你就可能面临着潜在的合规和客户体验问题。(想象一下,你的聊天机器人给客户报价,而网站上却说着完全不同的事情!)

源编号2:LLM漂移。

无论您使用的是ChatGPT API还是其他任何LLM API,只要升级,都可能发生AI漂移。

例如,当OpenAI发布了ChatGPT-4的6月13日版本时,我们立即进行了升级。AI的回答开始变得混乱不堪,出现了用西班牙语回答英文问题的情况。

Example: Question is in English, the LLM replied in Spanish. This was rectified by OpenAI in a few days.
Example: Question is in English, the LLM replied in Spanish. This was rectified by OpenAI in a few days.

这导致了各种疯狂情况的出现,以及为找出RAG管道出了什么问题而进行了三天的火线斗争。

每次OpenAI发布新的版本时(包括最近的11月6日版本),API和LLM都会有些问题,而且不知何故,它们需要几天时间才能稳定下来。

如何控制LLM漂移?

请勿立即升级到最新的API。

如果AI的飘移和稳定对您很重要,让OpenAI来稳定最新版本需要几天的时间。

根据您的生产用例,您可以决定是否要在接下来的几天内升级。或者,如果您只是想等待完全稳定的版本发布。

对于DevOps世界的老手来说,这是非常熟悉的领域。在升级生产工作负载之前,我们会等待稳定的Debian操作系统版本。升级AI API和模型也不例外。

就拿这件事来说:尽管GPT-4-turbo更便宜且更好,我们还是等了一个月才升级。

我们等待测试系统的所有方面都对新API发布的影响,因为对于我们来说,诸如抗幻觉、引文和查询意图等功能对我们的商业客户非常重要。

来源编号3:RAG管道算法。

你的RAG管道将拥有许多影响AI回应的内部算法。

至少:

  • 数据解析的方式
  • 数据被分块的方式
  • 查询意图的检测方式
  • 用于向量数据库搜索的算法。
  • 用于块重新排序的算法
  • 提示工程的算法

所有这些都是可能发生在RAG管道中的内部漂移的信息源。

只要想一想:如果向量数据库查询或块重新排序的方式发生改变,相应的响应结果就会出现显著变化。

如何控制RAG管道漂移?

通过拥有不断测量您的RAG流水线中的有效性和重要因素的内部评估指标。

最近,出现了许多新的框架,如Tonal、Giskard和RAGAs,旨在持续计算内部有效性指标。

这些指标可以是关于上下文效能、反幻觉分数、回答相关性、种族偏见分数等等。

然后,就像其他任何DevOps指标一样,您将监控这些RAG流水线指标,以查看它们是否随时间漂移。

结论

是的,在检索增强生成管道中AI漂移可能是一个真正的问题。因此,监控管道的稳定性和弹性指标非常重要。

并且正如我所指出的,如果你已经建立了自己的RAG管道——那就太倒霉了,你将不得不把这个集成到你的系统中。

希望你走的是明智的道路,无论你使用的 RAG SaaS 是什么,它都会为你处理这个问题。

2024-01-05 04:16:54 AI中文站翻译自原文