使用Arize Phoenix进行模型推理分析与可视化快速入门
phoenix AI Observability & Evaluation 项目地址: https://gitcode.com/gh_mirrors/phoenix13/phoenix
概述
Arize Phoenix是一个强大的模型可观测性工具,能够帮助开发者可视化分析各种类型模型(包括LLM、NLP、CV和表格数据模型)的推理结果。通过UMAP投影技术,Phoenix可以将模型的所有推理结果呈现在一个交互式视图中,使开发者能够:
- 在EDA阶段理解模型漂移
- 发现低性能聚类
- 识别检索问题
- 导出数据进行模型再训练或微调
环境准备
安装依赖
首先需要安装Phoenix的核心包及其依赖项:
%pip install -Uq 'arize-phoenix[embeddings]'
安装完成后,导入必要的Python库:
import pandas as pd
import phoenix as px
数据准备
加载示例数据集
本教程以计算机视觉(CV)模型为例,我们将使用一个包含人类动作识别训练数据的Parquet文件:
train_df = pd.read_parquet(
"http://storage.googleapis.com/arize-assets/phoenix/datasets/unstructured/cv/human-actions/human_actions_training.parquet"
)
数据集中的每一行代表一个推理样本,包含图像特征向量、预测动作、实际动作、时间戳等信息。
数据预览
使用head()
方法可以快速查看数据结构和内容:
train_df.head()
定义数据模式(Schema)
Phoenix需要了解数据中各列的含义,这通过Schema对象来定义:
train_schema = px.Schema(
timestamp_column_name="prediction_ts",
prediction_label_column_name="predicted_action",
actual_label_column_name="actual_action",
embedding_feature_column_names={
"image_embedding": px.EmbeddingColumnNames(
vector_column_name="image_vector",
link_to_data_column_name="url",
),
},
)
Schema定义中需要注意:
timestamp_column_name
:指定时间戳列prediction_label_column_name
:指定预测标签列actual_label_column_name
:指定真实标签列embedding_feature_column_names
:定义嵌入特征,包括向量列和原始数据链接
创建推理数据集对象
将DataFrame和Schema包装成Phoenix的Inferences对象:
train_ds = px.Inferences(dataframe=train_df, schema=train_schema, name="training")
启动Phoenix可视化
现在可以启动Phoenix应用来可视化训练数据:
session = px.launch_app(primary=train_ds)
执行后会生成一个本地Web应用,可以通过浏览器访问交互式可视化界面。
添加生产数据对比
为了分析模型漂移,我们可以添加生产环境数据进行对比分析。
加载生产数据
prod_df = pd.read_parquet(
"http://storage.googleapis.com/arize-assets/phoenix/datasets/unstructured/cv/human-actions/human_actions_training.parquet"
)
定义生产数据Schema
生产数据可能缺少真实标签,Schema定义会有所不同:
prod_schema = px.Schema(
timestamp_column_name="prediction_ts",
prediction_label_column_name="predicted_action",
embedding_feature_column_names={
"image_embedding": px.EmbeddingColumnNames(
vector_column_name="image_vector",
link_to_data_column_name="url",
),
},
)
创建生产数据推理对象
prod_ds = px.Inferences(dataframe=prod_df, schema=prod_schema, name="production")
启动对比分析
将训练数据作为参考基准(reference),生产数据作为主要分析对象(primary):
session = px.launch_app(primary=prod_ds, reference=train_ds)
分析技巧与最佳实践
在Phoenix可视化界面中,可以:
- 进入UMAP投影视图分析嵌入空间分布
- 按不同维度(如正确率、数据集来源)着色数据点
- 使用套索工具选择特定聚类进行分析
- 对比训练和生产数据的分布差异
- 识别高漂移时间段的数据特征
- 导出感兴趣的数据点用于模型优化
进阶应用
当模型进入生产环境后,可以结合Arize平台获得更强大的功能:
- 实时推理监控
- 大规模数据处理能力
- 监控告警设置
- 企业级权限管理
- 与Phoenix的无缝集成
总结
通过本教程,我们学习了如何使用Phoenix进行模型推理分析的基本流程。Phoenix提供了强大的可视化工具,帮助开发者:
- 理解模型在不同数据集上的表现
- 识别潜在问题和漂移
- 支持数据驱动的模型优化决策
对于更复杂的应用场景,如LLM分析、信息检索系统评估等,Phoenix也提供了相应的工具和接口。
phoenix AI Observability & Evaluation 项目地址: https://gitcode.com/gh_mirrors/phoenix13/phoenix
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考