📸

Open AI マルチモーダルモデルの画像認識能力比較

2025/01/08に公開

はじめに

この記事で想定している読者の方:

  • マルチモーダルモデルの画像認識能力について具体例を知りたい方
  • マルチモーダルモデルの使用用途がいまいちピンとこない方
  • マルチモーダルモデルのあれこれ(API経由での使い方・使用制限・種類)を知りたい方

早いものでOpen AIがマルチモーダル機能が強化されたLLMであるgpt-4oを公開してから8ヶ月程度が経ちました。その間にも様々なマルチモーダルモデルが公開され, 最新のマルチモーダル機能を搭載したモデルであるo3の公開が直前に迫っています。(o3についての公式YouTube動画)

そこでこの記事では, これまで登場したOpen AIのマルチモーダルモデル3種類について, その画像認識能力をLLMの特性を踏まえた4つのタスクで実験し差を明らかにしようと思います。実験は日本語をベースに行い, 業務などで活用できそうなシーンも想定しているため, ぜひ「LLMを普段使いはしたいけど専門的な話はちょっと...」という方もご覧になってください!

TL;DR

今回実験を行ったモデルはgpt-4o, gpt-4o-mini, o1の3種類です! 簡単な使い分けとしては以下の通りに考察されます。

  • 画像認識能力とタスク実行能力をコストパフォーマンスと両立させたい
    gpt-4oがオススメ
  • 簡単な画像認識+簡単なタスクを実行したい
    gpt-4o-miniがオススメ
  • 画像認識に加えて複雑なタスクを実行させたい・出力が重要なタスクをさせたい
    o1がオススメ

モデルの選定・使用方法

今回はOpenAIのマルチモーダルLLMを対象としました。選定したLLMは以下の3種類でOpen AI APIから使用できるものについてはPythonからAPI呼び出し, APIを使用できないモデルについてはchatgptを用いて手動で実験を行いました。(各モデルのチェックポイントは右の括弧内に記載してあります。)

  • gpt-4o-mini (gpt-4o-mini-2024-07-18)
  • gpt-4o (gpt-4o-2024-11-20)
  • o1 (chatgpt o1)

実験タスクについて

対象となるモデルについて以下の4種類のタスクを行わせてその結果を比較しました。タスクは全て10段階で点数がつくように設計し, プロンプトなどは日本語で記述し普段の使用に近づけています。

タスク1(文字認識)

このタスクでは古典的な画像をクラスに分類するタスクを実施します。使用するデータセットはkaggleの以下のデータセットであり, これを用いて10枚のCAPTCHA画像を文字として認識するタスクを実行します。Kaggleでの一般的な正答率は1文字あたり90%程度が高い方であるため, 連続する5文字での全体正答率は59%程度であることが予想されます。

ただし, OpenAI公式にて「セキュリティ上の問題でCAPTCHAを扱えないようにした」(リンク)との記載があったため, その部分の真偽を確かめるという補助的な目標も存在します。

https://www.kaggle.com/datasets/fournierp/captcha-version-2-images/code

問題例

CAPTCHA

タスク2(スライド認識)

このタスクでは架空の人物の自己紹介スライド画像中の文字(+画像)を認識してそれに対する質問応答を実施します。使用するデータは以下の作成したスライドとし, 質問は以下の10個とします。質問は後半になるほど考える必要があり難しくなるように設計されています。

自己紹介スライド

質問10種類

  1. この自己紹介スライドにて紹介されている人の名前を答えてください。

    → A. 山田太郎

  2. この人の入社年月を教えてください。

    → A. 2024年12月

  3. この人の出身大学を教えてください。

    → A. 東京虚構大学

  4. 自己紹介スライドで最も短く述べられているセクションの名前を教えてください。

    → A. 今までの失敗

  5. 彼の趣味はなんですか?

    → A. ランニングと映画鑑賞

  6. その趣味の中で自慢できる事柄はなんですか?

    → A. 100mを10秒台で走れること

  7. 彼の担当業務に「新規クラアントへの営業」は含まれますか?

    → A. 含まれない(人事部であり述べられていない)

  8. 彼に相談する事柄として「身内の強盗被害の刑事訴訟」は適していますか?

    → A. 適さない(民事専門であると述べられているため)

  9. 彼を誘うなら「映画・マラソン・キャンプ」のどれが適していませんか?

    → A. キャンプ(述べられていない)

  10. 彼の趣味として紹介される写真の中で何色の上着を着ていますか?

    → A. 赤色(えんじ色)

