ChatGPTでコードファイルを扱っているとき、ふと気づいたことがありました。
コードの読み込みや解釈が妙に遅いのです。
右側に表示される「アクティビティ」パネルを見ると、bashを実行してファイルを少しずつ読んでいる様子が見えます。
一方、Claudeで同じことをすると、すぐに全体を把握して答えてくれる印象がありました。
この違いは何なのか。単なる処理速度の問題ではなく、もっと根本的な設計の違いがあるのではないか。そう考えて、両者のアーキテクチャを調べてみることにしました。
1. ChatGPTの動作を観察する
まず、ChatGPTに3つのTypeScriptファイルをアップロードしてみました。すると、アクティビティパネルには興味深い挙動が表示されました。
「思考中」というステップの後、Pythonコードが実行されます。
その内容は次のようなものでした。

from pathlib import Path
gt = Path("/mnt/data/game.ts").read_text()[:4000]
print(gt)Code language: JavaScript (javascript)
最初の4000文字だけを読み込んでいます。
全体ではなく、部分的な読み込みです。
続いて、別のファイルを読む必要があると判断すると、また同じようにbashを実行します。
まるで図書館で必要な本を一冊ずつ取りに行くような動作です。
これを見て、ChatGPTはファイルの内容を最初からコンテキストに入れているわけではないことが分かりました。
ファイルは/mnt/dataというディレクトリに保存され、必要になったタイミングで読み込まれるのです。
2. Claudeの動作は全く違う
では、Claudeはどうなのか。
実は、ファイルをアップロードした時点で、その内容は完全にコンテキストウィンドウに展開されています。

テキストファイルやコードの場合、システムプロンプトの一部として統合され、Claudeは最初から全文を「読んでいる」状態でスタートします。
これは、チャットでユーザーが長いメッセージを送るのと本質的に同じ扱いです。
画像ファイルの場合も同様で、Base64エンコードされてコンテキスト内に展開されます。ビジョンモデルが直接「見ている」状態です。
つまり、Claudeにとってファイルの添付は、「超長いチャットメッセージを受け取った」のと同じなのです。
3. 2つの設計思想の違い
この違いは、それぞれの設計思想を反映しています。
Claudeは「コンテキストは大きく、シンプルに」という方針です。Claude 3.5 Sonnetのコンテキストウィンドウは200kトークンあり、通常のファイルなら全文を入れても余裕があります。シンプルなアーキテクチャは予測可能な動作をもたらし、ユーザーから見て分かりやすいシステムになります。
一方、ChatGPTは「効率的なリソース利用とスケーラビリティ」を重視しています。GPT-4oのコンテキストウィンドウは128kトークンで、Claudeより小さめです。しかし、512MBという大きなファイルをサポートしています。これは、ファイル内容を全てコンテキストに入れるのではなく、必要な部分だけを段階的に読み込む設計だからこそ可能なことです。
4. 実際の速度差の理由
「Claudeの方が速い」という体感は、この設計の違いから生まれています。
Claudeで「このコードにバグはある?」と質問すると、既に全コードを読んでいるので、即座に全体をスキャンして答えを返せます。1回の推論で完結します。
ChatGPTで同じ質問をすると、次のような流れになります。
- モデルはファイルが存在することだけを知っている
- 「読む必要がある」と判断
- Pythonコードを実行してファイルの一部を読む
- 結果を受け取って分析
- まだ情報が足りないと判断したら、また読む
- これを繰り返して回答
3回から4回の往復が発生します。この往復通信が、体感速度の遅さにつながっているのです。
5. どちらが優れているのか
では、どちらの設計が優れているのでしょうか。
実は、これは一概には言えません。それぞれにメリットとデメリットがあるからです。
Claudeのアプローチは、小から中規模のファイルを扱うときに真価を発揮します。即座に全体を把握できるため、レスポンスが早く、コード間の依存関係も一度に理解できます。開発者がコードレビューを依頼するような場面では、この速さは大きな利点です。
ただし、コンテキストウィンドウを多く消費するため、巨大なファイルや複数の大きなファイルを同時に扱うときは効率が悪くなります。
ChatGPTのアプローチは、大きなファイルや多数のファイルを扱うときに強みを発揮します。512MBのPDFを処理できるのは、必要な部分だけを抽出する戦略があるからです。また、コンテキストウィンドウを節約できるため、長い会話履歴を保ちながらファイル処理もできます。
ただし、ファイルの読み込みに時間がかかり、全体把握に複数回の往復が必要です。これが「ちまちま読んでいる」という印象につながります。
6. 体験から見えてきたこと
この調査を通じて、同じ「AIアシスタント」でも、内部のアーキテクチャは全く異なることが分かりました。
Claudeは「ファイル添付 = 超長いメッセージを送る」という直感的な設計です。一方、ChatGPTは「ファイル添付 = 外部ストレージにアップロードする」という柔軟な設計を採用しています。
どちらの設計を選ぶかは、開発チームの価値観と技術的制約のバランスで決まります。Anthropicはシンプルさと予測可能性を重視し、OpenAIはスケーラビリティと柔軟性を重視しました。
ユーザーとしては、この違いを理解した上で、用途に応じて使い分けるのが賢い選択かもしれません。小さなコードの解析ならClaude、大きなPDFの処理ならChatGPT。それぞれの強みを活かすことで、より効率的な作業ができるはずです。
7. 見えない部分にこそ本質がある
普段、私たちはAIの「答え」だけを見ています。しかし、今回のように内部の動作を観察すると、全く異なる哲学が隠れていることに気づきます。
「なぜ遅いのか」という単純な疑問から始まった調査でしたが、そこには2つの技術思想がありました。この違いを知ることで、AIツールをより深く理解し、効果的に使えるようになります。
技術の表面だけでなく、その裏にある設計思想を知ること。それが、ツールを使いこなす第一歩なのかもしれません。