Arize Phoenix 推理可视化:三步用 UMAP 看清模型漂移
【免费下载链接】phoenixAI Observability & Evaluation项目地址: https://gitcode.com/gh_mirrors/phoenix13/phoenix
模型上线跑了一段时间之后,你未必能立刻回答这两个问题:它最近是不是变笨了?它到底在什么输入上犯浑?Arize Phoenix 推理可视化把每条推理记录变成散点图上的一个点,训练与生产数据叠在一起,分布异常和坏簇直接可见。
Arize Phoenix 推理可视化能解决什么问题
核心手段是 UMAP 投影:把高维 embedding 向量压到二维平面,相似的点就近落座。围绕它,Phoenix 最常干的四件事:
- 模型漂移检测:训练、生产数据叠在同一空间,漂出训练云外的那部分点就是漂移
- 低性能聚类发现:总判错的样本会自己聚成一堆,套lasso 一圈就能看清共性
- 检索质量诊断:RAG、向量检索结果叠进同一视图,哪些文档被反复漏掉一目了然
- 再训练数据导出:圈中的点可以直接导成 DataFrame,拿去微调或补标注
三步跑通:从 Parquet 到本地可视化
第一步装包,embeddings 扩展会带上 UMAP 相关依赖:
pip install -Uq "arize-phoenix[embeddings]"第二步把 Parquet 读进来,用 Schema 说清列的角色(哪列是时间戳、预测标签、真实标签),再用 Inferences 包住 DataFrame:
import phoenix as px, pandas as pd df = pd.read_parquet("human_actions_training.parquet") schema = px.Schema( timestamp_column_name="prediction_ts", prediction_label_column_name="predicted_action", ) train = px.Inferences(dataframe=df, schema=schema, name="training")第三步起本地应用,浏览器打开就能看:
px.launch_app(primary=train)训练与生产数据对比怎么配
生产数据通常没有真实标签,训练数据有,所以惯例是:生产数据进 primary 当被检对象,训练数据进 reference 当基准。prod_df 用同样的 read_parquet 读入,prod_schema 少写一个 actual_label_column_name 参数即可:
prod = px.Inferences(dataframe=prod_df, schema=prod_schema, name="production") px.launch_app(primary=prod, reference=train)两组点落进同一坐标系后,生产点漂出训练云的位置,就是你该重点查的地方。
UMAP 视图里先看哪三处
打开应用别乱翻,先看这三处:
- UMAP 投影入口:在左侧列区切到 embedding 列的 UMAP 投影视图,它是漂移检测的主阵地
- 着色维度:先按「预测对/错」着色找坏簇,再按时间戳着色,判断漂移是持续的还是偶发的
- Lasso 圈选:圈住一整片离群点,右侧表格和源链接会列出选中样本,特征一致就直接导出当再训练素材
做 LLM 时思路相同:把输入输出或检索结果的 embedding 放进同一份 Inferences,就能在同一个 UMAP 视图里查模型有没有偏移。
什么时候该上 Arize 平台
数据量上来了、需要 7x24 采集、或者希望告警主动找人时,就从本地 Phoenix 迁到 Arize 平台:
- 实时监控:推理流持续采集,不用每次手工导 Parquet
- 漂移告警:给阈值设告警,异常扩大前收到通知
- 权限管理:企业级访问控制,各团队只看自己的项目
小结
- 推理可视化把「模型是不是变了」从感觉题,变成在图上指着簇说话
- 两份 Inferences 对象留好,之后换 reference 就能反复做版本对比
- 看完簇还没结论时,把 lasso 选中的点导出去微调或补标注,形成数据闭环
【免费下载链接】phoenixAI Observability & Evaluation项目地址: https://gitcode.com/gh_mirrors/phoenix13/phoenix
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考