mcpField
N
nemo-evaluator-plugin

nemo-evaluator-plugin

github.com/promptingcompanyテスト・品質039 回インストール17 週間前に更新
リポジトリ

nemo-evaluator-plugin について

nemo-evaluator-pluginは、`nemo evaluator` CLIまたはPython SDKを使い、稼働中のNeMo Platformサーバーで評価を実行するスキルです。評価仕様でメトリクス、データセット、対象を設定し、評価の実行や永続ジョブの送信を行います。

主な機能

  1. 01利用可能なメトリクスとスキーマの確認
  2. 02仕様ファイルによる評価設定
  3. 03評価の実行
  4. 04永続評価ジョブの送信
  5. 05Python SDKでプラグイン状態を確認

活用シーン

  1. 01データセットのexact-match評価
  2. 02ベンチマークメトリクスでのテスト
  3. 03LLM-Judgeによる回答の採点
  4. 04ジョブの集計結果や行別結果の取得

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/promptingcompany/nv-skills --skill nemo-evaluator-plugin

インストール後、Claude Code で/nemo-evaluator-pluginを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

BENCHMARK.md
skill-card.md
skill.oms.sig
assets/examples/
plugin_sdk_examples.py
assets/specs/
exact_match_benchmark.json
exact_match_metric.json
llm_as_judge.json
evals/
evals.json
references/
api-auth.md
llm-judge.md
troubleshooting.md
scripts/
generate_example_specs.py

詳細

Evaluator Plugin

NeMo Platform サーバーが稼働している環境で評価タスクを行う場合は、このスキルを使用してください。プラグイン対応の CLI インターフェースは nemo evaluator です。従来の生成された nemo evaluation API コマンドグループは、新しいガイダンスの対象ではありません。

CLI インターフェース

前提条件
  • このファイル内のすべてのコマンドは、シェルの作業ディレクトリが Nvidia-NeMo/nemo-platform リポジトリのルートであることを前提としています
  • nemo CLI を実行する前に、Python 仮想環境を有効化してください:source .venv/bin/activate

CLI からプラグインのステータスを確認します:

nemo evaluator info

メトリックの種類

利用可能なメトリックを確認する

利用可能なメトリック名を表示するには、次を実行します:

nemo evaluator metric-types

特定のメトリックのスキーマを表示するには、上記の metric_types リストにあるメトリック名を渡します:

nemo evaluator metric-types <metric-name>

登録済みのメトリックのスキーマコントラクトをすべて確認します:

nemo evaluator evaluate explain

注:現在のプラグイン入力スキーマの正式な情報源として、nemo evaluator evaluate explain を使用してください。大きな JSON スキーマのレスポンスが返されるため、メトリック名と対応するスキーマのみが必要な場合は、nemo evaluator metric-types を強く推奨します。

評価仕様

評価仕様は、評価を実行するための入力として CLI に渡すペイロードです。

概要として、仕様には次の内容を記述します:

  • metrics:バンドルされた Evaluator SDK のメトリック設定
  • dataset:評価対象のインライン行、またはデータセットを含むプラットフォームの FilesetRef
  • params:任意の Evaluator SDK 実行パラメーター
  • target:オンライン評価の対象となる任意のモデルまたはエージェント

LLM 判定仕様の例については、assets/specs/llm_as_judge.json を参照してください。

メトリックバンドルのペイロード

リポジトリに含まれる仕様の例では、バンドルされた SDK メトリックを使用しています。metrics[*].payload の下にあるフィールドは、bundle_metric(metric, CloudpickleMetricBundlePackager()) によって生成されます。

たとえば、ExactMatchMetric などの事前定義された SDK メトリックを設定し、バンドルされたメトリック JSON に変換するパターンを確認するには、generate_example_specs.py の build_metric_bundle_example() を調べて、次を実行します:

uv run --frozen python skills/nemo-evaluator-plugin/scripts/generate_example_specs.py

評価を実行する

ファイル仕様の参照を使用して実行する

nemo evaluator evaluate run コマンドを使用すると、結果はローカルの一時ディレクトリに保存され、リンクが stdout に出力されます。 メトリックバンドルにはシリアライズされたペイロードが含まれるため、インラインのシェル JSON よりも --spec-file 名前付き引数を使用してください。 さまざまな仕様の例は、assets/specs ディレクトリにあります。

exact-match メトリックを使用して評価する

仕様の例については、assets/specs/exact_match_metric.json を参照してください。

nemo evaluator evaluate run --spec-file skills/nemo-evaluator-plugin/assets/specs/exact_match_metric.json
ベンチマークメトリックセットを使用して評価する
nemo evaluator evaluate run --spec-file skills/nemo-evaluator-plugin/assets/specs/exact_match_benchmark.json
LLM-Judge メトリックを使用して評価する

LLM を使用して応答を採点します。仕様の例については、assets/specs/llm_as_judge.json を参照してください。

nemo evaluator evaluate run --spec-file skills/nemo-evaluator-plugin/assets/specs/llm_as_judge.json
永続ジョブとして評価を実行する

nemo evaluator evaluate submit コマンドを使用して、永続的な評価ジョブを作成します。このコマンドのレスポンスでは、評価結果の代わりにジョブハンドラーオブジェクトが返されます。

nemo evaluator evaluate submit \
  --spec-file skills/nemo-evaluator-plugin/assets/specs/exact_match_metric.json

submit のレスポンスには、生成されたジョブの name フィールドが含まれます。例:nemo-evaluator-zlhn1ecd。ジョブが完了するまで待ってから、ジョブの結果を一覧表示してダウンロードしてください。

nemo jobs get-status <job-name>
nemo jobs get <job-name>
nemo jobs results list <job-name>
nemo jobs results download aggregate-scores --job <job-name> --output-file aggregate-scores.json
nemo jobs results download row-scores --job <job-name> --output-file row-scores.jsonl

Python SDK インターフェース

Evaluator Python SDK クライアントは、NeMoPlatform インスタンスの evaluator 変数として公開されています:

from nemo_platform import NeMoPlatform

platform_client = NeMoPlatform(base_url="http://localhost:8080")
status = platform_client.evaluator.plugin_status()

プラグイン SDK インターフェースの使用例については、plugin_sdk_examples.py を参照してください。

セキュリティ

stdout にシークレットを出力しないでください。ログとして収集される可能性があります。

追加リソース

LLM 判定の設定に関する注意事項については、LLM Judge Notes を参照してください。

Evaluator API キー認証については、Evaluator API Auth を参照してください。

ローカル環境およびクラスターでのトラブルシューティングについては、Evaluation Troubleshooting を参照してください。

コメント