W&B Inference
W&B InferenceW&B Weaveと OpenAI互換APIを通じて、主要なオープンソース基盤モデルへのアクセスを提供します。W&B Inferenceを使用すると、以下のことが可能です:
- ホスティングプロバイダーに登録したり、モデルをセルフホスティングしたりすることなく、AIアプリケーションやエージェントを開発できます。
- W&B Weave Playgroundでサポートされているモデルを試すことができます。
W&B Inferenceクレジットは、無料、Pro、およびアカデミックプランに期間限定で含まれています。Enterpriseでは利用可能性が異なる場合があります。クレジットを使い切った後:
- 無料アカウントは、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キー。APIキーはhttps://wandb.ai/authorizeで取得できます。
- W&Bプロジェクト。
- Pythonを介してInferenceサービスを使用している場合は、Pythonを介してAPIを使用するための追加前提条件を参照してください。
Pythonを介してAPIを使用するための追加前提条件
PythonでInference APIを使用するには、まず一般的な前提条件を完了してから、ローカル環境にopenaiとweaveライブラリをインストールします:
weaveライブラリは、Weaveを使用してLLMアプリケーションをトレースする場合にのみ必要です。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エンティティ(「チーム」とも呼ばれる)とプロジェクトが必要です。このガイドのコードサンプルでは、エンティティ(チーム)とプロジェクトは<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(
# The custom base URL points to W&B Inference
base_url='https://api.inference.wandb.ai/v1',
# Get your API key from https://wandb.ai/authorize
# Consider setting it in the environment as OPENAI_API_KEY instead for safety
api_key="<your-api-key>",
# Team and project are required for usage tracking
project="<your-team>/<your-project>",
)
# Replace <model-id> with any of the following values:
# 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で使用する方法を示すいくつかの例を提供します:
基本例:Llama 3.1 8BをWeaveでトレースする
以下のPythonコードサンプルは、Llama 3.1 8BモデルにW&B Inference APIを使用してプロンプトを送信し、Weaveで呼び出しをトレースする方法を示しています。トレースを使用すると、LLM呼び出しの完全な入出力をキャプチャし、パフォーマンスを監視し、Weave UIで結果を分析できます。
この例では:
- あなたは
@weave.op()-デコレートされた関数run_chatを定義し、OpenAI互換クライアントを使用してチャット完了リクエストを行います。
- トレースは記録され、W&Bエンティティとプロジェクトに関連付けられます
project="<your-team>/<your-project>
- この関数はWeaveによって自動的にトレースされるため、その入力、出力、レイテンシー、およびメタデータ(モデルIDなど)が記録されます。
- 結果はターミナルに表示され、トレースはTracesタブのhttps://wandb.aiの指定されたプロジェクトの下に表示されます。
この例を使用するには、general prerequisitesとAdditional prerequisites for using the API via Pythonを完了する必要があります。
import weave
import openai
# Set the Weave team and project for tracing
weave.init("<your-team>/<your-project>")
client = openai.OpenAI(
base_url='https://api.inference.wandb.ai/v1',
# Get your API key from https://wandb.ai/authorize
api_key="<your-api-key>",
# Required for W&B inference usage tracking
project="wandb/inference-demo",
)
# Trace the model call in 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
# Run and log the traced 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トレースを表示します。
次に、advanced exampleを試してみてください。
高度な例:Weave EvaluationsとLeaderboardsをインファレンスサービスで使用する
インファレンスサービスでWeaveを使用してtrace model callsするだけでなく、evaluate performance、およびpublish a leaderboardすることもできます。次のPythonコードサンプルは、シンプルな質問と回答のデータセットで2つのモデルを比較します。
この例を使用するには、general prerequisitesとAdditional prerequisites for using the API via Pythonを完了する必要があります。
import os
import asyncio
import openai
import weave
from weave.flow import leaderboard
from weave.trace.ref_util import get_ref
# Set the Weave team and project for tracing
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",
# Get your API key from https://wandb.ai/authorize
api_key="<your-api-key>",
# Required for W&B inference usage tracking
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)
次のコードサンプルを実行した後、W&Bアカウントに移動しますhttps://wandb.ai/ and:
次のセクションでは、W&B UIからインファレンスサービスを使用する方法について説明します。UIを介してインファレンスサービスにアクセスする前に、prerequisitesを完了してください。
インファレンスサービスへのアクセス
Weave UIから2つの異なる場所でインファレンスサービスにアクセスできます:
直接リンク
ナビゲートしてhttps://wandb.ai/inference。
Inferenceタブから
- W&Bアカウントに移動しますhttps://wandb.ai/。
- 左側のサイドバーからInferenceを選択します。利用可能なモデルとモデル情報が表示されるページが表示されます。
Playgroundタブから
- 左側のサイドバーからPlaygroundを選択します。Playgroundチャットインターフェースが表示されます。
- LLMドロップダウンリストからW&B Inferenceにマウスオーバーします。利用可能なW&B Inferenceモデルのドロップダウンが右側に表示されます。
- W&B Inferenceモデルのドロップダウンから、以下のことができます:
Playgroundでモデルを試す
一度selected a model using one of the access optionsしたら、Playgroundでモデルを試すことができます。以下のアクションが利用可能です:
複数のモデルを比較する
Playgroundで複数のInferenceモデルを比較できます。比較ビューには2つの異なる場所からアクセスできます:
Inferenceタブから比較ビューにアクセスする
- 左側のサイドバーからInferenceを選択します。利用可能なモデルとモデル情報が表示されるページが表示されます。
- 比較するモデルを選択するには、モデルカードの任意の場所(モデル名を除く)をクリックします。選択を示すためにモデルカードの境界線が青色でハイライト表示されます。
- 比較したい各モデルについてステップ2を繰り返します。
- 選択したカードのいずれかで、Compare N models in the Playgroundボタン(
Nは比較しているモデルの数です。例えば、3つのモデルが選択されている場合、ボタンにはCompare 3 models in the Playgroundと表示されます)をクリックします。比較ビューが開きます。
これで、Playgroundでモデルを比較し、Try a model in the Playgroundで説明されている機能を使用できます。
Playgroundタブから比較ビューにアクセスする
- 左側のサイドバーからPlaygroundを選択します。Playgroundチャットインターフェースが表示されます。
- LLMドロップダウンリストからW&B Inferenceにマウスオーバーします。利用可能なW&B Inferenceモデルのドロップダウンが右側に表示されます。
- ドロップダウンからCompareを選択します。Inferenceタブが表示されます。
- 比較するモデルを選択するには、モデルカードの任意の場所(モデル名を除く)をクリックします。選択を示すためにモデルカードの境界線が青色でハイライト表示されます。
- 比較したい各モデルについてステップ4を繰り返します。
- 選択したカードのいずれかで、Compare N models in the Playground button (
N は比較しているモデルの数です。例えば、3つのモデルが選択されている場合、ボタンは Compare 3 models in the Playground)と表示されます。比較ビューが開きます。
これで、Playgroundでモデルを比較し、Try a model in the Playgroundで説明されている機能を使用できます。
請求と使用情報を表示する
組織の管理者は、W&B UIから直接、現在のInferenceクレジット残高、使用履歴、および今後の請求(該当する場合)を追跡できます:
- 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をご覧ください。
APIエラー
| エラーコード | メッセージ | 原因 | 解決策 |
|---|
| 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 | サーバーが高いトラフィックを経験しています。 | 少し時間をおいてからリクエストを再試行してください。 |