ハイブリッド推論モデル Claude 3.7 Sonnet が登場！ AWSのBedrockから宇宙最速で使ってみた

:::note
5:23更新：ようやくAmazon Bedrockからも利用できたため、拡張思考APIのサンプルコードを末尾に掲載しました！
:::


# Anthropicの最新モデルがついに来た！

日本時間2025年2月25日未明、OpenAIのライバルであるアンソロピック社より、最新モデルClaude 3.7 Sonnetが発表されました。

https://www.anthropic.com/news/claude-3-7-sonnet

なんと史上初の「ハイブリッド推論モデル」で、最近流行りの「深く考える」モードと通常の素早い推論を使い分けられる新しいLLMということです。

AWSのAmazon Bedrockからも利用可能です。

https://aws.amazon.com/jp/blogs/aws/anthropics-claude-3-7-sonnet-the-first-hybrid-reasoning-model-is-now-available-in-amazon-bedrock/

また、エージェント型のコーディングツール「Claude Code」のプレビュー版も併せて発表しました。


# 発表① Claude 3.7 Sonnet

すでにClaude.aiにて、無料プランでも利用可能です。

https://claude.ai/new

思考モードを選択できるようになっています。

![スクリーン ショット 2025-02-25 に 03.51.25 午前.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1633856/7303fbe9-234d-4be6-b30f-8300d60bbe3e.png)

APIは、Anthropic API、Amazon Bedrock、Vertex AIで利用可能となっています。


### 「ハイブリッド推論」とは？

Claude 3.7 Sonnetは、従来通りの「標準モード」と「拡張思考モード」を選択して使えるとのこと。

- 標準モード：前モデルのClaude 3.5 Sonnetのアップグレード版に相当
- 拡張思考モード：理系タスクやコーディングなどで性能が向上する

今回のモデル開発において、Anthropicは以下を工夫したようです。

- APIからの利用時、思考の「予算」トークン数を制限することで、速度と品質のトレードオフを調整できる
- モデルの開発時、理系の競技問題よりも現実世界のタスクを重視して学習を行っている

Claudeが元々得意としていたプログラミング能力はもちろん、AIエージェントとしてのツール利用の性能でも、Claude 3.5 SonnetやOpenAI o1を上回っています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1633856/d33275d0-131a-49ec-b4c8-9d58ba1de622.png)
*（出典：Anthropic公式サイトより）*

拡張思考については、以下のアナウンスで詳細が紹介されています。

https://www.anthropic.com/news/visible-extended-thinking

なお、APIから拡張思考モードを使う場合は以下ドキュメントを参照ください。

出力トークンも大幅に上限拡張されていますね。

https://docs.anthropic.com/en/docs/build-with-claude/extended-thinking


### 気になるお値段は…据え置き！

API利用時の価格は、前モデルのClaude 3.5 Sonnetと同じ入出力トークン単価でした。思考モデルでこれはありがたいですね。

![スクリーン ショット 2025-02-25 に 04.23.33 午前.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1633856/0176446a-1e80-4db2-b62b-b9cb21297160.png)
*（出典：Anthropic公式サイトより）*

https://www.anthropic.com/pricing#anthropic-api


# 発表② Claude Code

こちらは同時発表のエージェント型コーディングツールです。リサーチプレビューとして、GitHubリポジトリが公開されており試すことができます。

https://github.com/anthropics/claude-code

デモ動画も公開されています。

![スクリーン ショット 2025-02-25 に 04.15.25 午前.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1633856/7fef063c-1d51-4b45-a26f-467c1a723abd.png)


- https://www.youtube.com/watch?v=AJpK3YTTKZ4

ざっくり以下ができるようです。最近流行りのDevinなどと似たツールといえそうです。

- コードの検索と読み取り
- ファイルの編集
- テストの作成と実行
- GitHubへのコミットとプッシュ
- CLIの利用

またClaude Codeの目標は、開発者のモデル利用方法を理解することによって、Claude自体のモデル改善に役立てることだそうです。


# 発表③ Claude.aiからGitHubに接続可能に

おまけ的に、Claude公式チャットから接続可能なデータソースとしてGitHubがサポートされました。無料プランを含めて適用されています。

![スクリーン ショット 2025-02-25 に 04.20.50 午前.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1633856/9e947dc3-ac90-4335-8a1e-ae95a34fadd8.png)


これまでもGoogleドライブに接続可能でしたが、自分のコードリポジトリを参照したQ&Aなどに利用しやすくなりますね！


# 実際に使ってみた

