当前位置: 首页 > article >正文

从零到一:在本地环境搭建Arize Phoenix模型监控平台

1. 为什么选择本地部署Phoenix当你训练了一个机器学习模型并部署到生产环境后最头疼的问题是什么对我来说就是模型在线上环境的表现和线下测试时完全不同。你可能也遇到过这种情况测试集上准确率95%的模型上线后效果却大打折扣。这时候就需要一个像Arize Phoenix这样的模型监控平台。Phoenix最大的优势在于它能实时追踪模型的表现。想象一下这就像给你的模型装了一个行车记录仪不仅能记录每次预测的结果还能分析模型在哪些情况下容易出错。我在实际项目中用过Phoenix后发现它特别适合以下几种场景大语言模型(LLM)的对话追踪和评估传统机器学习模型的性能漂移检测特征分布变化的监控模型预测结果的可视化分析本地部署的好处是显而易见的。首先你的数据不会离开内网环境这对金融、医疗等对数据安全要求高的行业特别重要。其次你可以完全自定义监控指标不受SaaS平台的限制。我最近帮一个客户在本地部署Phoenix后他们终于可以放心地监控那些包含敏感信息的模型了。2. 环境准备与依赖安装2.1 基础环境配置在开始之前我们需要准备一个干净的工作环境。我推荐使用Python 3.10或更高版本这是Phoenix官方测试最充分的版本。如果你习惯用conda管理环境可以这样操作conda create -n phoenix python3.10 conda activate phoenix对于国内用户我强烈建议先配置好pip的国内镜像源这能大幅提升后续依赖安装的速度。我在清华大学的镜像源上实测下载速度能提升5-10倍pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple2.2 获取Phoenix代码Phoenix的源代码托管在GitHub上我们可以直接克隆官方仓库git clone https://github.com/Arize-ai/phoenix.git cd phoenix如果你在内网环境工作可能会遇到GitHub访问问题。这时候可以尝试先在能访问外网的机器上下载zip包再转移到内网环境。我帮不少企业客户这样操作过虽然麻烦点但确实可行。3. Docker部署实战3.1 配置Docker环境Phoenix官方提供了docker-compose配置文件这让本地部署变得非常简单。但在启动之前有几点需要注意首先检查你的Docker版本是否支持compose v3格式docker --version docker-compose --version我在Ubuntu 22.04上测试时发现默认安装的Docker版本可能较旧建议先升级到最新版。如果遇到权限问题记得把当前用户加入docker组sudo usermod -aG docker $USER newgrp docker3.2 启动Phoenix服务一切就绪后启动服务只需要一行命令docker-compose up -d这个命令会启动两个容器一个PostgreSQL数据库和一个Phoenix主服务。第一次运行时需要下载镜像视网络情况可能需要等待几分钟。我在测试时发现如果网络不稳定可能会导致下载中断这时候可以尝试重启命令。启动完成后可以用以下命令检查服务状态docker-compose ps正常情况下你应该看到类似这样的输出NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS phoenix-db-1 postgres docker-entrypoint.s… db 5 minutes ago Up 5 minutes 0.0.0.0:5432-5432/tcp phoenix-phoenix-1 phoenix-phoenix /usr/bin/python3.11… phoenix 5 minutes ago Up 5 minutes 0.0.0.0:6006-6006/tcp, 0.0.0.0:4317-4317/tcp4. 配置与验证4.1 关键环境变量设置要让Phoenix正常工作有几个环境变量必须正确配置。特别是当你想监控大语言模型时API相关的配置尤为重要import os # 设置Phoenix监听地址和端口 os.environ[PHOENIX_HOST] 0.0.0.0 os.environ[PHOENIX_COLLECTOR_ENDPOINT] http://localhost:6006 os.environ[PHOENIX_PORT] 6006 # 如果你要监控OpenAI API调用 os.environ[OPENAI_API_KEY] 你的API密钥 os.environ[OPENAI_BASE_URL] https://api.openai.com/v1这里有个容易踩坑的地方PHOENIX_COLLECTOR_ENDPOINT必须和Phoenix服务实际监听的地址完全一致。我在测试时曾经因为这里配置了127.0.0.1而服务实际运行在0.0.0.0上导致数据无法正常上报。4.2 安装Python依赖在Jupyter notebook中工作时需要安装以下依赖包%pip install arize-phoenix arize-phoenix-evals openai openinference-instrumentation-openai opentelemetry-sdk opentelemetry-exporter-otlp国内用户可能会遇到opentelemetry相关包下载慢的问题。这时候可以临时使用豆瓣源%pip install -i https://pypi.doubanio.com/simple/ opentelemetry-sdk opentelemetry-exporter-otlp4.3 初始化追踪器这是整个配置中最关键的一步需要正确初始化OpenTelemetry追踪器from opentelemetry import trace as trace_api from opentelemetry.sdk import trace as trace_sdk from opentelemetry.sdk.trace.export import SimpleSpanProcessor from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter as HTTPSpanExporter from openinference.instrumentation.openai import OpenAIInstrumentor # 创建Phoenix的Span处理器 span_processor SimpleSpanProcessor( HTTPSpanExporter(endpointhttp://localhost:6006/v1/traces) ) # 配置追踪器 tracer_provider trace_sdk.TracerProvider() tracer_provider.add_span_processor(span_processor) trace_api.set_tracer_provider(tracer_provider) # 自动监控OpenAI API调用 OpenAIInstrumentor().instrument()这段代码做了三件事1) 设置数据上报到本地的Phoenix服务2) 配置基本的追踪器3) 启用对OpenAI API的自动监控。我在实际使用中发现如果忘记调用instrument()方法API调用就不会被记录这点要特别注意。5. 实战测试与监控5.1 发起测试请求配置完成后我们可以发起一个测试请求来验证监控是否正常工作from openai import OpenAI client OpenAI() response client.chat.completions.create( modelgpt-3.5-turbo, messages[{role: user, content: 用中文写一首关于春天的诗}], max_tokens100, ) print(response.choices[0].message.content)如果一切正常你应该能在Phoenix的Web界面看到这次API调用的详细记录。默认情况下Phoenix的Web界面运行在6006端口直接在浏览器访问http://localhost:6006即可。5.2 排查常见问题在实际部署过程中有几个常见问题需要注意端口冲突如果6006端口被占用可以在docker-compose.yml中修改端口映射。我建议把左边的端口号改成你想要的比如8080:6006。数据库权限有时候PostgreSQL容器会因为权限问题启动失败。这时候可以尝试删除旧的数据库卷重新启动docker-compose down -v docker-compose up -d网络连接如果你在内网环境使用代理需要确保Docker能正确使用代理设置。可以在~/.docker/config.json中配置代理信息。数据延迟有时候监控数据会有几秒钟的延迟显示这是正常现象。如果超过1分钟还看不到数据才需要检查配置。

