269
228

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GPT-4よりすごいらしいClaude 3が気になったあなたへ

Last updated at Posted at 2024-03-05

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の画面です。左のモデル選択肢に、opussonnethaikuが確認できます。

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の手順も同様です。

us-east-1.console.aws.amazon.com_bedrock_home_region=us-east-1(1280x720) (8).png

モデルが使用できるようになるまで少し時間がかかります。
モデルはマーケットプレイスを経由して利用することになりますので、有効化されるとメールが届くと思います。

有効化できたら、左メニューのチャットを選択し、画面上部のモデルを選択をクリックします。

Claude 3 SonnetまたはHaikuを選択し、適用をクリックします。

お好きなチャットをお楽しみください。

Amazon Bedrockで使う(APIアクセス)

最後にBoto3を使ったアクセス方法です。

Claude 2.1以前はText Completions APIMessages APIに対応していましたが、claude 3はMessages APIのみの対応です。
BedrockではこれまでText Completions APIの形式で記述する方法が一般的でしたので、注意が必要です。

Messages 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でエンコードして含めます。

Messages APIを使用
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にふれる方にもおすすめの記事です。

269
228
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
269
228

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?