Claude 3の画像認識能力を試す - Opus/Sonnet/Haikuの違いは?

本記事のコードは[github](https://github.com/cygkichi/blog/blob/main/claude3-vision/claud3-vision.ipynb)に保存しています。
## はじめに

　Claude 3 の評判が良いですね！XでもClaude 3 Opusは、GPT-4より良い回答ができるといった声をよく聞きます。
 
https://www.anthropic.com/news/claude-3-family

　個人的に気になっている点は、Claude 3 の全モデルが画像の読み取りに対応している点です。画像の読み取りはOpenAIのGPT-4Vでもできますがいくつか制限があります。
 
  * GPT-4Vは英語に限り、日本語には制限がある（※一応、使える）
  * GPT-4-turboしか使えず、GPT-3.5-turboでは使用できない

　今回登場したClaude 3は日本語に対応しており、なんと小さいモデル(Haiku)でも画像の読み取りに対応しています！そのため、じっくり考えて回答してほしいケースではOpusを使い、素早く回答が欲しいケースではHaikuを使うなど、使い分けることが期待できます。

　ちなみに、Claude 3 Opus/Sonnet/HaikuとGPT-4Vの精度比較がClaudeのWebサイトに載っていました。これによると文書や図を参照した回答はGPT-4VよりもHaikuのほうが高いそうです！？（ホントに！？）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/75296/671d00fc-6e56-b311-efc3-dc021786016a.png)

　そこで本記事では、Claude 3 Opus/Sonnet/Haikuの画像読み取りの性能を比較してみます。

## 今回のタスク

　餃子の王将のメニューに対して、いくつか質問してみて回答や応答速度を比較します。段階的に思考できるよう「回答は順序立ててステップごとに出力してください。」と質問文に追記します。画像のサイズは、3193 x 2489ピクセルです。


<img width="450" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/75296/e3c18191-72dc-f586-42d1-2af5f9498fd3.jpeg">

　上記の画像をもとに、以下の4つの質問をします。No.4はおまけで、正解はありません。
|No|質問|正解|
|:-:|:-|:-|
|1|ザ・北浜タワーセットの価格を教えてください。|1000円|
|2|牛パワーセットのライスを大盛りにしたときの価格を教えて下さい。|950円|
|3|餃子とみそ汁が食べられるメニューを教えてください。|牛パワーセット|
|4|私はダイエット中の30代男性です。ランチにおすすめのメニューはどれですか？|ー|



## 結果

各回答を以下にまとめます。Chain-of-Thoughtの過程が気になる方は、[github](https://github.com/cygkichi/blog/blob/main/claude3-vision/result_blog.csv)を確認ください。

#### No.1 「ザ・北浜タワーセットの価格を教えてください。」

|モデル|正誤|回答(思考部分略)|
|:-:|:-:|:-|
|Opus|✅️|以上より、ザ・北浜タワーセットの価格は1000円+税であることがわかります。|
|Sonnet|✅️|したがって、ザ・北浜タワーセットの価格は¥1000(税込)です。|
|Haiku|✅️|1. ザ・北浜タワーセットの価格は1,000円+税です。|

情報を抽出するだけなので、すべてのモデルで正解しています。

#### No.2 「牛パワーセットのライスを大盛りにしたときの価格を教えて下さい。」

|モデル|正誤|回答(一部略)|
|:-:|:-:|:-|
|Opus|✅️|したがって、牛パワーセットのライスを大盛りにしたときの価格は950円(税込)です。|
|Sonnet|❌️|ステップ4: したがって、牛パワーセットのライスを大盛りにした場合の価格は、900円+100円=1,000円(+税)と推測できます。|
|Haiku|❌️|ステップ3: したがって、牛パワーセットのライスを大盛りにした場合の価格は、基本の900円+税に大盛りの追加料金が加算されることになりますが、その追加料金は明示されていないため、正確な価格を特定することはできません。|

　Opusは正解しています。SonnetやHaikuも、途中の思考ステップは問題ないのですが、ライス大盛り50円アップという表記は見逃しているようです。
 
##### No.3 「餃子とみそ汁が食べられるメニューを教えてください。」
|モデル|正誤|回答(一部略)|
|:-:|:-:|:-|
|Opus|❌️|1. 「ザ・北浜タワーセット」を選択します。<略>2. 「みそ汁」を単品で追加注文します。<略>合計金額は1130円+税になります。|
|Sonnet|❌️|ステップ4: したがって、質問の「餃子とみそ汁が食べられるメニュー」としては、「元気バリバリセット」が該当します。|
|Haiku|❌️|ですので、餃子とみそ汁が食べられるメニューは「証券アナリストセット」です。|

　残念ながら、すべてのモデルで不正解です。理由は、文字ではなく写真から探していることが原因のようです。
 　そこで、「料理の写真は使わずに、メニューに記載されている文字の情報だけから推測してください。」とプロンプトに追記してみます。そうすると以下のように回答できることもあります。（なおOpusとHaikuは失敗。パワーを生パフェと読んでいる点は大目に見ます)