相关文章:

从零到一:在本地环境搭建Arize Phoenix模型监控平台

1. 为什么选择本地部署Phoenix? 当你训练了一个机器学习模型并部署到生产环境后,最头疼的问题是什么?对我来说,就是模型在线上环境的表现和线下测试时完全不同。你可能也遇到过这种情况:测试集上准确率95%的模型&#…...

掌握RAG,解锁大模型落地秘籍!小白程序员必备,收藏提升技能!

本文探讨了为何超长上下文模型并不能完全取代RAG。文章指出,尽管大模型能处理大量数据,但RAG在成本、延迟和避免信息丢失方面仍有优势。现代RAG技术已进化出GraphRAG和Agentic RAG等高级形式,能够进行复杂推理和动态任务执行。文章还分析了构…...

用TTP223触摸模块改造旧家电:5分钟实现免按键控制(Arduino实战)

用TTP223触摸模块改造旧家电:5分钟实现免按键控制(Arduino实战) 周末整理储物间时,那台陪伴我十年的老台灯又出现在眼前。金属开关已经有些接触不良,每次开灯都要反复按好几次。作为创客,我决定用3块钱的TT…...

SecGPT-14B实战教程:用curl命令批量测试不同temperature对漏洞解释准确性影响

SecGPT-14B实战教程:用curl命令批量测试不同temperature对漏洞解释准确性影响 1. 引言 如果你是网络安全工程师或者对AI安全分析感兴趣,你肯定遇到过这样的困惑:同一个安全漏洞问题,问AI模型两次,得到的回答可能差别…...

DeepSeek-OCR 2快速入门:Windows11环境部署指南

DeepSeek-OCR 2快速入门:Windows11环境部署指南 1. 引言 如果你正在寻找一个强大的OCR工具来处理文档、图片或者PDF,DeepSeek-OCR 2绝对值得一试。这个模型不仅能准确识别文字,还能理解文档结构,甚至能把复杂的PDF转换成整洁的M…...

Nanbeige 4.1-3B极简WebUI作品集:天蓝波点背景+呼吸阴影气泡效果展示

Nanbeige 4.1-3B极简WebUI作品集:天蓝波点背景呼吸阴影气泡效果展示 今天给大家分享一个我最近折腾出来的好东西——一个专为南北阁(Nanbeige)4.1-3B模型打造的本地Web聊天界面。如果你受够了那些千篇一律、界面呆板的AI对话工具&#xff0c…...

