モデルの推定

推論機能を使えば、基盤モデルとやり取りを行い、アプリケーション向けのAIによる応答を評価することができます。 推論機能は、会話型AI機能をワークフローに組み込み、モデルの挙動をテストし、インテリジェントなアプリケーションを構築できる、本番環境対応のAPIを提供します。

Inferenceは、業界標準の馴染み深いAPIを通じてファウンデーションモデルに即座にアクセスできるようにすることで、AIモデルの導入とスケーリングにおける課題を解決します。 チャットボットのプロトタイプ開発、AIアシスタントの構築、あるいはアプリケーションへの自然言語理解機能の統合など、どのようなケースであっても、推論機能を利用することで、モデルホスティングの複雑さを解消し、ユーザーへの価値創出に集中することができます。

開始前に

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

  • Red Hat AI Inference プロジェクト を作成します。

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

コンソールを使用してモデルを推定する

このコンソールは、さまざまなモデルを試したり、プロンプトをテストしたり、AIとのやり取りを調整したりできるインタラクティブな実験環境を提供しており、それらをアプリケーションに組み込む前に検証を行うことができます。

  1. コンソールで、「 Red Hat AI Inference 」サービスを開き、プロジェクト名をクリックしてそのプロジェクトを開きます。

  2. プロジェクトページから「 Playground 」をクリックして、推論プレイグラウンドを開きます。

  3. チャットセッションを開始してください。 以下のオプションを使用して、チャットセッションをカスタマイズできます:

モデルの選択
基礎モデルのリストから選択することができます。
システム・プロンプト
システム・プロンプトは、ダイアログの実行方法についてモデルに指示します。
推論設定
ランダム性 」、「 繰り返し 」、および「 応答」の制限値を調整します。
チャット履歴
チャット履歴は、 モデルまたは日付範囲で絞り込むことができます。

API を使用してモデルを推定する

このAPIを使用すると、業界標準の OpenAI-compatible エンドポイントを活用して、アプリケーションにAI機能をプログラム的に統合することができます。 このアプローチは、AIとのやり取りを自動化したり、大量のリクエストを処理したり、既存のシステムに会話型AIを組み込んだりする必要がある本番環境での導入において不可欠です。 このAPIを利用することで、モデルの動作をカスタマイズしたり、会話履歴を管理したり、アプリケーションに合わせてAIを活用した機能を拡張したりすることが可能です。

現在、以下のAPIがサポートされています:

チャットの自動補完 /v1/chat/completions
作成 - 「 OpenAI 」ドキュメント
Get - 「 OpenAI 」のドキュメント
リスト - 「 OpenAI 」のドキュメント
削除 - OpenAI ドキュメント
モデル /v1/models
Get - 「 OpenAI 」のドキュメント
リスト - 「 OpenAI 」のドキュメント

API を使用して一般的な推論タスクを実行する方法の例については、以下のセクションを参照してください。

API エンドポイント

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

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

<project_id> を、ご自身のプロジェクト ID に置き換えてください。 それを見つけるには、 Red Hat AI Inference projects にアクセスし、自分のプロジェクトを開いてください。

APIへの認証

API呼び出しを行うには、まずリクエストの認証を行う必要があります。 ベアラー・トークンまたは IBM Cloud APIキーのいずれかを使用して認証を行うことができます。

ベアラー・トークンを使用した認証

ベアラー・トークンは、プロジェクトの推論機能への安全なアクセスを保証するものであり、 IBM Cloud のAPIキーから生成されます。 ベアラー・トークンは所定の期間が経過すると失効するため、定期的に更新する必要があります。

以下の例は、ベアラー・トークンを取得する方法を示しています。

curl -X POST "https://iam.cloud.ibm.com/identity/token" --header "Content-Type: application/x-www-form-urlencoded" --header "Accept: application/json" --data-urlencode "grant_type=urn:ibm:params:oauth:grant-type:apikey" --data-urlencode "apikey=$<IBM_CLOUD_API_KEY>"

レスポンスに含まれる「bearer token」は、 access_token です。 これらのトークンには有効期限があり、定期的に更新する必要があります。

