第5章 モデルのサービング (提供) およびモデルとのチャット


Red Hat Enterprise Linux AI 上のさまざまなモデルと対話するには、モデルをサービングしてサーバー上でホストし、その後モデルとチャットする必要があります。

5.1. モデルのサービング (提供)

モデルと対話するには、サービング中にマシン内でモデルを有効にする必要があります。ilab model serve コマンドは、モデルとチャットできる vLLM サーバーを起動します。

前提条件

  • 起動可能なコンテナーイメージを使用して RHEL AI をインストールしている。
  • InstructLab を初期化している。
  • 希望の Granite LLM がインストールされている。
  • マシンの root ユーザーアクセス権がある。

手順

  1. モデルを指定しない場合は、次のコマンドを実行して、デフォルトのモデル granite-7b-redhat-lab を提供できます。

    $ ilab model serve
  2. 特定のモデルをサービングするには、次のコマンドを実行します。

    $ ilab model serve --model-path <model-path>

    コマンドの例

    $ ilab model serve --model-path ~/.cache/instructlab/models/granite-8b-code-instruct

    モデルが提供され、準備が整ったときの出力例

    INFO 2024-03-02 02:21:11,352 lab.py:201 Using model 'models/granite-8b-code-instruct' with -1 gpu-layers and 4096 max context size.
    Starting server process
    After application startup complete see http://127.0.0.1:8000/docs for API.
    Press CTRL+C to shut down the server.

5.1.1. オプション: ilab model serve をサービスとして実行する

ilab model serve コマンドが実行中のサービスとして実行されるように、systemd サービスを設定できます。systemd サービスは、バックグラウンドで ilab model serve コマンドを実行し、クラッシュまたは失敗した場合に再起動します。システムの起動時にサービスが起動するように設定できます。

前提条件

  • Red Hat Enterprise Linux AI イメージがベアメタルにインストールされている。
  • InstructLab を初期化している。
  • 使用する Granite LLM をダウンロードしている。
  • マシンの root ユーザーアクセス権がある。

手順

  1. 次のコマンドを実行して、systemd ユーザーサービスのディレクトリーを作成します。

    $ mkdir -p $HOME/.config/systemd/user
  2. 次の例の設定を使用して、systemd サービスファイルを作成します。

    $ cat << EOF > $HOME/.config/systemd/user/ilab-serve.service
    [Unit]
    Description=ilab model serve service
    
    [Install]
    WantedBy=multi-user.target default.target 
    1
    
    
    [Service]
    ExecStart=ilab model serve --model-family granite
    Restart=always
    EOF
    1
    起動時にデフォルトで開始することを指定します。
  3. 次のコマンドを実行して、systemd マネージャー設定を再ロードします。

    $ systemctl --user daemon-reload
  4. 次のコマンドを実行して、ilab model serve systemd サービスを開始します。

    $ systemctl --user start ilab-serve.service
  5. 以下のコマンドを実行すると、サービスが実行中であることを確認できます。

    $ systemctl --user status ilab-serve.service
  6. 以下のコマンドを実行すると、サービスログを確認できます。

    $ journalctl --user-unit ilab-serve.service
  7. システムの起動時にサービスを起動できるようにするには、以下のコマンドを実行します。

    $ sudo loginctl enable-linger
  8. オプション: systemd サービスを維持するために実行できるオプションのコマンドがいくつかあります。

    • 次のコマンドを実行すると、ilab-serve システムサービスを停止できます。

      $ systemctl --user stop ilab-serve.service
    • $HOME/.config/systemd/user/ilab-serve.service ファイルから "WantedBy=multi-user.target default.target" を削除して、起動時にサービスが開始しないようにすることができます。

5.1.2. オプション: セキュアなエンドポイントからモデルへのアクセスを許可する

systemd サービスを作成し、セキュアなエンドポイントを公開する nginx リバースプロキシーを設定することで、推論エンドポイントを提供し、他のユーザーがセキュアな接続で Red Hat Enterprise Linux AI で提供されるモデルと対話できるように指定できます。これにより、セキュアなエンドポイントを他のユーザーと共有し、ネットワーク経由でモデルとチャットできるようになります。

次の手順では自己署名証明書を使用しますが、信頼できる認証局 (CA) が発行した証明書を使用することを推奨します。

注記

次の手順は、ベアメタルプラットフォームでのみサポートされます。

前提条件

  • Red Hat Enterprise Linux AI イメージがベアメタルにインストールされている。
  • InstructLab を初期化している。
  • 使用する Granite LLM をダウンロードしている。
  • マシンの root ユーザーアクセス権がある。

