Skill Expérience Arize
Concepts
- Experiment = une exécution d'évaluation nommée contre une version spécifique de dataset, contenant un run par exemple
- Experiment Run = le résultat du traitement d'un exemple du dataset -- inclut la sortie du modèle, les évaluations optionnelles et les métadonnées optionnelles
- Dataset = une collection versionnée d'exemples ; chaque experiment est lié à un dataset et à une version spécifique du dataset
- Evaluation = une métrique nommée attachée à un run (par ex.
correctness,relevance), avec étiquette optionnelle, score et explication
Le flux typique : exporter un dataset → traiter chaque exemple → collecter les sorties et évaluations → créer un experiment avec les runs.
Prérequis
Procédez directement à la tâche — exécutez la commande ax dont vous avez besoin. NE vérifiez PAS les versions, variables d'env, ou profils en amont.
Si une commande ax échoue, dépannez en fonction de l'erreur :
command not foundou erreur de version → voir references/ax-setup.md401 Unauthorized/ clé API manquante → exécutezax profiles showpour inspecter le profil actuel. Si le profil est absent ou la clé API est incorrecte : vérifiez.envpourARIZE_API_KEYet utilisez-la pour créer/mettre à jour le profil via references/ax-profiles.md. Si.envn'a pas non plus de clé, demandez à l'utilisateur sa clé API Arize (https://app.arize.com/admin > API Keys)- Space ID inconnu → vérifiez
.envpourARIZE_SPACE_ID, ou exécutezax spaces list -o json, ou demandez à l'utilisateur - Project flou → vérifiez
.envpourARIZE_DEFAULT_PROJECT, ou demandez, ou exécutezax projects list -o json --limit 100et présentez comme options sélectionnables
Lister les Experiments : ax experiments list
Parcourez les experiments, optionnellement filtrés par dataset. La sortie va vers stdout.
ax experiments list
ax experiments list --dataset-id DATASET_ID --limit 20
ax experiments list --cursor CURSOR_TOKEN
ax experiments list -o json
Flags
| Flag | Type | Défaut | Description |
|---|---|---|---|
--dataset-id |
string | none | Filtrer par dataset |
--limit, -l |
int | 15 | Max résultats (1-100) |
--cursor |
string | none | Cursor de pagination depuis la réponse précédente |
-o, --output |
string | table | Format de sortie : table, json, csv, parquet, ou chemin de fichier |
-p, --profile |
string | default | Profil de configuration |
Obtenir un Experiment : ax experiments get
Recherche rapide de métadonnées -- retourne le nom de l'experiment, le dataset/version lié, et les horodatages.
ax experiments get EXPERIMENT_ID
ax experiments get EXPERIMENT_ID -o json
Flags
| Flag | Type | Défaut | Description |
|---|---|---|---|
EXPERIMENT_ID |
string | required | Argument positionnel |
-o, --output |
string | table | Format de sortie |
-p, --profile |
string | default | Profil de configuration |
Champs de réponse
| Champ | Type | Description |
|---|---|---|
id |
string | ID de l'experiment |
name |
string | Nom de l'experiment |
dataset_id |
string | ID du dataset lié |
dataset_version_id |
string | Version spécifique du dataset utilisée |
experiment_traces_project_id |
string | Project où sont stockées les traces de l'experiment |
created_at |
datetime | Quand l'experiment a été créé |
updated_at |
datetime | Dernière heure de modification |
Exporter un Experiment : ax experiments export
Téléchargez tous les runs dans un fichier. Par défaut utilise l'API REST ; passez --all pour utiliser Arrow Flight pour le transfert en masse.
ax experiments export EXPERIMENT_ID
# -> experiment_abc123_20260305_141500/runs.json
ax experiments export EXPERIMENT_ID --all
ax experiments export EXPERIMENT_ID --output-dir ./results
ax experiments export EXPERIMENT_ID --stdout
ax experiments export EXPERIMENT_ID --stdout | jq '.[0]'
Flags
| Flag | Type | Défaut | Description |
|---|---|---|---|
EXPERIMENT_ID |
string | required | Argument positionnel |
--all |
bool | false | Utiliser Arrow Flight pour l'export en masse (voir ci-dessous) |
--output-dir |
string | . |
Répertoire de sortie |
--stdout |
bool | false | Imprimer JSON sur stdout au lieu d'un fichier |
-p, --profile |
string | default | Profil de configuration |
REST vs Flight (--all)
- REST (défaut) : Friction faible -- pas de dépendance Arrow/Flight, ports HTTPS standards, fonctionne à travers n'importe quel proxy d'entreprise ou pare-feu. Limité à 500 runs par page.
- Flight (
--all) : Requis pour les experiments avec plus de 500 runs. Utilise gRPC+TLS sur un hôte/port séparé (flight.arize.com:443) que certains réseaux d'entreprise peuvent bloquer.
Règle d'escalade auto-agent : Si un export REST retourne exactement 500 runs, le résultat est probablement tronqué. Réexécutez avec --all pour obtenir le dataset complet.
La sortie est un tableau JSON d'objets run :
[
{
"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 }
}
]
Créer un Experiment : ax experiments create
Créez un nouvel experiment avec des runs à partir d'un fichier de données.
ax experiments create --name "gpt-4o-baseline" --dataset-id DATASET_ID --file runs.json
ax experiments create --name "claude-test" --dataset-id DATASET_ID --file runs.csv
Flags
| Flag | Type | Requis | Description |
|---|---|---|---|
--name, -n |
string | yes | Nom de l'experiment |
--dataset-id |
string | yes | Dataset contre lequel exécuter l'experiment |
--file, -f |
path | yes | Fichier de données avec les runs : CSV, JSON, JSONL, ou Parquet |
-o, --output |
string | no | Format de sortie |
-p, --profile |
string | no | Profil de configuration |
Passer des données via stdin
Utilisez --file - pour piloter les données directement -- pas de fichier temporaire nécessaire :
echo '[{"example_id": "ex_001", "output": "Paris"}]' | ax experiments create --name "my-experiment" --dataset-id DATASET_ID --file -
# Ou avec un heredoc
ax experiments create --name "my-experiment" --dataset-id DATASET_ID --file - << 'EOF'
[{"example_id": "ex_001", "output": "Paris"}]
EOF
Colonnes requises dans le fichier runs
| Colonne | Type | Requis | Description |
|---|---|---|---|
example_id |
string | yes | ID de l'exemple du dataset auquel ce run correspond |
output |
string | yes | La sortie du modèle/système pour cet exemple |
Les colonnes supplémentaires sont transmises comme additionalProperties sur le run.
Supprimer un Experiment : ax experiments delete
ax experiments delete EXPERIMENT_ID
ax experiments delete EXPERIMENT_ID --force # ignorer l'invite de confirmation
Flags
| Flag | Type | Défaut | Description |
|---|---|---|---|
EXPERIMENT_ID |
string | required | Argument positionnel |
--force, -f |
bool | false | Ignorer l'invite de confirmation |
-p, --profile |
string | default | Profil de configuration |
Schéma Experiment Run
Chaque run correspond à un exemple du dataset :
{
"example_id": "required -- liens vers l'exemple du dataset",
"output": "required -- la sortie du modèle/système pour cet exemple",
"evaluations": {
"metric_name": {
"label": "optional string label (e.g., 'correct', 'incorrect')",
"score": "optional numeric score (e.g., 0.95)",
"explanation": "optional freeform text"
}
},
"metadata": {
"model": "gpt-4o",
"temperature": 0.7,
"latency_ms": 1234
}
}
Champs d'évaluation
| Champ | Type | Requis | Description |
|---|---|---|---|
label |
string | no | Classification catégorique (par ex. correct, incorrect, partial) |
score |
number | no | Score de qualité numérique (par ex. 0.0 - 1.0) |
explanation |
string | no | Raisonnement en texte libre pour l'évaluation |
Au moins l'un de label, score, ou explanation devrait être présent par évaluation.
Workflows
Exécuter un experiment contre un dataset
- Trouvez ou créez un dataset :
ax datasets list ax datasets export DATASET_ID --stdout | jq 'length' - Exportez les exemples du dataset :
ax datasets export DATASET_ID - Traitez chaque exemple à travers votre système, en collectant les sorties et évaluations
- Construisez un fichier runs (tableau JSON) avec
example_id,output, etevaluationsoptionnelles :[ {"example_id": "ex_001", "output": "4", "evaluations": {"correctness": {"label": "correct", "score": 1.0}}}, {"example_id": "ex_002", "output": "Paris", "evaluations": {"correctness": {"label": "correct", "score": 1.0}}} ] - Créez l'experiment :
ax experiments create --name "gpt-4o-baseline" --dataset-id DATASET_ID --file runs.json - Vérifiez :
ax experiments get EXPERIMENT_ID
Comparer deux experiments
-
Exportez les deux experiments :
ax experiments export EXPERIMENT_ID_A --stdout > a.json ax experiments export EXPERIMENT_ID_B --stdout > b.json -
Comparez les scores d'évaluation par
example_id:# Score correctness moyen pour l'experiment A jq '[.[] | .evaluations.correctness.score] | add / length' a.json # Idem pour l'experiment B jq '[.[] | .evaluations.correctness.score] | add / length' b.json -
Trouvez les exemples où les résultats diffèrent :
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.json -
Distribution des scores par évaluateur (comptages pass/fail/partial) :
# Comptage par label pour l'experiment A jq '[.[] | .evaluations.correctness.label] | group_by(.) | map({label: .[0], count: length})' a.json -
Trouvez les régressions (exemples qui réussissaient en A mais échouent en 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
Note sur la signification statistique : Les comparaisons de scores sont les plus fiables avec ≥ 30 exemples par évaluateur. Avec moins d'exemples, traitez le delta comme directionnel uniquement -- une différence de 5% sur n=10 peut être du bruit. Rapportez la taille de l'échantillon aux côtés des scores : jq 'length' a.json.
Télécharger les résultats de l'experiment pour l'analyse
ax experiments list --dataset-id DATASET_ID-- trouvez les experimentsax experiments export EXPERIMENT_ID-- téléchargez dans un fichier- Analysez :
jq '.[] | {example_id, score: .evaluations.correctness.score}' experiment_*/runs.json
Piloter l'export vers d'autres outils
# Compter les runs
ax experiments export EXPERIMENT_ID --stdout | jq 'length'
# Extraire tous les outputs
ax experiments export EXPERIMENT_ID --stdout | jq '.[].output'
# Obtenir les runs avec des scores faibles
ax experiments export EXPERIMENT_ID --stdout | jq '[.[] | select(.evaluations.correctness.score < 0.5)]'
# Convertir en CSV
ax experiments export EXPERIMENT_ID --stdout | jq -r '.[] | [.example_id, .output, .evaluations.correctness.score] | @csv'
Skills Associées
- arize-dataset : Créez ou exportez le dataset contre lequel cet experiment s'exécute → utilisez
arize-dataseten premier - arize-prompt-optimization : Utilisez les résultats de l'experiment pour améliorer les prompts → l'étape suivante est
arize-prompt-optimization - arize-trace : Inspectez les traces de spans individuelles pour les runs d'experiment échoués → utilisez
arize-trace - arize-link : Générez des liens UI cliquables vers les traces depuis les runs d'experiment → utilisez
arize-link
Dépannage
| Problème | Solution |
|---|---|
ax: command not found |
Voir references/ax-setup.md |
401 Unauthorized |
La clé API est incorrecte, expirée, ou n'a pas accès à ce space. Corrigez le profil en utilisant references/ax-profiles.md. |
No profile found |
Aucun profil n'est configuré. Voir references/ax-profiles.md pour en créer un. |
Experiment not found |
Vérifiez l'ID de l'experiment avec ax experiments list |
Invalid runs file |
Chaque run doit avoir les champs example_id et output |
example_id mismatch |
Assurez-vous que les valeurs example_id correspondent aux IDs du dataset (exportez le dataset pour vérifier) |
No runs found |
L'export a retourné du vide -- vérifiez que l'experiment a des runs via ax experiments get |
Dataset not found |
Le dataset lié a peut-être été supprimé ; vérifiez avec ax datasets list |
Enregistrer les Identifiants pour Utilisation Future
Voir references/ax-profiles.md § Save Credentials for Future Use.