SB C&Sの最新技術情報 発信サイト

C&S ENGINEER VOICE

SB C&S

NVIDIA NeMo Evaluatorの展開の流れ

AI
2025.11.06

こんにちは。SB C&S の村上です。

この記事ではNVIDIA社が提供しているNeMo Evaluatorの展開の流れを紹介します。
以下NeMo Evaluatorの紹介の記事をお読みでない方は、ぜひ先にそちらを閲覧ください。
NVIDIA NeMo Evaluatorの紹介

環境準備

本記事で紹介する展開方法では、環境の前提として以下4つの準備が必要です。

  • Kubernetes Cluster (GPU無し)
  • 作業用Linux (kubectlとhelmをインストール済み)
  • Postgre SQL サーバー
  • 評価対象とするLLMエンドポイント

nemo_eval_deploy_01.png

Kubernetes Cluster

まずKubernetes Clusterは、NeMo Evaluatorのコンポーネント群の展開先となります。
NeMo EvaluatorはNeMo Microservicesと呼ばれるAI向けマイクロサービス群の一部として提供されています。
NeMo Microservicesは利用したい機能に応じて必要なマイクロサービスが自動で展開されるようになっており、NeMo Evaluatorを利用する場合は以下3つが自動で展開されます。

  • NeMo Evaluator
    • NeMo Evaluatorの本体
  • NeMo Data Store
    • 評価用のデータセットや評価の結果などの保存を実施
  • NeMo Entity Store
    • 登録済みの評価対象やデータセットなどのメタデータ管理

Kubernetes Clusterで必要なリソース要件は以下メーカードキュメントをご確認ください。
https://docs.nvidia.com/nemo/microservices/latest/requirements.html#nemo-evaluator

作業用Linux

作業用LinuxはNeMo Evaluator展開の操作用です。必要な最低限の準備としては、kubectlで前述のKubernetes Clusterへ接続できることと、Helmがインストール済みで実行可能なことです。
※NeMo MicroservicesはEvaluatorに限らずHelmと呼ばれるKubernetesのパッケージマネージャーを用いてインストールします

PostgreSQLサーバー

PostgreSQLサーバーは前述のNeMo Evaluatorの各コンポーネントのデータの保存先として利用されます。名称は任意ですが最低限3つDBを作成しておく必要があります。
本記事では以下3つのDBを作成済みとして進めます。

  • nemo-ev
  • nemo-data
  • nemo-entity

LLMエンドポイント

LLMエンドポイントは、評価対象としたいLLMの推論サーバーのURLです。
本記事ではNVIDIA NIMでGPT OSS 20BとGPT OSS 120Bの2つを事前に展開済みです。
NVIDIA NIMについては以下記事をご参照ください。
NVIDIA NIMを用いた推論サーバーの展開

展開の実行

それでは展開を進めていきます。

まずKubernetes上に展開先の名前空間を作成します。
本記事ではnemo-evという名称で作成します。

kubectl create namespace nemo-ev

続いて、必要な認証情報として以下2つの環境変数を設定します。

  • NGC_API_KEY
  • POSTGRES_PASS

NGCのAPIキーはNVIDIAのNGCのサイトから発行可能です
https://org.ngc.nvidia.com/setup/api-keys
また、利用するPostgreSQLのユーザーの認証情報も必要となります。権限としては対象の3つのDBに対してのテーブルやインデックスの作成ができる状態であれば問題ないです。

export NGC_API_KEY={NGCのAPIキー}
export POSTGRES_PASS={PostgreSQLのユーザーパスワード}

続いて先ほど用意した環境変数を用いて、以下コマンドでKubernetes上のコンテナが認証情報を扱えるようにSecretの作成を行います。

# NGC API KeyのSecret
kubectl create secret -n nemo-ev docker-registry nvcrimagepullsecret \
--docker-server=nvcr.io \
--docker-username='$oauthtoken' \
--docker-password=$NGC_API_KEY
# PostfreSQLのSecret
kubectl create secret -n nemo-ev generic nemo-ext-pg \
--from-literal=password=$POSTGRES_PASS