手順

  1. 次のコマンドを実行して、証明書ファイルと鍵のディレクトリーを作成します。

    $ mkdir -p `pwd`/nginx/ssl/
  2. 次のコマンドを実行して、適切な設定を指定して OpenSSL 設定ファイルを作成します。

    $ cat > openssl.cnf <<EOL
    [ req ]
    default_bits = 2048
    distinguished_name = <req-distinguished-name> 
    1
    
    x509_extensions = v3_req
    prompt = no
    
    [ req_distinguished_name ]
    C  = US
    ST = California
    L  = San Francisco
    O  = My Company
    OU = My Division
    CN = rhelai.redhat.com
    
    [ v3_req ]
    subjectAltName = <alt-names> 
    2
    
    basicConstraints = critical, CA:true
    subjectKeyIdentifier = hash
    authorityKeyIdentifier = keyid:always,issuer
    
    [ alt_names ]
    DNS.1 = rhelai.redhat.com 
    3
    
    DNS.2 = www.rhelai.redhat.com 
    4
    1
    要件に応じて識別名を指定します。
    2
    要件に応じて代替名を指定します。
    3 4
    RHEL AI のサーバーのコモンネームを指定します。この例では、サーバー名は rhelai.redhat.com です。
  3. 次のコマンドを使用して、サブジェクト代替名 (SAN) が有効になっている自己署名証明書を生成します。

    $ openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout `pwd`/nginx/ssl/rhelai.redhat.com.key -out `pwd`/nginx/ssl/rhelai.redhat.com.crt -config openssl.cnf
    $ openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout
  4. 次のコマンドを実行して、Nginx 設定ファイルを作成し、pwd/nginx/conf.d に追加します。

    mkdir -p `pwd`/nginx/conf.d
    
    echo 'server {
        listen 8443 ssl;
        server_name <rhelai.redhat.com> 
    1
    
    
        ssl_certificate /etc/nginx/ssl/rhelai.redhat.com.crt;
        ssl_certificate_key /etc/nginx/ssl/rhelai.redhat.com.key;
    
        location / {
            proxy_pass http://127.0.0.1:8000;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
        }
    }
    ' > `pwd`/nginx/conf.d/rhelai.redhat.com.conf
    1
    サーバーの名前を指定します。この例では、サーバー名は rhelai.redhat.com です。
  5. 以下のコマンドを実行して、新しい設定で Nginx コンテナーを実行します。

    $ podman run --net host -v `pwd`/nginx/conf.d:/etc/nginx/conf.d:ro,Z -v `pwd`/nginx/ssl:/etc/nginx/ssl:ro,Z nginx

    ポート 443 を使用する場合は、root ユーザーとして podman run コマンドを実行する必要があります。

  6. セキュアなエンドポイント URL を使用して、サービング中の ilab マシンに接続できるようになりました。以下はコマンド例となります。

    $ ilab model chat -m /instructlab/instructlab/granite-7b-redhat-lab --endpoint-url
  7. 次のコマンドを使用して、サービング中の RHEL AI マシンに接続することもできます。

    $ curl --location 'https://rhelai.redhat.com:8443/v1' \
    --header 'Content-Type: application/json' \
    --header 'Authorization: Bearer <api-key>' \
    --data '{
      "model": "/var/home/cloud-user/.cache/instructlab/models/granite-7b-redhat-lab",
      "messages": [
          {
              "role": "system",
              "content": "You are a helpful assistant."
          },
          {
              "role": "user",
              "content": "Hello!"
          }
      ]
    }' | jq .

    ここでは、以下のようになります。

    <api-key>
    API キーを指定します。「モデルとチャットするための API キーの作成」の手順に従って、独自の API キーを作成できます。
  8. オプション: サーバー証明書を取得して、Certifi CA バンドルに追加することもできます。

    1. 次のコマンドを実行してサーバー証明書を取得します。

      $ openssl s_client -connect rhelai.redhat.com:8443 </dev/null 2>/dev/null | openssl x509 -outform PEM > server.crt
    2. 証明書をシステムの信頼できる CA ストレージディレクトリーにコピーし、次のコマンドを使用して CA トラストストアを更新します。

      $ sudo cp server.crt /etc/pki/ca-trust/source/anchors/
      $ sudo update-ca-trust
    3. 次のコマンドを実行すると、証明書を Certifi CA バンドルに追加できます。

      $ cat server.crt >> $(python -m certifi)
    4. 自己署名証明書を使用して ilab model chat を実行できるようになりました。以下はコマンド例となります。

      $ ilab model chat -m /instructlab/instructlab/granite-7b-redhat-lab --endpoint-url https://rhelai.redhat.com:8443/v1
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2026 Red Hat
トップに戻る