SQLite数据库管理神器:用SQLite Studio实现跨平台数据可视化(Windows/Mac双教程)

SQLite数据库管理神器:用SQLite Studio实现跨平台数据可视化(Windows/Mac双教程) 在数据驱动的时代,SQLite作为轻量级数据库的典范,凭借其零配置、单文件存储和跨平台特性,已成为移动应用、嵌入式系统和本…...

VSCode 远程开发:实现服务器图形化界面(GUI)的高效操作指南

1. 为什么需要远程GUI操作? 很多开发者在使用VSCode连接远程服务器时都会遇到一个尴尬的问题:当代码需要显示图形界面时,比如用matplotlib画图,或者想用gedit编辑文件,系统就会报错。这是因为默认情况下,远…...

【快速EI检索 | IEEE出版】2026年信息通信、物联网技术与智慧城市国际学术会议(IITS 2026)

2026年信息通信、物联网技术与智慧城市国际学术会议(IITS 2026) 2026 International Conference on Information Communication, IoT Technology, and Smart Cities (IITS 2026) 2026年4月10-12日 马来西亚 吉隆坡 大会官网: www.icscsd.org 截稿…...

驯服Transformer:百万级别文本分类新方法

驯服Transformer:百万级别文本分类新方法 新方法在保持模型规模可控的同时,实现了最先进的分类效果。 在自然语言理解领域,文本分类是最基础的任务。例如,用户向某智能助手发出的请求需要按领域进行分类,如天气、音乐…...

2026年税务季薪酬系统钓鱼攻击的演化机制与防御策略研究

摘要 随着2026年美国国税局(IRS)发布年度“十二大税务诈骗”名单,网络钓鱼与身份冒充再次位居榜首。然而,当前的威胁格局已发生显著偏移:传统的IRS官方冒充正逐渐被更具隐蔽性和破坏力的企业内部薪酬及人力资源部门冒充…...

【含文档+PPT+源码】基于SpringBoot+Vue的在线手机商城的设计与实现

项目介绍本课程演示的是一款基于SpringBootVue的在线手机商城的设计与实现,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的 Java 学习者。1.包含:项目源码、项目文档、数据库脚本、软件工具等所有资料2.带你从零开始部署运行本套系统3.该…...

C语言高级编程_动态内存池管理器

这段代码实现了一个**动态内存池管理器**,其核心设计理念是通过集中化管理多个动态分配的内存块,实现批量分配与统一释放的自动化内存管理机制。下面从数据结构设计、函数实现逻辑、技术优势及潜在风险四个维度进行深度解析。### 一、数据结构架构分析c …...

跨境网络诈骗中钓鱼基础设施的协同治理与取证分析

摘要随着数字化经济的全球化演进,网络犯罪已突破地理边界,呈现出高度组织化、跨境化及基础设施复杂化的特征。2026年3月,欧洲司法合作组织(Eurojust)协调德国等多国执法机构,成功瓦解了一个针对德国公民的大…...

从SQL到MapReduce:Hive的数据仓库“翻译魔法”与未来演进

在大数据技术卷疯了的今天,Hive早就不是单纯的“SQL解析工具”那么简单,而是撑起企业级数据仓库的核心大佬。它最绝的“魔法”,就是把咱们写起来顺手又好懂的SQL,自动转成分布式计算框架MapReduce能跑的任务——哪怕你不懂Java、P…...

代码随想录算法训练营第五十四天|108.冗余连接、109.冗余连接II

题目链接:108.冗余连接 解题思路:并查集 具体思路: 首先定义全局变量 n 和长度为 1001 的父节点数组 father,实现并查集核心函数,find 带路径压缩的查找,找到节点根节点并进行路径压缩,降低查…...

理解机器学习中监督学习,无监督学习和强化学习区别

在CDGA(数据治理工程师)的知识体系中,理解监督学习、无监督学习和强化学习,关键在于把握它们学习方式的差异——即模型从什么样的数据中、通过怎样的反馈来“学习”。简单来说,它们的核心区别在于是否有“标准答案”以…...

配电网最优潮流与二阶锥:解决配电网规划难题

配电网 最优潮流 二阶锥 最优潮流模型,用于解决配电网规划(DNP)问题。 数学优化模型,旨在找到基于给定参数和约束条件的最优配电网规划解决方案。 SOCPR方法用于处理问题中的非凸性,从而更容易找到大规模配电网的近似…...

永磁同步“发电机”双闭环控制模型(PLECS)仿真之旅

#永磁同步“发电机”双闭环控制模型(PLECS) PMSM永磁同步发电机仿真三电平(NPC)的矢量控制; 控制上采用电压外环,电流内环 三电平NPC逆变器以及SVPWM均为plecs自带模块; 仿真波形说明&#xff1…...

