Red Hat AI Inference on IBM Cloud 概説

アプリケーションでAIを活用する準備はできていますか? このチュートリアルでは、ファウンデーションモデルを用いた推論の方法と、AIを活用した応答の生成方法について学びます。 わずか15分で、大規模言語モデルと会話を始め、会話型AIをワークフローに組み込むことができます。

Red Hat® AI Inference on IBM Cloud® Red Hat OpenShift AI を基盤とする、ビジネス利用に適した、プライベートで安全な生成AIソリューションです。 このチュートリアルでは、AIの利用を始める最も手っ取り早い方法である、ファウンデーションモデルと連携するための推論の始め方について解説します。

このガイドで達成できること

このチュートリアルでは、以下のタスクを行います:

  • IBM Cloud のアカウントとプロジェクトを設定してください。
  • 推論APIへの認証を行います。
  • ファウンデーションモデルを使って、最初のチャット応答を生成しましょう。
  • ご自身のデータを使ってモデルをカスタマイズするための次の手順についてご確認ください。

開始前に

以下のものが揃っていることを確認してください:

  • 従量課金型またはサブスクリプション型の IBM Cloud アカウント。 体験版アカウントご利用いただけません。 詳細情報やアカウントのアップグレードについては、 アカウントの種類 をご覧ください。

  • Red Hat AI Inference のプロジェクトです

  • Red Hat AI Inference サービスにおいて、「Writer」ロール以上。 詳細については、「 IAM アクセスの管理 」を参照してください。

プロジェクトIDとAPIエンドポイントを取得する

すべてのAPIリクエストには、プロジェクトIDが必要です。

  1. Red Hat AI Inference のプロジェクトページへ移動してください。

  2. プロジェクトを開いてください。

  3. プロジェクトIDをコピーし、次の手順のために控えておいてください。

API エンドポイント

すべての API リクエストは、以下の基本形式「 URL 」を使用します:

https://us-east.rhai.ibm.com/v1/projects/<project_id>/inference

<project_id> を、ご自身のプロジェクト ID に置き換えてください。

API への認証を行う

ファウンデーションモデルを操作するには、まずAPIリクエストの認証を行う必要があります。 ベアラー・トークンまたは IBM Cloud APIキーのいずれかを使用できます。 このチュートリアルでは、プログラムによるアクセスを行う際に、サービス ID と API キーを併用する方法について説明します。 ベアラー・トークンの使用に関する詳細については、「 ベアラー・トークンを使用した認証 」を参照してください。

サービスIDを作成し、アクセス権を割り当てる

サービス ID は、 Red Hat AI Inference プロジェクトへのアクセスを管理・割り当てる上で便利な手段です。 サービス ID を作成し、そのサービス ID にプロジェクトへのアクセス権を割り当ててください。

  1. IBM Cloud コンソールで、[管理]>[アクセス(IAM)]> [サービスID] の順に選択し、 [作成] をクリックします。

  2. サービス ID の名前と説明を入力し、「 作成 」をクリックしてください。

  3. サービスIDページで、「 アクセス権の割り当て 」をクリックします。

  4. 「サービス」として Red Hat AI Inference をサービスとして選択します。

  5. リソース 」内で、「 特定のリソース 」を選択し、プロジェクトを選んでください。 そうすることで、特定のプロジェクトへのアクセスを制限することができます。

  6. ロールとアクション 」内で、適切なサービスアクセスロールを選択してください:

    • チャットの自動補完機能を作成する必要がある場合は、「 ライター 」を選択してください。
    • チャットの補完結果の閲覧やモデルの情報の確認のみが必要な場合は、「 Reader 」を選択してください。

    APIへのアクセスには、プラットフォームアクセス権限は必要ありません。

  7. (任意)サービス ID へのアクセスをさらに限定するために、時間ベースのアクセス制限などの条件を追加します。

  8. アクセス概要を確認し、「 割り当て 」をクリックしてください。

API キーの作成

サービス ID が「 Red Hat AI Inference 」プロジェクトへのアクセス権を取得したため、API 呼び出しで使用するサービス ID API キーを作成してください。

  1. サービスIDページで、「 APIキー 」をクリックします。

  2. [作成 ] をクリックし、API キーの名前を入力してください。

  3. 「漏洩したキーの処理」については、「 漏洩したキーを無効にする 」を選択すると、キーが漏洩したと検出された場合に自動的に無効化されます。

  4. キーの有効期限を設定します。 セキュリティ上の理由から、定期的な鍵の交換をお勧めします。

  5. 「作成」 をクリックします。

  6. APIキーをコピーし、安全な場所に保存してください。 このキーは再度表示することはできません。

