環境の構築と維持


Red Hat Enterprise Linux AI 1.5

アカウントの作成、RHEL AI の初期化、モデルのダウンロード/整理、提供/チャットのカスタマイズ

Red Hat RHEL AI Documentation Team

概要

このドキュメントでは、RHEL AI 環境を初期化し、設定する方法を説明します。

第1章 RHEL AI のアカウントの設定

RHEL AI を操作する前に、複数のアカウントを設定する必要があります。

Red Hat アカウントの作成
Red Hat の Web サイトに登録することで、Red Hat アカウントを作成できます。Red Hat アカウントの登録 の手順に従ってください。
Red Hat レジストリーアカウントの作成

Red Hat レジストリーからモデルをダウンロードする前に、レジストリーアカウントを作成し、CLI を使用してログインする必要があります。Web ページで Regenerate Token ボタンを選択すると、アカウントのユーザー名とパスワードを表示できます。

  1. Registry Service Accounts ページで New Service Account ボタンを選択すると、Red Hat レジストリーアカウントを作成できます。
  2. CLI 経由でレジストリーアカウントにログインする方法は複数あります。Red Hat コンテナーレジストリーの認証 の手順に従って、マシンにログインします。
ハイブリッドクラウドデプロイメント用の Red Hat Insights の設定

Red Hat Insights は、デプロイしている環境を可視化するサービスです。また、このプラットフォームは、システムの運用リスクと脆弱性のリスクを特定するのにも役立ちます。Red Hat Insights の詳細は、Red Hat Insights の データとアプリケーションのセキュリティー を参照してください。

  • アクティベーションキーの表示 の手順に従い、アクティベーションキーと組織パラメーターを使用して Red Hat Insights アカウントを作成できます。

    次のコマンドを実行して、マシン上でアカウントを設定できます。

    $ sudo rhc connect --organization <org id> --activation-key <created key>

    RHEL AI を非接続環境で実行するか、Red Hat Insights をオプトアウトするには、次のコマンドを実行します。

    $ sudo mkdir -p /etc/ilab
    $ sudo touch /etc/ilab/insights-opt-out
  • 次のコマンドを実行して、永続的な認証情報を有効にし、レジストリーにログインしたままにすることもできます。

    $ podman login registry.redhat.io

    次に、auth.json ファイルを /etc/ostree/ ディレクトリーに追加します。

    $ sudo cp /run/user/1000/containers/auth.json /etc/ostree/

これにより、Red Hat Enterprise Linux AI をアップグレードした後も Red Hat レジストリーにログインしたままにできます。

注記

システムが root ユーザーとして設定されている場合は、コマンドを実行するときに sudo を使用する必要はありません。

第2章 InstructLab の初期化

Red Hat Enterprise Linux AI モデルの使用を開始するには、InstructLab 環境を初期化する必要があります。

2.1. RHEL AI 環境の作成

InstructLab 環境を初期化することで、LLM モデルおよび RHEL AI ツールとの対話を開始できます。

重要

AMD マシンのシステムプロファイルはテクノロジープレビュー機能としてのみご利用いただけます。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

前提条件

  • 起動可能なコンテナーイメージを使用して RHEL AI をインストールしている。
  • マシンの root ユーザーアクセス権がある。

