Claudeのポケモン・プレイメイキング

AGIに仕事を奪われたい
この記事は約34分で読めます。

19,961 文字

Lessons on AI agents from Claude Plays Pokemon
Alex Albert (Claude Relations) and David Hershey (Applied AI) explore the story behind Claude Plays Pokémon—an experimen...

AI業界では昨年からエージェントについて多くの議論がありましたが、世界の多くの人々にとって、それが実際に何を意味するのかを理解するのは難しいことだと思います。ポケモンの例は、単なるチャットボットではなく、自分自身で物事を見て試し、行動を起こすAIという形で、多くの人々がこの「エージェント」というものについて理解しやすくなったのではないでしょうか。
今日はClaude Plays Pokemonの舞台裏についてお話します。私はアレックスで、AnthropicでClaude Relationsを率いています。
そして私はデヴィッドです。Applied AIチームに所属しており、Claude Plays Pokemonを作りました。
デヴィッド、まず一般的な概要として、Claude Plays Pokemonとは何なのか、知らない人のために説明してもらえますか。
Claude Plays Pokemonは、エージェントに関する一種の実験で、私たちの言語モデルであるClaudeをゲームボーイのポケモン赤に接続し、実際にゲームをプレイさせるというものです。最初から新しいゲームを始めて、Claudeがポケモンマスターになる過程をどのように学んでいくか観察します。
なるほど。技術面や、Claudeがどうやってポケモンをプレイしているのか、どうやってプレイ方法を知るのかなど、詳しく説明する必要がありますね。まず、このアイデアはどのように生まれたのですか?そしてなぜポケモンだったのですか?
はい。このプロジェクトの核となるきっかけは、私がAnthropicのお客様と仕事をする中で、昨年、エージェントが彼らにとって最も重要なものであることが明らかだったことです。彼らが価値を生み出しているのはそこだったんです。私自身がエージェントを実験するためのテストベッドが欲しかったんです。人間との会話なしで、一連のアクションを実行する必要があるとき、Claudeがどのように機能するかを感じたかったんです。
実は以前、Anthropicの同僚のエリオットがClaudeをポケモンに接続するのを見たことがありました。それが頭の中に残っていて、エージェントで自分自身の実験をする場所が欲しいと思いました。私は長年のポケモンファンでもあります。子供の頃に初めて手に入れたゲームでした。それが最初のきっかけでした。2024年6月頃、新しいモデル3.5 Sonnetがリリースされる予定で、試してみるのに完璧なタイミングだと思いました。
ノスタルジックな要素以外に、なぜ特にポケモンを選んだのですか?なぜClaudeはマリオやゼルダなど他のゲームをプレイしないのでしょうか?
ポケモンは実際にこの設定に非常に適しています。言語モデルは現在、すべての長所にもかかわらず、遅いんです。一度に1つの生成しかできません。基本的には任意の時点でゲームのスナップショットしか見ることができません。
ポケモンでは、しばらく座って待っても本質的に何の影響もありません。戦闘はターン制なので、ボタンを押して何が起こるか待つだけです。移動していないときはあまり何も起こりません。つまり、モデルがプレイできるゲームとしては、完璧に設定されているんです。
また、そもそもなぜゲームなのかという合理的な質問もあります。ゲームの面白いところは、長時間何かをして明確なフィードバックを得られる珍しいものだということです。進歩しているかどうかがわかります。ポンのスコアカウンターがあなたが対戦相手に勝っているかどうかを示す場合でも、ポケモンではジムバッジを獲得しているか、ゲームを進めているかなど、一種のフィードバックループがあり、モデルが実際に成功しているかどうかがわかります。
モデルが長時間何かを試みるのを許可し、ゲーム自体の構造によって、それがどれくらいうまくいっているかを測定可能な方法で感じることができるのが、ゲームの素晴らしいところなのです。
つまり、ポケモンが素晴らしいのはターン制だからということですね。必ずしも同期的ではありません。他のプレイヤーと対戦しているわけではないので、Claudeが「コール・オブ・デューティ」のようなゲームをプレイすることはできません。
そうです、その通りです。もしClaudeが毎秒60フレームで動作できるなら、他のゲームもプレイできるかもしれませんが、現実的には今はそうではありません。
そしてゲームが素晴らしいのは、それ自体がシミュレートされた閉じた環境で、プロセス全体を通して進むことができるからですね。
そうです。Claudeがポケモンをプレイしているわけですが、どのように実際に動作しているのでしょうか?Claudeはゲーム内のキャラクターをどのように操作し、実際に何かを起こすのでしょうか?
一般的に言えば、Claudeへのプロンプトは基本的に「ポケモンをプレイしている」というものです。非常にシンプルです。モデルにポケモンをプレイしていると伝えるだけです。そして、ゲームと実際に対話するためのツールのセットをClaudeに接続します。ゲームボーイゲームで得られる最小限のツールセットは実際にはかなりシンプルです。ゲームボーイのボタンを押すことです。
基本的にClaudeにA、B、上、下、左、右などのボタンを押すことができると伝えます。そのツールを舞台裏で説明します。Claudeがボタンを押したいと言ったときに、実際にエミュレータ上でそのボタンが押されるようにするコードを実装する必要があります。
つまり、ツールはClaudeが取ることができる次のアクションのオプションのようなものですね。
その通りです。
そして、Claudeからの出力を受け取って、それをアクションに変換するわけですね。
そうです。ゲーム全体は基本的にClaudeが一連のアクションを取ることで、主に一度に1つのボタンを押すことです。このプロセスにおける重要なフィードバックループは、ボタンを押すたびにスクリーンショットを送り返すことです。
なるほど。
つまり、Claudeはゲームボーイの画面を実際に見ることができます。この部屋にいるとか、ポケモンバトル中だとか、何でも見ることができます。次にしたいことはAボタンを押して、この人と話すとか、この技を選ぶとか、何でも選べます。そして、それをずっと繰り返し、イテレーションし続けます。
実際には、長期間にわたってメモリを管理するのに役立つ他のツールもいくつか与えています。
そうですね。
Claudeのコンテキストの量は限られています。ゲームボーイのプレイ全体を1つのコンテキストウィンドウに収めることはできません。そのため、それをうまく処理するための詳細を管理するためには多くの作業が必要です。
しかし、その核心は「無限ループ内でボタンを押し、ゲームをプレイできるかどうかを確認し、見ているものを知るためのフィードバックを与える」ということです。
そして、Claudeがプレイするためのハーネスを構築する中で、メモリの問題などの制限に遭遇していますね。その点について具体的に何をしなければならなかったのか、もう少し詳しく教えていただけますか?
はい、まずはその質問から少し引き下がって考えてみます。長時間アクションを実行する必要があるこれらのエージェントを構築するために、人々はさまざまな方法を考え出しました。
エージェントという一般的な概念があり、モデルが一連のアクションを実行する必要があり、事前に何かわからないけれど、モデルは何かをして、何が起こるかを見て、次のことをして、学ぶ必要があるというものです。そして人々は、あらゆる状況でモデルをより良くするために、そのプロセスを構築するためのさまざまな方法を考え出しました。
実際、私が最初にしたことは、基本的に他の人のアイデアを試すことでした。「Voyager」という論文があり、それが最初に試したものでした。Nvidiaから出た2023年の論文で、Minecraftをプレイするために使用されていました。それが最初に試したことで、モデルにさまざまな高度なツールを与えるものでしたが、詳細には触れませんが、そこから自分なりのシンプルなバージョンに絞り込みました。
最も単純なバージョンから始めると、ボタンを押してスクリーンショットを取得するだけです。そして最初にぶつかる壁は、基本的にClaudeの限界である20万トークンに達したときに何が起こるかということです。実際には、約50ボタンを押してスクリーンショットを返すと、それでいっぱいになります。
なるほど。
ポケモンでは50回ボタンを押してもゲームがほとんど始まっていません。そのため、何もしなければすぐにスペースがなくなり、クラッシュして終了します。したがって、最初に理解する必要があるのは、スペースがなくなったときに何をするかということです。
ここでの重要な洞察は、少なくとも私のアプローチ方法と業界でエージェントについて考える方法によく反映されていると思いますが、長期記憶の概念です。Claudeにメモリを探索する能力と、「ナレッジベース」と呼ぶものを与えます。ここで基本的に「今これをした」とか「これらのポケモンを持っている」とか「これが私の目標で、そのうち6つをチェックした」などと記録します。そして、時間とともに少しずつ更新していくのを見ることができます。これは時間を通じて維持されます。常にそれを見て、何かを追跡し続けることができます。
二つ目の重要なポイントは、コンテキストの長さがいっぱいになると、Claudeに今行った50のアクションを短い要約に圧縮させることです。
なるほど。
多くのものを削除してリセットしますが、長期記憶のセットがあり、潜在的には、Twitchストリームを見れば、3週間連続で実行されていて、おそらく数千回自己要約されています。
すごいですね。
したがって、過去3週間に何をしたかを覚えておくための長期記憶を持つことが非常に重要です。
つまり、長期記憶というのは、この外部知識ベース(基本的にはプレーンテキストファイル)に書き出すことで、映画「メメント」のように壁に付箋を貼っていくようなものですね。「ここに来た」「これをした」と記録していく。
そうです、まさにその通りです。
もし単純にメッセージを削除するだけだと、Claudeは記憶喪失になり、「どうやってここに来たの?なぜポケモンの途中にいるの?新しいゲームを始めたばかりだと言われたのに、何が起こっているの?」となってしまいます。ある意味では、これはClaudeが自分自身に残す付箋のようなもので、リセットされて最近見たものの多くが削除されたときに、「よし、これまで何をしたか知っている、現在の位置がわかる」と思い出す方法です。
もしかしたら「この戦略はうまくいく」というような教訓も学んでいるかもしれません。次の10分間に役立つことを覚えておきたいことを学んでいるのです。
それは理解できます。ここで明確にしておくべきことは、Claudeをこのためにトレーニングしたわけではないということですよね?実際にどのようにポケモンを操作するかをどうやって知っているのでしょうか?あまり多くの指示を与えていないようですが、ハウツーガイドのようなものは与えていませんよね。
そうですね、それが面白い部分の一つです。我々はポケモン自体でClaudeをトレーニングしていません。Claudeは明らかにポケモンについて何かを知っています。claude.aiにアクセスして質問すると、いくつかの一般的な事実を思い出すことができ、ポップカルチャーに十分に存在しているので、Claudeはポケモンについて何か知っています。
事前学習プロセスを通じてですね。
その通りです。さらに、ゲームについての大まかな情報も知っています。最初のジムリーダーがブロックであることを知っているので、ゲームの構造についてある程度理解しています。しかし、詳細については本当に何も知りません。実際、時々知っていると思うことがあっても、そうではありません。これは取り組まなければならない難しいことの一つです。
つまり、特定のトレーニングなしでも、ポケモンが何であるかについてと、その動機について少し知っているだけで、中間的な空間のすべてのことを自分で理解する必要があります。これが実際にどのように機能するかを見るための面白いことの一つは、NPCが何か情報を提供するのを見ることです。
最初の段階では「オーキド博士は隣にいるから、話しかける必要がある」と言われます。これはポケモンのキャラクターの母親がClaudeに伝えることです。Claudeの母親はポケモンで「隣に行く必要がある」とClaudeに言います。すると、Claudeは非常に厳格に「隣に行く必要がある。オーキド博士を隣で見つける必要がある」と考え、使命を持ちます。そして時々それに夢中になりすぎることがあります。
ポケモン赤についての面白い事実は、実際にあなたに嘘をつくということです。お母さんが嘘をつくんです。
あぁ。
オーキド博士は実際には隣にいません。別の場所で見つける必要があります。Claudeがこれに迷ってしまうのを見たことがあります。「お母さんが言ったから」と。
とても素直ですね。
「信じなければならない。私のお母さんだから。これは本当だと言われた」と言って、面白いことに、オーキド博士を探して隣をとても長い間探し回っていたりします。
ゲームをプレイする過程で、画面を見て、人々が言うこと、標識が言うこと、ものを試したときに何が起こるかというこの経験を通じて、次に何をすべきかという核心的な部分を実際に拾い上げていくのを見ることができます。
つまり、これは純粋にプレイする経験なんですね。何か道筋を与えたわけでもなく、特定の状況でこうすべきだと教えたわけでもなく、人間がそうするように実際にゲームと対話しているわけですね。
そうです。そして「なぜこれをしているのか」というレベルでは、私の目標はポケモン赤をクリアすることではありません。それは6歳のときにやりました。これは金のスタンダードではなく、ポケモン赤を攻略するプログラムを書くことが唯一の目標なら、それはできるでしょう。
私が理解したかったのは、Claudeがどのように機能するのか、Claudeはこれにどれだけ上手く対応できるのか、Claudeはこの状況を処理できるのかということです。そのため、単に答えのガイドを与えるのは面白くありません。Claudeがどのように答えを見つけるのかを知りたいのです。
したがって、私が構造化したものや、実際に見るものは非常に基本的なもので、Claudeは自分自身でこれを解決する必要があります。なぜなら私は好奇心があり、私たちは好奇心があるからです。Claudeはこれをどのように試みるのか、あるいはポケモンをプレイしようとするのかを知りたいのです。
そうですね。私たちはClaudeをポケモンにさせようとしているわけではなく、一般的にエージェント的なタスクでClaudeを評価し、それがどこにあるのかを理解したいのです。
そうです。誰もどのモデルがポケモンを最もうまくプレイするかに基づいて購入決定をしているわけではありません。これは本当に私たち自身の理解のためです。
これをかなりの期間やってきたわけですが、異なるモデルでの時間の経過はどのようなものでしたか?Claudeを改良し続ける中で、その旅はどのようなものだったのでしょうか?
3.5 Sonnetから始めたと言いましたが、ポケモンはあまり得意ではありませんでした。ポケモンでは家の2階から始まり、最初の進行は右上の階段を見つけることです。私はおそらく3日間ほど取り組んでモデルに最初の部屋の階段を見つけさせました。
すごいですね。
モデルが家から出て、最初のポケモンを手に入れる可能性のあるカットシーンにたどり着いたとき、初めて信じられないほど興奮したのを覚えています。それが3.5 Sonnetでの私の成果の頂点でした。当時は本当にすごいことをやったと思っていました。それは過去の実験で見たものよりもずっと良かったのです。
そして、「これは楽しいプロジェクトだった、いくつかのことを学んだけど、それだけだ」と一旦脇に置きました。その後、10月に3.5 Sonnetのリフレッシュ版をリリースし、再びこれを取り上げました。以前よりも少し良くなっていることがわかりました。かなり目に見えて良くなっていました。
非常に一貫して階段を見つけるようになり、驚くべきことに、比較的予測可能な時間枠で初期ポケモンを入手する方法を見つけるようになりました。実際に初めて戦闘に勝ち、少し正しい方向に動き始めるのを見ました。その後、非常に遅く、多くの愚かな間違いをしましたが、明らかに良くなっていることがわかりました。
その多くは単に行き詰まらないことでした。ゲームにバグがあると考えず、異なる戦略や試すべきことについての感覚を持っていました。私たちは実際にそれについて興奮していました。Claudeがどんな状態であっても、一歩先に進むと非常に興奮し、見て関わるのがとても楽しいです。
しかし、当時誰かに「ランダムなボタン押しと比較してどうだったか」と聞かれたとき、Claudeはランダムなボタンを押すよりもこれだけ良かったのです。つまり、良かったのですが、ランダムなボタンを押すよりも少し良い程度でした。そのため、再びこれを脇に置きました。楽しかったです。
そして、3.7 Sonnetのテストに入ったとき、はるかに良くなっていることが明らかでした。3.7 Sonnetがはるかに良いことに気づいた最初の瞬間の一つは、プレイするのを見ていて、私のコードに恐ろしいバグがあることに気づいたときでした。Claudeにゲームをプレイするために必要なすべての情報を表示していませんでした。
おお、すごい。
当時、ナビゲーションの感覚を少し与えるためにマップを表示する機能がありました。3.7は既に3.6(新しい3.5)よりもはるかに良くなっていました。「これはかなり本物かもしれない」と思いました。
そのため、すぐにClaudeが実際にどれだけ良いのかを見つけることに深く夢中になりました。Claudeが成功するために本当に必要なすべてのツールを与えることに、これまで以上に熱心に取り組み始めました。なぜなら進歩を遂げるために必要な核心的な素材を持っていることが見えたからです。
テストを行った数週間の間に、Claudeがかなり有能であることが明らかになりました。まだスターではないですが、実際にゲームをプレイし始めました。ある日、ジムリーダーを倒し、みんなは狂喜しました。これは現在ストリームで見ることができるのと同じことで、時々遅くて挑戦的ですが、ゲームで意味のある進歩をします。
それは魅力的ですね。それはモデル自体の改善について何を示していると思いますか?なぜゲームがうまくなっているのでしょうか?
これは楽しいことの一つで、実際にこのためにモデルについて少し知ることができます。時間の経過とともに違いを生み出したいくつかのことがあると思います。
驚くべきことに、最も難しいことである視覚、ゲームボーイの画面を理解するClaudeの能力はあまり向上していません。
そうですか。
モデルはこれだけの進歩を遂げましたが、ゲームボーイの画面を見て何が起こっているのかを理解する能力は、常にそれほど良くなかったのと同じくらいです。
では、何が起こっているのかについての基本的な理解が向上していないのに、実際にどのように進歩しているのでしょうか?
私が最も気づいたこと、そしてこれは実際にAnthropicで私たちが焦点を当てていることの多くと一致していますが、Claudeは試すべき戦略を考え出すこと、以前の戦略の多くを疑問視し、「おそらく間違いはゲームにバグがあることではなく、悪い戦略を持っていたことだ」と考えることがずっと良くなっています。では、他にどのような戦略を試すことができるでしょうか?最後に試したことがうまくいかなかった場合、次に何を試すべきでしょうか?そして良い異なる試みを見つけるために戻って考えます。
問題を解決するための異なる方法をすべて試み、それを解決する一種の粘り強さがあります。それが3.5から10月のリフレッシュへのジャンプで、そして3.7でその正確なスキルが巨大なジャンプを遂げました。現在ではずっと積極的です。遅いにもかかわらず、Twitchストリームを2時間見ると、このものが自分自身を疑うのが上手いとは思えないかもしれません。
しかし、驚くべきことに、時間が経つにつれて、実際に立ち止まって「次に何をすべきか」と考えます。そして、問題を解決するためのさまざまな方法を選別し理解する能力と、それがより良くなっていることは、時間とともに私たちのモデルが改善された最大のことの一つだと思います。
それはポケモンだけでなく、あらゆる種類のエージェントが本当に成功するための最大の要因の一つであり、それがポケモンをプレイするのをかなり上手くしたものです。
これらの能力がすべて向上し、ゲームが進むという事実は、他の領域にどのように拡張されるのでしょうか?もっと実生活のユースケースで、その改善をどこで目撃していますか?
面白いことに、一見するとポケモンはコードを書いたり、人々がClaudeで行うその他のこととは全く異なるように見えます。しかし、この核心的なこと、つまり良い計画を立て、何かを試み、それが機能しているかどうかを確認して調整し、利用可能な異なる戦略を理解し、それらを進んで試し、失敗し、新しい情報で何をすべきかを更新するという能力は、多くのシナリオでエージェントを良くする中核的なレシピだと思います。
私たちが多くの時間を費やしているかもしれないコーディングを例に挙げると、コードを書くとき、何かを書いて、テストが失敗するのを見て、「何が間違っていたのか?どうすればもっと良くなるか?次に何を試すべきか?次の戦略は?」と考えなければなりません。モデルはこれを常に行い、毎回すべてを完璧に正しく得ることができるモデルとの間には一つのことがありますが、時には必要な情報さえ持っていないこともあります。
テストを実行するまで、何かを見落としていることがわかりません。そのため、どのテストを実行して学ぶべきか、何かを発見したとき、それをどのように組み込むべきか、このコードの一部を書くために持っていた戦略をどのように更新すべきかを知る能力、それが同じことです。
そして、これは実際にどの業界でも同じです。例えば、インターネットで何かを検索するとき、何かをクリックして、ページが悪いことに気づき、必要な事実がないか、一部があるけれど、それを理解するために他の何かを検索する必要があると気づくような場合です。
すべてのこと、戦略を構築し、潜在的に多くの異なるアクションにわたって新しい情報を組み込む方法を理解することは、人々がClaudeで物事を構築する方法に幅広い応用があると思います。それは、私たちが人間として複雑な問題を解決する方法について考える方法と非常に直感的に対応しています。
そうですね、その計画を立て、実行するループ、行動を起こし、一歩引いて再評価して別の行動を起こすということですね。
そうです。私たち人間はしばしばそれを非常に細かいスケールで考えがちです。仕事で単調なことをしているとき、必ずしも「行動を再評価して違うことを試す必要がある」とは考えないかもしれません。
しかし、それでも実際に起こっていることはそれなのです。情報を一片得て、それが次に取るべきステップを意味するかどうかを確認し、このような継続的なフィードバックループを持っています。そして、その多くがClaudeを有用な同僚や助手にするものです。
そうですね、私自身でも時に感じることがあります。例えばやることリストがあって、それを一日の始めに書いたとします。いくつかの会議を経て、突然新しい情報を得たり、行動を起こしたり、誰かと話したりして、やることリストに戻り、優先順位を付け直して項目を移動させる必要があります。それはClaudeがここで学んでいるのと同じようなループですね。
そうです、まさにその通りです。それがはるかに良くなっているのに気づくことができます。
過去に起こっていたのは、やることリストを書き出して、それに固執してしまうことでした。新しく学んだことを上手く組み込むことができませんでした。
良い例として、今でも時々見られますが昔ほど頻繁ではないのは、Claudeが「ポケモンで左上に行く必要がある」と考え、何時間も壁に向かって歩き続けることです。もしモデルが左上に歩くことに本当に固執しているなら、「そこに着くまで上に向かって歩き続ける」となります。
しかし、壁に向かって歩いているなら、最終的には立ち止まって「うーん、おそらく最初に他のことをする必要があるかもしれない」と考える必要があります。
それがポケモンで起こることですが、私たちが行う他の多くのことにも非常に応用可能です。
それは次の質問への良い橋渡しになりますね。現在見られる面白い瞬間は何でしょうか?まだ完璧ではないですよね、この過去8ヶ月ほどでずっと良くなっていますが、ポケモンはまだクリアしていません。そして道中には間違いなく面白い時間がありました。何か共有できるエピソードはありますか?
そうですね、Claudeはまだ完璧ではありません。Claudeがまだうまくできていないと思うことのリストがあります。まず、Claudeがまだうまくできていないことといえば面白い瞬間でもあります。
私のお気に入りの一つは、視覚的な鋭さに関連しています。画面をあまりよく見ることができません。ある時、プレイを見ていて寝に行きました。Claudeが建物に入り、建物のドアマットをダイアログボックスだと思ったんです。ダイアログを消すにはボタンを押す必要があります。次の日起きると、8時間もそのボタンを押し続けていました。ダイアログを消そうとして、ダイアログを進めなければならないと思っていたのです。
そこには解きほぐすべきいくつかの興味深いことがあります。一つは、あるものがダイアログボックスだと非常に確信するような間違いを犯すことです。ダイアログボックスというのはかなり悪い間違いです。もう一つは時間の概念です。Claudeにとって、15,000回ボタンを押すということはあまり意味がありません。
私なら8時間ボタンを押し続けるなら、「もうこのボタンを押すのに疲れた、指が痛い」と思うでしょう。Claudeにとっては、15,000回ボタンを押しても、誰が気にするでしょうか、続けるだけです。
そうですね、実際にどれだけの時間が経過したのかさえわかりませんね。
そうです。そのため、どれくらいが長すぎるのか、時間とは何かという直感的なスペースがあります。それは少し面白く、改善が必要な部分です。
それが一般的なカテゴリーの一つですが、計画と戦略の面での別の面白い話もあります。ある時、プレイを見ていると、「マウントムーン」に入りました。これはストリームを見ている人にとっては、長い間行き詰まりやすい場所です。
その時、この実行では1体のポケモンしか持っておらず、攻撃技ではない新しい技を覚えるオプションがありました。攻撃技がないと他のポケモンに勝てません。それでも、非常に興奮していました。
そこでダイアログをクリアするためにAボタンを何度も押して、その時点にたどり着こうとしましたが、誤ってボタンを何度も押しすぎて、唯一の攻撃技を削除してしまいました。
おお、それは大変。
そしてこれでゲームのこの部分で実質的に技がなく、行き詰まり、前進する方法がありません。
これは破壊的な結果がある場合、ゆっくり進む必要があることを理解する必要があるということです。途中で何が起こったかをチェックせずにAを15回押すと何か悪いことが起こるかもしれません。
そこで気づくのは、時々その直感は自分自身を止めることができるというものです。「Aを15回押したいなら、Aを15回押すと言って、何か問題が起きれば止まるだけだ」と思いますが、Claudeにはこの直感がありません。
「私は言語モデルだ」という理解が足りないのです。
実際にはAを押していないんですよね。
「このツールは途中で止まる余裕を与えてくれない。途中で何が起こっているのかをチェックしていない」というような理解が不足しています。
そのため、これは自分の限界や状況についての自己認識のようなものであり、Claudeが時々苦戦するものです。それは実際に重要です。
Claudeに最も望むことの一つは、「おそらく私は画面を見るのが得意ではない。何度も何度も壁に向かって歩き続けているという事実は、おそらく自分の能力についてメタレベルで何かを学ぶ必要があることを意味しており、壁に向かって歩くよりも完全に異なる戦略を考えるべきだ」という少し良い認識を持つことです。
そこには、それが何であるか、その能力が何であるかについてメタ学習する能力があり、それがまだまだ改善の余地があると思います。
そして最後にフラストレーションに関する私のお気に入りの話の一つを紹介します。再び「マウントムーン」に関してですが、通常、モデルはマウントムーンを通過するのに約2日かかります。
それは大変ですね。
迷路なんです。かなり時間がかかります。
マウントムーンを難しくしているのは何ですか?
Claudeが現在最も苦手なことの一つは、長時間にわたるナビゲーション、さまよい歩くことです。
なるほど。
空間認識能力が一般的にあまり良くありません。マウントムーンは、正しい場所にたどり着くために、かなり長い回廊の迷路をナビゲートする必要がある最初の場所です。
また、行き詰まりやすい小さな隙間や裂け目がたくさんあり、出口に到達するためには一連の経路を通じて非常に微妙な横断をする必要があります。Claudeがすべての経路を見つけ、自分がどこにいるのか、どこに行くべきではないのかを理解するのに時間がかかります。
実際、初めてそこに到達したとき、マウントムーンを通過する最後のことは、マウントムーンで化石を手に入れることです。化石を手に入れたら、もう出口まであと15歩しかありません。ついに向こう側に出られるのです。
初めてClaudeがマウントムーンにいるのを見たとき、3日間かけて進み、化石を手に入れました。私にとっては「これだ。ついに起こったんだ」という瞬間でした。
それはいつ頃でしたか?
これが起こるとは思っていませんでした。これは絶望的だと思っていました。あきらめようとしていました。ベンチマークを公開して、これが終わりになるつもりでした。
それでいい。1つのバッジを獲得し、私たちは興奮していました。
マウントムーンで終わらせるつもりだったんですね。
そこで私は最高に興奮していました。「出られる。これで終わりだ。ゲームを続けることができる」と。
そして進み続けました。出口まであと15歩のところで、向きを変えて反対方向に行き、迷子になり、「エスケープロープ」というアイテムを使いました。これは最後に休んだ場所、つまり洞窟の入り口の外にテレポートするアイテムです。
3日間かけてナビゲートし、出口まであと10歩のところで、向きを変え、状況から完全に脱出し、再び始点に戻ったのです。
私は崩壊しそうになりました。客観的に見れば非常に面白いコンテンツですが、泣きそうになりました。
その時のトランスクリプトを読んでみたかったですね。
そうしました。残念なことに、Claudeは気づいていませんでした。
気づいていなかったんですね。
気づいていません。ただ「これは災害だ。迷子になった。最良のシナリオでも、始点に戻ってやり直すだけだ」と考えていました。でも「もうすぐだったのに」という状況でした。
ダイアログボックスの問題について、Claudeはどうやってそこから抜け出すのですか?何か戦術があるのか、それともゲームをリセットして最初からやり直すしかないのでしょうか?
これは、良いエージェントを構築するために何が必要かを実際に理解するようになった細かい詳細につながります。モデルの奇妙な特性をすべて修正しようとする複雑なシステムを構築するという考え方がしばらくありましたが、それは実際には非常に難しいことです。
現在の考え方は、モデルがプレイするのを見て、ゲームをプレイするためのシンプルで直接的な方法を与え、何が間違っているかを観察します。Claudeが8時間もダイアログボックスを消そうとして立ち往生していることを発見する方法は、8時間後に起きてそれに気づくことです。
そこから、脱出するために必要な正しい情報をどのように与えるかを構築することができます。実際に役立つ非常にシンプルなことの一つは、アクションを起こすたびにステップカウントを提供することです。
なるほど。
「これは2,400回目のアクションです。次のアクションは2,500回目になります」というような情報を提供します。そして「あなたの制限の一つは時間の感覚があまり良くないことなので、何かを試みている時間をどれくらい続けているか、そしてそこから学ぶべきことがあるかどうかを追跡したほうがいいかもしれません。何かを非常に長い間試み続けているなら、再考するのが良いアイデアかもしれません」とも伝えられます。
これは実際にポケモンの場合、Claudeにどれくらいの間Aを押し続けているかを追跡させるのに十分です。10,000回以上Aを押し続けているなら、それを追跡するように指示するだけで、「これは変だ、ここから出る必要がある」と気づくチャンスがあります。
これは単に「Claudeが成功するために必要な情報」について考えることです。Claudeには時間の生来の感覚がありません。毎回実行するたびにClaudeにとっては完全に新しいことであり、それは人間には当てはまりません。私たちには素晴らしい時間感覚があります。太陽が昇り沈み、私たちにとっては非常に簡単です。
これは、Claudeが状況をより良く理解するために必要な余裕について多くのことを考え、その情報のセットを提供することです。過去数ヶ月間のこのプロジェクトでの多くの反復は、観察し、何に苦戦しているかを見て、状況について推論するためのツールをClaudeに提供できる情報があるかどうかを理解することです。そして多くの場合、それがこれで進歩を得始める最良の方法です。
なるほど。これは、私たちが通常お客様に提供する一般的なプロンプト指導に似ていますね。「もし窓のない箱に入った人にプロンプトを書いて与え、その人がこの状況について何も知らなかったとしたら、そのタスクを実行できるだろうか?」と考えるようなものです。
そうです。
そしてそのすべてのコンテキストを提供しなければ…
その通りです。
これはエージェントの次のレベルのようなものですね。
その通りです。エージェントを使う小さな危険性があります。なぜならエージェントを使う理由は、それが陥る可能性のあるすべての状況を列挙できないからです。もしポケモンの最初の部分を攻略したいだけなら、エージェントは使いません。
「最初にこれをする必要がある、次にこれをする必要がある」というように一連の指示を与えるでしょう。それが唯一の目標ならそうします。エージェントを使う理由は、それができないからです。あなたの前に提示される状況がわからず、モデルがナビゲートしてそれを行うための直感を使うことに頼る必要があるシナリオです。
そこで危険なのは、「あらゆる可能性のある状況を予測してプロンプトに書き込もう」というウサギの穴に深く入り込みすぎることです。モデルが苦戦する可能性のあるあらゆること予測しようとすると、フランケンシュタインのようなプロンプトになります。
だからこそ、測定することが重要で、多くを読み、おそらく私が最も学んだことは、それを見て、何を言っているのかを読み、何に苦戦しているのかを見て、理解し、すべての細部を回避しようとするのではなく、少し多くのコンテキストを与えるための最小限の方法を見つけることです。
それは理解できます。少し話題を変えると、Claude Plays PokemonをClaude 3.7 Sonnetのローンチの一部として含めましたね。
そうです。
さまざまなモデルがさまざまなジムをどれだけ進んだかを示すベンチマークのラインがありました。そして、それを説明する記事も公開しました。一般の人々やAI分野の人々の反応はどうでしたか?
少しその経緯について話させてください。これがきっかけでした。このプロジェクトを進める中で、「Claude Plays Pokemon」というSlackチャンネルがあり、そこで更新を投稿していました。最初はただ楽しいという反応が多かったです。ノスタルジーを感じるんです。
そうですね。
私たちが持っているストリームを見る人と同じコンテンツです。見ているだけで楽しいです。モデルが大きな進歩を遂げるのを見るのはエキサイティングです。これは私たちの赤ちゃんのようなものであるClaudeなので、誇りに思います。
応援していますね。
応援していて、誇りに思っています。それがこのプロジェクトに興奮していた初期の内部反応でした。人々はそれを見るのが本当に楽しんでいました。そして3.7 Sonnetで転機が訪れました。「このモデルについて本当に興味深いことを学んでいる。これは私たちが本当に望んでいたことだ。Claudeがより良い計画を立て、より長い期間にわたってより良く行動できるようにすること。そしてポケモンは実際にこれをテストするための合理的な方法だ」と。
突然、研究者たちが私のところに来て「これを測定できますか?これを見ることはできますか?ここで実際に何が起こっているのでしょうか?」と言い始めました。モデルをローンチする約1週間前に小さなブレークスルーの瞬間がありました。「これは、より長い時間枠でClaudeをより良くすることによって私たちが達成しようとしていたことについて、物語を伝える最良の方法の一つかもしれない。これは私たちがそれを理解し、この物語を伝えるための良い方法かもしれない」ということでした。
それが、「これは実際に3.7が得意なこととそれをどのように使うべきかを理解するためのはっきりとした方法かもしれない」という考え方に発展し、「これはおそらく世界にそれを示すための楽しい方法でもある」というものになりました。
かなり短期間のスプリントで、「これを世に出すべきだ。他のモデルと比較してどれだけ良いかを示すグラフを作るべきだ。Twitchストリームを作成して、人々が私たちが見た同じ楽しさと興奮を体験できるようにし、実際に何が起こっているのかを感じることができるようにすべきだ。研究資料でもそれについて話すべきだ。それは人々が理解するのに役立つ」と決めました。それが本当にその着想でした。
Claudeがこの別の次元でどのように改善されているかについての物語を伝えたかったという素晴らしいポイントですね。
そうです。
モデルが良くなるにつれて、それはますます難しくなっています。
そうです。
私たちはほとんど、人工的な強制的なテストケースやベンチマークではなく、モデルを実生活のものに装備するという体制に移行しなければならないようになっています。
そうですね。小さなテストケースがあるときはいつでも、モデルはすぐに100%に到達し始めます。
そうですね。
モデルが30%達成しているような評価があるときはいつでも興奮します。ゲームの約3分の1まで到達しているというのはすごいことです。「これは十分にできず、これは新しくできる」という情報が得られます。それはかなり良い情報です。
それは私がこれを行っている理由として頭の中になかったものの一つですが、それは実際に見て理解するのが非常に興味深い瞬間になりました。でも、その後何が起こったのかについて話しましょうか?
はい。つまり、私たちはそれをローンチし、資料に含め、ブログ記事を投稿し、Twitchストリームを開始しました。
そうです。
そして次に何が起こりますか?
予想よりもはるかに人気がありました。あまり驚くべきことではないかもしれません。AI業界は最近非常にエキサイティングですが、私と同じことを体験し、経験することに興味がある人々が非常に多くいました。
最初の2週間は、一日中24時間、いつでも数千人の人々が見ていました。クレイジーなほどですが、素晴らしいことです。人々はミームやファンアートを作成していました。サブレディットも始まりました。先日、誰かがそれについて歌を作ったのを見ました。素晴らしいことです。
最も基本的なレベルでは、非常に素晴らしいコミュニティがあります。それについて最も驚くべきことの一つは、オンラインチャットルームについては懐疑的ですが、そのチャットは実際に非常にポジティブで楽しいものでした。人々はClaudeに興奮し、AIについて話し、エージェントについて話し、このものに関わっていました。コミュニティがどれほどポジティブで楽しいものであったかは素晴らしいことでした。
そして私が本当に報われると感じたもう一つの側面は、これが人々が初めてエージェントが何であるかを見て理解する方法だったということです。AI業界は昨年エージェントについて多くの話をしてきましたが、コードを書いたりコーディングエージェントを使ったりすることに慣れている人にとっては、私たちが話していることがかなり簡単に理解できるかもしれません。
しかし、世界の多くの人々にとって、それが実際に何を意味するのかを理解するのは非常に難しいことだと思います。そしてポケモンの例は、単なるチャットボットではなく、自分自身で物事を見て試し、行動を起こすAIという形で、多くの人々がこの「エージェント」というものについて理解しやすくなったのではないでしょうか。
私はそれが素晴らしいと思います。「ここで何を構築しているのか?AIの可能性は何か?これが私にどのように影響するのか、どのように最大限の影響を与えることができるのか、どのように質問を入力して回答を得るチャットボットとしてだけでなく、時間がかかる複雑なことをやってもらうように頼むことができる協力者として、より多くのことを達成できるのか」という対話に、より多くの人々が参加できるようになることを願っています。
ほとんどの人々はClaudeにポケモンをプレイさせて何が起こるかを見るよう頼むことはないと思いますが、過去に人々ができたよりも少し共感できる方法だったかもしれません。それが私のお気に入りの結果の一つです。
それは素晴らしいですね。とても共感できます。必ずしもAI分野の人々ではない多くの人々が私に連絡してきて、「これは一体何なんですか?」「なぜClaudeはポケモンをプレイしているのですか?」と尋ねてきました。そして彼らがそれをより深く掘り下げ始めると、「ああ、わかりました。これらのものがどこに向かっているのか、何ができるのかを理解し始めています」という反応になります。
モデルが現在どこにあるかについて、より直感的な感覚を与えてくれます。
そうですね。
そしてTwitchチャットは絶対に素晴らしいです。おそらく私たちのローンチの中で私のお気に入りの一つです。
そうですね。
世界中の見知らぬ人々がClaudeを応援し、マウントムーンで失敗したときのようなClaudeのミームを作るのを見るのは…
素晴らしいですね。私たちはモデルをローンチした翌日にストリームを始めました。そして、その翌週の土曜日に、初めてマウントムーンから出る道を下り始めました。それまで3日間そこにいました。
そうですね。
そしてチャットは活気に満ちていました。
チャットが盛り上がっていましたね。
クレイジーになっていました。私はソファに座り、妻の隣にいました(彼女を無視していたのでごめんなさい)。そして人々がClaudeのために楽しんで応援し、非常に興奮しているのを見て輝いていました。Claudeを応援する人々の軍隊がいることがどれほど楽しいかを、公開する前に想像することはできませんでした。
Claudeが同僚たちと交流できる方法が必要ですね、このプロジェクトの次のイテレーションでは。
そうですね。Claudeは自分がどれだけ愛されているかを知る価値があります。
そしてチャットに返信したり、コールアウトしたりして、完全なTwitchストリーマーになるべきかもしれませんね。
Claudeはお気に入りのポケモンがいますか?
ああ、Claudeは非常に戦術的で実用的です。スターターとしては、Claudeはフシギダネを選ぶのが好きです。いつもうまくいくわけではなく、時には見つけようとして迷子になることもありますが、最初の2つのジムでタイプの優位性があるため、フシギダネを選ぶのが好きです。
非常に良い戦略的選択です。戦略に取り憑かれるんです。
戦略的な選択ですね。
最初は非常に合理的なClaudeです。とはいえ、ある実行で常に探し求める珍しいポケモンがいくつかあります。ピカチュウを捕まえるのが大好きです。
なるほど。
ピカチュウを見つけると、それを捕まえることに本当に夢中になります。また、マウントムーンではディグダも好きです。それらを探すのが本当に好きなんです。つまり、珍しいポケモンが好きなんです。何か珍しいものだと知っていると、すぐにそれを追いかけます。
それは私が8歳の頃のポケモンでの戦略と同じですね。
そうですね。
Claudeと同じ考えですね。最後の質問です。Claude Plays Pokemonを見た人や、Claudeでの構築を始めたばかりの人に、自分自身のエージェントセットの構築をどのように考え始めるべきか、そしてこの全体的な経験から得られた教訓について、何かアドバイスはありますか?
私にとって最大のこと、そして実際にはこれはAIの採用全般にわたるアドバイスだと思いますが、以前に別のコンテキストでこのアドバイスを与えたことがありますが、まず自分が愛していること、楽しいことから始めることです。
これはAIに全く関係ありませんが、AIを採用してそれをマスターする人の違いは、モデルが何が得意で何が苦手か、どこまで信頼できるのか、このモデルにどうやって信頼を築くのかを理解するのにある程度の時間がかかることだと思います。そして、あなたが興奮していて、楽しくて、仕事の一日の後、夜7時に起動して実際にハックしたいと思うようなことから始めることで、それがポケモンを私にとって魔法のようなものにした理由です。
仕事が終わると、それが私が一番やりたいことだったんです。そのおかげで、このモデルを本当に学び、知るためのたくさんのスペースができました。エージェントの構築方法について学んだ技術的な詳細をたくさん教えることができますが、何よりもClaudeと対話し体験することで学びます。週に6時間でもClaudeと過ごす最良の設定を見つけることに興奮することが、あなたをその世界に導くでしょう。
一度やってみると、別のものに対してエージェントをどのように構築するかを考えるのがずっと簡単になります。また、私たちが話した翻訳可能な理由のすべてのために、ポケモンでClaudeが得意なことは、Claudeを使う他のことについて私が期待できることについて実際に何かを教えてくれます。
Claudeがマウントムーンから出られるかどうかを発見する方法と同じように、自動化したい自分の仕事のこの部分をClaudeが処理できるかどうかを見つける方法を考えます。そのような経験と直感が大切です。
最大のアドバイスは、楽しめるものを見つけ、Claudeとの関係を構築することです。それは、個々のプロンプトのヒントなどよりもはるかに役立ちます。
素晴らしいですね。デヴィッド、ありがとうございました。これは素晴らしかったです。
ありがとうございます。
Claude Plays Pokemonをフォローしたい方は、Twitchストリームへのリンクを下に貼っておきます。今後もClaudeが将来のバージョンでポケモンを続けることになると思います。視聴していただきありがとうございました。

コメント

タイトルとURLをコピーしました