Snowflake Cortex 中的 AI 可观察性¶
使用 Snowflake Cortex 中的 AI 可观察性,评估和跟踪您的生成式 AI 应用程序。使用 AI 可观察性,您可以使您的应用程序更加值得信赖和透明。您可以通过运行系统性评估,使用该功能来测量 AI 应用程序的性能表现。您可以使用评估中的信息来迭代您的应用程序配置并优化性能。您还可以使用它来记录应用程序跟踪以进行调试。
使用 AI 可观察性进行性能基准测试,从而确保您的应用程序更可靠,并为生产部署提供更高的信心。
AI 可观察性具有以下功能:
评价: 使用 AI 可观察性,通过 LLM-as-a-judge 技术对您的生成式 AI 应用和代理进行系统性性能评估。您可以使用准确性、延迟、使用情况和成本等指标来快速迭代应用程序配置并优化性能。
比较: 并行对比多项评估结果,并评估响应的质量与准确性。您可以分析不同 LLMs、提示和推理配置的响应,从而确定生产部署的最佳配置。
跟踪: 追踪应用程序执行的每个环节,包括输入提示、检索上下文、工具使用及 LLM 推理过程。使用它来调试单个记录并优化应用程序的准确性、延迟和成本。
AI 可观察性可用于评估各种任务类型,例如检索增强生成 (RAG) 和摘要。例如,上下文相关性分数可以帮助您检测与用户查询对应的搜索结果检索的质量。您可以使用答案相关性和锚定性分数,根据检索到的上下文来检测最终响应的真实性和相关性。
在摘要任务中,您可以根据原始输入衡量 LLM 生成摘要的事实正确性和全面性,并避免在生成式 AI 应用中提示词和 LLMs 出现高频幻觉的情况。
要开始使用,请了解 关键概念,然后使用 AI 可观察性教程 进行快速演练。随后,您可利用 评估 AI 应用程序 中的信息进行深入演练。
要查看特定概念,请参阅 Snowflake AI 可观察性参考。当使用 SQL 查询 AI_OBSERVABILITY_EVENTS 时,如果查询对象为 Cortex Agent(请将 agent_type 设置为 CORTEX AGENT)或外部代理应用(请将 agent_type 设置为 EXTERNAL AGENT),请参阅 监控 Cortex Agent 请求、GET_AI_OBSERVABILITY_EVENTS (SNOWFLAKE.LOCAL) 和 外部代理命令。
在监控和可观察性用户定义表函数结果中,未脱敏 原始字段的可见性受 READ UNREDACTED AI OBSERVABILITY EVENTS TABLE 账户权限控制;该权限不适用于 Cortex Agent 评估 运行或 External AgentEvaluations 体验。有关更多信息,请参阅 账户权限 READ UNREDACTED AI OBSERVABILITY EVENTS TABLE 和 监控 Cortex Agent 请求。
访问控制和先决条件¶
在开始使用 AI 可观察性之前,请执行以下操作:
要创建和执行运行,您的角色必须具有以下角色或权限。有关更多信息,请参阅 所需权限:
CORTEX_USER 数据库角色
架构的 CREATE EXTERNAL AGENT 权限
架构的 CREATE TASK 权限
EXECUTE TASK 全局权限
在 Python 项目中安装以下 Trulens Python 包:
trulens-coretrulens-connectors-snowflaketrulens-providers-cortex
您在 Python 项目中使用的包的版本应该是 2.1.2 或更高版本。
TruLens 是 Snowflake 用于跟踪应用程序的平台。有关更多信息,请参阅 TruLens 文档 (https://trulens.org/getting_started)。
关键概念¶
应用程序¶
应用程序是指采用多组件(如 LLMs、工具 [例如搜索检索器或 APIs] 及其他自定义逻辑)设计的端到端生成式 AI 应用程序。例如,一个应用程序可以包含由检索器、重排序器和 LLMs 串联组成的 RAG 管道。您可为能在任何环境(如 Snowflake、云端或本地)中运行的应用程序启用 AI 可观察性。
External Agent¶
应用程序在 Snowflake 中表示为外部代理对象。外部代理对象用于存储应用程序和评估元数据(例如应用程序名称、版本名称或运行名称)。它不存储应用程序代码、应用程序定义、执行跟踪或评估结果。虽然应用程序可以托管在任何环境中(例如 Snowflake、云或本地),但执行跟踪和评估结果存储在 Snowflake 账户的事件表中。 有关更多信息,请参阅 可观察性数据。
除了存储应用程序和评估元数据外,外部代理对象还用于管控对应用程序跟踪和评估结果的访问。有关更多信息,请参阅 所需权限。
当您注册应用程序时(例如,使用 TruApp()、TruChain、TruGraph 或 TruLlama),TruLens SDK 会自动创建外部代理对象。如果尚不存在指定应用程序名称的外部代理,运行评估也可以创建一个。
您还可以使用 SQL 命令管理外部代理。有关更多信息,请参阅 外部代理命令。
重要
外部代理对象与 模型 对象共享命名空间。您无法创建与同一模式中现有模型同名的外部代理,反之亦然。如果发生名称冲突(例如,评估和模型同名),则必须先重命名或删除冲突的对象,然后再继续。
版本¶
应用程序可以有多个版本。每个版本代表不同的实施方式。例如,这些版本可以表示不同的检索器、提示、LLMs 或推理配置。
数据集¶
数据集表示一组输入。您可以将其配置为同时表示一组预期输出(基准真值),用于测试应用程序。使用数据集,您可以调用应用程序来执行以下任务:
生成输出。
捕获跟踪。
计算评估指标。
您可以使用包含输入和生成输出的数据集来计算评估指标,无需调用应用程序。有关数据集中支持的字段列表,请参阅 数据集和属性。
运行¶
运行是一项评估作业。它使用您指定的数据集和应用程序版本来计算评估指标。
运行具有调用阶段和计算阶段。调用阶段会触发应用程序生成输出和相应的跟踪。计算阶段计算为运行指定的评估指标。可以执行多次计算以将新指标添加到现有运行中。关于与运行执行相关的状态列表,请参阅 运行。
指标¶
评估指标是用于根据自定义标准来衡量生成式 AI 应用性能的评分体系。这些指标使用 LLMs 对输出进行评分,并提供详细的评分信息。有关指标及其定义的完整列表,请参阅 评估指标。
跟踪¶
追踪数据是记录与 LLM 应用交互时的输入、输出及中间步骤的完整记录。跟踪提供了应用程序执行的详细视图。使用跟踪来分析和了解模型在每个阶段的行为。您可以比较不同应用程序版本的跟踪,以确定改进、调试问题并验证预期性能。有关访问与每条记录关联的跟踪的信息,请参阅 评估 AI 应用程序。
定价¶
AI 可观察性功能通过 LLM 评估器自动计算评估指标。对于服务端评估,Cortex AI 上的 LLMs 被用作 LLM 评估器。LLM 评估器通过 COMPLETE (SNOWFLAKE.CORTEX) 函数调用执行评估任务。您需要为 Cortex Complete 函数调用付费。执行评估所使用的 LLM 将决定产生的费用金额。此外,您还需要支付以下费用:
用于管理评估任务的仓库费用
用于计算评估指标的查询的仓库费用
评估结果的存储费用
在 Snowsight 中查看评估结果时产生的仓库检索费用