タスク3(グラフ認識)

このタスクでは画像中のグラフ(フローチャート)を認識し, それに対する質問応答を行います。使用するデータは以下の仮想のECサイトの利用フローチャートとし, 質問も同様に後半になるほど難しい10個としています。

フローチャート

質問10種類

  1. このECサイトは利用登録が必要ですか?

    → A. 必要

  2. このECサイトにはカートに商品を追加した後も購入を続けることができますか?

    → A. できる

  3. 配送情報の入力と支払い情報の入力はどちらが先ですか?

    → A. 配送情報

  4. このサイトではレビューを書くのは購入後ですか?それとも受け取り後ですか?

    → A. 受け取り後

  5. このサイトには商品をカテゴリから選択することはできますか?

    → A. できる

  6. このサイトにはサポートへの問い合わせ機能がありますか?

    → A. できない

  7. このフローチャートでは購入しないことを決定するのはどのノードですか?

    → A. 「商品詳細ページを確認」

  8. 会員登録に必要なメールアドレスは何に用いられていると考えられますか?

    → A. 注文確認メールの配送

  9. 会員ではない人は「ECサイトにアクセス」から「ログイン」まで何ステップありますか?(その二つのノードは含みません)

    → A. 3ステップ

  10. ログインからプロセス終了まで商品を購入する場合は最短で何ステップありますか?(その二つのノードは含みません)

    → A. 14ステップ

タスク4(数字認識)

このタスクでは単純な手書き文字を読み取るだけでなく, それの計算までを行うことでLLMの認識能力+それを元にしたタスク実行能力を評価します。実験は以下のデータセット中から10枚の画像を選び, それを提示し計算結果があっていれば正解とします。計算は簡単な四則演算から括弧を用いたやや複雑な四則演算までの難易度に設定しています。

https://www.kaggle.com/datasets/govindaramsriram/handwritten-math-expressions-dataset

問題例

計算問題

結果

4種類のタスクについてそれぞれのモデルに実行させた際の結果は以下の通りになりました。

gpt-4o-mini gpt-4o o1
タスク1(文字認識) 2/10 7/10 0/10
タスク2(スライド認識) 2/10 9/10 10/10
タスク3(グラフ認識) 6/10 8/10 8/10
タスク4(数字認識) 10/10 10/10 10/10

タスク1の結果について

タスク1に関しては4o-miniは単純な精度不足で読めていない, 4oはある程度の精度で読めている, o1はCAPTCHAであることを認識し安全上の理由から「要望には答えられない」と全てに回答する結果になりました。以上の事柄から, 画像を認識できているという点において4oとo1は同じレベルであると考えられますが, 4o-miniは認識が上手くいかないレベルであると考察されます。また, o1のコンプライアンスの高さも確認できた結果となりました。

タスク2の結果について

スライド認識に関しては, 4o, o1はほとんど正解できていたものの, 4oは回答があっていていも少し理由が間違っていることが見られました。また, 4o-miniに関しては実行時の差が非常に大きく, 正解数が1~6問で変化しておりかなち実行時のブレが多い様子も観察されました。また, 以下の実際の解答例からも分かる通り, o1はこちらが出題した意図を正しく汲み取って出力中で補足していることが見て取れました。

gpt-4o-miniの出力(長いため折りたたみ)
  1. 山田 太郎
  2. 2024年12月
  3. 都立空間高等学校
  4. 趣味
  5. ランニング
  6. 100mを10秒台で走れること
  7. はい
  8. はい
  9. 映画
  10. 黒色の上着
gpt-4oの出力(長いため折りたたみ)