{"access_token":"xxxxx","refresh_token":"not_supported","token_type":"Bearer","expires_in":3600,"expiration":1770058324,"scope":"ibm openid"}

APIキーを使用した認証

APIキーによる認証には2つの方法があります。そのうちの1つは、 サービスIDを作成する方法です。これは、アクセス権や制御機能を割り当てるための推奨される方法です。 サービス ID を作成する場合は、認証に使用する サービス ID API キーも作成 する必要があります。 「 Red Hat AI Inference のはじめ方」では、プログラムによる認証を行うためのサービス ID と API キーの作成方法について説明しています。

サービス ID API キーの代わりに、ユーザー API キーを使用して認証を行うこともできます。 詳しくは、ユーザーの API キーの管理を参照してください。

チャットの自動補完を生成する

チャットの自動補完機能は、推論の中核をなすものです。 これらを利用すると、基盤モデルにメッセージを送信し、AIが生成した応答を受け取ることができます。 このようにして、対話型体験を構築したり、質問への回答を得たり、コンテンツを生成したり、自然言語の入力を処理したりすることができます。 モデルの挙動を定義するシステムプロンプトを提供し、文脈に応じた対話のためにメッセージ履歴を維持することで、会話の流れを制御することができます。

次の例は、チャットの補完を生成する方法を示しています。 利用可能なパラメータの完全な一覧については、「 OpenAI のチャット補完機能 」を参照してください。

curl https://us-east.rhai.ibm.com/v1/projects/<project_id>/inference/chat/completions -H "Content-Type: application/json" -H "Authorization: Bearer <bearer_token>" -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="<bearer_token>",
  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)

ID によるチャットの補完を取得する

ID を使って特定のチャット完了履歴を取得することは、監査、デバッグ、あるいは過去のやり取りの分析に役立ちます。

次の例は、ID を使ってチャット補完を取得する方法を示しています。 利用可能なパラメータの完全な一覧については、「 Get Chat Completion 」を参照してください。

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

チャット補完の一覧表示

チャット補完の一覧を表示することで、すべての推論アクティビティの概要を把握できるため、利用パターンの監視、コストの追跡、およびアプリケーションと基盤モデルとのやり取りの分析が可能になります。 これは、ユーザーの行動を理解し、一般的な利用事例を特定し、AI導入戦略を最適化するために特に有用です。

次の例は、チャットの補完一覧を表示する方法を示しています。 利用可能なパラメータの完全な一覧については、「 チャット補完の一覧 」を参照してください。

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

チャットの自動補完を削除する

チャットの自動補完を削除することで、テストデータを整理し、プライバシー要件に準拠することができます。

次の例は、チャットの補完を削除する方法を示しています。 利用可能なパラメータの完全な一覧については、「 チャットの自動補完を削除する 」を参照してください。

curl -X DELETE https://us-east.rhai.ibm.com/v1/projects/<project_id>/inference/chat/completions/<completion_id> \
-H "Content-Type: application/json" -H "Authorization: Bearer <bearer_token>"

モデルのリスト

プロジェクトで利用可能な基盤モデルを確認し、その機能を把握することで、特定のユースケースに最適なモデルを選択し、応答品質、速度、コストなどの要素を最適化することができます。

以下の例は、モデルを一覧表示する方法を示しています。 利用可能なパラメータの完全な一覧については、『 OpenAI List Models 』を参照してください。

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

ID によるモデルの取得

特定のモデルに関する詳細情報を取得することで、アプリケーションでそのモデルを使用する前に、その特性、機能、および制限事項を理解することができます。

次の例は、ID を使ってモデルを取得する方法を示しています。 利用可能なパラメータの完全な一覧については、「 モデルの取得 」を参照してください。

curl -L 'https://us-east.rhai.ibm.com/v1/projects/<project_id>/inference/models/<model>' \
-H 'Accept: application/json' -H "Authorization: Bearer <bearer_token>"
from openai import OpenAI
client = OpenAI(
  api_key="<bearer_token>",
  base_url="https://us-east.rhai.ibm.com/v1/projects/<project_id>/inference",
)
model = client.models.retrieve("<model>")  # for example, "granite-4-0-h-small"
print(model)