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 可观察性参考。
访问控制和先决条件¶
在开始使用 AI 可观察性之前,请执行以下操作:
要创建和执行运行,您的角色必须具有以下角色或权限。有关更多信息,请参阅 所需权限:
CORTEX_USER 数据库角色
架构的 CREATE EXTERNAL AGENT 权限
架构的 CREATE TASK 权限
EXECUTE TASK 全局权限
在 Python 项目中安装以下 Trulens Python 包:
trulens-coretrulens-connectors-snowflaketrulens-providers-cortex
The version of the package that you're using in your Python project should be version 2.1.2 or later.
TruLens 是 Snowflake 用于跟踪应用程序的平台。有关更多信息,请参阅 TruLens 文档 (https://trulens.org/getting_started)。
关键概念¶
应用程序¶
应用程序是指采用多组件(如 LLMs、工具 [例如搜索检索器或 APIs] 及其他自定义逻辑)设计的端到端生成式 AI 应用程序。例如,一个应用程序可以包含由检索器、重排序器和 LLMs 串联组成的 RAG 管道。您可为能在任何环境(如 Snowflake、云端或本地)中运行的应用程序启用 AI 可观察性。
External Agent¶
Applications are represented in Snowflake as EXTERNAL AGENT objects. An EXTERNAL AGENT object is used to store application and evaluation metadata (such as the application name, version name, or run name). It does not store the application code, application definition, execution traces, or evaluation results. While the application can be hosted in any environment (such as Snowflake, cloud, or on-premises), the execution traces and evaluation results are stored in an event table in your Snowflake account. For more information, see 可观察性数据.
除了存储应用程序和评估元数据外,EXTERNAL AGENT 对象还用于管控对应用程序跟踪和评估结果的访问。有关更多信息,请参阅 所需权限。
版本¶
应用程序可以有多个版本。每个版本代表不同的实施方式。例如,这些版本可以表示不同的检索器、提示、LLMs 或推理配置。
数据集¶
数据集表示一组输入。您可以将其配置为同时表示一组预期输出(基准真值),用于测试应用程序。使用数据集,您可以调用应用程序来执行以下任务:
生成输出。
捕获跟踪。
计算评估指标。
您可以使用包含输入和生成输出的数据集来计算评估指标,无需调用应用程序。有关数据集中支持的字段列表,请参阅 数据集和属性。
运行¶
运行是一项评估作业。它使用您指定的数据集和应用程序版本来计算评估指标。
A run has an invocation stage and a computation stage. The invocation stage triggers the application to generate the output and corresponding traces. The computation stage computes the evaluation metrics specified for the run. Multiple computations can be performed to add new metrics to an existing run. For the list of statuses associated with the execution of a run, see 运行.
指标¶
评估指标是用于根据自定义标准来衡量生成式 AI 应用性能的评分体系。这些指标使用 LLMs 对输出进行评分,并提供详细的评分信息。有关指标及其定义的完整列表,请参阅 评估指标。
跟踪¶
追踪数据是记录与 LLM 应用交互时的输入、输出及中间步骤的完整记录。跟踪提供了应用程序执行的详细视图。使用跟踪来分析和了解模型在每个阶段的行为。您可以比较不同应用程序版本的跟踪,以确定改进、调试问题并验证预期性能。有关访问与每条记录关联的跟踪的信息,请参阅 评估 AI 应用程序。
定价¶
AI 可观察性功能通过 LLM 评估器自动计算评估指标。对于服务端评估,Cortex AI 上的 LLMs 被用作 LLM 评估器。LLM 评估器通过 COMPLETE (SNOWFLAKE.CORTEX) 函数调用执行评估任务。您需要为 Cortex Complete 函数调用付费。执行评估所使用的 LLM 将决定产生的费用金额。此外,您还需要支付以下费用:
用于管理评估任务的仓库费用
用于计算评估指标的查询的仓库费用
评估结果的存储费用
在 Snowsight 中查看评估结果时产生的仓库检索费用