これで、そのAPIキーを使用してリクエストの認証を行うことができます。 次のステップでは、API呼び出しの Authorization: Bearer ヘッダーにこのキーを使用します。

取り扱いモデルを見る

基盤モデルごとに強みが異なるため、プロジェクトで利用可能なモデルを精査することが重要です。

利用可能なすべてのモデルを一覧表示するには、以下のAPI呼び出しを行ってください。 <project_id> をプロジェクト ID に、 <api_key> をサービス ID の API キーに置き換えてください:

curl -L 'https://us-east.rhai.ibm.com/v1/projects/<project_id>/inference/models' \
  -H 'Accept: application/json' \
  -H "Authorization: Bearer <api_key>"
from openai import OpenAI
client = OpenAI(
  api_key="<api_key>",
  base_url="https://us-east.rhai.ibm.com/v1/projects/<project_id>/inference",
)
models = client.models.list()
print(models)

この応答には、使用可能なすべてのモデルと、それぞれの機能に関する情報が表示されます。 さまざまなモデルを試してみて、ご自身のユースケースに最適なモデルを見つけてください。

初めてのチャット完了を生成する

それでは、モデルにメッセージを送信して、AIが生成した返信を受け取ってみましょう。

以下のAPI呼び出しを実行してください。この際、「 <project_id> 」をプロジェクトIDに、「 <api_key> 」をサービスIDのAPIキーに置き換えてください

curl https://us-east.rhai.ibm.com/v1/projects/<project_id>/inference/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <api_key>" \
  -d '{
    "model": "granite-4-0-h-small",
    "messages": [
      {
        "role": "developer",
        "content": "You are a helpful assistant"
      },
      {
        "role": "user",
        "content": "Hello! Tell me about yourself"
      }
    ]
  }'
from openai import OpenAI
client = OpenAI(
  api_key="<api_key>",
  base_url="https://us-east.rhai.ibm.com/v1/projects/<project_id>/inference",
)
completion = client.chat.completions.create(
  model="granite-4-0-h-small",
  messages=[
    {"role": "developer", "content": "You are a helpful assistant."},
    {"role": "user", "content": "Hello! Tell me about yourself"}
  ]
)
print(completion.choices[0].message)

モデルから自己紹介の返信が届くはずです。

リクエストの理解

先ほど行った操作を詳しく見ていきましょう:

モデル
利用可能な基盤モデルの1つである「 granite-4-0-h-small 」を指定しました。 モデルによって、機能や性能特性は異なります。
メッセージ
2件のメッセージを送信しました。 そのうちの1つは、システムのプロンプトを設定し、モデルにどのように振る舞うべきかを指示する開発者向けメッセージでした。 ユーザーメッセージには、モデルに回答を求める実際の質問が含まれていました。
API エンドポイント
このリクエストは、プロジェクトの推論エンドポイントに送信され、そこで適切なモデルへのルーティングが行われました。

システムプロンプトを調整したり、メッセージを追加したり、ユースケースに応じて異なるモデルを使用したりすることで、モデルの挙動をカスタマイズすることができます。

次のステップ

推論機能の利用を開始できたところで、次にできることは以下の通りです:

推論を続ける

  • 推論についてさらに詳しく学び、レスポンスのストリーミング、モデルパラメータの調整、会話履歴の管理といった高度な機能について理解を深めましょう。

  • APIのリファレンスの詳細については、「 OpenAI 」チャット補完APIのドキュメントをご覧ください。

  • Python SDK やその他のプログラミング言語を使用して、アプリケーションに推論機能を組み込んでください。

ご自身のデータを使ってモデルをカスタマイズする

非推奨

汎用モデルを超える準備はできていますか? モデルアラインメントを活用することで、組織固有の知識やスキルに基づいて基盤モデルをカスタマイズすることができます:

  1. 自社のビジネス知識やスキルを含む 分類体系を作成してください

  2. タクソノミーから 合成データを生成します

  3. 特定のニーズに合わせて、 カスタムモデルを学習させます

そうすることで、汎用モデルでは提供できないレベルを超えて、モデルが自社のビジネス背景、用語、要件を理解できるよう微調整することができます。