每日一题Day6(递归专栏---FBI数)

个人主页:小则又沐风 个人专栏:<数据结构> <竞赛专栏> <C语言> 今天我们将要学习地算法是递归. 提起来递归大家一定不会陌生,因为我们地二叉树 快速排序,归并排序.....都使用了递归.那么我们要怎么借助递归来解决问题呢? 我们来看使用递归地场景. 以我…...

计算机毕业设计springboot考察检测系统 基于SpringBoot的在线考试与成绩分析平台 基于SpringBoot的智能化教学测评管理系统

计算机毕业设计springboot考察检测系统l3bx04f5 &#xff08;配套有源码 程序 mysql数据库 论文&#xff09; 本套源码可以在文本联xi,先看具体系统功能演示视频领取&#xff0c;可分享源码参考。随着信息技术的飞速发展和教育数字化转型的深入推进&#xff0c;传统的纸质考试与…...

计算机毕业设计springboot考公信息网的设计与实现 基于SpringBoot的公务员考试资讯服务平台的设计与实现

计算机毕业设计springboot考公信息网的设计与实现yv90rbrl &#xff08;配套有源码 程序 mysql数据库 论文&#xff09; 本套源码可以在文本联xi,先看具体系统功能演示视频领取&#xff0c;可分享源码参考。随着公务员招录规模的持续扩大和考试竞争的日益激烈&#xff0c;考生对…...

UROVAs 端到端自动驾驶模型训练、开闭环测试与上车联调

序言&#xff1a;为什么端到端训练方式如此革命性&#xff1f;因为它让AI自己学会开车&#xff0c;而不是靠人写规则。传统自动驾驶系统通常是“拼积木式”的&#xff1a;先做感知&#xff08;识别物体&#xff09;、再做定位&#xff08;知道我在哪&#xff09;、然后规划路径…...

电力变换控制技术的奇妙世界

级联H桥&#xff0c;级联H桥型statcom&#xff0c;APF&#xff0c;储能变换器&#xff0c;PCS&#xff0c;SVG&#xff0c;光伏并网逆变器&#xff0c;双闭环控制&#xff0c;自抗扰控制&#xff0c;无差控制&#xff0c;重复控制&#xff0c;载波移相调制&#xff0c;载波重叠…...

php方案 PHP 实现帧同步服务器 - 类王者荣耀的确定性帧同步逻辑(Lockstep)

直接说实话&#xff1a;PHP 不适合做帧同步服务器&#xff0c;原因是 PHP 传统模式每次请求都重启&#xff0c;没有常驻内存。但用 Swoole 可以让 PHP 常驻内存&#xff0c;完全可以做。---安装&#xff1a;composer require swoole/ide-helper # IDE提示# Swoole 需要编译安装…...

mw4agent---------agent时代的中间件

项目地址:mw4agent 仿照openclaw实现的python版本,主要用于学习agent中间件需要提供的能力....

Csimplecleaner:实测释放16G空间的C盘清理利器

对于长期使用电脑的用户来说&#xff0c;C盘空间不足是一个非常普遍的问题。 随着时间的推移&#xff0c;系统中会积累大量的临时文件、缓存数据、更新残留等垃圾文件&#xff0c;这些文件不仅占用宝贵的磁盘空间&#xff0c;还会拖慢系统运行速度&#xff0c;影响用户的使用体…...

java中乐观锁+事务在批量导入,批量审批案例的使用

一 背景需求描述1.1 需求描述我们将模拟一个“批量调整库存”的场景。多个线程&#xff08;或请求&#xff09;可能同时尝试修改同一批商品的库存。使用乐观锁可以避免使用 SELECT ... FOR UPDATE 带来的性能瓶颈和死锁风险。本案例这是一个不带重试机制的完整 Spring Boot MyB…...

【day54】

平面上有两个矩形&#xff0c;它们的边平行于直角坐标系的X轴或Y轴。对于每个矩形&#xff0c;我们给出它的一对相对顶点的坐标&#xff0c;请你编程算出两个矩形的交的面积。#include<iostream> #include<iomanip> using namespace std; int main() {double a1x, …...

2026春季学期新教师会议上校长发言:带着热爱出发,多学习、多反思、多实践,在课堂中积累经验,在和学生的相处中感受教育的温暖

各位新教师朋友们&#xff1a; 大家好&#xff01; 春暖花开&#xff0c;万物萌新&#xff0c;在这充满希望的2026年春季学期&#xff0c;你们带着对教育的热爱和憧憬加入咱们学校的大家庭&#xff0c;为校园注入了新鲜的血液&#xff0c;我代表学校全体师生&#xff0c;向大家…...