手順

  1. オプション: 次のコマンドを実行すると、マシンの情報を表示できます。

    $ ilab system info
  2. 次のコマンドを実行して InstructLab を初期化します。

    $ ilab config init
  3. RHEL AI CLI は、環境と config.yaml ファイルのセットアップを開始します。CLI はマシンのハードウェアを自動的に検出し、GPU の種類に基づいてシステムプロファイルを選択します。システムプロファイルは、検出されたハードウェアに基づいて、config.yaml ファイルに適切なパラメーター値を入力します。

    プロファイル自動検出の出力例

    Generating config file and profiles:
        /home/user/.config/instructlab/config.yaml
        /home/user/.local/share/instructlab/internal/system_profiles/
    
    We have detected the NVIDIA H100 X4 profile as an exact match for your system.
    
    --------------------------------------------
      Initialization completed successfully!
    You're ready to start using `ilab`. Enjoy!
    --------------------------------------------

  4. CLI がシステムに完全に一致するものを検出しない場合は、プロンプトが表示されたら手動でシステムプロファイルを選択できます。システムに適したハードウェアベンダーと設定を選択します。

    システムプロファイルの選択の出力例

    Please choose a system profile to use.
    System profiles apply to all parts of the config file and set hardware specific defaults for each command.
    First, please select the hardware vendor your system falls into
    [0] NO SYSTEM PROFILE
    [1] NVIDIA
    Enter the number of your choice [0]: 4
    You selected: NVIDIA
    Next, please select the specific hardware configuration that most closely matches your system.
    [0] No system profile
    [1] NVIDIA H100 X2
    [2] NVIDIA H100 X8
    [3] NVIDIA H100 X4
    [4] NVIDIA L4 X8
    [5] NVIDIA A100 X2
    [6] NVIDIA A100 X8
    [7] NVIDIA A100 X4
    [8] NVIDIA L40S X4
    [9] NVIDIA L40S X8
    Enter the number of your choice [hit enter for hardware defaults] [0]: 3

    完了した ilab config init 実行の出力例

    You selected: /Users/<user>/.local/share/instructlab/internal/system_profiles/nvidia/H100/h100_x4.yaml
    
    --------------------------------------------
        Initialization completed successfully!
      You're ready to start using `ilab`. Enjoy!
    --------------------------------------------

  5. 2 つのスキルと 1 つのナレッジファイル qna.yaml を含むスケルトンタクソノミーツリーを使用する場合は、次のコマンドを実行してスケルトンリポジトリーのクローンを作成し、taxonomy ディレクトリーに配置します。

    rm -rf ~/.local/share/instructlab/taxonomy/ ; git clone https://github.com/RedHatOfficial/rhelai-sample-taxonomy.git ~/.local/share/instructlab/taxonomy/
  6. 誤ったシステムプロファイルが自動検出された場合は、次のコマンドを実行できます。

    $ ilab config init --profile <path-to-system-profile>

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

    <path-to-system-profile>

    正しいシステムプロファイルへのパスを指定します。システムプロファイルは ~/.local/share/instructlab/internal/system_profiles パスにあります。

    プロファイル選択コマンドの例

    $ ilab config init --profile ~/.local/share/instructlab/internal/system_profiles/amd/mi300x/mi300x_x8.yaml

InstructLab 環境のディレクトリー構造

├─ ~/.config/instructlab/config.yaml 
1

├─ ~/.cache/instructlab/models/ 
2

├─ ~/.local/share/instructlab/datasets 
3

├─ ~/.local/share/instructlab/taxonomy 
4

├─ ~/.local/share/instructlab/phased/<phase1-or-phase2>/checkpoints/ 
5

1
~/.config/instructlab/config.yaml: config.yaml ファイルが含まれます。
2
~/.cache/instructlab/models/: RHEL AI で生成したモデルの保存出力など、ダウンロードされたすべての大規模言語モデルが含まれます。
3
~/.local/share/instructlab/datasets/: タクソノミーリポジトリーへの変更に基づいて構築された、SDG フェーズからのデータ出力が含まれます。
4
~/.local/share/instructlab/taxonomy/: スキルおよびナレッジのデータが含まれます。
5
~/.local/share/instructlab/phased/<phase1-or-phase2>/checkpoints/: 複数フェーズのトレーニングプロセスの出力が含まれます。

検証

  1. 以下のコマンドを実行して、config.yaml ファイル全体を表示できます。

    $ ilab config show
  2. 次のコマンドを実行して、config.yaml ファイルを手動で編集することもできます。

    $ ilab config edit

第3章 大規模言語モデルのダウンロード

Red Hat Enterprise Linux AI を使用すると、Red Hat と IBM が提供および構築したさまざまな大規模言語モデル (LLM) をカスタマイズしたり、それらとチャットしたりできます。以下のモデルは、Red Hat RHEL AI レジストリーからダウンロードできます。任意のカスタムモデルを S3 バケットにアップロードできます。

Expand
表3.1 Red Hat Enterprise Linux AI バージョン 1.5 LLM
大規模言語モデル (LLM)タイプサイズ目的モデルファミリーNVIDIA アクセラレーターのサポートAMD Accelerator サポートIntel Accelerator サポート

granite-3.1-8b-starter-v2.1

LAB ファインチューニング granite スターターモデル

16.0 GB

カスタマイズとファインチューニングを行うためのデフォルト Granite 3.1 ベースモデルのバージョン 2

Granite 3.1

一般提供

一般提供

利用不可

granite-3.1-8b-lab-v2.1

LAB によるファインチューニング済み Granite モデル

16.0 GB

推論サービング用のデフォルト Granite 3.1 モデルのバージョン 2

Granite 3.1

一般提供

一般提供

利用不可

granite-3.1-8b-starter-v2

LAB ファインチューニング granite スターターモデル

16.0 GB

カスタマイズとファインチューニングを行うためのデフォルト Granite 3.1 ベースモデルのバージョン 2

Granite 3.1

利用不可

利用不可