回答:

  1. 名前: 山田 太郎
  2. 入社年月: 2024年12月
  3. 出身大学: 東京虚構大学法学部
  4. 最も短いセクション: 「今までの失敗」
  5. 趣味: ランニング、映画鑑賞
  6. 趣味の自慢: ランニングで100mを10秒台で走れること
  7. 担当業務: 「新規クライアントへの営業」は含まれていません(採用活動が中心であり、そのような記載はありません)。
  8. 相談内容: 「身内の強盗被害の刑事訴訟」は適していません(民事事件に対応可能と書かれています)。
  9. 誘うなら適していないこと: マラソン(中距離走が苦手と記載されています)
  10. 趣味の写真での上着の色:

Explanation: 各質問はスライドの情報を基にしています。質問の具体的な回答部分についてはスライド内の記述を引用しています。

o1の出力(長いため折りたたみ)

以下、スライドの記載内容をもとに質問にお答えします。

  1. この自己紹介スライドにて紹介されている人の名前

山田 太郎

  1. この人の入社年月

2024年12月

  1. この人の出身大学

東京虚構大学法学部

(都立架空高等学校卒業後に進学)

  1. 自己紹介スライドで最も短く述べられているセクションの名前

「今までの失敗」

(高校時代の陸上大会のエピソードが短く記載されています)

  1. 彼の趣味はなんですか?

ランニング映画鑑賞です。

  1. その趣味の中で自慢できる事柄はなんですか?

→ ランニングにおいて、100mを10秒台で走れることを自慢しています。

  1. 彼の担当業務に「新規クライアントへの営業」は含まれますか?

→ 含まれていません。

スライドによると人事部での採用活動および新入社員の入社手続き自動化ワークフロー作成が主な担当業務とされています。

  1. 彼に相談する事柄として「身内の強盗被害の刑事訴訟」は適していますか?

→ 適していません。

弁護士時代は主に民事訴訟を扱っていたため、刑事訴訟の相談は専門外の可能性が高いです。

  1. 彼を誘うなら「映画・マラソン・キャンプ」のどれが適していませんか?

キャンプが適していないと考えられます。

彼はランニングや映画鑑賞が好きと明記されており、キャンプについては特に好む記載がありません。

  1. 彼の趣味として紹介される写真の中で何色の上着を着ていますか?

赤色の上着です。

タスク3の結果について

グラフ認識に関しては, 画像サイズが大きく内容が判別しにくかったのか「ステップを数える問題」などにおいてノードか矢印の上に書いてある分岐条件なのかを判別し間違えてしまうミスが4o・o1ともに目立ちました。一方で点数のみではなく以下の出力を観察してみると, o1の高い説明能力が見て取れます。特にグラフの解釈自体は全く問題なくこなせているため, この程度複雑なグラフでも文字起こしなどのやや抽象的なタスクでは非常に高い性能を発揮できることが想定されます。

gpt-4o-miniの出力(長いため折りたたみ)
  1. このECサイトは利用登録が必要ですか?
    • はい、利用登録が必要です。
  2. このECサイトにはカートに商品を追加した後も購入を続けることができますか?
    • はい、購入を続けることができます。
  3. 配送情報の入力と支払い情報の入力はどちらが先ですか?
    • 配送情報の入力が先です。
  4. このサイトではレビューを書くのは購入後ですか?それとも受け取り後ですか?
    • 受け取り後にレビューを書くことになります。
  5. このサイトには商品をカテゴリから選択することはできますか?
    • はい、できます。
  6. このサイトにはサポートへの問い合わせ機能がありますか?
    • フローチャートには明記されていませんが、通常のECサイトにはあると考えられます。
  7. このフローチャートでは購入しないことを決定するのはどのノードですか?
    • 「購入しない」のノードです。
  8. 会員登録に必要なメールアドレスは何に用いられていると考えられますか?
    • 会員登録の確認や通知に使用されます。
  9. 会員ではない人は「ECサイトにアクセス」から「ログイン」まで何ステップありますか?
    • 1ステップ(アカウント登録フォーム入力)。
  10. ログインからプロセス終了まで商品を購入する場合は最短で何ステップありますか?
    • 6ステップです(商品詳細ページ確認 → 購入決定 → カートに追加 → カートを確認 → 購入を確定する → 注文手続き開始)。
