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 を利用したアプリケーションをトレース、評価、監視し、反復的に改善することができます。
| Model | Model ID (for API usage) | Type(s) | Context Window | Parameters | Description |
|---|
| DeepSeek R1-0528 | deepseek-ai/DeepSeek-R1-0528 | Text | 161K | 37B - 680B (Active - Total) | 複雑なコーディング、数学、構造化ドキュメント解析など、精密な推論タスク向けに最適化されたモデル。 |
| DeepSeek V3-0324 | deepseek-ai/DeepSeek-V3-0324 | Text | 161K | 37B - 680B (Active - Total) | 高度な言語処理および網羅的なドキュメント解析向けに調整された、堅牢な Mixture-of-Experts モデル。 |
| Llama 3.1 8B | meta-llama/Llama-3.1-8B-Instruct | Text | 128K | 8B (Total) | 応答性の高い多言語チャットボット対話向けに最適化された、効率的な会話用モデル。 |
| Llama 3.3 70B | meta-llama/Llama-3.3-70B-Instruct | Text | 128K | 70B (Total) | 会話タスク、詳細な指示追従、およびコーディングに優れた多言語モデル。 |
| Llama 4 Scout | meta-llama/Llama-4-Scout-17B-16E-Instruct | Text, Vision | 64K | 17B - 109B (Active - Total) | テキストと画像理解を統合したマルチモーダルモデルで、ビジュアルタスクや複合的な解析に最適。 |
| Phi 4 Mini | microsoft/Phi-4-mini-instruct | Text | 128K | 3.8B (Active - Total) | リソース制約のある環境での高速応答に適した、コンパクトで効率的なモデル。 |
このガイドでは、次の内容を説明します。
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 ライブラリをインストールします。
weave ライブラリは、LLM アプリケーションのトレースに Weave を使用する場合にのみ必要です。Weave の始め方については、Weave クイックスタート を参照してください。Weave と併用して W&B Inference サービスを利用する方法の例については、API 使用例 を参照してください。
以下のセクションでは、API 仕様と API の使用例について説明します。
Inference サービスには、以下のエンドポイント経由でアクセスできます。
https://api.inference.wandb.ai/v1
このエンドポイントにアクセスするには、Inferenceサービス用のクレジットが割り当てられた W&B アカウント、有効な W&B APIキー、そして W&B のエンティティ(チームとも呼ばれます)とプロジェクトが必要です。本ガイドのコードサンプルでは、エンティティ(チーム)とプロジェクトは <your-team>\<your-project> の形式で表記されています。
Inference サービスは次の API メソッドをサポートしています:
利用可能な主要な API メソッドは /chat/completions で、サポートされているモデルにメッセージを送信して補完結果を受け取るための、OpenAI 互換のリクエスト形式に対応しています。Weave と組み合わせて W&B Inference サービスを使用する方法の例については、API 使用例 を参照してください。
チャット補完を作成するには、次のものが必要です:
- Inference サービスのベース URL
https://api.inference.wandb.ai/v1
- W&B API キー
<your-api-key>
- W&B のエンティティ名とプロジェクト名
<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',
# https://wandb.ai/settings で API キーを作成します
# より安全のために、環境変数 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)
このセクションでは、W&B Inference を Weave と併用する方法を示す例をいくつか紹介します。
基本的な例: Weave で Llama 3.1 8B をトレースする
次の Python コードサンプルは、W&B Inference API を使って Llama 3.1 8B モデルにプロンプトを送信し、その呼び出しを Weave でトレースする方法を示します。トレースすることで、LLM 呼び出しの入力と出力をすべて取得し、パフォーマンスを監視し、Weave UI で結果を分析できます。
この例では、次のことを行います:
- OpenAI 互換クライアントを使ってチャット補完リクエストを行う、
@weave.op() でデコレートされた関数 run_chat を定義します。
- トレースは記録され、あなたの W&B entity とプロジェクト
project="<your-team>/<your-project> に関連付けられます。
- 関数は Weave によって自動的にトレースされるため、その入力、出力、レイテンシ、およびメタデータ(モデル ID など)がログに記録されます。
- 結果はターミナルに出力され、指定したプロジェクトの https://wandb.ai 上にある Traces タブにトレースが表示されます。
この例を使用するには、一般的な前提条件とPython 経由で API を使用するための追加の前提条件を満たしている必要があります。
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でモデルのコールをトレースする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
# トレースされたコールを実行してログに記録する
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 のトレースを表示します。
次に、高度な例を試してみてください。
応用例: 推論サービスで Weave Evaluations と Leaderboards を利用する
推論サービスで 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 サービスにアクセスする前に、前提条件 を満たしてください。
Inference サービスには、Weave UI から次の 3 つの場所からアクセスできます。
https://wandb.ai/inference にアクセスします。
- https://wandb.ai/ にアクセスして、W&B アカウントにログインします。
- 左側のサイドバーから Inference を選択します。利用可能なモデルとその情報が表示されます。
- 左サイドバーから Playground を選択します。Playground のチャット UI が表示されます。
- LLM のドロップダウンリストで W&B Inference にカーソルを合わせます。利用可能な W&B Inference モデルのドロップダウンが右側に表示されます。
- W&B Inference モデルのドロップダウンからは、次の操作が可能です:
いずれかのアクセスオプションを使ってモデルを選択したら、Playground でそのモデルを試すことができます。次の操作を行えます:
Playground で複数の Inference モデルを比較できます。Compare ビューには、次の 2 か所からアクセスできます。
Inference タブから Compare ビューにアクセスする
- 左サイドバーで Inference を選択します。利用可能なモデルとその情報が表示されたページが開きます。
- 比較するモデルを選択するには、モデル名以外の任意の場所をクリックしてモデルカードを選択します。選択されると、モデルカードの枠が青色で強調表示されます。
- 比較したい各モデルについて、手順 2 を繰り返します。
- 選択されたカードのいずれかで、Compare N models in the Playground ボタンをクリックします(
N は比較するモデルの数です。例えば 3 つのモデルが選択されている場合、ボタンには Compare 3 models in the Playground と表示されます)。比較ビューが開きます。
これで、Playground でモデルを比較できるようになり、Try a model in the Playground に記載されている機能をすべて利用できます。
Playground タブから Compare ビューにアクセスする
- 左サイドバーから Playground を選択します。Playground のチャット UI が表示されます。
- LLM のドロップダウンリストで W&B Inference にカーソルを合わせます。利用可能な W&B Inference モデルのドロップダウンが右側に表示されます。
- ドロップダウンから Compare を選択します。Inference タブが表示されます。
- 比較するモデルを選択するには、モデルカード上のモデル名以外の任意の場所をクリックします。選択されると、モデルカードの枠線が青色でハイライト表示されます。
- 比較したい各モデルについて、手順 4 を繰り返します。
- 選択されたカードのいずれかで、Compare N models in the Playground ボタンをクリックします(
N は比較するモデル数です。たとえば、3 つのモデルを選択した場合、ボタンには Compare 3 models in the Playground と表示されます)。比較ビューが開きます。
これで、Playground でモデルを比較し、Try a model in the Playground で説明している機能を利用できます。
組織管理者は、現在の Inference クレジット残高、利用履歴、および(該当する場合は)今後の請求内容を、W&B UI から直接確認できます。
- W&B UI で、W&B の Billing ページに移動します。
- 画面右下に Inference の請求情報カードが表示されます。ここから、次の操作ができます。
- Inference の請求情報カードにある View usage ボタンをクリックして、時系列の利用状況を確認します。
- 有料プランを利用している場合は、今後発生する Inference の料金を確認します。
以下のセクションでは、重要な利用情報と制限事項について説明します。サービスを利用する前に、必ずこの情報を確認してください。
Inference サービスは、サポートされている地域からのみアクセス可能です。詳細については、利用規約を参照してください。
公平な利用と安定したパフォーマンスを確保するため、W&B Inference API はユーザーおよびプロジェクト単位でレート制限を適用します。これらの制限には次のような目的があります:
- 不正利用を防止し、API の安定性を保護する
- すべてのユーザーがアクセスできるようにする
- インフラストラクチャ負荷を効果的に管理する
レート制限を超過した場合、API は 429 Concurrency limit reached for requests レスポンスを返します。このエラーを解消するには、同時に送信しているリクエスト数を減らしてください。
モデルの料金については、https://wandb.ai/site/pricing/inference を参照してください。
| Error Code | Message | Cause | Solution |
|---|
| 401 | Invalid Authentication | 認証情報が無効であるか、W&B のプロジェクトのエンティティ名またはプロジェクト名が正しくありません。 | 正しい APIキーが使用されていること、および W&B のプロジェクト名とエンティティ名が正しいことを確認してください。 |
| 403 | Country, region, or territory not supported | 非対応地域から API にアクセスしています。 | Geographic restrictions を参照してください。 |
| 429 | Concurrency limit reached for requests | 同時実行リクエスト数が多すぎます。 | 同時実行リクエスト数を減らしてください。 |
| 429 | You exceeded your current quota, please check your plan and billing details | 現在のクォータを超過したか、月間の支出上限に達しました。 | 追加のクレジットを購入するか、上限値を引き上げてください。 |
| 500 | The server had an error while processing your request | サーバー内部エラーです。 | 少し時間をおいてから再試行し、問題が解消しない場合はサポートに連絡してください。 |
| 503 | The engine is currently overloaded, please try again later | サーバーが高負荷状態です。 | 短時間待ってからリクエストを再試行してください。 |