![見出し画像](https://assets.st-note.com/production/uploads/images/133285769/rectangle_large_type_2_871b58688afd2959ead802eb9fe06135.png?width=1200)
Google Colab で Claude 3 の Vision を試す
「Google Colab」で「Claude 3」の「Vision」を試したので、まとめました。
前回
1. Vision
「Claude 3」には、画像を理解して分析できる「Vision」機能が搭載されています。テキストと画像の両方を入力して会話することができます。
2. Visionの入力画像
2-1. 画像サイズ
画像の長辺が 1568ピクセル を超える場合、または画像が約 1600トークン を超える場合、サイズ制限内になるまでアスペクト比を維持しながら縮小されます。入力画像が大きすぎてサイズ変更する場合、time-to-first-tokenのレイテンシが増加します。特定のエッジに 200ピクセル未満の非常に小さな画像があると、パフォーマンスが低下する可能性があります。
以下は、一般的なアスペクト比に合わせてサイズ変更されない、APIで受け入れられる最大画像サイズです。
・1:1 : 1092x1092ピクセル
・3:4 : 951x1268ピクセル
・2:3 : 896x1344ピクセル
・9:16 : 819x1456ピクセル
・1:2 : 784x1568ピクセル
2-2. 画像のベストプラクティス
画像のベストプラクティスは、次のとおりです。
・画像の鮮明さ : 画像が鮮明で、ぼやけすぎたり、ピクセル化されすぎたりしていないことを確認します。Claudeは、不鮮明な画像または低品質の画像を正確に解釈するのに苦労する可能性があります。
・画像の配置 : ドキュメントクエリの配置と同様に、Claudeは画像がテキストの前にある場合に最適に機能します。画像をテキストの後に配置したり、テキストを補間したりしてもパフォーマンスは良好ですが、ユースケースで許容される場合は、画像、テキストの順に構成することをお勧めします。詳しくは、「vision prompting tips」を参照してください。
・テキスト : 画像に重要なテキストが含まれている場合は、読みやすく、小さすぎないことを確認してください。ただし、テキストを拡大するためだけに主要なビジュアルコンテキストを切り取ることは避けてください。
・複数の画像 : 1つのリクエストに複数の画像を含めることができます ( claude.aの場合は最大5個、APIリクエストの場合は最大20個)。Claudeは、応答を作成する際に、提供されたすべての画像を分析します。これは、画像を比較または対照するのに役立ちます。
3. Colabでの実行
Colabでの実行手順は、次のとおりです。
(1) パッケージのインストール。
# パッケージのインストール
!pip install anthropic
(2) 環境変数の準備。
左端の鍵アイコンで「ANTHROPIC_API_KEY」を設定してからセルを実行してください。
# 環境変数の準備 (左端の鍵アイコンでANTHROPIC_API_KEYを設定)
import os
from google.colab import userdata
os.environ["ANTHROPIC_API_KEY"] = userdata.get("ANTHROPIC_API_KEY")
(3) クライアントの準備。
import anthropic
# クライアントの準備
client = anthropic.Anthropic()
(4) 画像の準備。
from IPython.display import Image, display
import base64
import httpx
# 画像の取得
image1_url = "https://assets.st-note.com/img/1702501354256-Ehom23FmWr.jpg"
image1_media_type = "image/jpeg"
image1_data = base64.b64encode(httpx.get(image1_url).content).decode("utf-8")
# 確認
display(Image(url=f"data:image/jpeg;base64,{image1_data}"))
![](https://assets.st-note.com/img/1709882930240-2rLcVSzVFs.jpg)
(4) 推論の実行。
# 推論の実行
message = client.messages.create(
model="claude-3-opus-20240229",
max_tokens=1024,
messages=[
{
"role": "user",
"content": [
{
"type": "image",
"source": {
"type": "base64",
"media_type": image1_media_type,
"data": image1_data,
},
},
{
"type": "text",
"text": "この画像を説明してください"
}
],
}
],
)
print(message)
Message(
id='msg_01Ln5LhqMocStYdLBurqcZhV',
content=[ContentBlock(
text='この画像は、プリンターの上に座っている白と黒の模様の猫を捉えたものです。猫は少し驚いたような表情をしており、後ろ足の近くに青いカップが置かれています。プリンターは木目調の机の上に置かれており、猫の毛並みは柔らかそうで、ふわふわしているのがよく分かります。全体的に、猫がプリンターの上で寛いでいる様子が印象的な1枚です。',
type='text'
)],
model='claude-3-opus-20240229',
role='assistant',
stop_reason='end_turn',
stop_sequence=None,
type='message',
usage=Usage(input_tokens=573, output_tokens=153)
)
この記事が気に入ったらサポートをしてみませんか?