2024/3/16 Haikuがリリースされたので内容更新しました。
Claude 3、気になりますよね
今まで触ったことないけど、興味を持った方へ、入門するところまでのご案内です。
とりあえずチャットがしたい
claude.aiにアクセスして、アカウントを作成します。
メールアドレスを入力する方法と、Googleのアカウントと紐付ける方法があります。
私はGoogleアカウントとの紐づけを行いました。
ログインができたら、もう、チャットができます。ChatGPTのような感じです。
日本語も自然に回答してくれます。
左下にClaude 3 Sonnet
とあります。これはClaude 3のモデルの名称で、SonnetはClaude 3のシリーズの中で真ん中のモデルです。
- Haiku - ハイク
- Sonnet - ソネット
- Opus - オーパス
名前からモデルの特徴を想像してもらいました。概ね特徴を捉えているのではないでしょうか。
Claude 3の特徴として、文字のプロンプトだけでなく画像もインプットにできます。試しに先程の3つのモデルの画像を渡して見ましょう。
画像にしてから渡していますので、画像から文字情報を上手に抽出しているのだと思います。
3つのモデルのうち、HaikuとOpusは、Claude Proのサブスクリプションを有効にすると使えるようになります。ChatGPT Plusみたいなものです。
APIでアクセスがしたい
APIを使用したい場合は、console.anthropic.comにアクセスします。チャットの利用と入り口が異なります。
こちらもメールアドレスかGoogleアカウントでログインすることで利用可能です。
ログイン直後の画面です。テスト用に5ドルもらえるのもOpenAIと同じです。
Workbenchの画面です。左のモデル選択肢に、opus
、sonnet
、haiku
が確認できます。
APIキーが発行できます。
APIキーが発行できたら、SDKを使ってアクセスできます。SDKはPythonとTypeScriptのものが提供されています。
Amazon Bedrockで使う
Claude 3 Sonnetは、Anthropicが提供しているサービスだけではなく、AWSのAmazon BedrockとGoogle CloudのVertex AI Model Gardenで使用できます。(後者は2024/3/5時点でプライベートプレビューとのこと)
BedrockではSonnetとHaikuがバージニア北部リージョンとオレゴンリージョンで利用可能です。Opusはカミングスーンとのことです。(2024/3/16時点)
Bedrockから使ってみましょう。
マネージメントコンソールにログインして、Bedrockの画面を表示します。
左のメニューのモデルアクセス
をクリックし、右上のモデルアクセス管理
をクリックします。
ユースケースを入力し、Claude 3 Sonnetを有効にします。(以下の画面キャプチャは実施後のものです) Haikuの手順も同様です。
モデルが使用できるようになるまで少し時間がかかります。
モデルはマーケットプレイスを経由して利用することになりますので、有効化されるとメールが届くと思います。
有効化できたら、左メニューのチャットを選択し、画面上部のモデルを選択
をクリックします。
Claude 3 SonnetまたはHaikuを選択し、適用
をクリックします。
お好きなチャットをお楽しみください。
Amazon Bedrockで使う(APIアクセス)
最後にBoto3を使ったアクセス方法です。
Claude 2.1以前はText Completions API
とMessages API
に対応していましたが、claude 3はMessages API
のみの対応です。
BedrockではこれまでText Completions API
の形式で記述する方法が一般的でしたので、注意が必要です。
import json
import boto3
client = boto3.client("bedrock-runtime")
body = {
"anthropic_version": "bedrock-2023-05-31",
"max_tokens": 300,
"system": "あなたは優秀なAIボットです",
"messages": [
{
"role": "user",
"content": [
{"type": "text", "text": "こんにちは。あなたはどんなことができますか?"}
],
}
],
}
response = client.invoke_model(
modelId="anthropic.claude-3-sonnet-20240229-v1:0", body=json.dumps(body)
)
response_body = json.loads(response.get("body").read())
print(json.dumps(response_body, indent=2, ensure_ascii=False))
{
"id": "msg_01WvAdiNE8jyrzMFZ1w7tNwW",
"type": "message",
"role": "assistant",
"content": [
{
"type": "text",
"text": "こんにちは。私はChatGPTと呼ばれる対話型AIです。自然言語処理の技術を使って、様々な質問に答えたり、タスクをサポートすることができます。以下のようなことが可能です。\n\n- 質疑応答: あらゆるジャンルの質問に対して詳細な回答を提供できます。\n- 作文支援: 文書やエッセイ、小説などの執筆をサポートできます。\n- プログラミング: コードの解説や修正、新しいコードの作成などにも対応できます。\n- 分析とリサーチ: データの分析や調査、発表資料の作成などもできます。\n- 知的対話: 人間とさまざまな話題について知的で建設的な対話を行えます。\n\n人工知能ですので、感情を持つことはできませんが、できる限り丁寧で分かりやすい対話を心がけています。何か不明な点があればいつでも質問してく"
}
],
"model": "claude-3-sonnet-28k-20240229",
"stop_reason": "max_tokens",
"stop_sequence": null,
"usage": {
"input_tokens": 38,
"output_tokens": 300
}
}
イメージをアップロードする際はmessages
の中に画像をBase64でエンコードして含めます。
import base64
import json
import boto3
with open("image.png", mode="rb") as f:
data = base64.b64encode(f.read()).decode("utf-8")
client = boto3.client("bedrock-runtime")
body = {
"anthropic_version": "bedrock-2023-05-31",
"max_tokens": 300,
"system": "あなたは優秀なAIボットです",
"messages": [
{
"role": "user",
"content": [
{
"type": "image",
"source": {
"type": "base64",
"media_type": "image/png",
"data": data,
},
},
{
"type": "text",
"text": "Claudeのモデルのそれぞれの名称と、特徴を教えて",
},
],
}
],
}
response = client.invoke_model(
modelId="anthropic.claude-3-sonnet-20240229-v1:0", body=json.dumps(body)
)
response_body = json.loads(response.get("body").read())
print(json.dumps(response_body, indent=2, ensure_ascii=False))
{
"id": "msg_01A976nwAHsyKrTvS1E9imho",
"type": "message",
"role": "assistant",
"content": [
{
"type": "text",
"text": "この画像は、Anthropic社が提供するAIモデルの違いを比較しています。\n\n一番左側のHaikuは、「軽量で高速」なモデルで、小規模のタスクに適しています。\n\n真ん中のSonnetは、「パフォーマンスと速度を兼ね備えた」モデルで、効率的な大量処理タスクに適しています。\n\n一番右側のOpusは、「最も知能が高い」モデルで、複雑な分析、マルチステップのタスク、高次の数学やコーディングなどの難しい作業に対応できます。\n\n各モデルの能力は異なりますが、軽量から高機能まで、ユースケースに合わせて選択できるよう設計されています。"
}
],
"model": "claude-3-sonnet-28k-20240229",
"stop_reason": "end_turn",
"stop_sequence": null,
"usage": {
"input_tokens": 1275,
"output_tokens": 230
}
}
まとめ
Claude 3に興味を持ったあなた、ぜひ、AWSのBedrockでClaudeを堪能しましょう。
BedrockではClaude以外にも様々なモデルが利用可能です。最近だとMistral AIのMistral 7BとMixtral 8X7Bも利用可能になりました。
Bedrock入門記事はQiitaにもたくさんあります。こちらはAWSアカウントの作成方法から載っていますので、初めてAWSにふれる方にもおすすめの記事です。