Claude.aiから拡張思考モードで試してみます。ちょっと難しい算数の文章題を3つ解いてもらいました。

https://www.nichinoken.co.jp/shikakumaru/202103_sa

他社の思考モデルと同様、Reasoning中は思考過程が表示されるようになっています。

![スクリーン ショット 2025-02-25 に 04.28.32 午前.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1633856/c450efcd-b52e-4ddf-8e46-79cde8512037.png)

1分ほどの思考ののち、文章題の回答が出ました。なんと3問とも正解しています！

```
映画館の営業スケジュールと衛生ルールに関する問題を解いていきます。

## （問1）閉館時刻の計算

現在のスケジュール：
- 上映時間：40分
- 清掃時間：20分
- 1サイクル：60分
- 1日12回上映（9:00～21:00）

新しい衛生ルールによるスケジュール：
- 上映時間：40分
- 消毒時間：10分（新規追加）
- 清掃時間：20分（換気10分を含む）
- 1サイクル：70分

同じ12回の上映をするには：
- 準備時間：30分
- 上映12回：12回 × 70分 = 840分
- 合計：30分 + 840分 = 870分 = 14時間30分

8:30開館から14時間30分後は23:00になります。

## （問2）上映回数の計算

新しい条件：
- 上映時間：40分
- 消毒時間：10分
- 換気時間：10分（清掃とは別）
- 清掃時間：20分
- 1サイクル：80分

利用可能時間：
- 営業時間：8:30～21:00（12時間30分）
- 準備時間：30分
- 実質利用可能：12時間

最後の上映も含めて21:00までに全ての作業を終える必要があります。
最後の上映後に消毒・換気・清掃（40分）が必要なので、最後の上映は20:20に終わる必要があります。

スケジュールを確認：
- 8:30～9:00：準備
- 9:00～9:40：上映1回目
- 9:40～10:20：消毒・換気・清掃
...（以下同様）
- 19:40～20:20：上映9回目
- 20:20～21:00：消毒・換気・清掃

したがって、1日の上映回数は9回になります。

## （問3）お客さんの減少数

元のスケジュール：
- 上映回数：12回
- 1回あたりの座席数：60席
- 1日の最大客数：12回 × 60席 = 720人

新しいスケジュール：
- 上映回数：9回
- 1回あたりの座席数：30席（座席制限）
- 1日の最大客数：9回 × 30席 = 270人

お客さんの減少数：720人 - 270人 = 450人
```

この問題はClaude 3.5 Sonnetだと2/3問しか正解できず、OpenAI o1をはじめReasoning系のモデルだけが全問正解できていたものです。

これでClaudeでも、複雑な論理思考を求められるタスクをこなせるようになったと言えそうです！


# AWSのBedrockから拡張思考APIを使ってみた

AWSではバージニア・オハイオ・オレゴンの3リージョンでモデルが一覧に出現しており、モデルアクセスの申請を試行し続けていたところ、オハイオリージョンを利用可能にすることができました。

いずれのリージョンも「クロスリージョン推論」のみの表示となっているため、まだコンソールに出現していない推論プロファイルを推測して入力する必要があります。（モデルの実体はどこにいるんだろう…？）

![スクリーンショット 2025-02-25 6.30.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1633856/99652323-c715-452d-b45d-acae2c3ed162.png)

以下のコードでConverse APIから利用できます。
早速、Extended ThinkingとBudget Tokensも指定してみました。

```py: sonnet37.py
import boto3
import json

bedrock = boto3.client("bedrock-runtime", region_name="us-east-2")

response = bedrock.converse(
    modelId="us.anthropic.claude-3-7-sonnet-20250219-v1:0",
    messages=[
        {
            "role": "user",
            "content": [
                {"text": "あなたは本当にClaude 3.7 Sonnetですか？"}
            ]
        }
    ],
    inferenceConfig={"maxTokens": 20000},
    additionalModelRequestFields={
        "thinking": {
            "type": "enabled", # 拡張思考を有効化
            "budget_tokens": 16000 # 思考用のトークン予算
        }
    }
)

text = response["output"]["message"]["content"][1]["text"]
print(text)
```

なお、Bedrockのドキュメントはまだ更新されていないのですが、Anthropic APIのドキュメントをClaude 3.7 Sonnetに参照させて、アドバイスをもらったところ上記のようにパラメーターをエスパーできました 🎉

`additionalModelRequestFields` の利用を提案してきたので、ナレッジカットオフはわりあい新しい（少なくともConverse APIが登場した2024年の春以降？）と思われます。