第8章 TrustyAI で Llama Stack を使用する


このセクションには、TrustyAI で Llama Stack を操作するためのチュートリアルが含まれています。チュートリアルでは、さまざまな Llama Stack コンポーネントとプロバイダーを使用して言語モデルを評価および操作する方法を説明します。

次のセクションでは、Llama Stack の操作方法について説明し、ユースケースを示します。

  • TrustyAI の lm-evaluation-harness で Llama Stack 外部評価プロバイダーを使用する
  • LM-Eval Llama Stack 外部評価プロバイダーでカスタム評価を実行する
  • Llama Stack で trustyai-fms Guardrails Orchestrator を使用する

include::upstream-modules/ using-llama-stack-external-evaluation-provider-with-lm-evaluation-harness-in-TrustyAI.adoc[leveloffset=+1]

include::upstream-modules/ running-custom-evaluations-with-LMEval-and-llama-stack.adoc[leveloffset=+1]

8.1. Llama Stack で Guardrails Orchestrator を使用する

trustyai_fms オーケストレーターサーバーは、Llama Stack の外部プロバイダーです。これを使用して、Llama Stack API 経由で Guardrails Orchestrator と互換性のある検出モデルを設定して使用できます。この Llama Stack 実装は、Guardrails Orchestrator とコミュニティーが開発した一連のディテクターを組み合わせて、強力なコンテンツフィルタリングと安全性の監視を提供します。

この例では、LlamaStack Operator を使用して Red Hat OpenShift AI namespace にディストリビューションをデプロイし、Llama Stack 安全ガードレールとして Guardrails Orchestrator と組み込みの Guardrails Regex Detector を使用する方法を示します。

前提条件

  • OpenShift クラスターのクラスター管理者権限を持っている。
  • OpenShift コマンドラインインターフェイス (CLI) をダウンロードしてインストールした。詳細は、OpenShift CLI のインストール を参照してください。
  • チャット生成またはテキスト分類、あるいはその両方を行う大規模言語モデル (LLM) が namespace にデプロイされている。
  • クラスター管理者が OpenShift に次の Operator をインストールした。

    • Red Hat OpenShift Service Mesh、バージョン 2.6.7-0 以降。
    • Red Hat OpenShift Serverless、バージョン 1.35.1 以降。
    • Red Hat Authorino Operator、バージョン 1.2.1 以降。

手順

  1. DataScienceCluster で、次の設定を使用して OpenShift AI 環境を設定します。spec.llamastack.managementState フィールドを Managed に手動で更新する必要があることに注意してください。

    spec:
      trustyai:
        managementState: Managed
      llamastack:
        managementState: Managed
      kserve:
        defaultDeploymentMode: RawDeployment
        managementState: Managed
        nim:
          managementState: Managed
        rawDeploymentServiceConfig: Headless
      serving:
        ingressGateway:
          certificate:
            type: OpenshiftDefaultIngress
        managementState: Removed
        name: knative-serving
      serviceMesh:
        managementState: Removed
    Copy to Clipboard Toggle word wrap
  2. OpenShift AI namespace にプロジェクトを作成します。

    PROJECT_NAME="lls-minimal-example"
    oc new-project $PROJECT_NAME
    Copy to Clipboard Toggle word wrap
  3. 正規表現ベースの PII 検出用のオーケストレーター設定を適用して、正規表現ディテクターを備えた Guardrails Orchestrator をデプロイします。

    cat <<EOF | oc apply -f -
    kind: ConfigMap
    apiVersion: v1
    metadata:
      name: fms-orchestr8-config-nlp
    data:
      config.yaml: |
        detectors:
          regex:
            type: text_contents
            service:
              hostname: "127.0.0.1"
              port: 8080
            chunker_id: whole_doc_chunker
            default_threshold: 0.5
    ---
    apiVersion: trustyai.opendatahub.io/v1alpha1
    kind: GuardrailsOrchestrator
    metadata:
      name: guardrails-orchestrator
    spec:
      orchestratorConfig: "fms-orchestr8-config-nlp"
      enableBuiltInDetectors: true
      enableGuardrailsGateway: false
      replicas: 1
    EOF
    Copy to Clipboard Toggle word wrap
  4. 同じ namespace に、Llama Stack ディストリビューションを作成します。

    apiVersion: llamastack.io/v1alpha1
    kind: LlamaStackDistribution
    metadata:
      name: llamastackdistribution-sample
      namespace: <PROJECT_NAMESPACE>
    spec:
      replicas: 1
      server:
        containerSpec:
          env:
            - name: VLLM_URL
              value: '${VLLM_URL}'
            - name: INFERENCE_MODEL
              value: '${INFERENCE_MODEL}'
            - name: MILVUS_DB_PATH
              value: '~/.llama/milvus.db'
            - name: VLLM_TLS_VERIFY
              value: 'false'
            - name: FMS_ORCHESTRATOR_URL
              value: '${FMS_ORCHESTRATOR_URL}'
          name: llama-stack
          port: 8321
        distribution:
          name: rh-dev
        storage:
          size: 20Gi
    Copy to Clipboard Toggle word wrap