続いて、HelmのリポジトリにNeMo Microservicesの登録を行います。ここで用いられる認証情報はNGCのものとなるため、パスワードはNGCのAPIキーを環境変数から利用します。
※usernameは、$oauthtokenで固定となります

helm repo add nmp https://helm.ngc.nvidia.com/nvidia/nemo-microservices \
--username='$oauthtoken' \
--password=$NGC_API_KEY
helm repo update

続いて、インストール用のvalueファイルを作成します。
Helmではvalueというyaml形式のファイル内のパラメータに準拠して各コンポーネントの設定や展開が行われます。固有の設定を入れ込む場合は、helm installコマンドの「-f」オプションでこのファイルを指定する必要があります。

本記事では以下のような構成で、values-evaluator.yamlという名称でファイルを作成して進めます。
※PostgreSQLの情報やNeMo Evaluatorに絞って展開するといった情報を指定しています。
※PostgreSQLのIPアドレスやポート番号、ユーザー名は環境に合わせて記載

なお、注意点としてEvaluatorには外部からのアクセスが必要となります。本記事上ではServiceのタイプをLoadBalancerにしていますがIngressなどをお使いの場合はLoadBalancerの記載は不要となります。

existingSecret: ngc-api
existingImagePullSecret: nvcrimagepullsecret

tags:
  platform: false
  evaluator: true

evaluator:
  postgresql:
    enabled: false
  externalDatabase:
    host: "{PostgreSQLのIPアドレス}"
    port: "{PostgreSQLのポート番号}"
    user: "{PostgreSQLのユーザー名}"
    database: "nemo-ev"
    sslMode: "disable"
    existingSecret: "nemo-ext-pg"
    existingSecretPasswordKey: "password"
  service:
    type: LoadBalancer

data-store:
  postgresql:
    enabled: false
  externalDatabase:
    host: "{PostgreSQLのIPアドレス}"
    port: "{PostgreSQLのポート番号}"
    user: "{PostgreSQLのユーザー名}"
    database: "nemo-data"
    sslMode: "disable"
    existingSecret: "nemo-ext-pg"
    existingSecretPasswordKey: "password"

entity-store:
  postgresql:
   enabled: false
  externalDatabase:
    host: "{PostgreSQLのIPアドレス}"
    port: "{PostgreSQLのポート番号}"
    user: "{PostgreSQLのユーザー名}"
    database: "nemo-entity"
    sslMode: "disable"
    existingSecret: "nemo-ext-pg"
  existingSecretPasswordKey: "password"

これにて展開の準備は完了です。 最後に以下コマンドを実行して展開を実施します。 ※versionのパラメータは利用したいNeMo Microservicesのバージョンとなり、本手順では25.10.0を利用しています 

helm install evaluator nmp/nemo-microservices-helm-chart \
  --version 25.10.0 \
  -f values-evaluator.yaml \
  -n nemo-ev

実行が完了したら、以下コマンドで無事にPodが展開されていることが確認できれば完了です。

kubectl get pods -n nemo-ev

NAME                                                READY   STATUS 
evaluator-7f56b59bc7-nlgsw                          2/2     Running
evaluator-core-api-7df789b548-gd59c                 1/1     Running
evaluator-core-controller-79579c596f-rksnx          1/1     Running
evaluator-core-jobs-logcollector-75c96b5cd9-x29lr   1/1     Running
evaluator-data-store-69964469c6-mqmm2               1/1     Running
evaluator-entity-store-6b7b48cf8f-wncch             1/1     Running
evaluator-jobsdb-0                                  1/1     Running

以上がNeMo Evaluatorの展開の流れとなります。

まとめ

本記事ではNeMo Evaluatorの展開の流れを紹介しました。 必要な準備物が多く、Kubernetesが出てくる関係上、見慣れないコマンドも多々あったかと思います。ただし事前の環境準備さえしてあれば手順としては少なく、スムーズに展開できます。 次回は展開した後のお話として、NeMo Evaluatorを用いてサンプルでベンチマークを試しに実行する記事を紹介します。 

他のおすすめ記事はこちら

著者紹介

SB C&S株式会社
ICT事業本部 技術本部 技術統括部
第2技術部 1課
村上 正弥 - Seiya.Murakami -

VMware vExpert