LLM监控和可观察性
作者:Anais Dotis-Georgiou / 开发者
2024年11月04日
导航至
对LLM的需求正在迅速增加——预计到2025年将有7.5亿个应用程序使用LLM。因此,对LLM可观察性和监控工具的需求也在上升。在这篇博客中,我们将深入探讨LLM监控和可观察性的定义,为什么它们都至关重要,以及如何跟踪各种指标以确保我们的模型不仅在工作,而且在蓬勃发展。
LLM监控与可观察性的关键指标
LLM监控涉及使用各种评估指标和方法跟踪LLM应用程序的性能。相比之下,LLM可观察性通过提供对整个LLM应用程序系统的全面可见性和追踪来实现监控。
一些重要的LLM可观察性和监控指标包括
- 资源利用率指标,包括CPU/GPU利用率、内存使用、磁盘I/O等。
- 性能指标,包括延迟、吞吐量等。
- LLM评估指标,包括提示、响应、模型准确度和退化、令牌使用、响应完整性、相关性、虚构、公平性、困惑度、语义相似度、模型退化等。
从实际和伦理的角度来看,评估和监控LLM的过程是复杂的。为了更好地了解LLM监控中的一些特定挑战,让我们看一下一些常见的LLM指标。
提示和响应、向量数据库和嵌入可视化
首先是对提示和响应的监控。组织如何利用提示和响应因组织及其与用户隐私协议的不同而有很大差异。然而,对于LLM应用来说,通常只存储较短时间的聊天历史。聊天通常存储在文档存储中。监控提示-响应对有助于识别反复出现的问题或常见咨询,从而深入了解用户需求,并可能揭示LLM的响应需要进一步优化以实现准确性或符合道德规范的区域。例如,具有不同背景的人类审阅者可以评估模型的响应。他们提供反馈以改进模型的行为,特别是在识别和避免有害刻板印象或偏见陈述方面。这种反馈可以纳入强化学习LLM的训练数据中。然后,这些LLM被用来训练模型以避免这些陷阱。
然而,聊天历史文本也经常被编码成嵌入并存储在向量数据库中。通过将聊天历史编码为嵌入,应用程序可以检索上下文相关的响应或建议,从而提高未来交互中输出的相关性。这种方法允许组织在不存储原始文本数据较长时间的情况下,为用户提供更个性化和情境感知的响应,从而增强隐私。通过这种方式,利用向量数据库与LLM一起为LLM提供“长期记忆”。
此外,可以与LLM一起利用向量数据库来评估和衡量响应准确性。例如,向量数据库可以填充由人类评估或专家评估的提示和响应。可以通过测量LLM生成的响应与向量数据库中批准的响应之间的距离来衡量误差。如果距离超过某个阈值,则LLM可能正在经历模型退化或漂移,可能需要进行重新训练。
LLM开发者发现这些洞察的一种常见方式是通过嵌入可视化。记住,向量数据库在监控LLM的上下文中存储高维嵌入。通常,数据分析师使用图表来可视化他们的数据,了解趋势,并获取关于他们所监控环境的洞察。但是,如何可视化嵌入空间中的数百或数千个维度呢?创建嵌入可视化的第一步是进行降维。这涉及到将高维嵌入减少到两个或三个维度以进行可视化。本博客文章描述了降维的常见方法。图1:来自音乐银河的3D嵌入可视化示例,有助于可视化音乐艺术家的相似性,这是在构建交互式嵌入可视化时所学到的东西中提到的项目。
令牌使用
令牌是文本的基本单元,是模型处理的单词或单词片段。LLM(大型语言模型)处理的每个令牌都会产生成本,特别是在商业应用中。监控令牌使用情况有助于通过识别高使用率和潜在的优化区域(例如,通过减少响应长度或限制不必要的请求)来预算和控制支出。此外,令牌使用直接影响到响应时间和延迟。通过跟踪令牌随时间的变化,可以检测到请求或响应是否不必要地长,从而影响用户体验。监控还可以揭示导致输出过多或冗余的低效提示,从而允许调整学习者交互。令牌使用也反映了用户如何与模型互动。通过跟踪每个会话或用户的令牌使用情况,可以突出行为模式,例如,持续提出复杂问题或需要深入回答的用户。令牌使用量的异常波动可能表明问题,例如意外的提示行为、使用模式错误,甚至安全问题(例如,机器人滥用)。
评估指标:相关性、困惑度、幻觉、响应完整性、公平性等。
评估LLM是一个复杂的多方面过程,涵盖了应用性能和模型的有效性。确保LLM产生准确、相关和道德上合理的响应至关重要,因为这些因素决定了模型的成功和现实世界的影响。
那么,LLM工程师如何量化模型的表现呢?通过应用统计和基于神经网络的方法,包括相关性、公平性、幻觉和困惑度等指标,工程师评估LLM输出中的可靠性和质量各个方面。以下是对每个指标简要概述:
- 相关性:相关性衡量模型响应与输入提示和上下文的一致性。例如,如果用户要求提供特定城市的天气预报,相关的响应将直接涉及该地的天气,而不是无关信息。高相关性表明模型理解并适当地响应用户请求。
- 公平性:LLM中的公平性确保模型响应没有偏见,并在不边缘化或偏袒特定群体的同时代表不同的观点。公平性包括检查和调整训练数据、模型架构和响应生成,以减轻无意中的偏见。
- 幻觉:当LLM生成看似合理但实际上是错误或虚构的信息时,就会发生幻觉。这是LLM中一个常见的挑战,因为它们有时会根据它们在训练数据中发现的模式“填补”信息,即使这些信息与现实不符。
- 困惑度:困惑度是用于衡量LLM预测单词或令牌序列的指标。较低的困惑度通常表明模型在预测序列中的下一个单词方面表现更好,这意味着更流畅和上下文相关的语言生成。然而,值得注意的是,困惑度本身并不能捕捉准确度或真实性。
历史上,像BLEU和ROUGE这样的统计指标被广泛用于评估这些方面。然而,它们通常与人类判断的相关性较低,尤其是在复杂或开放式任务中。作为回应,基于现代LLM的评估器,如LLM-evals和嵌入模型,提供了一种无参考的方法,通过基于生成概率而不是与预定义参考的比较来评分文本。但是,这些基于LLM的方法的有效性和可靠性仍在评估中。《LLM评估指标:终极LLM评估指南》(LLM Evaluation Metrics: The Ultimate LLM Evaluation Guide)详细探讨了评估这些指标统计和机器学习方法,以及G-Eval(一个流行的开源LLM评估框架)的工作原理。该帖子还深入探讨了开源LLM评估框架G-Eval的工作原理。 图2:来自《G-EVAL: NLG Evaluation using GPT-4 with Better Human Alignment》(G-EVAL: 使用GPT-4进行更好的人类对齐的NLG评估)的G-Eval框架图。
G-Eval是一个利用具有思维链(CoT)提示的LLM来评估模型生成响应的框架。它有三个主要组件
- 评估提示:这个自然语言提示定义了评估任务和标准,如连贯性或语法,针对特定任务进行定制。例如,文本摘要可能指示评估者根据1-5的量表评估连贯性,目的是获得结构良好的摘要。
- 思维链(CoT):G-EVAL使用一系列由LLM自动生成的中间步骤来指导评估。这个CoT提供了一个结构化的流程,如阅读原文,将其与摘要进行比较,并根据特定标准评分,提高LLM在评估中的准确性和可解释性。
- 评分函数:评分函数使用LLM根据分配给每个评分级别的概率来生成一个分数。为了提高粒度并避免低方差或过于简单的评分,G-EVAL计算每个评分级别的概率的加权平均值,创建一个连续的、更细腻的分数,更好地捕捉文本质量的微妙差异。
评估LLM质量和可靠性的复杂性凸显了像G-Eval这样的框架的需求,但挑战仍然存在。《评估LLM应用挑战的分析:自动、人类和LLM基础方法》(The Challenges of Evaluating LLM Applications: An Analysis of Automated, Human, and LLM-Based Approaches)对LLM评估的复杂性进行了深入的剖析,详细说明了自动化和LLM基础方法中出现的问题,并强调了评估实践在塑造未来AI应用中的重要作用。这些论文比较了各种评估方法,并讨论了每种方法的优缺点
- 自动化评估速度快且可重复,但可能缺乏准确性。
- 人类评估全面但成本高昂,评估者之间存在差异。例如,与专家的提示具有高相似度评分的提示可能不是寻求有用响应的领域新手的最佳回应。
- 尽管在效率方面有希望,但基于LLM的评估缺乏广泛的研究,并且常常过于自信,导致潜在的偏见。
构建LLM可观察性解决方案
目前有几种流行的LLM可观察性工具可供使用,但自己构建一个需要考虑哪些因素呢?首先,您需要一个文档存储库来记录提示和响应,然后需要一个向量数据库来管理嵌入,为响应提供上下文并评估响应的准确性。此外,时间序列数据库对于跟踪性能、资源使用和token指标随时间的变化至关重要。理想情况下,您会使用支持无缝集成到数据仓库的数据库,以便进行高效的根本原因分析。例如,您可以使用InfluxDB v3来跟踪token使用、资源利用率和延迟指标。异常监控可以与Apache Iceberg配合使用,以便访问parquet文件,并将这些数据与其他指标结合,帮助您检测模型漂移、机器人活动、偏差回归、有害输出等。