注記

 — LlamaStackDistribution CR をデプロイすると、同じ namespace に新しい Pod が作成されます。この Pod は、ディストリビューション用の LlamaStack サーバーを実行します。— 

  1. Llama Stack サーバーが実行中になったら、/v1/shields エンドポイントを使用してシールドを動的に登録します。たとえば、正規表現パターンを使用して個人識別情報 (PII) を検出するシールドを登録します。
  2. ローカルでアクセスするために、ポート転送を開きます。

    oc -n $PROJECT_NAME port-forward svc/llama-stack 8321:8321
    Copy to Clipboard Toggle word wrap
  3. /v1/shields エンドポイントを使用して、シールドを動的に登録します。たとえば、正規表現パターンを使用して個人識別情報 (PII) を検出するシールドを登録します。

    curl -X POST http://localhost:8321/v1/shields \
      -H 'Content-Type: application/json' \
      -d '{
        "shield_id": "regex_detector",
        "provider_shield_id": "regex_detector",
        "provider_id": "trustyai_fms",
        "params": {
          "type": "content",
          "confidence_threshold": 0.5,
          "message_types": ["system", "user"],
          "detectors": {
            "regex": {
              "detector_params": {
                "regex": ["email", "us-social-security-number", "credit-card"]
              }
            }
          }
        }
      }'
    Copy to Clipboard Toggle word wrap
  4. シールドが登録されたか検証します。

    curl -s http://localhost:8321/v1/shields | jq '.'
    Copy to Clipboard Toggle word wrap
  5. 次の出力は、シールドが正常に登録されたことを示します。

    {
      "data": [
        {
          "identifier": "regex_detector",
          "provider_resource_id": "regex_detector",
          "provider_id": "trustyai_fms",
          "type": "shield",
          "params": {
            "type": "content",
            "confidence_threshold": 0.5,
            "message_types": [
              "system",
              "user"
            ],
            "detectors": {
              "regex": {
                "detector_params": {
                  "regex": [
                    "email",
                    "us-social-security-number",
                    "credit-card"
                  ]
                }
              }
            }
          }
        }
      ]
    }
    Copy to Clipboard Toggle word wrap
  6. シールドが登録されたら、PII が含まれるメッセージを /v1/safety/run-shield エンドポイントに送信して、シールドが機能していることを確認します。

    1. メール検出の例:

      curl -X POST http://localhost:8321/v1/safety/run-shield \
      -H "Content-Type: application/json" \
      -d '{
        "shield_id": "regex_detector",
        "messages": [
          {
            "content": "My email is test@example.com",
            "role": "user"
          }
        ]
      }' | jq '.'
      Copy to Clipboard Toggle word wrap

      メールが検出されたことを示すレスポンスが返されます。

      {
        "violation": {
          "violation_level": "error",
          "user_message": "Content violation detected by shield regex_detector (confidence: 1.00, 1/1 processed messages violated)",
          "metadata": {
            "status": "violation",
            "shield_id": "regex_detector",
            "confidence_threshold": 0.5,
            "summary": {
              "total_messages": 1,
              "processed_messages": 1,
              "skipped_messages": 0,
              "messages_with_violations": 1,
              "messages_passed": 0,
              "message_fail_rate": 1.0,
              "message_pass_rate": 0.0,
              "total_detections": 1,
              "detector_breakdown": {
                "active_detectors": 1,
                "total_checks_performed": 1,
                "total_violations_found": 1,
                "violations_per_message": 1.0
              }
            },
            "results": [
              {
                "message_index": 0,
                "text": "My email is test@example.com",
                "status": "violation",
                "score": 1.0,
                "detection_type": "pii",
                "individual_detector_results": [
                  {
                    "detector_id": "regex",
                    "status": "violation",
                    "score": 1.0,
                    "detection_type": "pii"
                  }
                ]
              }
            ]
          }
        }
      }
      Copy to Clipboard Toggle word wrap
    2. 社会保障番号 (SSN) 検出の例:

      curl -X POST http://localhost:8321/v1/safety/run-shield \
      -H "Content-Type: application/json" \
      -d '{
          "shield_id": "regex_detector",
          "messages": [
            {
              "content": "My SSN is 123-45-6789",
              "role": "user"
            }
          ]
      }' | jq '.'
      Copy to Clipboard Toggle word wrap

      SSN が検出されたことを示すレスポンスが返されます。

      {
        "violation": {
          "violation_level": "error",
          "user_message": "Content violation detected by shield regex_detector (confidence: 1.00, 1/1 processed messages violated)",
          "metadata": {
            "status": "violation",
            "shield_id": "regex_detector",
            "confidence_threshold": 0.5,
            "summary": {
              "total_messages": 1,
              "processed_messages": 1,
              "skipped_messages": 0,
              "messages_with_violations": 1,
              "messages_passed": 0,
              "message_fail_rate": 1.0,
              "message_pass_rate": 0.0,
              "total_detections": 1,
              "detector_breakdown": {
                "active_detectors": 1,
                "total_checks_performed": 1,
                "total_violations_found": 1,
                "violations_per_message": 1.0
              }
            },
            "results": [
              {
                "message_index": 0,
                "text": "My SSN is 123-45-6789",
                "status": "violation",
                "score": 1.0,
                "detection_type": "pii",
                "individual_detector_results": [
                  {
                    "detector_id": "regex",
                    "status": "violation",
                    "score": 1.0,
                    "detection_type": "pii"
                  }
                ]
              }
            ]
          }
        }
      }
      Copy to Clipboard Toggle word wrap
    3. クレジットカード検出の例:

      curl -X POST http://localhost:8321/v1/safety/run-shield \
      -H "Content-Type: application/json" \
      -d '{
          "shield_id": "regex_detector",
          "messages": [
            {
              "content": "My credit card number is 4111-1111-1111-1111",
              "role": "user"
            }
          ]
      }' | jq '.'
      Copy to Clipboard Toggle word wrap

      クレジットカード番号が検出されたことを示すレスポンスが返されます。

      {
        "violation": {
          "violation_level": "error",
          "user_message": "Content violation detected by shield regex_detector (confidence: 1.00, 1/1 processed messages violated)",
          "metadata": {
            "status": "violation",
            "shield_id": "regex_detector",
            "confidence_threshold": 0.5,
            "summary": {
              "total_messages": 1,
              "processed_messages": 1,
              "skipped_messages": 0,
              "messages_with_violations": 1,
              "messages_passed": 0,
              "message_fail_rate": 1.0,
              "message_pass_rate": 0.0,
              "total_detections": 1,
              "detector_breakdown": {
                "active_detectors": 1,
                "total_checks_performed": 1,
                "total_violations_found": 1,
                "violations_per_message": 1.0
              }
            },
            "results": [
              {
                "message_index": 0,
                "text": "My credit card number is 4111-1111-1111-1111",
                "status": "violation",
                "score": 1.0,
                "detection_type": "pii",
                "individual_detector_results": [
                  {
                    "detector_id": "regex",
                    "status": "violation",
                    "score": 1.0,
                    "detection_type": "pii"
                  }
                ]
              }
            ]
          }
        }
      }
      Copy to Clipboard Toggle word wrap
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る