ワークショップセットアップ

LLMのデプロイ

20 minutes

このセクションでは、NVIDIA NIM Operatorを使用して、2つのLarge Language ModelsをOpenShiftクラスターにデプロイします。

Namespaceの作成

bash
oc create namespace nim-service

NGC APIキーを使用したSecretの追加

NVIDIA NGCからコンテナイメージをダウンロードするためのDockerレジストリSecretを追加します:

bash
oc create secret -n nim-service docker-registry ngc-secret \
    --docker-server=nvcr.io \
    --docker-username='$oauthtoken' \
    --docker-password=$NGC_API_KEY

モデルプーラーコンテナがNVIDIA NGCからモデルをダウンロードするために使用する汎用Secretを追加します:

bash
oc create secret -n nim-service generic ngc-api-secret \
    --from-literal=NGC_API_KEY=$NGC_API_KEY

LLMのデプロイ

以下のコマンドを実行して、NIMCacheとNIMServiceを作成します:

bash
oc apply -n nim-service -f nvidia-llm.yaml

Persistent Volumeが作成され、Persistent Volume Claimが正常にバインドされたことを確認します:

注意: これには数分かかる場合があります

bash
oc get pv,pvc -n nim-service

NIMCacheがReadyであることを確認します:

bash
oc get nimcache.apps.nvidia.com -n nim-service

NIMServiceがReadyであることを確認します:

bash
oc get nimservices.apps.nvidia.com -n nim-service

LLMのテスト

LLMが期待通りに動作していることを確認しましょう。

curlコマンドにアクセスできるPodを起動します:

bash
oc run --rm -it -n default curl --image=curlimages/curl:latest -- sh

次に、以下のコマンドを実行してLLMにプロンプトを送信します:

bash
curl -X "POST" \
 'http://meta-llama-3-2-1b-instruct.nim-service:8000/v1/chat/completions' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
        "model": "meta/llama-3.2-1b-instruct",
        "messages": [
        {
          "content":"What is the capital of Canada?",
          "role": "user"
        }],
        "top_p": 1,
        "n": 1,
        "max_tokens": 1024,
        "stream": false,
        "frequency_penalty": 0.0,
        "stop": ["STOP"]
      }'

Embeddingsモデルのデプロイ

また、クラスターにembeddingsモデル をデプロイします。これは、このワークショップの後半でRetrieval Augmented Generation (RAG)を実装するために使用されます。

以下のコマンドを実行して、embeddingsモデルをデプロイします:

bash
oc apply -n nim-service -f nvidia-embeddings.yaml

NIMServiceがReadyであることを確認します:

bash
oc get nimservices.apps.nvidia.com llama-32-nv-embedqa-1b-v2 -n nim-service

Embeddingsモデルのテスト

embeddingsモデルが期待通りに動作していることを確認しましょう。

curlコマンドにアクセスできるPodを起動します:

bash
oc run --rm -it -n default curl --image=curlimages/curl:latest -- sh

次に、以下のコマンドを実行してLLMにプロンプトを送信します:

bash
  curl -X POST http://llama-32-nv-embedqa-1b-v2.nim-service:8000/v1/embeddings \
  -H 'Accept: application/json' \
  -H "Content-Type: application/json" \
  -d '{
    "input": ["What is the capital of France?"],
    "model": "nvidia/llama-3.2-nv-embedqa-1b-v2",
    "input_type": "query",
    "encoding_format": "float",
    "truncate": "NONE"
  }'
Last Modified ·