news 2026/11/4 6:09:36

Arize Phoenix 实操:4 步定位你的模型到底在哪漂移了

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Arize Phoenix 实操:4 步定位你的模型到底在哪漂移了

Arize Phoenix 实操:4 步定位你的模型到底在哪漂移了

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

模型上线后总有这种时刻:整体准确率掉了几个点,但你说不出是哪一类样本在拖后腿。翻推理日志逐条看?记录动辄上万条,没人看得过来。Arize Phoenix 的模型推理分析就是为此设计的:它用 UMAP 投影把上万条推理结果压进一张可交互的二维散点图,漂移和低性能聚类一眼就能看见。不管是传统 CV 模型,还是 LLM 应用的检索输出,只要推理结果能落成一张带嵌入向量的表,这套流程都适用。你需要准备的只有两样:一张推理记录表(嵌入向量、预测标签、真实标签、时间戳)和一个 Python 环境。本文以计算机视觉的动作识别数据集为例走一遍完整流程。

装包、读数据,一气呵成

分析之前,数据得先进内存。这一节从干净环境做到 DataFrame 就绪。先装主包和 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" ) print(train_df.head())

此时终端会打印出前 5 行。确认嵌入、预测标签、真实标签、时间戳四类字段都在,就可以进入下一步。

数据建模:告诉 Phoenix 每列是什么

Phoenix 不会自己猜你的列名,得先用 Schema 把表结构描述一遍:哪列是时间戳、哪列是预测标签、哪列是真实标签、嵌入向量列和原始数据链接列如何配对,一次说清楚。

image_embedding = px.EmbeddingColumnNames( vector_column_name="image_vector", link_to_data_column_name="url" ) 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": image_embedding}, )

Schema 建好后,把 DataFrame 包装成 Inferences 对象,name 参数就是后续界面上显示的标签。

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

到这里,你手里有了一个 Phoenix 能理解的推理数据集,接下来把它放到屏幕上。

30 秒拉起本地可视化

对象就绪后,剩下的就是启动。一行代码拉起本地服务并自动打开浏览器:

session = px.launch_app(primary=train_ds)

页面加载后,顶部是推理流量曲线,下方是记录列表,点击单条记录能进详情查看输入、输出和原始数据链接。这一步推理数据可视化的本质是把表变成图——Phoenix 是一个开源的模型可观测性工具,拉起的是本地服务,用完关掉即可。

训练集当基准,生产集做主视图

漂移分析需要两份数据并排站立。生产数据通常没有真实标签,建 Schema 时省掉 actual_label 字段即可,其余照抄训练集:读 parquet、建 Schema、包装 Inferences。两份对象都准备好后,只剩一个关键调用:

session = px.launch_app(primary=prod_ds, reference=train_ds)

页面打开后,生产数据是主视图,训练数据是基准。这就是训练集 vs 生产集对比最常用的姿势:Phoenix UMAP 投影把两类数据点叠在同一个二维空间里,按数据集来源着色。如果生产数据明显"漂"出了训练数据的聚集区,你要找的漂移就在这里。

两个工作流:定位漂移,导出再训练数据

页面起来之后,分析通常沿两条线走:一条找到漂移在哪,一条把找到的问题变成再训练数据。

第一条线是定位漂移,也是标准的模型漂移检测流程。先按"数据集来源"着色,确认两份数据在空间上的分离程度;再切换到"正确率"着色,看漂移的聚类是不是恰好就是预测错的样本。圈中一个聚类后按时间戳过滤,能看出漂移从什么时候开始——是换了数据源,还是模型更新过。点进聚类里的单条记录,在详情里核对代表样本,你写出的结论会是"这一类场景失效了",而不是"准确率降了一点"。

第二条线是从聚类到再训练。套索圈选低性能聚类后直接导出选中数据,因为 Schema 里已经把向量列和原始数据链接了,导出拿到的是带原始数据、可直接用于再训练或微调的样本批次。新一轮模型上线后,再放进同一个对比视图,验证漂移聚类是否收敛回训练分布即可。如果你想把这套对比变成例行工作,Phoenix 还可以结合 Arize 平台接入线上监控,这里不展开。

下一步,把你的真实生产日志接进来,看看漂移到底集中在哪类样本上;顺便想一个问题:如果推理数据只有输入文本、没有嵌入向量,这套流程还能怎么跑?

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

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/11/4 6:08:50

Babel 配置实战:大型项目构建提速的 5 个决策点

Babel 配置实战:大型项目构建提速的 5 个决策点 【免费下载链接】babel-handbook :blue_book: A guided handbook on how to use Babel and how to create plugins for Babel. 项目地址: https://gitcode.com/gh_mirrors/ba/babel-handbook 当一次 clone 后的…

作者头像 李华
网站建设 2026/11/4 6:08:34

MacType 上手指南:十分钟把 Windows 字体渲染调得锐利清晰

MacType 上手指南:十分钟把 Windows 字体渲染调得锐利清晰 【免费下载链接】mactype Better font rendering for Windows. 项目地址: https://gitcode.com/gh_mirrors/ma/mactype MacType 是一款免费开源的 Windows 字体渲染优化工具,它接管系统默…

作者头像 李华
网站建设 2026/11/4 6:07:28

Folia 全屏歌词播放器安装指南:从下载到点亮第一句歌词

Folia 全屏歌词播放器安装指南:从下载到点亮第一句歌词 【免费下载链接】folia-major 专注于绚丽的歌词动画效果的本地音乐/navidrome/第三方多平台在线音乐播放器 项目地址: https://gitcode.com/GitHub_Trending/fo/folia-major Folia 是一个把歌词做成全屏…

作者头像 李华
网站建设 2026/11/4 6:02:25

STM32+NRF24L01+DHT11无线温湿度采集系统实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/11/4 6:02:03

嵌入式内存管理:栈溢出、内存泄露与堆碎片实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/11/4 6:02:00

工业操作系统进阶逻辑:从实验室预研到装备现场稳定落地

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华