☰
5分钟上手Arize Phoenix:如何做模型推理分析与可视化
2026/11/4 15:35:20 网站建设 项目流程

5分钟上手Arize Phoenix:如何做模型推理分析与可视化

【免费下载链接】phoenixAI Observability & Evaluation项目地址: https://gitcode.com/gh_mirrors/phoenix13/phoenix

Arize Phoenix 是一款开源的 LLM 可观测性工具,它的模型可视化能力能把 LLM、CV、表格模型的推理结果变成一张交互式点云。打开页面,你就能看到模型哪里在变差、是哪些样本出了问题。不用自己搭仪表盘,也不用先写 SQL。

模型上线后,你会遇到的3种真实情况

  • 线上数据分布逐渐偏离训练数据,指标看着没变,但找不到原因,这就是模型漂移
  • 一批低性能样本在嵌入空间里聚成一团,平均指标暴露不了问题
  • 检索场景里某些查询取回了错误文档,召回率怎么调都不涨

快速上手:装、读、开,三步走

一条命令装依赖 📦

先装带 embeddings 附加包的版本,它会带上 UMAP 投影所需的依赖。

%pip install -Uq 'arize-phoenix[embeddings]' import pandas as pd import phoenix as px

加载数据并确认结构

示例用的是人体动作识别数据集:每一行是一次推理记录,包含图像特征向量、预测动作、真实动作。

train_df = pd.read_parquet( "http://storage.googleapis.com/arize-assets/phoenix/datasets/unstructured/cv/human-actions/human_actions_training.parquet" ) train_df.head()

告诉 Phoenix 每列怎么读

数据列都读进来了,但它不知道哪列是时间戳、哪列是预测、哪列是真实标签,用 px.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", ), }, )
字段作用
timestamp_column_name时间戳列,做时序分析用
prediction_label_column_name模型预测的标签列
actual_label_column_name真实标签列
embedding_feature_column_names嵌入特征:向量列与原始数据链接列(本例是图片 url)

看懂可视化界面:UMAP 投影视图里看什么 🧭

把 DataFrame 和 Schema 包在一起,一行代码就能启动。📊

train_ds = px.Inferences(dataframe=train_df, schema=train_schema, name="training") session = px.launch_app(primary=train_ds)

页面打开后先看 UMAP 视图:每个点就是一次推理结果。二维平面上靠得近的样本,在高维嵌入空间里本来就相近。聚成一团的点,往往是一类样本,模型对附近样本的判断通常也接近。

界面分成图表、表格等多个子视图,可以随意筛选和切换。

着色维度怎么选

着色维度决定了你在页面上能看到什么:

  • 按数据集名着色,看训练和生产怎么混合
  • 按对错着色,看错例集中在哪
  • 按时间着色,看分布是否在漂移

用套索工具圈聚类 🎯

看到可疑区域,用套索工具把那一圈聚起来,能看到圈内的原始样本、标签和时间分布。定位问题的第一步,永远是先圈再查。

一行代码打开训练 vs 生产对比视图 🔗

生产数据通常没有真实标签,Schema 只留时间戳、预测和嵌入:

prod_df = pd.read_parquet( "http://storage.googleapis.com/arize-assets/phoenix/datasets/unstructured/cv/human-actions/human_actions_training.parquet" ) 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", ), }, )

然后把训练数据作 reference、生产数据作 primary:

prod_ds = px.Inferences(dataframe=prod_df, schema=prod_schema, name="production") session = px.launch_app(primary=prod_ds, reference=train_ds)

primary 是主分析对象,reference 是基准。两套数据的点投到同一个 UMAP 平面后,看两组点的相对位置:生产点整体离开训练簇,就是模型漂移的信号;有生产点落在训练分布之外,那是“未见区域”,模型在那里表现最不可靠。

从洞察到行动:导出、再训练还是升级

圈出问题聚类后,直接把这一组样本导出来:带嵌入向量、原始数据链接、标签和时间戳。导出的是普通表格文件,可以直接喂给下游训练流程。怎么用,看情况:

  • 漂移小、样本量不大:直接并入训练集再训练
  • 漂移是系统性的:用新收集的线上数据做微调
  • 数据连续且量大:本地分析不够用,该接 Arize 平台了 🚀

Arize 平台在 Phoenix 之上多了四类能力:

  • 实时推理监控
  • 大规模数据处理
  • 监控告警
  • 企业级权限管理

数据与接口和 Phoenix 无缝集成,不用重新埋点。项目里 docs/phoenix/ 还有更多用法示例与集成文档。

下次指标掉了,你能不能回答“掉在哪类样本上”,而不只是“掉了”?

【免费下载链接】phoenixAI Observability & Evaluation项目地址: https://gitcode.com/gh_mirrors/phoenix13/phoenix

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询