生产中的 KI 系统:如何系统性地识别和防止幻觉

模型不仅仅是有缺陷的程序——它们会以绝对的确定性编造事实。一位AI代理可能会声称自己建立了根本不存在的数据集,或者声称执行了从未发生过的操作。这种在错误与虚构之间的根本区别决定了生产团队如何确保其AI系统的可靠性。专注于智能系统验证的Dmytro Kyiashko致力于一个关键问题:如何系统性地证明一个模型何时扭曲了事实?

为什么传统的AI错误检测会失败

传统软件会显示出错误状态。损坏的功能会报告异常。配置错误的接口会提供标准化的错误码和具有说明性的消息,立即显示出哪里出了问题。

生成模型的行为则完全不同。它们会确认完成了从未启动的任务。它们会引用从未执行过的数据库查询。它们描述的操作只存在于训练数据中。回答看似合理,但内容是虚构的。这种虚构的形式超出了传统错误处理的范畴。

“每个AI代理都遵循由工程师设计的指令,”Kyiashko解释道。“我们确切知道我们的代理拥有什么功能,不拥有什么功能。”这种认知成为区分的基础。当一个基于数据库查询训练的代理静默失败时,说明出现了错误;但如果它提供了详细的查询结果,却没有实际联系数据库,那就是一种幻觉。模型基于训练模式构建出可能的输出。

两种互补的评估方法

Kyiashko采用两种不同且互补的验证方法。

基于代码的评估器负责客观验证。“代码评估器在错误可以客观定义且可以基于规则进行检查时效果最佳。例如,验证JSON结构、SQL语法或数据格式的完整性,”Kyiashko说。这种方法能准确捕捉结构性问题。

但有些错误难以用二元分类判断。语气是否得当?摘要是否涵盖所有关键点?回答是否真正提供帮助?为此,采用LLM作为裁判的评估器。“当错误涉及解释或细节,纯粹的代码逻辑无法捕捉时,就会用到这种方法。”Kyiashko使用LangGraph作为框架。

没有任何单一方法能孤立发挥作用。稳健的验证系统会结合两者,从而捕获不同类型的虚构,避免单一方法遗漏。

对客观现实的验证

Kyiashko的方法侧重于对当前系统状态的验证。若代理声称创建了某些数据集,验证会检查这些数据集是否确实存在。如果客观状态反驳了代理的说法,这个声明就无关紧要。

“我使用不同形式的负面测试——单元测试和集成测试——来检测LLM的虚构,”他解释。这些测试会故意要求代理执行不允许的操作,然后验证代理是否错误地报告成功,以及系统状态是否未发生变化。

一种技术会针对已知的限制进行测试。没有写入权限的代理被要求生成新条目。测试验证是否产生了未授权的数据,以及回答是否声称成功。

最有效的方法是使用真实的生产数据。“我会用历史客户对话,将其转换为JSON格式,然后用这个文件进行测试。”每次对话都作为测试用例,验证代理是否提出了与系统日志相矛盾的声明。这种方法能捕获人工测试遗漏的场景。真实用户会创造边界条件,揭示隐藏的错误。生产日志揭示模型在真实负载下的虚构情况。

RAG测试:当代理应该检索而非发明时

一种特殊的测试类型是检验Retrieval-Augmented Generation (RAG)。Kyiashko验证代理是否使用了提供的上下文,而不是凭空虚构细节。测试会提出一个问题,相关的上下文是可用的,然后检查代理是否真正利用了这个上下文,还是在虚构。

这对于使用外部数据源的系统尤为关键。如果代理声称“文档X包含内容”,却未验证其真实性,这就是典型的RAG虚构。Kyiashko的测试会事后验证该文档,并检测偏差——类似于去除隐藏或篡改的水印以验证真实性:先确保完整性,再相信可信度。

质量工程中的知识空白

经验丰富的QA工程师在首次测试AI系统时会遇到困难。他们的成熟假设无法直接迁移。

“在传统QA中,我们确切知道答案格式、输入输出数据格式,”Kyiashko解释。“而在测试AI系统时,这些都不存在。”输入是一个提示(Prompt),用户请求的变体几乎无限。这就需要持续监控。

Kyiashko称之为“持续的错误分析”——定期检查代理对真实用户的反应,识别虚构信息,并相应扩展测试套件。

复杂性还因指令的规模而增加。AI系统需要大量提示,定义行为和边界。每个指令都可能与其他指令产生不可预料的交互。“AI系统的一个大问题是大量指令需要不断更新和测试,”他指出。

知识空白很大。大多数团队缺乏对合适指标、有效数据准备或可靠验证输出的方法的清晰理解——每次运行的结果都可能不同。“构建一个AI代理相对容易,”他表示。“自动化测试这个代理才是真正的核心挑战。根据我的观察,花在测试和优化上的时间比开发本身还多。”

可扩展的实践测试基础设施

Kyiashko的方法整合了评估原则、多轮对话评估和多种虚构类型的指标。核心思想是:多样化的测试覆盖。

代码级验证捕获结构性错误。LLM作为裁判的评估器评估效果和准确性,依赖于所用模型版本。人工错误分析识别更高层次的模式。RAG测试验证代理是否利用了提供的上下文,而非凭空虚构细节。

“这个框架基于多样化测试策略的理念。我们结合了代码覆盖、LLM裁判评估、人工错误分析和RAG评估。”多种协作的验证方法能捕获单一方法难以识别的虚构模式。

从每周发布到持续改进

虚构比技术错误更快破坏信任。一个有缺陷的功能会让用户失望。一个自信地提供错误信息的代理会永久破坏信誉。

Kyiashko的测试方法支持每周可靠发布。自动验证在部署前捕获回归。用真实数据训练的系统大多能正确处理客户请求。

每周迭代推动竞争优势。AI系统通过新增功能、优化响应和扩展领域不断改进。每次迭代都经过测试,每个版本都经过验证。

质量工程的变革

企业每天都在集成AI。“世界已经看到了其优势,没有回头路,”Kyiashko说。AI的采用在行业间加速——更多创业公司涌现,成熟企业将智能融入核心产品。

当工程师开发AI系统时,必须理解如何测试它们。“如今,我们必须了解LLM的工作原理、如何构建AI代理、如何测试以及如何实现自动化验证。”

Prompt工程正成为质量工程师的基本技能。数据测试和动态验证也在走同样的趋势。“这些都应该是基础能力。”

他在行业中的观察——通过审查AI研究论文和评估创业架构——验证了这一变革。无处不在的问题相似。他几年前在生产中解决的验证挑战,现在已成为普遍需求,随着AI部署的规模扩大。

未来展望

该领域通过生产中的错误和实时的迭代改进定义最佳实践。越来越多的企业采用生成式AI。更多模型实现自主决策。系统变得更强大——这意味着虚构会变得更具迷惑性。

但系统性测试能在用户遇到之前捕获虚构。检测虚构的目标不是追求完美——模型总会在某些边界情况下虚构。关键在于系统性地识别和阻止虚构进入生产。

这些技术只要正确应用都有效。缺少的是对其在生产环境中实现的广泛理解,而在可靠性至关重要的场景中,这一点尤为关键。

**关于作者:**Dmytro Kyiashko是专注于AI系统测试的测试软件开发工程师,开发过对话式AI和自主代理的测试框架,研究多模态AI系统的可靠性和验证挑战。

IN-4.46%
查看原文
此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 赞赏
  • 评论
  • 转发
  • 分享
评论
0/400
暂无评论
交易,随时随地
qrCode
扫码下载 Gate App
社群列表
简体中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)