gpt-4oの出力(長いため折りたたみ)

質問への回答

  1. このECサイトは利用登録が必要ですか?

    必要です。フローチャートの「新規ユーザー」に「アカウント登録フォーム入力」「認証メール確認・登録完了」が必要と示されています。

  2. このECサイトにはカートに商品を追加した後も購入を続けることができますか?

    できます。フローチャートには「カートに追加」の後に「購入を続ける」ための選択肢が用意されています。

  3. 配送情報の入力と支払い情報の入力はどちらが先ですか?

    配送情報の入力が先で、その後に支払い情報の選択があります。

  4. このサイトではレビューを書くのは購入後ですか?それとも受け取り後ですか?

    商品を受け取った後にレビューを書く流れになっています。

  5. このサイトには商品をカテゴリから選択することはできますか?

    できます。「商品を検索/カテゴリから選択」のノードが存在します。

  6. このサイトにはサポートへの問い合わせ機能がありますか?

    フローチャートにはサポートへの問い合わせ機能に関する記載がありません。そのため、確認できません。

  7. このフローチャートでは購入しないことを決定するのはどのノードですか?

    「キャンセル」のノードが「購入しない」に繋がっています。

  8. 会員登録に必要なメールアドレスは何に用いられていると考えられますか?

    メールアドレスは認証メールの確認、および注文完了メールの送信に用いられると考えられます。

  9. 会員ではない人は「ECサイトにアクセス」から「ログイン」まで何ステップありますか?(その二つのノードは含みません)

    会員登録の場合、以下の3ステップです:

    • アカウント登録フォーム入力
    • 認証メール確認・登録完了
  10. ログインからプロセス終了まで商品を購入する場合は最短で何ステップありますか?(その二つのノードは含みません)

    最短のステップは以下の通りです:

    • 商品を検索/カテゴリから選択
    • 商品詳細ページを確認
    • 購入決定
    • カートに追加
    • カートを確認
    • 購入を確定する
    • 注文手続き開始
    • 配送情報の入力
    • 支払い方法の選択
    • 注文内容の確認
    • 確定
    • 注文完了
      合計 12ステップ です。
o1の出力(長いため折りたたみ)

以下,ご質問順にフローチャートから読み取れる内容を整理してお答えします。

(※ノード数の数え方は,フローチャート上で“箱”として描かれているものを1ステップ=1ノードとみなし,分岐条件や矢印上の文言は「ノードではない」として数えません。また「○○を含まない」とある場合は,そのノード自体をステップにカウントしないように注意しています。)

1. このECサイトは利用登録が必要ですか?

フローチャートには

• 「新規ユーザー → アカウント登録フォーム入力 → 認証メール確認・登録完了」

という会員登録の手順が示されています。

したがって,会員として利用する場合はアカウント登録が必要と言えます。

2. このECサイトにはカートに商品を追加した後も購入を続けることができますか?

フローチャートを見ると,

• 「商品詳細ページを確認」→「(購入決定の場合) カートに追加」

• 一方で「購入を続ける」(=別の商品を引き続き検索・選択)

という分岐が存在します。

よって,カートに追加したあとも別の商品を探して購入を続けることができることがわかります。

3. 配送情報の入力と支払い情報の入力はどちらが先ですか?

「注文手続き開始」→「配送情報の入力」→「支払い方法の選択」という順序になっています。

したがって,配送情報の入力が先で,その後に支払い方法を選択しています。

4. このサイトではレビューを書くのは購入後ですか? それとも受け取り後ですか?

フローチャート上では,

• 「注文完了」→「注文完了メールの確認」→「配送ステータスの確認」→「商品受け取り」

• その後に「レビューを書く/商品評価を行う」

という流れになっています。

つまり,商品を受け取ったあとにレビューを書くステップが来る設計です。

