AnthropicがClaudeを活用して claude.ai の速度を3倍に

Anthropicは2週間のスプリント期間中に、claude.aiおよびClaudeデスクトップアプリのロード時間とインタラクション遅延を約3倍改善しました。内部研究モデル(Opus 5.5と同等)を「Claude Tag」を通じて専用のSlackチャンネルにデプロイすることで、チームはAIがボトルネックを自律的に特定し、決定論的なベンチマークを構築し、人間の監視のもとで最適化をリリースできる環境を整えました。

パフォーマンス向上と主要指標

Anthropicは、ユーザー活動の95%を占める4つの主要なユーザー体験に注力しました:アプリの起動、会話の開始、既存の会話の読み込み、メッセージの送信。

75パーセンタイルにおいて、以下の改善が達成されました:

  • claude.aiの新規ロード: 入力可能なページまでの時間は3.1秒から0.55秒に短縮。
  • Claude Codeセッションの開始: 遅延は0.8秒から0.3秒に低下。
  • Claude Coworkクラウドセッションのロード: ロード時間は2.6秒から0.73秒に改善。

「測定して最適化する」ループ

このスプリントの核心的な技術的洞察は、正確な測定をAIに提供することで、パフォーマンスの問題を扱いやすくなるということです。AnthropicはClaudeを最適化の主導者として活用するループを構築しました。

  1. 特定: 人間が遅い体験(例:スクリーンレコーディングで)をマーク。
  2. ベンチマーク化: Claudeがフローをトレースし、問題を定量化するためのベンチマークを構築。
  3. 実装: Claudeがメトリクスを改善するPR(リスクを考慮して複数回に分けて)を提出。
  4. 検証: Claudeがデプロイを監視し、フィールドデータを読み取って成果を確認。
  5. 段階的改善: 成果が確認されると、ClaudeはCI内でベンチマークを「段階的に引き下げる」(つまり、将来のPRがその特定メトリクスを悪化させた場合、ビルドが失敗する)。

壁時計時間を超えて

壁時計時間はCIゲートに不確実で不安定なため、チームは決定論的な測定に移行しました。Claudeは以下の「実験室」ベンチマークを実装しました:

  • JS命令数: node --predictable と Valgrind を使用して、純JSのホットパスにおける正確な命令数を取得。
  • ブラウザメトリクス: 1回のインタラクションあたりのReactコミット数、V8関数呼び出し回数、レイアウト/スタイル再計算回数、DOM変更数を追跡。

たとえば、Claudeは会話メッセージツリーの構築において、命令の約25%がメガモーフィックな辞書参照に起因していることを特定。これらの最適化により、命令数は48%削減され、その特定パスにおける壁時計時間は78%短縮されました。

主要な技術的最適化

3倍の高速化を達成するため、チームはアーキテクチャ的およびマイクロ最適化を多数実装しました。

  • 静的コンポーザー: Reactの初期化待ちを排除するため、ページに静的HTMLコンポーザーを埋め込みました。ユーザーはReactが静的バージョンを描画する間に即座に入力可能になります。レイアウトシフトを防ぐために、Claudeは14のビューポートサイズで1ピクセル以内の整合性を保証するテストスイートを構築しました。
  • V8コードキャッシュ: デスクトップシェル用のV8コードキャッシュを事前にコンパイルし、メインプロセスが再びからコンパイルするのを防ぎました。
  • レンダリング最適化: サイドバーの再レンダリングを90%削減し、会話間でコンポーザーをマウントしたままにすることで、高コストな再マウントを回避しました。
  • 文字列処理: Latin-1以外の文字(例:emダッシュ)がV8が構文強調用の正規表現でより遅いUTF-16パスを使用する原因であることを発見。Claudeは20行の修正で、強調処理前にコードブロックを1バイト文字列にコピーする仕組みを実装しました。
  • フレーム予算: 長い返信のストリーミングでは、120Hzディスプレイの予算(1フレームあたり8.33ms)をターゲットにしました。完了したブロックをメモ化し、トークン化をワーカーに移動することで、1チャンクあたりO(message length)の作業を排除しました。

ガードレールと人間の舵取り

3,000件以上の変更をマージする中で安定性を維持するために、Anthropicは厳格な安全フレームワークを採用しました:

  • 自動レビュー: すべてのPRには自動レビューが必要であり、少なくとも1人の人間による承認も必須。
  • 機能フラグ: ユーザーに見える変更は短期間のフラグの後ろに隠され、Claudeがほぼ200のフラグの展開とクリーンアップを管理しました。
  • 段階的展開: 高リスクの変更は、まず社員に、次に1%のユーザーに、最後に一般ユーザーに順次展開されました。

人間はプロジェクトにおける「味わい」と「野心」を提供し、UXのトレードオフ(例:ローディングスケルトンを即時表示するか、遅延後に表示するか)を決定し、AIが見積もりにあまり慎重になりすぎた場合に、より大胆な行動を促しました。

コミュニティの見解と批判

公式レポートはAI駆動のループの効率性を強調していますが、Hacker Newsでのコミュニティディスカッションではいくつかの技術的懸念が提起されました:

"Claudeは、低木の果実が尽きた後はハックを奨励する。測定ハーネスを置き換えるだろう。ライブラリ関数にモンキーパッチを当て、どこでもできる限りの抜け道を探す。最終的には、あなたが理解している『抜け道』に対して最適化し始める。"

他の批判者は、静的コンポーザーの追加など一部の修正が、「エントロピーにエントロピーで対抗する」、あるいはSPA/Reactフレームワークの根本的なアーキテクチャ上の問題に対する「対処療法」に過ぎず、根本的な再設計ではないと指摘しました。

また、一部のユーザーはコードの長期的な保守性に疑問を呈し、「ベンチマークの段階的引き下げ」が読みにくい、過剰に最適化されたコード(機械学習における過適合に似た状態)を生み出し、将来の開発速度を妨げる可能性があると述べています。

Sources

関連

  • Dispatch
  • Dispatch
  • Dispatch
  • Dispatch
  • Dispatch