```
#claude-3-sonnet-20240229の回答
ステップ1: メニューを注意深く確認し、餃子とみそ汁が含まれているセットを探します。
ステップ2: 「試食アナリストセット」には、餃子と正油ラーメン(小)が含まれており、みそ汁は含まれていません。
ステップ3: 「生パフェセット」には、餃子と牛焼肉、みそ汁が含まれています。
ステップ4: したがって、餃子とみそ汁が食べられるメニューは「生パフェセット」です。
```
##### No.4 「私はダイエット中の30代男性です。ランチにおすすめのメニューはどれですか。」
* Opus
``` text
A: ダイエット中の30代男性にランチでおすすめのメニューは、以下のステップで選ぶのがよいでしょう。

Step 1: カロリーが比較的低めのメニューを選ぶ
画像のメニューの中では、「道修町ラーメンセット」が980円で最もカロリーが低そうです。ラーメンはあっさりしていて、野菜も取れるのでバランスが良いでしょう。

Step 2: 脂肪分の少ないメニューを選ぶ
「ザ・北浜タワーセット」は鶏の唐揚げが含まれており、比較的脂肪分が高そうです。一方、「道修町ラーメンセット」は脂肪分控えめに見えます。

Step 3: バランスの取れた献立のセットを選ぶ
「道修町ラーメンセット」には、ラーメンに加えて餃子や小鉢も付いています。主食・主菜・副菜のバランスが整っていて良いでしょう。

以上のステップから、ダイエット中の30代男性にランチでおすすめなのは、「道修町ラーメンセット」だと思われます。適度なボリュームで栄養バランスが良く、比較的カロリーや脂肪分も控えめなので、ダイエット中の食事に適しているでしょう。
```
* Sonnet
``` text
ダイエット中の30代男性におすすめのランチメニューを選ぶ際は、以下のステップを踏むことをお勧めします。

ステップ1: 低カロリーで栄養バランスの良いメニューを探す。
画像を見ると、「道修町ラーメンセット」が980円で、ラーメンと小盛りの炒飯が含まれています。ラーメンは比較的低カロリーで、炒飯は適量であれば問題ありません。

ステップ2: 野菜が多く含まれるメニューを選ぶ。
「試券アナリストセット」が880円で、ラーメン小と野菜炒めが含まれています。野菜が多く含まれているので、ダイエット中の方に適しています。

ステップ3: 脂質の高いメニューは避ける。
「牛パラーセット」は900円ですが、牛肉料理が含まれているので脂質が高くなる可能性があります。ダイエット中は控えめが良いでしょう。

ステップ4: 価格も考慮する。
上記2つのセットは900円以下と比較的リーズナブルな価格です。

総合的に見ると、「道修町ラーメンセット」または「試券アナリストセット」がダイエット中の30代男性におすすめのランチメニューになります。
```
* Haiku
``` text
はい、ダイエット中の30代男性にとって、以下のメニューがおすすめです。

ステップ1: 「証券アナリストセット」が適切です。このセットには、ラーメン、焼飯、玉子焼きなどのバランスの良い食事が含まれており、カロリーも控えめです。

ステップ2: 「生パワーセット」も良い選択肢です。肉料理と野菜料理のバランスが取れており、ダイエット中の方にも適しています。

ステップ3: 「元気バリバリセット」は、チキン、ごはん、みそ汁など、バランスの良い和食メニューが揃っているため、ダイエット中の方にもおすすめです。

ステップ4: これらのメニューは、適度な量と栄養バランスが取れているため、ダイエット中の30代男性にとって良い選択肢だと思います。
```

こういったオープンクエスチョンな質問にはどれもそれっぽく回答してくれますね。

### 実行時間や料金の比較

　各回答を得るために必要とした実行時間、コスト、トークン数をグラフにまとめました。また画像のサイズを25%縮めたものでも同様の質問をしました。

 * 実行時間は、モデルが小さく、回答が短いほど実行時間は短くります。一方で、画像サイズを縮めてもそれほど短くなりません。
 * コストは、やはりHaikuはかなり安いですね。一方でOpusは回答ひとつにつき数円～10円と高いですね。

few-shotなど改善の余地がまだあることを考えると、Haikuはかなりコスパが良さそうなモデルに感じました。
 
![8c35ceb7-7d7f-41c5-b65b-653bc9d9fe63.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/75296/dd027119-138d-b5b0-66e3-1926333bf322.png)

## まとめ
　Claude 3 Opus/Sonnet/Haiku のVision機能を使用して、回答内容や実行時間を確認してみました。個人的な感想ですが、Haikuは安く速いのでプロンプトエンジニアリングを頑張ればかなり強力なツールになるのではないかと思いました。