W&B Inference は、W&B Weave と OpenAI 準拠 API を通じて、主要なオープンソース基盤モデルにアクセスできるようにする機能です。W&B Inference では、次のことができます。
- ホスティングプロバイダーに登録したりモデルをセルフホストしたりすることなく、AI アプリケーションやエージェントを開発する。
- W&B Weave Playground でサポート対象モデルを試す。
W&B Inference のクレジットは、期間限定で Free、Pro、Academic プランに含まれています。Enterprise での提供状況は異なる場合があります。クレジットを使い切ると、次のようになります。
- Free アカウントは、Inference の使用を継続するために Pro プランへアップグレードする必要があります。
- Pro プランのユーザーには、モデルごとの料金に基づき、Inference の超過分が毎月請求されます。
詳細は、料金ページ と W&B Inference のモデル料金 を参照してください。
Weave を使用すると、W&B Inference を利用したアプリケーションのトレース、評価、監視、改善の反復を行えます。
| モデル | モデル ID (API 使用時) | タイプ | コンテキストウィンドウ | パラメーター | 説明 |
|---|
| DeepSeek R1-0528 | deepseek-ai/DeepSeek-R1-0528 | テキスト | 161K | 37B - 680B (アクティブ - 合計) | 複雑なコーディング、数学、構造化ドキュメント分析など、精度が求められる推論タスク向けに最適化されています。 |
| DeepSeek V3-0324 | deepseek-ai/DeepSeek-V3-0324 | テキスト | 161K | 37B - 680B (アクティブ - 合計) | 高度に複雑な言語処理と包括的なドキュメント分析向けに調整された、堅牢な Mixture-of-Experts モデルです。 |
| Llama 3.1 8B | meta-llama/Llama-3.1-8B-Instruct | テキスト | 128K | 8B (合計) | 応答性の高い多言語チャットボットとのやり取り向けに最適化された、効率的な対話モデルです。 |
| Llama 3.3 70B | meta-llama/Llama-3.3-70B-Instruct | テキスト | 128K | 70B (合計) | 対話タスク、詳細な指示追従、コーディングに優れた多言語モデルです。 |
| Llama 4 Scout | meta-llama/Llama-4-Scout-17B-16E-Instruct | テキスト, ビジョン | 64K | 17B - 109B (アクティブ - 合計) | テキストと画像の理解を統合したマルチモーダルモデルで、視覚タスクや複合的な分析に適しています。 |
| Phi 4 Mini | microsoft/Phi-4-mini-instruct | テキスト | 128K | 3.8B (アクティブ - 合計) | リソースが限られた環境で高速な応答を実現する、コンパクトで効率的なモデルです。 |
このガイドでは、次の情報を提供します。
以下は、API または W&B Weave UI を介して W&B Inference サービスにアクセスするために必要な前提条件です。
- W&B アカウント。こちらからサインアップしてください。
- W&B APIキー。User Settings で APIキーを作成してください。
- W&B プロジェクト。
- Python 経由で Inference サービスを使用する場合は、Python 経由で API を使用するための追加の前提条件を参照してください。
Python 経由で API を使用するための追加の前提条件
Python 経由で Inference API を使用するには、まず一般的な前提条件を完了してください。次に、ローカル環境に openai と weave ライブラリをインストールしてください:
LLM アプリケーションのトレースに Weave を使用する場合にのみ、weave ライブラリが必要です。Weave の利用を開始する方法については、Weave クイックスタートを参照してください。Weave で W&B Inference サービスを使用する方法を示す API の使用例については、API の使用例を参照してください。
以下のセクションでは、API 仕様に関する情報と API の利用例を紹介します。
Inference サービスには、以下のエンドポイントからアクセスできます。
https://api.inference.wandb.ai/v1
このエンドポイントにアクセスするには、Inference サービスのクレジットが割り当てられた W&B アカウント、有効な W&B APIキー、そして W&B entity (「team」とも呼ばれます) およびプロジェクトが必要です。このガイドのコード例では、entity (team) とプロジェクトを <your-team>\<your-project> と表記しています。
Inference サービスは、以下の API method をサポートします。
利用可能な主要な API method は /chat/completions です。これは、サポートされるモデルにメッセージを送信して補完を受け取るための OpenAI 互換の Request 形式をサポートします。Weave で W&B Inference サービスを使用する方法を示す使用例については、API usage examplesを参照してください。
チャット補完を作成するには、次が必要です。
- Inference サービスのベース URL
https://api.inference.wandb.ai/v1
- W&B APIキー
<your-api-key>
- W&B entity 名とプロジェクト名
<your-team>/<your-project>
- 使用するモデルの ID。以下のいずれかです。
meta-llama/Llama-3.1-8B-Instruct
deepseek-ai/DeepSeek-V3-0324
meta-llama/Llama-3.3-70B-Instruct
deepseek-ai/DeepSeek-R1-0528
meta-llama/Llama-4-Scout-17B-16E-Instruct
microsoft/Phi-4-mini-instruct
curl https://api.inference.wandb.ai/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <your-api-key>" \
-H "OpenAI-Project: <your-team>/<your-project>" \
-d '{
"model": "<model-id>",
"messages": [
{ "role": "system", "content": "You are a helpful assistant." },
{ "role": "user", "content": "Tell me a joke." }
]
}'
import openai
client = openai.OpenAI(
# カスタムのベース URL は W&B Inference を指します
base_url='https://api.inference.wandb.ai/v1',
# APIキーは https://wandb.ai/settings で作成します
# 安全のため、代わりに環境変数 OPENAI_API_KEY に設定することを検討してください
api_key="<your-api-key>",
# 使用状況のトラッキングにはチームとプロジェクトが必須です
project="<your-team>/<your-project>",
)
# <model-id> は次のいずれかの値に置き換えてください:
# meta-llama/Llama-3.1-8B-Instruct
# deepseek-ai/DeepSeek-V3-0324
# meta-llama/Llama-3.3-70B-Instruct
# deepseek-ai/DeepSeek-R1-0528
# meta-llama/Llama-4-Scout-17B-16E-Instruct
# microsoft/Phi-4-mini-instruct
response = client.chat.completions.create(
model="<model-id>",
messages=[
{"role": "system", "content": "<your-system-prompt>"},
{"role": "user", "content": "<your-prompt>"}
],
)
print(response.choices[0].message.content)
APIを使用して、現在利用可能なすべてのモデルとそのIDをクエリします。これは、モデルを動的に選択したり、環境で利用可能なモデルを確認したりするのに役立ちます。
curl https://api.inference.wandb.ai/v1/models \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <your-api-key>" \
-H "OpenAI-Project: <your-team>/<your-project>" \
import openai
client = openai.OpenAI(
base_url="https://api.inference.wandb.ai/v1",
api_key="<your-api-key>",
project="<your-team>/<your-project>"
)
response = client.models.list()
for model in response.data:
print(model.id)
このセクションでは、Weave で W&B Inference を使用する方法を示す、いくつかの例を紹介します。
基本例: Weave で Llama 3.1 8B をトレースする
以下の Python コードサンプルは、W&B Inference API を使用して Llama 3.1 8B モデルにプロンプトを送信し、その呼び出しを Weave でトレースする方法を示しています。トレースを使用すると、LLM の呼び出しの完全な入出力を取得し、パフォーマンスを監視し、Weave UI で結果を分析できます。
この例では、次のことを行います。
- OpenAI 互換クライアントを使用して chat completion リクエストを行う、
@weave.op() でデコレートされた関数 run_chat を定義します。
- トレースは記録され、W&B の entity とプロジェクト
project="<your-team>/<your-project> に関連付けられます
- この関数は Weave によって自動的にトレースされるため、その入力、出力、レイテンシー、メタデータ (モデル ID など) がログされます。
- 結果はターミナルに出力され、トレースは指定したプロジェクト配下の https://wandb.ai の Traces タブに表示されます。
この例を使用するには、General prerequisites と Additional prerequisites for using the API via Python を完了している必要があります。
import weave
import openai
# トレース用のWeaveチームとプロジェクトを設定する
weave.init("<your-team>/<your-project>")
client = openai.OpenAI(
base_url='https://api.inference.wandb.ai/v1',
# https://wandb.ai/settings でAPIキーを作成する
api_key="<your-api-key>",
# W&B inferenceの使用状況トラッキングに必須
project="wandb/inference-demo",
)
# WeaveでモデルのcallをトレースするWeave
@weave.op()
def run_chat():
response = client.chat.completions.create(
model="meta-llama/Llama-3.1-8B-Instruct",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Tell me a joke."}
],
)
return response.choices[0].message.content
# トレースされたcallを実行してログする
output = run_chat()
print(output)
コードサンプルを実行すると、ターミナルに出力されたリンク (例: https://wandb.ai/<your-team>/<your-project>/r/call/01977f8f-839d-7dda-b0c2-27292ef0e04g) をクリックして、Weave でトレースを確認できます。あるいは、次の手順でも確認できます。
- https://wandb.ai にアクセスします。
- Traces タブを選択して、Weave のトレースを表示します。
次に、高度な例を試してください。
高度な例: Inference サービス で Weave の評価とリーダーボードを使用する
Inference サービス で Weave を使用してモデル呼び出しをトレースするだけでなく、パフォーマンスを評価したり、リーダーボードを公開したりすることもできます。次の Python コードサンプルでは、シンプルな質問応答データセットで 2 つのモデルを比較します。
この例を使用するには、一般的な前提条件とPython 経由で API を使用するための追加の前提条件を満たしている必要があります。
import os
import asyncio
import openai
import weave
from weave.flow import leaderboard
from weave.trace.ref_util import get_ref
# トレース用のWeaveチームとプロジェクトを設定する
weave.init("<your-team>/<your-project>")
dataset = [
{"input": "What is 2 + 2?", "target": "4"},
{"input": "Name a primary color.", "target": "red"},
]
@weave.op
def exact_match(target: str, output: str) -> float:
return float(target.strip().lower() == output.strip().lower())
class WBInferenceModel(weave.Model):
model: str
@weave.op
def predict(self, prompt: str) -> str:
client = openai.OpenAI(
base_url="https://api.inference.wandb.ai/v1",
# https://wandb.ai/settings でAPIキーを作成する
api_key="<your-api-key>",
# W&B inferenceの使用状況トラッキングに必須
project="<your-team>/<your-project>",
)
resp = client.chat.completions.create(
model=self.model,
messages=[{"role": "user", "content": prompt}],
)
return resp.choices[0].message.content
llama = WBInferenceModel(model="meta-llama/Llama-3.1-8B-Instruct")
deepseek = WBInferenceModel(model="deepseek-ai/DeepSeek-V3-0324")
def preprocess_model_input(example):
return {"prompt": example["input"]}
evaluation = weave.Evaluation(
name="QA",
dataset=dataset,
scorers=[exact_match],
preprocess_model_input=preprocess_model_input,
)
async def run_eval():
await evaluation.evaluate(llama)
await evaluation.evaluate(deepseek)
asyncio.run(run_eval())
spec = leaderboard.Leaderboard(
name="Inference Leaderboard",
description="Compare models on a QA dataset",
columns=[
leaderboard.LeaderboardColumn(
evaluation_object_ref=get_ref(evaluation).uri(),
scorer_name="exact_match",
summary_metric_path="mean",
)
],
)
weave.publish(spec)
次のコードサンプルを実行したら、https://wandb.ai/ の W&B アカウントにアクセスし、次の操作を行ってください。
以下のセクションでは、W&B UI で Inference サービスを使用する方法を説明します。UI で Inference サービスにアクセスする前に、前提条件を満たしてください。
Weave UI では、以下の場所から Inference サービスにアクセスできます。
https://wandb.ai/inference にアクセスします。
- W&B アカウントにアクセスするには、https://wandb.ai/ を開きます。
- 左サイドバーから Inference を選択します。利用可能なモデルとその情報が表示されます。
- 左サイドバーで Playground を選択します。Playground のチャット UI が表示されます。
- LLM のドロップダウンリストで W&B Inference にマウスオーバーします。右側に、使用可能な W&B Inference モデルのドロップダウンが表示されます。
- W&B Inference モデルのドロップダウンから、次の操作を行えます。
いずれかのアクセス方法でモデルを選択したら、Playground でそのモデルを試せます。利用可能な操作は次のとおりです。
Playground では、複数の Inference モデルを比較できます。Compare ビューには、次の 2 か所からアクセスできます。
Inference タブから Compare ビューにアクセスする
- 左サイドバーで Inference を選択します。利用可能なモデルとモデル情報が表示されたページが開きます。
- 比較するモデルを選択するには、モデルカード上の任意の場所 (モデル名を除く) をクリックします。選択されると、モデルカードの枠線が青色で強調表示されます。
- 比較したい各モデルについて、step 2 を繰り返します。
- 選択したいずれかのカードで、Compare N models in the Playground ボタンをクリックします (
N は比較するモデル数です。たとえば、3 つのモデルを選択した場合、ボタンには Compare 3 models in the Playground と表示されます) 。比較ビューが開きます。
これで、Playground でモデルを比較し、Playground でモデルを試す で説明されている各機能を使用できます。
Playground タブから Compare ビュー にアクセスする
- 左サイドバーで Playground を選択します。Playground のチャット UI が表示されます。
- LLM のドロップダウンリストで W&B Inference にマウスオーバーします。右側に、利用可能な W&B Inference モデルを含むドロップダウンが表示されます。
- ドロップダウンから Compare を選択します。Inference タブが表示されます。
- 比較するモデルを選択するには、モデルカード上の任意の場所 (モデル名を除く) をクリックします。選択されると、モデルカードの枠線が青色で強調表示されます。
- 比較する各モデルに対して step 4 を繰り返します。
- 選択したいずれかのカードで、Compare N models in the Playground ボタンをクリックします (
N は比較するモデル数です。たとえば、3 つのモデルを選択している場合、ボタンには Compare 3 models in the Playground と表示されます) 。comparison view が開きます。
これで、Playground でモデルを比較し、Playground でモデルを試す で説明されている機能を使用できます。
組織管理者は、現在の Inference クレジット残高、使用履歴、今後の請求額 (該当する場合) を W&B UI から直接確認できます。
- W&B UI で、W&B の Billing ページにアクセスします。
- 画面右下に Inference の請求情報カードが表示されます。ここでは、次のことができます。
- Inference の請求情報カードにある View usage ボタンをクリックして、経時的な使用状況を確認します。
- 有料プランをご利用の場合は、今後の Inference の請求額を確認します。
次のセクションでは、利用に関する重要な情報と制限について説明します。サービスを利用する前に、この情報をあらかじめ確認してください。
Inference サービスは、サポート対象の地域からのみ利用できます。詳細は、Terms of Serviceを参照してください。
公平な利用と安定したパフォーマンスを確保するため、W&B Inference API では、ユーザー単位およびプロジェクト単位でレート制限を設けています。これらの制限には、次の目的があります。
- 不正利用を防ぎ、API の安定性を保つ
- すべてのユーザーが利用できるようにする
- インフラストラクチャーの負荷を効果的に管理する
レート制限を超えると、API は 429 Concurrency limit reached for requests レスポンスを返します。このエラーを解消するには、同時リクエスト数を減らしてください。
モデルの料金については、https://wandb.ai/site/pricing/inferenceを参照してください。
| Error Code | Message | Cause | Solution |
|---|
| 401 | 無効な認証 | 認証情報が無効であるか、W&Bのプロジェクト名およびentityが正しくありません。 | 正しいAPIキーを使用していること、およびW&Bのプロジェクト名とentityが正しいことを確認してください。 |
| 403 | 国、地域、または領域はサポートされていません | サポート対象外の地域からAPIにアクセスしています。 | Geographic restrictionsを参照してください |
| 429 | リクエストの同時実行制限に達しました | 同時リクエストが多すぎます。 | 同時リクエスト数を減らしてください。 |
| 429 | 現在のクォータを超過しています。プランとbillingの詳細を確認してください | クレジット不足、または月間支出上限に達しています。 | クレジットを追加購入するか、制限を引き上げてください。 |
| 500 | リクエストの処理中にサーバーエラーが発生しました | サーバー内部エラーです。 | 少し待ってから再試行し、解消しない場合はサポートに連絡してください。 |
| 503 | 推論エンジンは現在過負荷状態です。後でもう一度お試しください | サーバーへのトラフィックが増加しています。 | 少し待ってからリクエストを再試行してください。 |