5. このサイトには商品をカテゴリから選択することはできますか?

「商品を検索/カテゴリから選択」というノードがあるため,カテゴリから商品を選ぶことが可能です。

6. このサイトにはサポートへの問い合わせ機能がありますか?

フローチャート上には「問い合わせ」「サポート」等のノード・記載がありません。

したがって,少なくともこのフローチャートからは問い合わせ機能は確認できないと言えます。

7. このフローチャートでは購入しないことを決定するのはどのノードですか?

右端に「購入しない」という分岐先が明示されています。

また,途中で「キャンセル」して「ECサイトを離れる」ルートもありますが,

最終的に「購入しない」ことが確定的に示されているのは,フローチャート右側にある

  • *「購入しない」**というノードです。

8. 会員登録に必要なメールアドレスは何に用いられていると考えられますか?

フローチャートでは「認証メール確認・登録完了」というステップがあります。

したがって,登録したメールアドレス宛に認証リンクや確認メールを送付し,ユーザー本人かを確認するために用いられると考えられます。

また,後工程の「注文完了メール」や「配送ステータスの通知」なども同じメールアドレスを使う可能性が高いです。

9. 会員ではない人は「ECサイトにアクセス」から「ログイン」まで何ステップありますか?

(「ECサイトにアクセス」と「ログイン」ノードそのものは数えない)

会員でない場合のフローはおおむね以下のようになります。

  1. (アクセス) → アカウント登録/ログイン (ノード)

• ここで「新規ユーザー」を選ぶ(分岐条件なのでノードではない)

  1. アカウント登録フォーム入力

  2. 認証メール確認・登録完了

  3. → (ログインへ)

ここで

• 「ECサイトにアクセス」(数えない)

• 「ログイン」(数えない)

を除くと,**「アカウント登録/ログイン」「アカウント登録フォーム入力」「認証メール確認・登録完了」**の合計3つの“箱”が見えます。

ただし問題文では「その二つのノード(=ECサイトにアクセス と ログイン)は含みません」とある一方,

• 「アカウント登録/ログイン」も“ログインの入口ノード”として描かれているケースが多く,

• フローチャート上では「新規ユーザー → アカウント登録フォーム入力 → 認証メール確認… → ログイン」とつながっている

となっています。

分岐の「新規ユーザー/既存ユーザー」は矢印上の条件なのでノードではありません。

したがって,

アカウント登録フォーム入力

認証メール確認・登録完了

の2つが実際に“中間ノード”として存在します。

よって最もシンプルに数えると2ステップですが,

もし「アカウント登録/ログイン」という箱自体を「アクセス→ログインの間のノード」と数える解釈なら「3ステップ」です。

どちらが正解か

問題文の

「ECサイトにアクセス」から「ログイン」まで何ステップありますか? (その二つのノードは含みません)

は,「アクセス」ノードと「ログイン」ノードを除外すると書いているだけで,「アカウント登録/ログイン」ノードまでも除外するとは明記していません。

フローチャート上で“箱”としてあるのは

  1. アカウント登録/ログイン

  2. アカウント登録フォーム入力

  3. 認証メール確認・登録完了

したがって,最も素直には3ステップと数えるほうが妥当でしょう。

(「新規ユーザー」「既存ユーザー」はあくまで矢印上の条件・分岐であってノードではないのでカウントしない。)

10. ログインからプロセス終了まで商品を購入する場合は最短で何ステップありますか?

(「ログイン」ノードと「プロセス終了」ノードは数えない)

購入完了まで・および受け取り後サイトを離れるまで,フローチャート上にある“箱”は下記のとおりです。

  1. 商品を検索/カテゴリから選択

  2. 商品詳細ページを確認

• (「購入決定」は矢印の文言なのでノードに含まない)

  1. カートに追加

  2. カートを確認

  3. 購入を確定する

  4. 注文手続き開始

  5. 配送情報の入力

  6. 支払い方法の選択

  7. 注文内容の確認

  8. 確定

  9. 注文完了

  10. 注文完了メールの確認

  11. 配送ステータスの確認

  12. 商品受け取り

