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

C&S ENGINEER VOICE

SB C&S

NVIDIA NeMo Guardrailsの展開の流れ

AI
2025.12.09

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

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

環境準備

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

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

nemo_guardrails_deploy_01.png

Kubernetes Cluster

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

  • NeMo Guardrails
    • NeMo Guardrailsの本体
  • NIM Proxy
    • 複数LLMに対する統一のエンドポイント
  • NeMo Deployment Management
    • 外部LLMをNIM Proxyに登録
    • 新しいNIMの展開も可能
  • NIM Operator
    • Guardrailsのデプロイメントやエンドポイントの作成

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

作業用Linux

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

PostgreSQLサーバー

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

  • nemo-gr

LLMエンドポイント

LLMエンドポイントは、評価対象としたいLLMの推論サーバーのURLです。
本記事ではNVIDIA NIMでSwallow8B (tokyotech-llm/llama-3.1-swallow-8b-instruct) を事前に展開済みです。
NVIDIA NIMについては以下記事をご参照ください。

NVIDIA NIMを用いた推論サーバーの展開

展開の実行

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

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

kubectl create namespace nemo-gr

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

  • NGC_API_KEY
  • POSTGRES_PASS

NGCのAPIキーはNVIDIAのNGCのサイトから発行可能です
https://org.ngc.nvidia.com/setup/api-keys

また、利用するPostgreSQLのユーザーの認証情報も必要となります。権限としては対象のDBに対してのテーブルやインデックスの作成ができる状態であれば問題ないです。

コマンド例は以下です。

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

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

kubectl create secret -n nemo-gr docker-registry nvcrimagepullsecret \
--docker-server=nvcr.io \
--docker-username='$oauthtoken' \
--docker-password=$NGC_API_KEY
kubectl create secret -n nemo-gr generic nemo-ext-pg \
--from-literal=password=$POSTGRES_PASS

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

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-guardrails.yamlという名称でファイルを作成して進めます。
※PostgreSQLの情報やNeMo Guardrailsに絞って展開するといった情報を指定しています。
※PostgreSQLのIPアドレスやポート番号、ユーザー名は環境に合わせて記載します。

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

existingSecret: ngc-api
existingImagePullSecret: nvcrimagepullsecret

tags:
  platform: false
  guardrails: true

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

deployment-management:
  service:
  type: LoadBalancer

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

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

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

kubectl get pods -n nemo-gr

NAME                                                READY   STATUS 
guardrails-5cb7766769-cfs8g                         1/1     Running
guardrails-deployment-management-797878cf58-gm6fn   1/1     Running
guardrails-nim-operator-7df8c78f9f-4tvjm            1/1     Running
guardrails-nim-proxy-8b88d588b-jgzhp                1/1     Running

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

まとめ

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

NVIDIA NeMo Guardrailsの回答制御の実行

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

著者紹介

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

VMware vExpert