テクノロジープレビュー

granite-3.1-8b-lab-v2

LAB によるファインチューニング済み Granite モデル

16.0 GB

推論サービング用のデフォルト Granite 3.1 モデルのバージョン 2

Granite 3.1

利用不可

利用不可

テクノロジープレビュー

granite-8b-code-instruct

LAB によるファインチューニング済み Granite コードモデル

15.0 GB

LAB によるファインチューニング済みの推論サービング用 Granite コードモデル

Granite Code モデル

テクノロジープレビュー

テクノロジープレビュー

テクノロジープレビュー

granite-8b-code-base

Granite によるファインチューニング済みコードモデル

15.0 GB

推論サービング用の Granite コードモデル

Granite Code モデル

テクノロジープレビュー

テクノロジープレビュー

テクノロジープレビュー

mixtral-8x7b-instruct-v0-1

デフォルトの教師モデル

87.0 GB

合成データ生成 (SDG) を実行するためのデフォルトの教師モデル

Mixtral

一般提供

一般提供

テクノロジープレビュー

llama-3.3-70b-Instruct

オプションの教師モデル

74.0 GB

合成データ生成 (SDG) を実行するためのオプションの教師モデル

Llama

テクノロジープレビュー

利用不可

利用不可

prometheus-8x7b-v2-0

評価ジャッジモデル

87.0 GB

複数フェーズのトレーニングと評価を行うためのジャッジモデル

Prometheus 2

一般提供

一般提供

テクノロジープレビュー

重要

granite-8b-code-instruct または granite-8b-code-base 大規模言語モデル (LLM) の使用は、テクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

Granite LLM のカスタマイズに必要なモデル

  • ハードウェアベンダーに応じた granite-7b-starter または granite-8b-starter-v1 ベース LLM
  • SDG 用の mixtral-8x7b-instruct-v0-1 教師モデル
  • トレーニングと評価を行うための prometheus-8x7b-v2-0 ジャッジモデル

LLM のカスタマイズに必要な追加のツール

低ランク適応 (LoRA) アダプターは、合成データ生成 (SDG) プロセスの効率を高めます。

  • SDG 用の skills-adapter-v3 LoRA 階層化スキルアダプター
  • SDG 用の knowledge-adapter-v3 LoRA 階層化ナレッジアダプター

    アダプターをダウンロードするコマンドの例

    $ ilab model download --repository docker://registry.redhat.io/rhelai1/knowledge-adapter-v3 --release latest

重要

LoRA 階層化アダプターは、ilab model list コマンドの出力には表示されません。ls ~/.cache/instructlab/models フォルダーに、skills-adapter-v3 ファイルと knowledge-adapter-v3 ファイルが表示されます。

3.1. Red Hat リポジトリーからのモデルのダウンロード

Red Hat および IBM が作成した追加のオプションモデルをダウンロードできます。

前提条件

  • 起動可能なコンテナーイメージを使用して RHEL AI をインストールしている。
  • InstructLab を初期化している。
  • Red Hat レジストリーアカウントを作成し、マシンにログインしている。
  • マシンの root ユーザーアクセス権がある。

手順

  1. 追加の LLM モデルをダウンロードするには、次のコマンドを実行します。

    $ ilab model download --repository docker://<repository_and_model> --release <release>

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

    <repository_and_model>
    モデルとモデルのリポジトリーのロケーションを指定します。モデルには、registry.redhat.io/rhelai1/ リポジトリーからアクセスできます。
    <release>
    モデルのバージョンを指定します。RHEL AI バージョン 1.5 でサポートされているモデルの場合は 1.5 に設定します。モデルの最新バージョンの場合は、latest に設定します。

    コマンドの例

    $ ilab model download --repository docker://registry.redhat.io/rhelai1/granite-3.1-8b-starter-v1 --release latest

検証

  1. 次のコマンドを使用すると、トレーニング後の新しいモデルなど、ダウンロードしたすべてのモデルをシステム上で表示できます。

    $ ilab model list

    出力例

    +-----------------------------------+---------------------+---------+
    | Model Name                        | Last Modified       | Size    |
    +-----------------------------------+---------------------+---------+
    | models/prometheus-8x7b-v2-0       | 2024-08-09 13:28:50 |  87.0 GB|
    | models/mixtral-8x7b-instruct-v0-1 | 2024-08-09 13:28:24 |  87.0 GB|
    | models/granite-3.1-8b-starter-v1  | 2024-08-09 14:28:40 |  16.6 GB|
    | models/granite-3.1-8b-lab-v1      | 2024-08-09 14:40:35 |  16.6 GB|
    +-----------------------------------+---------------------+---------+

  2. 次のコマンドを実行して、ls ~/.cache/instructlab/models フォルダーにダウンロードしたモデルをリスト表示することもできます。

    $ ls ~/.cache/instructlab/models

    出力例

    granite-3.1-8b-starter-v1
    granite-3.1-8b-lab-v1

