尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

使用 ax CLI 在 Arize 上创建、运行与分析 LLM 实验:arize-experiment 技能实战指南

使用 ax CLI 在 Arize 上创建、运行与分析 LLM 实验:arize-experiment 技能实战指南 使用 ax CLI 在 Arize 上创建、运行与分析 LLM 实验arize-experiment 技能实战指南【免费下载链接】awesome-copilotCommunity-contributed instructions, agents, skills, and configurations to help you make the most of GitHub Copilot.项目地址: https://gitcode.com/GitHub_Trending/aw/awesome-copilot导读本文聚焦 awesome-copilot 仓库中arize-experiment技能skills/arize-experiment/SKILL.md系统讲解如何基于 Arize 平台的数据集Dataset创建实验Experiment、导出实验运行结果、对比不同模型/提示词版本的表现并完成评估Evaluation与回归分析。读完本文你将掌握ax experiments系列命令的完整用法、Run 数据模型、REST 与 Arrow Flight 两种导出通道的取舍以及一整套可直接落地执行的工作流与统计显著性判断方法。arize-experiment是 awesome-copilot 仓库中 Arize AX 插件plugins/arize-ax/plugin.json提供的九大技能之一与该插件的arize-dataset数据集、arize-prompt-optimization提示词优化、arize-trace链路追踪、arize-linkUI 深链等技能协同构成完整的「观测 → 建集 → 实验 → 优化」LLM 评测闭环。本文以该技能文档为主体结合仓库中相关技能的源码文档与插件配置逐层展开。核心概念实验、运行、数据集与评估在使用任何命令之前先建立四个相互关联的核心概念概念定义关键特征Experiment实验针对特定数据集版本的一次命名评估运行每个示例对应一条 run实验绑定了数据集及其版本Experiment Run运行处理一个数据集示例的结果包含模型输出、可选评估结果与可选元数据Dataset数据集可版本化的示例集合每个实验都绑定到一个数据集及其具体版本Evaluation评估附加在 run 上的具名指标如correctness、relevance可选 label、score、explanation 字段典型流程为导出数据集 → 逐个处理示例 → 收集输出与评估 → 用 runs 创建实验。这一流程与arize-dataset技能skills/arize-dataset/SKILL.md中数据集是可版本化、用于评估与实验的示例集合的定义完全对应——实验永远建立在数据集之上。前置条件与安全边界arize-experiment的技能元数据声明其兼容性为Requires the ax CLI and a configured Arize profile需要 ax CLI 与已配置的 Arize 配置文件。技能明确要求直接运行所需的ax命令不要预先检查版本、环境变量或 profile仅在命令失败时才按错误排查对应 skills/arize-experiment/references/ax-setup.md 与 skills/arize-experiment/references/ax-profiles.md。两条必须严格遵守的红线安全绝不读取.env文件或在文件系统中搜索凭据。Arize 凭据一律通过ax profiles管理LLM 提供商密钥一律通过ax ai-integrations管理若这些渠道不可用直接询问用户。绝不伪造输出CRITICAL运行实验时必须针对每个数据集示例调用用户指定的真实模型 API。严禁虚构、模拟或硬编码模型输出、延迟或评估分数。若无法调用 API缺少 SDK、凭据、网络错误必须停下并告知用户缺少什么。SPACE 约定所有--space标志与ARIZE_SPACE环境变量都接受 space名称如my-workspace或 base64 的 spaceID如U3BhY2U6...可用ax spaces list查询。实验管理基础列出、获取与删除列出实验ax experiments list浏览实验可按数据集过滤输出到 stdoutax experiments list ax experiments list --dataset DATASET_NAME --space SPACE --limit 20 # DATASET_NAME 用名称或 ID优先名称 ax experiments list --cursor CURSOR_TOKEN ax experiments list -o jsonFlag类型默认值说明--datasetstring无按数据集过滤--limit, -lint15最大结果数1-100--cursorstring无上一次响应的分页游标-o, --outputstringtable输出格式table、json、csv、parquet 或文件路径-p, --profilestringdefault配置文件获取实验ax experiments get快速元数据查询——返回实验名称、关联的数据集/版本和时间戳ax experiments get NAME_OR_ID ax experiments get NAME_OR_ID -o json ax experiments get NAME_OR_ID --dataset DATASET_NAME --space SPACE # 使用实验名称而非 ID 时必填Flag类型默认值说明NAME_OR_IDstring必填位置参数实验名称或 ID--datasetstring无数据集名称或 ID用实验名称而非 ID 时必填--spacestring无space 名称或 ID用数据集名称而非 ID 时必填-o, --outputstringtable输出格式-p, --profilestringdefault配置文件响应字段字段类型说明idstring实验 IDnamestring实验名称dataset_idstring关联的数据集 IDdataset_version_idstring使用的具体数据集版本experiment_traces_project_idstring存储实验 traces 的项目created_atdatetime创建时间updated_atdatetime最后修改时间注意experiment_traces_project_id字段揭示了实验与链路追踪的关联实验中失败 run 的 trace 存储在该项目下这正是arize-traceskills/arize-trace/SKILL.md技能可继续深挖的入口。删除实验ax experiments deleteax experiments delete NAME_OR_ID ax experiments delete NAME_OR_ID --dataset DATASET_NAME --space SPACE # 使用实验名称而非 ID 时必填 ax experiments delete NAME_OR_ID --force # 跳过确认提示Flag类型默认值说明NAME_OR_IDstring必填位置参数实验名称或 ID--datasetstring无数据集名称或 ID用实验名称而非 ID 时必填--spacestring无space 名称或 ID用数据集名称而非 ID 时必填--force, -fboolfalse跳过确认提示-p, --profilestringdefault配置文件导出实验REST 与 Arrow Flight 双通道ax experiments export将全部 runs 下载到文件。默认使用 REST API传入--all改用 Arrow Flight 做批量传输。# EXPERIMENT_NAME、DATASET_NAME 可用名称或 ID优先名称 ax experiments export EXPERIMENT_NAME --dataset DATASET_NAME --space SPACE # - experiment_abc123_20260305_141500/runs.json ax experiments export EXPERIMENT_NAME --dataset DATASET_NAME --space SPACE --all ax experiments export EXPERIMENT_NAME --dataset DATASET_NAME --space SPACE --output-dir ./results ax experiments export EXPERIMENT_NAME --dataset DATASET_NAME --space SPACE --stdout ax experiments export EXPERIMENT_NAME --dataset DATASET_NAME --space SPACE --stdout | jq .[0]Flag类型默认值说明NAME_OR_IDstring必填位置参数实验名称或 ID--datasetstring无数据集名称或 ID用实验名称而非 ID 时必填--spacestring无space 名称或 ID用数据集名称而非 ID 时必填--allboolfalse使用 Arrow Flight 批量导出见下--output-dirstring.输出目录--stdoutboolfalse将 JSON 打印到 stdout 而非文件-p, --profilestringdefault配置文件REST 与 Flight--all如何取舍REST默认摩擦最小——无 Arrow/Flight 依赖走标准 HTTPS 端口可穿越任何企业代理或防火墙。每页限制 500 条 run。Flight--allrun 数超过 500 时必需。使用 gRPCTLS 连接独立主机/端口flight.arize.com:443部分企业网络可能拦截。Agent 自动升级规则若 REST 导出恰好返回 500 条 run结果很可能被截断应改用--all重跑以获取完整数据集。导出输出是 run 对象的 JSON 数组[ { id: run_001, example_id: ex_001, output: The answer is 4., evaluations: { correctness: { label: correct, score: 1.0 }, relevance: { score: 0.95, explanation: Directly answers the question } }, metadata: { model: gpt-4o, latency_ms: 1234 } } ]创建实验ax experiments create用数据文件中的 runs 创建新实验ax experiments create --name gpt-4o-baseline --dataset DATASET_NAME --space SPACE --file runs.json ax experiments create --name claude-test --dataset DATASET_NAME --space SPACE --file runs.csvFlag类型必填说明--name, -nstring是实验名称--datasetstring是实验所针对的数据集--space, -sstring否space 名称或 ID用数据集名称而非 ID 时必填--file, -fpath是含 runs 的数据文件CSV、JSON、JSONL 或 Parquet-o, --outputstring否输出格式-p, --profilestring否配置文件通过 stdin 传入数据使用--file -直接管道传入数据——无需临时文件echo [{example_id: ex_001, output: Paris}] | ax experiments create --name my-experiment --dataset DATASET_NAME --space SPACE --file - # 或用 heredoc ax experiments create --name my-experiment --dataset DATASET_NAME --space SPACE --file - EOF [{example_id: ex_001, output: Paris}] EOFruns 文件必填列列类型必填说明example_idstring是该 run 对应的数据集示例 IDoutputstring是该示例的模型/系统输出其余列会作为additionalProperties透传到 run 上。Experiment Run Schema 详解每条 run 对应一个数据集示例{ example_id: required -- 关联数据集示例, output: required -- 该示例的模型/系统输出, evaluations: { metric_name: { label: 可选字符串标签如 correct、incorrect, score: 可选数值分数如 0.95, explanation: 可选自由文本 } }, metadata: { model: gpt-4o, temperature: 0.7, latency_ms: 1234 } }评估字段evaluations字段类型必填说明labelstring否分类标签如correct、incorrect、partialscorenumber否数值质量分数如 0.0 - 1.0explanationstring否评估的自由文本推理每个评估中label、score、explanation至少应存在一个。从数据结构可以推断evaluations以指标名为键的多值映射天然支持在同一 run 上挂多个评估维度如correctness与relevance并存且每个维度独立拥有 label/score/explanation 三元组这与arize-prompt-optimization技能skills/arize-prompt-optimization/SKILL.md中性能信号列的划分eval.name.score、eval.name.explanation等保持一致即评估结果可直接回流为后续提示词优化的输入信号。实战工作流一对数据集运行实验这是该技能文档给出的完整六步流程也是最核心的落地路径1. 查找或创建数据集ax datasets list --space SPACE ax datasets export DATASET_NAME --space SPACE --stdout | jq length2. 导出数据集示例ax datasets export DATASET_NAME --space SPACE3. 对每个示例调用真实模型 API 并收集输出使用ax datasets export --stdout将示例直接管道送入推理脚本ax datasets export DATASET_NAME --space SPACE --stdout | python3 infer.py runs.jsoninfer.py从 stdin 读取示例、调用目标模型、向 stdout 写 runs JSON。下面脚本为模板——先检查导出的数据集 JSON 找到正确的输入字段名再按用户需求取消对应提供商代码块的注释import json, sys, time examples json.load(sys.stdin) runs [] for ex in examples: # 检查导出的 JSON 以找到正确字段如 input、question、prompt user_input ex.get(input) or ex.get(question) or ex.get(prompt) or str(ex) start time.time() # 在此调用真实模型 API —— 绝不虚构或模拟 # 取消并适配用户要求的提供商代码块 # # OpenAIpip install openai —— 使用 OPENAI_API_KEY 环境变量 # from openai import OpenAI # resp OpenAI().chat.completions.create( # modelgpt-4o, # messages[{role: user, content: user_input}] # ) # output_text resp.choices[0].message.content # # Anthropicpip install anthropic —— 使用 ANTHROPIC_API_KEY 环境变量 # import anthropic # resp anthropic.Anthropic().messages.create( # modelclaude-sonnet-4-6, max_tokens1024, # messages[{role: user, content: user_input}] # ) # output_text resp.content[0].text # # Google Geminipip install google-genai —— 使用 GOOGLE_API_KEY 环境变量 # from google import genai # resp genai.Client().models.generate_content( # modelgemini-2.5-pro, contentsuser_input # ) # output_text resp.text # # 自定义 / OpenAI 兼容代理pip install openai —— 使用 CUSTOM_BASE_URL CUSTOM_API_KEY 环境变量 # 适用于 Azure OpenAI、NVIDIA NIM、本地 Ollama 或任何 OpenAI 兼容端点 # 包括测试集成代理。与 ax ai-integrations create 中的 custom 提供商对应。 # import os # from openai import OpenAI # resp OpenAI( # base_urlos.environ[CUSTOM_BASE_URL], # 如 https://my-proxy.example.com/v1 # api_keyos.environ.get(CUSTOM_API_KEY, none), # ).chat.completions.create( # modelos.environ.get(CUSTOM_MODEL, default), # messages[{role: user, content: user_input}] # ) # output_text resp.choices[0].message.content latency_ms round((time.time() - start) * 1000) runs.append({ example_id: ex[id], output: output_text, metadata: {model: MODEL_NAME, latency_ms: latency_ms} }) print(f {ex[id]}: {latency_ms}ms, filesys.stderr) json.dump(runs, sys.stdout, indent2)运行前安装提供商 SDKpip install openai/anthropic/google-genai并确保 API key 已在 shell 中设为环境变量。若无法访问 API停下并告知用户所需条件。注意该模板的通用输入提取逻辑ex.get(input) or ex.get(question) or ex.get(prompt)印证了arize-dataset技能中示例Example是带有任意用户自定义字段的单条记录如question、answer、context的定义——字段名由你建数据集时自定义推理脚本必须适配。4. 校验 runs 文件python3 -c import json; runsjson.load(open(runs.json)); print(f{len(runs)} runs); print(json.dumps(runs[0], indent2))每条 run 必须包含example_id和output。可选字段evaluations、metadata。5. 创建实验ax experiments create --name gpt-4o-baseline --dataset DATASET_NAME --space SPACE --file runs.json6. 验证ax experiments get gpt-4o-baseline --dataset DATASET_NAME --space SPACE实战工作流二对比两个实验对比实验是模型选型A/B 测试、提示词迭代的核心手段本质上是将两个实验的导出结果按example_id对齐后做分析1. 导出两个实验ax experiments export experiment-a --dataset DATASET_NAME --space SPACE --stdout a.json ax experiments export experiment-b --dataset DATASET_NAME --space SPACE --stdout b.json2. 按example_id对比评估分数# 实验 A 的 correctness 平均分 jq [.[] | .evaluations.correctness.score] | add / length a.json # 实验 B 同理 jq [.[] | .evaluations.correctness.score] | add / length b.json3. 找出结果有差异的示例jq -s .[0] as $a | .[1][] | . as $run | { example_id: $run.example_id, b_score: $run.evaluations.correctness.score, a_score: ($a[] | select(.example_id $run.example_id) | .evaluations.correctness.score) } a.json b.json4. 每个评估器的分数分布pass/fail/partial 计数# 统计实验 A 中按 label 分组的数量 jq [.[] | .evaluations.correctness.label] | group_by(.) | map({label: .[0], count: length}) a.json5. 找出回归在 A 中通过但在 B 中失败jq -s [.[0][] | select(.evaluations.correctness.label correct)] as $passed_a | [.[1][] | select(.evaluations.correctness.label ! correct) | select(.example_id as $id | $passed_a | any(.example_id $id)) ] a.json b.json统计显著性提示分数对比在每个评估器至少 30 个示例时最可靠。示例不足时把差值仅视为方向性参考——n10 时 5% 的差异可能只是噪声。报告分数时务必附带样本量jq length a.json。实战工作流三下载结果用于分析、并管道到其他工具下载实验结果用于分析ax experiments list --dataset DATASET_NAME --space SPACE—— 查找实验ax experiments export EXPERIMENT_NAME --dataset DATASET_NAME --space SPACE—— 下载到文件解析jq .[] | {example_id, score: .evaluations.correctness.score} experiment_*/runs.json将导出结果管道到其他工具# 统计 run 数量 ax experiments export EXPERIMENT_NAME --dataset DATASET_NAME --space SPACE --stdout | jq length # 提取所有输出 ax experiments export EXPERIMENT_NAME --dataset DATASET_NAME --space SPACE --stdout | jq .[].output # 获取低分 run ax experiments export EXPERIMENT_NAME --dataset DATASET_NAME --space SPACE --stdout | jq [.[] | select(.evaluations.correctness.score 0.5)] # 转换为 CSV ax experiments export EXPERIMENT_NAME --dataset DATASET_NAME --space SPACE --stdout | jq -r .[] | [.example_id, .output, .evaluations.correctness.score] | csv--stdoutjq的组合让实验导出结果可以无缝融入任何下游分析管线统计、可视化、CI 报告生成等无需落盘中间文件。与相关技能的协同链路在 Arize AX 插件的技能矩阵中见 plugins/arize-ax/README.mdarize-experiment处于评测环节的枢纽位置其前后衔接关系如下arize-dataset前一步创建或导出实验所运行的数据集 → 先用arize-datasetarize-prompt-optimization后一步利用实验结果改进提示词 → 下一步是arize-prompt-optimizationarize-trace排查失败 run检查失败实验 run 的单个 span trace → 用arize-tracearize-link生成 UI 深链从实验 run 生成可点击的 trace UI 链接 → 用arize-link这条链路揭示了实验在评测闭环中的位置数据集定义评测输入实验产出量化结果结果驱动提示词优化trace 与深链支撑人工排查与分享。故障排查速查表问题解决方案ax: command not found参见 references/ax-setup.md401 UnauthorizedAPI key 错误、过期或无权访问该 space。用 references/ax-profiles.md 修复 profileNo profile found未配置 profile。参见 references/ax-profiles.md 创建Experiment not found用ax experiments list --space SPACE核对实验名称Invalid runs file每条 run 必须含example_id和output字段example_id mismatch确保example_id与数据集中的 ID 一致可导出数据集核对No runs found导出为空——用ax experiments get确认实验确有 runsDataset not found关联数据集可能已被删除用ax datasets list检查排查参考文档要点两个参考文档均约定仅在命令失败时才查阅不做主动检查ax-setup.md若ax已安装非command not found先运行ax --version版本必须≥ 0.14.0许多错误源于安装过旧。command not found时按平台安装macOS/Linux 优先uv tool install arize-ax-cli备选pipx install arize-ax-cli、pip install arize-ax-cliWindows 用pip install arize-ax-cli过旧版本用uv tool install --force --reinstall arize-ax-cli或pipx upgrade、pip install --upgrade升级。SSL/证书错误可设置SSL_CERT_FILE指向系统证书或 certifi 路径。ax-profiles.md先ax profiles show检查状态修复用ax profiles update --api-key $ARIZE_API_KEY --region us-east-1b仅修改指定字段其余保留新建用ax profiles create work --api-key $ARIZE_API_KEY --region us-east-1b使用命名 profile 时给命令加-p NAME。绝不以明文 flag 传 API key一律通过$ARIZE_API_KEY环境变量引用且绝不让用户把 key 粘贴进聊天、绝不记录/回显 key 值。space 没有 profile flag保存为环境变量macOS/Linux 在~/.zshrc或~/.bashrc中export ARIZE_SPACEmy-workspaceWindows PowerShell 用[System.Environment]::SetEnvironmentVariable(ARIZE_SPACE, my-workspace, User)。会话结束时保存凭据若本次会话中用户手动提供了任何凭据且这些值并非来自已保存的 profile 或环境变量在会话结束时提供保存选项跳过场景key 已来自现有 profile/ARIZE_API_KEY、space 已通过ARIZE_SPACE设置、用户仅用了 base64 project ID。征得同意后API key 用ax profiles create --api-key $ARIZE_API_KEY或ax profiles update --api-key $ARIZE_API_KEYkey 必须先导出为环境变量space 按上文持久化为环境变量。小结arize-experiment技能把「对 LLM 模型/提示词做受控评测」沉淀为一套可复现的命令工作流ax experiments list/get管理实验元数据export双通道REST 500 条上限 / Flight 批量保证大规模实验的完整下载create以 CSV/JSON/JSONL/Parquet 或 stdin 摄入 runsRun Schema 用example_id output evaluations metadata统一数据模型。结合六步实战流程导出数据集 → 真实推理 → 校验 → 建实验 → 验证与 jq 驱动的对比/回归分析即可在 Arize 平台上完成模型选型与迭代评测配合arize-dataset、arize-prompt-optimization、arize-trace、arize-link等兄弟技能可打通从数据集构建到提示词优化的完整闭环。【免费下载链接】awesome-copilotCommunity-contributed instructions, agents, skills, and configurations to help you make the most of GitHub Copilot.项目地址: https://gitcode.com/GitHub_Trending/aw/awesome-copilot创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表