ビジョン モデル のクエリ
この記事では、ビジョンタスクに最適化された基盤モデルのクエリリクエストを作成し、モデルサービングエンドポイントに送信する方法について説明します。
Mosaic AI Model Serving は、さまざまな基盤モデルを使用して画像を理解および分析するための統合 API を提供し、強力なマルチモーダル機能のロックを解除します。この機能は、Databricks基盤モデルAPI の一部として、外部 モデル を提供するサービス エンドポイントの一部として、選択したホスト モデルを通じて使用できます。
必要条件
- 要件を参照してください。
- 選択したクエリ クライアント オプションに基づいて、適切なパッケージをクラスターにインストールします。
クエリの例
from openai import OpenAI
import base64
import httpx
client = OpenAI(
api_key="dapi-your-databricks-token",
base_url="https://example.staging.cloud.databricks.com/serving-endpoints"
)
# encode image
image_url = "https://upload.wikimedia.org/wikipedia/commons/a/a7/Camponotus_flavomarginatus_ant.jpg"
image_data = base64.standard_b64encode(httpx.get(image_url).content).decode("utf-8")
# OpenAI request
completion = client.chat.completions.create(
model="databricks-claude-3-7-sonnet",
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "what's in this image?"},
{
"type": "image_url",
"image_url": {"url": f"data:image/jpeg;base64,{image_data}"},
},
],
}
],
)
print(completion.choices[0].message.content)
Chat Completions API は複数の画像入力をサポートしているため、モデルは各画像を分析し、すべての入力から情報を合成してプロンプトへの応答を生成できます。
from openai import OpenAI
import base64
import httpx
client = OpenAI(
api_key="dapi-your-databricks-token",
base_url="https://example.staging.cloud.databricks.com/serving-endpoints"
)
# Encode multiple images
image1_url = "https://upload.wikimedia.org/wikipedia/commons/thumb/d/dd/Gfp-wisconsin-madison-the-nature-boardwalk.jpg/2560px-Gfp-wisconsin-madison-the-nature-boardwalk.jpg"
image1_data = base64.standard_b64encode(httpx.get(image1_url).content).decode("utf-8")
image2_url = "https://upload.wikimedia.org/wikipedia/commons/thumb/d/dd/Gfp-wisconsin-madison-the-nature-boardwalk.jpg/2560px-Gfp-wisconsin-madison-the-nature-boardwalk.jpg"
image2_data = base64.standard_b64encode(httpx.get(image1_url).content).decode("utf-8")
# OpenAI request
completion = client.chat.completions.create(
model="databricks-claude-3-7-sonnet",
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "What are in these images? Is there any difference between them?"},
{
"type": "image_url",
"image_url": {"url": f"data:image/jpeg;base64,{image1_data}"},
},
{
"type": "image_url",
"image_url": {"url": f"data:image/jpeg;base64,{image2_data}"},
},
],
}
],
)
print(completion.choices[0].message.content)
サポートされているモデル
サポートされているビジョンモデル については、基盤モデルタイプ を参照してください。
入力画像の要件
このセクションは、基盤モデル APIにのみ適用されます。 外部モデルについては、プロバイダーのドキュメントを参照してください。
リクエストごとに複数の画像
- Claude.AIで 最大20枚の画像
- API リクエストの最大 100 枚の画像
- 提供されたすべての画像はリクエストで処理されるため、それらを比較または対比するのに役立ちます。
サイズの制限
- 8000x8000 px より大きい画像は拒否されます。
- 1 つの API リクエストで 20 を超える画像が送信された場合、 画像あたりの最大許容サイズは 2000 x 2000 px です。
画像のサイズ変更に関する推奨事項
- 最適なパフォーマンスを得るには、画像が大きすぎる場合は、アップロードする前にサイズを変更します。
- 画像の 長辺が 1568 ピクセルを超える 場合、またはその サイズが ~1,600 トークンを超える 場合、アスペクト比を維持しつつも、自動的にスケールダウンされます。
- 非常に小さい画像 ( 任意のエッジで 200 ピクセル 未満)は 、パフォーマンスを低下させ る可能性があります。
- レイテンシーを短縮するには、画像を 1.15 メガピクセル 以内、両次元で最大 1568 ピクセルに保ちます。
画質に関する考慮事項
- サポートされている形式: JPEG、PNG、GIF、WebPです。
- 明瞭性: ぼやけた画像やピクセル化された画像は避けてください。
- 画像内のテキスト:
- テキストが 読みやすく 、小さすぎないことを確認します。
- テキストを拡大するためだけに主要な視覚的コンテキストを切り取ることは避けてください。
コストを計算する
このセクションは、基盤モデル APIにのみ適用されます。 外部モデルについては、プロバイダーのドキュメントを参照してください。
要求から基盤モデルへの各イメージは、トークンの使用量に追加されます。
トークンの数と見積もり
サイズ変更が不要な場合は、次のようにトークンを見積もります。 トークン = (幅 px × 高さ px) / 750
さまざまな画像サイズのおおよそのトークン数:
画像サイズ | トークン |
---|---|
200×200ピクセル (0.04 MP) | ~54 |
1000×1000ピクセル (1メガピクセル) | ~1334 |
1092×1092 ピクセル(1.19メガピクセル) | ~1590 |
画像理解の限界
このセクションは、基盤モデル APIにのみ適用されます。 外部モデルについては、プロバイダーのドキュメントを参照してください。
Databricks での Claude モデルの高度な画像理解には制限があります。
- 人物の識別 : 画像内で人物を特定したり、名前を付けたりすることはできません。
- 精度 : 低品質、回転した画像、または非常に小さい画像 (<200 px) を誤って解釈する可能性があります。
- 空間的推論 : アナログ時計やチェスの位置を読み取るなど、正確なレイアウトに苦労しています。
- カウント : おおよそのカウントを提供しますが、多くの小さなオブジェクトでは不正確になる場合があります。
- AI が生成した画像 : 合成画像や偽の画像を確実に検出することはできません。
- 不適切なコンテンツ : 露骨な表現を含む画像やポリシー違反の画像をブロックします。
- ヘルスケア :複雑な医療スキャン(CTやMRIなど)には適していません。診断ツールではありません。
すべての出力を慎重に確認し、特にリスクの高いユースケースでは確認してください。完璧な精度や人間の監視なしに高感度な分析を必要とするタスクにClaudeを使用することは避けてください。