第4章 モデル管理

RHEL AI でカスタムまたはダウンロードしたモデルを整理および管理する方法は複数あります。

4.1. モデルのレジストリーへのアップロード

モデルのファインチューニングした後、モデルを外部レジストリーにアップロードできます。RHEL AI は現在、AWS S3 バケットへのモデルのアップロードをサポートしています。

前提条件

  • 選択したプラットフォームに RHEL AI をインストールしている。
  • InstructLab を初期化している。
  • 選択したレジストリーにログインしている。

手順

  1. 次のコマンドを使用して、モデルを特定のレジストリーにアップロードできます。

    $ ilab model upload --model <name-of-model> --destination <registry-location> --dest-type <registry-type>

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

    <name-of-model>
    アップロードするチェックポイント名を指定します。たとえば、--model samples_0801 などです。チェックポイントへのパスを指定することもできます。
    <registry-location>
    モデルのアップロード先を指定します。たとえば、--destination example-s3-bucket などです。
    <registry-type>
    モデルタイプを指定します。有効な値は s3 などです。

    s3 バケットへの ilab model upload コマンドの例

    $ ilab model upload --model samples_0801 --destination example-s3-bucket --dest-type s3

第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

5.2. モデルとのチャット

モデルをサービングしたら、モデルにチャットできるようになります。

重要

チャットしているモデルは、サービング中のモデルと一致する必要があります。デフォルトの config.yaml ファイルでは、granite-7b-redhat-lab モデルがサービングとチャットのデフォルトになります。

前提条件

  • 起動可能なコンテナーイメージを使用して RHEL AI をインストールしている。
  • InstructLab を初期化している。
  • 使用する Granite LLM をダウンロードしている。
  • モデルをサービングしている。
  • マシンの root ユーザーアクセス権がある。

手順

  1. 1 つのターミナルでモデルをサービングしているため、モデルとチャットするには別のターミナルウィンドウを開く必要があります。
  2. デフォルトのモデルとチャットするには、次のコマンドを実行します。

    $ ilab model chat
  3. 特定のモデルとチャットするには、次のコマンドを実行します。

    $ ilab model chat --model <model-path>

    コマンドの例

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

チャットボットの出力例

$ ilab model chat
╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────── system ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ Welcome to InstructLab Chat w/ GRANITE-8B-CODE-INSTRUCT (type /h for help)                                                                                                                                                                    │
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
>>>                                                                                                                                                                                                                        [S][default]

+ チャットボットを終了するには exit と入力します。

5.2.1. オプション: モデルとチャットするために API キーを作成する

デフォルトでは、ilab CLI は認証を使用しません。サーバーをインターネットに公開する場合は、次の手順に従ってサーバーに接続する API キーを作成できます。

前提条件

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

手順

  1. 次のコマンドを実行して、$VLLM_API_KEY パラメーターに保持される API キーを作成します。

    $ export VLLM_API_KEY=$(python -c 'import secrets; print(secrets.token_urlsafe())')
  2. 次のコマンドを実行すると、API キーを表示できます。

    $ echo $VLLM_API_KEY
  3. 次のコマンドを実行して config.yaml を更新します。

    $ ilab config edit
  4. config.yaml ファイルの vllm_args セクションに次のパラメーターを追加します。

    serve:
        vllm:
            vllm_args:
            - --api-key
            - <api-key-string>

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

    <api-key-string>
    API キー文字列を指定します。
  5. 次のコマンドを実行すると、サーバーが API キー認証を使用していることを確認できます。

    $ ilab model chat

    次に、ユーザーに権限がないことを示す以下のエラーが表示されます。

    openai.AuthenticationError: Error code: 401 - {'error': 'Unauthorized'}
  6. 以下のコマンドを実行して、API キーが機能していることを確認します。

    $ ilab model chat -m granite-7b-redhat-lab --endpoint-url https://inference.rhelai.com/v1 --api-key $VLLM_API_KEY

    出力例

    $ ilab model chat
    ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────── system ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
    │ Welcome to InstructLab Chat w/ GRANITE-7B-LAB (type /h for help)                                                                                                                                                                    │
    ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
    >>>                                                                                                                                                                                                                        [S][default]

法律上の通知

Copyright © 2025 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

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

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

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

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

Legal Notice

Theme

© 2026 Red Hat
トップに戻る