• (ここで「レビューを書く」か「ECサイトを離れる」のどちらかに分岐)

  1. ECサイトを離れる  (レビューをスキップして最短とする)

上記15のノードのうち,問題文が言うとおり

「ログイン」ノードは数えない

「プロセス終了」ノードは数えない

であれば,15ステップが最短ルートの数え方になります。

なお,「注文完了メールの確認」「配送ステータスの確認」等を“実際には飛ばせるのでは?”と考える方もいるかもしれませんが,フローチャート上は連続して示されており,明示的なスキップ分岐がないため,この図のとおりに読む限りは15ステップと数えられます。

まとめ(回答一覧)

  1. はい。新規ユーザーはアカウント登録が必要です。

  2. はい。カートに入れた後も「購入を続ける」ルートが存在します。

  3. 配送情報 → 支払い方法 の順です。

  4. 受け取り後 にレビューを書くフローになっています。

  5. はい。カテゴリから商品を選ぶノードがあります。

  6. フローチャート上には問い合わせ機能は見当たらないため,不明(少なくとも図からは確認できない)。

  7. フローチャートの右側にある**「購入しない」ノード**で購入を断念する流れが示されています。

  8. 認証メールによる本人確認注文完了メール通知などに使われると考えられます。

  9. (アクセスとログインを含まず)

• 中間ノードは

  1. アカウント登録/ログイン

  2. アカウント登録フォーム入力

  3. 認証メール確認・登録完了

• よって 3ステップと考えるのが自然です。

  1. (ログインとプロセス終了を含まず)最短15ステップとなります。

タスク4の結果について

手書き数式計算に関してはすべてのモデルが満点正解であり, 手書き数字の認識はほとんど完璧であることが判明しました。この理由としては, 言語の種類に数字は依存しないため多く学習され, 認識が正確であると考察できます。

コストパフォーマンスについて

以上の4つのタスクについて, それぞれの使用料金をトークン数とモデル使用料金から計算した結果は以下の通りとなりました。chatgptから使用したo1については料金が計算できないため, 料金表にて同一トークン数であれば4o-miniの100倍の値段であること・内部での推論トークンも加算されること・出力が複雑になり出力トークンが増加することの3点を考慮しgpt-4o-miniの使用料金の200倍として推定しています。
(モデル使用料金はこちらで確認できます。) また, タスク1・4に関しては1問につき1回LLMを呼び出し合計10回呼び出しているため, 1回あたりの平均コストを算出しています。

gpt-4o-mini gpt-4o o1
タスク1(文字認識) ¥0.03293 ¥0.2260 ¥6.586 (推定値)
タスク2(スライド認識) ¥0.03359 ¥1.011 ¥6.718 (推定値)
タスク3(グラフ認識) ¥0.08026 ¥1.716 ¥16.052 (推定値)
タスク4(数字認識) ¥0.01782 ¥0.2896 ¥3.564 (推定値)

以上の表から, gpt-4o-miniはかなり低いコストでタスクを実行できることがみて取れます。対照的に推定値ではあるもののo1の使用料金は運用時にかなりのネックになりそうです。

おわりに

今回はOpen AIのマルチモーダルLLM3種類について, 複数の画像を用いたタスクを実行させて性能を比較してみました。特にスライド認識タスクやグラフ認識タスクについては仕事効率化プロダクトなどに高精度でマルチモーダルLLMを取り入れられそうなきっかけになるのではないかと思います!
実験では正答率・出力の丁寧さ・コストなどを比較しましたが, それぞれを総合して個人的にはgpt-4oをまずは試してみて「動作が安定する」 or 「出力の丁寧さがそこまで不要」なようだったら4o-miniに切り替えてみるのがオススメかなと思います。o1に関してはAPI経由で使用した際のコストが一気に跳ね上がってしまうので, 出力の精度・品質を追い求める際にお財布と要相談といった感じでしょうか。

少し長くなってしまいましたが, 最後までお読みいただきありがとうございました!

Aidemy Tech Blog

Discussion