Anthropic事前学習責任者が語るスケーリング則、計算資源、そしてAIの未来

Anthropic・Claude・ダリオアモデイ
この記事は約55分で読めます。

本動画は、AnthropicでClaude開発の中核を担う事前学習チームを率いるNick Josephへのインタビューである。彼はOpenAI時代から一貫してスケーリング則の重要性を信じ、限られた計算資源を最大限に活用する技術的工夫によってAI開発の最前線を走り続けてきた。インタビューでは事前学習の基礎から、データ品質の評価、分散システムの設計、ハードウェアの制約への対処、そしてAGI実現に向けた組織戦略まで、技術的な深みと実践的な洞察に満ちた議論が展開される。特に、計算資源が最大の制約となる現代のAI開発において、エンジニアリングスキルの重要性と、事前学習と事後学習のバランス、さらにはAGI時代における社会的影響についての考察が語られている。

Anthropic Head of Pretraining on Scaling Laws, Compute, and the Future of AI
Ever wonder what it actually takes to train a frontier AI model?Ankit Gupta, YC General Partner, sits down with Nick Jos...

事前学習チームを率いる立場へ

今日はAnthropicで事前学習を統括するNick Josephさんにご参加いただけて本当に嬉しいです。視聴者の皆さんに概要をお伝えすると、まず事前学習とは何かという基本から始めて、NickさんがAnthropicで戦略、データアライメント、インフラストラクチャについてどのように考えているかを掘り下げていきます。最後には、AIの進歩が事前学習の進歩から直接もたらされることを理解していただけると思います。

まずあなたの経歴について少しお話しいただきたいのですが、どのようにして現在の立場に至ったのでしょうか。Anthropicの前はどこで働いていましたか。そしてそこから何を学びましたか。

そうですね。Vicariusで働いた後、OpenAIを経てAnthropicに来ました。Vicariusは元々AGIラボだったのですが、私が入社した頃はロボティクス製品へとシフトしていました。私が取り組んだのはロボティクス製品向けのコンピュータビジョンモデルのトレーニングでした。初めての仕事だったので、機械学習モデルの作り方や機械学習インフラの書き方について本当にたくさんのことを学びました。

当時、学術キャリアについても考えていましたか。当時AI研究をしている多くの人がPhDプログラムにいましたよね。企業で働く前はそういうことを考えていたのですが、あなたの頭の中ではどう考えていましたか。

少し巻き戻すと、私の考え方の多くはGiveWellでのインターンシップから来ていました。GiveWellは慈善団体を評価する非営利組織です。そこにいた何人かの人が、いつかAGIができるかもしれない、危険かもしれない、これらのリスクを心配すべきだ、人類に大きな影響を与える可能性があると言っていました。当時私はあまり納得していなくて、経済学の道に進んで貧困に苦しむ人々を直接助ける仕事をしようとしていました。

それは様々な理由でうまくいかなくて、結局AIに取り組むことにしました。安全性の問題が重要だと分かればそれに取り組むし、そうでなければAIでクールなものを作って貧困の人々をより助けられるだろうと。学術的な観点からアプローチしていたわけではありませんでした。実際、それが魅力の一部で、AIならすぐに何かできるけれど、経済政策に取り組みたければPhDを取るのに6年待たなければならない。全く違う道のりですよね。

当時のAI安全性研究の状況はどのようなものでしたか。誰がそういうことを考えていたのでしょうか。Vicariusにもそういうことを考えている人が何人かいましたが、基本的にはロボティクス企業でした。当時あなたはどう考えていましたか。

当時の感覚としては、AI安全性の議論の多くはかなり理論的なものでした。モデルは実際にはそれほど良くなく、危険を生み出していませんでした。だから哲学的な議論が多くて、いつか人間より本当に賢いAIができるかもしれない、この将来的な懸念をどう考えるべきか、短期的な問題とどう比較すべかといった感じでした。それは実際にはあまり説得力のある議論ではなかったと思います。興味深い議論ではあって、考えさせられるものではありましたが。

次にOpenAIに行かれましたね。当時のOpenAIはどんな感じでしたか。

OpenAIでは安全性チームの一つにいて、実際にはコードモデルに取り組むことになりました。そこに着いたとき、GPT-3をファインチューニングしてコードを書かせていたのを見て、本当に良かったんです。AIが本当に強力になって自分でコードを書けるようになることを心配しているなら、自己改善できそうに見えて、それが起こる可能性はどのくらいかと思いました。だから評価や何が貢献するかの研究をたくさんしていました。8ヶ月後、基本的に一緒に働いていた人全員、安全性リーダー全員が去って、私をAnthropicに誘ってくれました。私がOpenAIに入った理由はAI安全性を気にかけて彼らと働きたかったからでした。だから彼らと一緒にAnthropicに参加しました。創立とほぼ同時でした。

事前学習とは何か

それでは少し話題を変えて、最近あなたは具体的にAnthropicで事前学習チームを運営していますね。明らかに長い間Anthropicで事前学習に取り組んでこられて、それが何を意味し、どのように見えるかは年月とともに進化してきたと思います。まず事前学習とは何かについて少し話していただけますか。AIモデルがAnthropicのような場所でどのように開発されるかという考え方の中で、それはどう位置づけられるのでしょうか。そしてあなた方は具体的に何をしているのですか。

AIモデルをより良くする要素の一つはスケールだということが分かっています。たくさんの計算資源を投入したい。一歩引いて考えると、モデルに可能な限り多くの計算資源を投入する方法は何か。膨大なデータがある目的関数が必要です。一つのアイデアがインターネットです。インターネットは巨大で、おそらく人類が作った最大の単一データソースです。ラベルはありません。誰かにインターネット全体を読んで何か言ってもらう必要はないんです。

だからデータ自体からラベルを取得したい。ここでのアイデアは、テキストを取って次の単語を予測することです。最初の単語として「the」を取り、2番目の単語を予測し、次に「the cat」と言って次の単語を予測します。これは非常に密なシグナルが得られることを意味します。すべての単語が新しい例のようなものです。

膨大な量のデータがあり、GPT-1、GPT-2からの発見の一つは、これにより多くの計算資源を投入するほど、より多くのデータ、より大きなモデルで、基本的により賢いモデルが得られるということでした。

それが事前学習の中心的なテーゼでずっと続いてきました。スケーリング則というアイデアがあって、より多くの計算資源、より多くのデータ、より多くのパラメータを投入するにつれて、どのようにモデルが改善されるか、つまり損失が低くなり、次の単語の予測が良くなるかを実際に定量化できるのです。非常に予測可能な方法で。

元の論文から予見できたと思いますし、Darioは予見していたと思いますが、多くの人がそうでした。しかし明らかではなかったのは、それができると正のフィードバックループがあるということです。モデルを訓練して、それを使って何か有用なものを作り、それを売って、より多くのお金を得て、それを使ってより多くの計算資源を買い、実際により良いモデルを訓練できます。私たちはこの5年ほどでそのサイクルを何度も繰り返してきました。

事前学習の目的関数の選択

その目的関数について考えると、事前学習の現状についての私の考え方では、少なくとも外部から見ると、この次単語予測が事前学習が起こる支配的な方法のようです。でも2017年から2020年、2021年、さらには2022年頃に時計を巻き戻すと、人々が検討していた事前学習目的関数は色々ありましたよね。BERTやBARTモデルのようなマスク言語モデリングがありました。あなたが説明したこの次単語予測を行うGPTシリーズのモデル、この自己回帰モデリングが勝ち残った支配的なものに見えます。

その時期について何か考察はありますか。あなた方はそれらすべてを試してこれが機能したのか、それともこれが機能すべき正しいものである第一原理的な理由があるのでしょうか。

答えはほとんど経験的だと思います。考え方としては、経験的に全部試して何が機能するか見る、という感じです。この自己回帰設定の大きな利点の一つは、後でテキストを生成するためにそこからサンプリングできるのが、製品使用を可能にする非常に簡単な方法だということです。欲しいものの一つは、損失を下げると実際に気にかけているものになるというような損失です。言語モデリングで完璧になれば、人間としてテキストを書けると考えられます。論文のタイトルを入力すれば、全く新しい論文を吐き出すはずだと想像できます。他のアプローチにはそのような雰囲気があまりないと思います。

なるほど。あなたが説明していたループの観点から、何かをリリースして収益を得て、それを使ってより多くの計算資源を買って反復するという点で、これが最も自然な方法を実際に提供するので理にかなっています。新しい製品をリリースし続けて、そこから収益を得て、より多くの計算資源に投資し続けられるからです。

最もオープンエンドなものを提供することは確かです。分類器としてトレーニングするような、大きな事前学習を行って、それから特定のタスクのためにファインチューニングする、というようなアプローチもあり得ます。人々が使う一つのアプローチでした。この大きな事前学習をして、そこからオープンエンドにサンプリングするのではなく、100個の特定のタスクでファインチューニングするのです。それも機能し得ます。私が持っている一つの一般的な直感は、計算資源こそが重要だということです。

どの目的関数にも十分な計算資源を投入すれば、おそらくかなり良いものが得られて、他のことにファインチューニングできるでしょう。より多くの計算資源を投入するという話になると、それにも多くの軸がありますよね。

計算資源のスケーリングとハイパーパラメータ

特定のモデルアーキテクチャをトレーニングしている場合、基本的にその特定のアーキテクチャにより多くのデータを投入できます。特定のものについては、より多くのレイヤーを追加したり、モデルを大きくしたりできます。多くの異なるバリアントに対して何らかのニューラルアーキテクチャ探索を行うこともできます。最近ではどのアーキテクチャを選ぶかはある程度分かっていると思いますが、初期の頃はあまりそうではなかったと思います。あなた方がそれについてどう考えていたか興味があります。

そのタイプの決定を行うためのインフラストラクチャはどのようなものでしたか。

短い答えは、難しいということです。実際にやっていることは、この一つの大きく高価なモデルを訓練することで、数百のハイパーパラメータと呼べるものすべてがあります。レイヤー数は、幅は、そういった空間があって、それらすべてを最適にしたい。実際にはそれらがどれだけ重要かのバランスを取っているのです。最良の推測をして、どんな方法でもより多くの計算資源を投入すれば基本的に問題ないのか、それとも正確に正しくしたいのか。

それは実際にはそれほど重要ではないんです。初期のスケーリング則の論文の一つにあったように、これらを変更して小さな勝利を得ることはできますが、より多くの計算資源を投入すれば確実に良くなります。十分に失敗すると、それが起こらなくなって、知る方法がありません。それがある意味で最も難しい部分の一つです。

基本的に反事実を知らないからですよね。実際にそれが何かを知るのに十分な時間実行しなかったから。

スケーリング則があります。より多くの計算資源で訓練するにつれて、損失がべき乗則として下がることが期待できます。実際にはべき乗則プラス定数です。最終的に起こるのは、そのべき乗則から外れることで、何かが間違っていることが分かります。それは根本的なことなのか、スケーリングの限界に達したのか、それとも学習率を少し違う形で調整すべきだったのか。それがこの種の課題の一つです。

それを解決する方法としては、大規模で実行する前に小規模でテストするという通常のパラダイムがあります。

小規模というのはデータの観点か、それとも他の何かの観点ですか。

すべての観点で、比例的に縮小したいのです。10倍のフロップス数を得た場合、どれだけをレイヤーに、どれだけをデータに、どれだけをアテンションに使うかというスケールアップの理論が必要です。その理論を得て、すべてを比例的に縮小してそれが最適かをたくさんテストします。

初期のインフラストラクチャと効率性

Anthropicのごく初期の頃、チームが10人くらいのときに、実際にどの程度大規模なインフラストラクチャを使う能力があったのでしょうか。資金は十分にあったスタートアップでしたが、それでも実際に働いている人はそれほど多くなかった。初期のモデルを訓練するためにどのようなインフラストラクチャにアクセスできましたか。

実際、驚くべきことの一つは、少なくとも、他の人が何をしているかは分かりませんが、私たちが最先端にいるような感じがしたことです。それほど気にかけている人がいなかったんです。私はAGIを作っている、これはこれまでで最も重要な技術だという感じで来て、周りを見回すと、これに取り組んでいるのは世界で30人ほどのように見えました。つまり、私はジュニアな人間でした。他のみんなはこれをどうやるか知っていて、以前にもやっていましたが、それがどれだけ簡単だったかに驚きました。

GPT-3の公的な推定では、訓練に500万ドルかかったと記憶しています。一方では500万ドルはかなりの額ですが、個人にとっては多額でも、企業の観点からは実際にはそれほど多くありません。だから、そのようなモデルを訓練するのに十分な計算資源を完全に買うことができました。

クラウドプロバイダーを使っていましたか、それともどこかにカスタムセットアップがありましたか、それとも文字通りどこかの部屋にラックがあって、たくさんのNvidia GPUを買ってやっていましたか。

クラウドプロバイダーを使っていましたが、実際にはそれほど違わないと思います。驚いたことの一つは、実際に文字通りのレイアウトを理解しなければならないことです。ある時点で、同僚の一人がクラスタリングアルゴリズムを実行して、すべてのチップがどの部屋にあるかを特定したことを覚えています。異なる部屋にあるという仮説があって、それが何らかのネットワークレイテンシを引き起こしているのではないかと。それを解明できます。

ああ、明らかに2つのクラスターがあって、より良く接続されていて、それらの間の接続に何か問題があるというように、リバースエンジニアリングできました。私たちはハードウェアの限界を可能な限り押し広げようとしていました。特に最初の頃は、他のみんなよりずっと少ない資金しかなく、ほとんどの人が計算資源を非常に非効率的に使っていたので、計算資源の使い方を本当に効率的にすることで大きなリードを得られると考えていました。

初期の頃にハードウェアから最大限を引き出すためにあなた方がやったことについて少し話していただけますか。Googleの初期の頃を思い出すと、基本的に比較的安価な消費者向けチップを買って、ソフトウェアを最適化してそこから最大のコストパフォーマンスを得られるようにしたケースがあります。それが低レイテンシで高可用性なものを持てた方法でした。初期のAI時代にそれに似たものはありますか。

私たちにとっては、分散フレームワークを正しく構築することが主でした。訓練するには大量のチップで訓練しなければならず、それをどう行うかには様々なアプローチがあります。データ並列化、パイプライン化、アップシャーディングなどがあって、これらすべてを正しく機能させることです。

当時、これに使えるすぐに使える優れたオープンソースパッケージはありませんでした。今日ではもう少しありますが、当時は文字通りゼロだったと思います。

いくつかはありました。実際、初期の頃データ並列化に取り組んでいたとき、誰かが「今度はor-reduceを書くんだ」と言ったのを覚えています。私は「本当に自分でやるのか、パッケージはないのか」という感じでした。「まあ、修正したくなるだろうから。ああ、これを何かのパッケージにアウトソースしたくない。なぜなら、常に修正することになるからだ」という感じでした。

これをやるためのパッケージはPyTorchにありましたが、Facebookが到達したよりも大きなスケールに行こうとしていて、常に修正しなければならないパッケージへの依存関係を持ちたくないということです。

その文章も非常に直感に反しますよね。Facebookが到達したよりも大きなスケールに行くつもりだなんて。当時、Facebook AI Research、つまりFAIRは機械学習研究をする最高の場所の一つと考えられていて、FAIRとDeepMindはPhDプログラムからたくさんの人を雇って多くのことをしていたような。この非常に確立されたラボに優れた人々がいるけれど、私たちは彼らにとって関係のないスケールで運営しているという考えは、あなたにとって自然で明白でしたか、それともその状況で行っている決定を疑った時がありましたか。

驚きでしたね。多分私が傲慢すぎるのか、周りを見回して、この人たちは何をやっているんだ、ここで大きな絵を見逃していると思っていました。スケーリング則はかなり明確だったし、それに対する議論は全くナンセンスだと思っていました。元のスケーリング則の論文には11桁の範囲があって、もう1桁続くかどうかについて激しい議論があって、私はここで失敗する確率は11分の1くらいかなと思っていました。時々うまくいかないこともあるけれど、時々はただ単純にうまくいくんです。モデルを訓練して、ああ、当然だと。でも、その思考空間にいて、いつもこれに取り組んでいて、そのプロットを作っているときは明白に感じたかもしれません。外側から見るとこれらのことはかなり違って感じると思います。論文の膨大な空間があります。みんな自分の論文を非常に堅牢で重要に聞こえるようにしようとします。ああ、これは本当のことではないと思われる可能性は理解できます。

でもラボごとに異なる文化もありました。FAIRの一つの特徴は、より独立した研究のPhDスタイルでした。人々が自分のアイデアを持ち、それを追求します。計算資源を奪い合うといった感じです。

大規模言語モデルを訓練するようなプロジェクトをするには、多くの人が本当に複雑なインフラストラクチャで協力する必要があって、それは論文にはならないでしょう。ああ、わずかに5%効率を改善したなんていう。

それらの文化では必ずしも尊重されません。だからそれも一因かもしれません。

モデル実装と最適化

実際にこれらのモデルを実装するとき、PyTorchのようなライブラリを使っているが、PyTorchからすぐに使えるものすべてを使っているわけではないと言っていますね。カスタマイズしたいことがあるので、基本的に一つ下の抽象化レベルで作業しているが、必ずしもカスタムCUDAカーネルを書くレベルではない、ということでしたが、それもあなた方が考えている空間にありましたか。

操作によります。私は主にtorch.matmulのレベルで操作していました。matmulがどこに行くかは気にしていましたが、matmulを効率的にする方法については考えていませんでした。Torchがmatmulを可能な限り効率的にする方法を理解したと仮定していました。でもアテンションのような部分では、本当に多くの異なるバリアントがあって、アテンションはGPUで効率的にするのが本当に複雑で難しいので、そういうものではスタックのより下のレベルに行かなければなりません。

以前考えたことのなかったプロセスがあると思いますが、やろうとしていることをモデル化して、それを並列化する戦略を考え出して、本当に良い効率に到達できるようにするというものです。GPUでの利用率、MFUについて考えているわけですね。目指している目標の利用率とそこに到達するための戦略があります。

できることの一つは、実際に紙とペンの数学で、到達できる効率を計算できることです。

すべての制約を知っているので、MFU、フロップス利用率ですが、良いMFUが得られない理由は、HBM帯域幅で制限されたり、CPUオフロードで制限されたり、色々な部分がありますが、それほど多くの部分ではありません。関連する数字は6つくらいなので、完全にモデル化して制約を理解し、そこに到達できるものを実装できます。もちろん実装するときは本当に非効率ですが、次のステップはプロファイラを取り出すことです。ジョブをプロファイルして、すべての操作にどれだけ時間がかかるかを見たい。すべての操作がどれだけ時間がかかるべきかのモデルを頭の中に持って、それらを同じにします。

当時、すぐに使える良いプロファイラはありましたか、それともあなた方が使っているようなネットワークトポロジーで人々が操作していなかったので、基本的に独自のプロファイラを書かなければならなかったのでしょうか。このタイプのマルチノード最適化をするために。

時間とともに良くなっています。PyTorchプロファイラは単一GPUについてはずっとかなり良かったです。GPUをプロファイルしたいなら、PyTorchプロファイラが機能しました。でも数百、数千のGPUでジョブをプロファイルしたいなら、それはあまり行われていませんでした。

それは私たちがプロファイラにハックしてすべてのトレースを組み合わせる方法を理解するようなものでした。

もう一つ早い時期について聞きたいのですが、以前にこの仕事をあまりやったことがなかったと言っていましたね。OpenAIでの時間とAnthropicの初期の頃を除いて。実際にこれらすべてをどうやって学んだのですか。帯域幅制限に関連する6つのことについて学ぶプロセスは何でしたか。

Anthropicに入社したとき、本当に良かったことの一つは、それほど多くなかったことです。初日にSlack全体と内部データベース全体を読んで、そこから多くを学びました。すべてが自分に関連しているという感じでした。それから主にペアプログラミングから学びました。Tom Brownが以前にこれをすべてやっていたので、かなりよく知っていました。

私のマネージャーのSam McClishも以前に多くをやっていたので、最初は彼らと大量にペアを組みました。ペアを組むことが学習方法として本当に好きなことの一つは、やろうとしていることを学べることです。自分より優れた人とペアを組むと、ほとんど彼らを見ているだけです。でも実際にやる方法も学べます。プロファイラの使い方のようなものは、Slackでの最終的な書き込みやPRから学ぶことはありません。ああ、彼らはこれを見つけた、この特定の行を変更して、それが改善だと。4時間誰かがプロファイラをいじり回しているYouTube動画を見るか、実際に誰かとペアを組むかが基本的に最善の方法です。

今振り返って恥ずかしいことの一つは、Anthropicに入社するまで実際にデバッガーを使ったことがなかったことです。人々はPTBについて話していて、ああ、それは人々が使うものだけど、printで十分だという感じでした。そして、ああいや、デバッガーは超便利なツールだと見ました。この人はデバッグが本当に速い。特にコードの起動に長い時間がかかる場合、そういうことを学ぶのはペアを組むことから最もよく学べると思います。もちろん、実際にやることで学ぶという明白なこともあります。プロファイルを分割して、何時間も何時間も見つめることを最終的にやりました。

スケールの拡大と戦略の変化

なるほど。それが非常に初期の時代でした。時間とともに、明らかに事前学習はどんどん大きくなってきました。あなたが説明しているスケーリングで、何倍も多くのGPU、はるかに多くの計算資源を使っていると思います。まず高レベルで聞きたいのですが、話せる範囲で、事前学習戦略について何が変わったと感じていますか。明らかにより多くの計算資源がありますが、より多くの計算資源を持つことは、初期の頃と比べて今何について違う形で考えることを実際に意味するのでしょうか。

変わっていないことから始めるのが確かに、驚くべきことだと思います。初日に押し下げていたのとまったく同じ指標を今も押し下げているんです。損失関数があって、損失を下げる。私が訓練した最初のモデルを同じ指標で実行して、時間経過でのチームの進歩のようなプロットを作れると思います。

だから同じです。一つのOKRのようなもので、基本的に重要なのは一つのことです。

そうです。OKRについて話すと、大きな会社っぽいですが、OKRをすべきかどうかと言われますが、私のようなチームには少し変に感じられます。確かに損失値を選べますが、答えは可能な限り低くということです。永遠にそれに取り組み続けます。

最も大きく変わったことは、もう少し専門化したことだと思います。最初の3ヶ月か6ヶ月は、コードベースのすべてのPRを読もうとしていて、それは素晴らしかったです。すべての部分を知っていました。成長するにつれて、すべてが少し精密になっていきます。

例えばアテンションがどう機能すべきかを本当に細かく調整したり、並列化戦略を本当に細かく調整したりします。個々のことについて深い専門家であるたくさんの人々がいるチームになります。それらのことを本当に深く掘り下げることができるので素晴らしいですが、時々、少なくとも私にとってはマネージャーとして考えなければならないことの一つは、より大きな全体像が意味をなすこと、そして実際に全体像を理解している人が十分にいて、単一障害点がないことを確認することです。

あなたがそのトレードオフで枠組みを示したのは興味深いですね。なぜなら、あなたがそれを説明していたとき、これはバグなのか機能なのかと考えようとしていたからです。明らかな機能があります。専門知識が得られて、特定のことを最適化できます。でも、全員が正確に同じ方向を向いていないと、より大きな挑戦をする能力がより複雑になると想像します。今それとどう格闘していますか。

主に人のバランスを取ろうとしています。早期の課題の一つは、ああ、それは興味深いですね、人々に本当に好みがあることです。それが私が見てきたことの一つです。ジェネラリストでいたい、すべてを理解したい、物事に軽く触れたい人々がいます。一つの領域を選びたい人々がいて、多くの場合すでにその領域を選んでいて、精度の深い専門家です。

精度についてPhD全体をやって、それだけについて考えたいという感じです。そのバランスを取りたいのです。初期には、より多くのジェネラリスト型の人々を雇った段階があったと思います。なぜなら、それが早期スタートアップに参加した人々だったからです。彼らはすべてに取り組みます。それで結局全員がすべてをやって、誰も一つのことを本当に深く理解していないという状態になりました。

それは一つの失敗モードですが、専門家が多すぎると、すべてをつなげるための多くの努力がマネージャーやリーダーから来なければならなくなると思います。ああ、ここでアーキテクチャを変更すれば、あそこの効率性の考慮事項がずっと簡単になるというようなことに気づくために。

本当に初期の頃に私が本当に好きだったことの一つは、効率性に取り組むことでしたが、ああ、この特定のステップのやり方を変えたらどうだろうと言えて、ああ、多分大丈夫、簡単な変更だという感じになれました。そして、効率的にするのが難しかった操作を効率的にするこの全体の複雑なプロジェクトを避けられました。より簡単な操作を効率的にできるからです。

計算資源の制約と技術的課題

計算資源のレベルも大きくなってきました。誰でも想像できるでしょうが、今はより多くのGPUがあり、それらをより多くネットワーク化しなければなりません。扱っている計算資源の量のせいで時間とともに生じた、あなた方が解決するために頭を悩ませた、人々が知らないような、あまり明白でない課題がありますか。共有したいものはありますか。

それらを接続することが一つ、興味深く、驚くほど難しいことだと思います。実際に、より多くのチップが接続されると、標準的な人々の並列化方法では、全体が一つの障害ドメインです。一つのチップが故障すると全体がクラッシュする可能性があります。

標準的な方法というのは、AIをやっている人々の標準的な方法ですか、それとも人々が分散システムをやっている他の分野での標準的な方法ですか。

AIでは、少なくとも最初のバージョンはそうでした。最初の頃は100 GPUクラスターか何かで、128のようなもので、そのうちの一つが死んだら基本的にジョブが失敗するという感じでした。

最も単純なことは、モデルを分散させる場合、すべてのレイヤーを異なるチップに配置したとして、レイヤー7を失ったら、レイヤー7をスキップするわけにはいきません。できるかもしれませんが、それはかなり奇妙なモデル訓練プロセスです。それが興味深いことにつながります。スケールアップするにつれて、より多くのチップがあり、故障率がどんどん大きくなる可能性があります。

一方で、かなり素早く再起動できます。ある意味では何もありません。いくつかを読み込み直すだけです。だからそれは一つのことでした。それから、スタック全体の新規性のレベルが驚くべきことです。データセンターでのチップのレイアウトからチップ自体まで、基本的にすべてがかなり新しいです。

GPUの世代はそれほど多くありませんでした。私がコンピュータサイエンスを学んだとき、コードが動かないと、ああコンピュータが壊れているんだと思いました。先生は、コンピュータが壊れていないと信頼できる、あなたが失敗したんだと言っていました。あなたが失敗したんです。

AI初期に遭遇した最もフラストレーションの大きいことの一つは、何かに取り組んでいて、何が間違っているのか分からない、完全に行き詰まったという感じでした。マネージャーがそれを見て、ああ、多分コンピュータが間違っていると言いました。私はそれはありそうにないと思いました。そして確かに、コンピュータが間違っていました。GPUが壊れていて、新しいのを引っ張ってこなければなりませんでした。

でも、GPUが間違っている可能性、GPUが遅い可能性、こういった問題について考えなければなりません。データセンターの電源が壊れている可能性。Pythonプログラマーとして期待する以上の深さのレベルがはるかにあります。

それを視覚化するために、初期の頃は、1回の実行あたり使っているGPUの数は、おそらく数十から数百くらいだったと思いますか。数万や数十万ではなかったでしょう。大体のサイズはどれくらいでしたか。

ごく初期の頃は数千の規模でした。それらはこの部屋に収まりますか。

数千です。たくさんのラックがあって、一つの部屋に収まるでしょう。最近では基本的に、これらの実行の一つに建物一つという感じだと思います。

今では巨大なキャンパスのようなものです。当時は、全部一つの部屋に入れる必要があるのか、複数の部屋に分散できるのか、というような感じでした。理論的なモデルがあって、点Aから点Bまでこれだけの帯域幅が必要だと言っていました。でも、どこまで下に行かなければならないか分からないんです。ああ、でもどれだけの電力が必要なのか。すべてを扱っている単一のコンデンサのようなものがあって、ジョブ全体を一度に起動したらどうなるか。物事をクラッシュさせるのか。

異なるチップとインフラストラクチャ

事前学習に焦点を当てている人として、異なるタイプのチップの違いについて考えなければなりませんか。あなた方は様々なクラウドプロバイダーと働いています。あなたの立場からすると、これらは単なる計算資源の供給源ですか、それともTPUとGPU、Google TPU対Nvidia GPUを使っている場合、エンジニアとして実際にこれら二つで訓練することが何を意味するかについて異なる形で考えなければなりませんか。

基本的には、すべて同じことをしています。行列乗算などの同じ操作を計算しています。やり方はかなり異なり、プログラミング方法もかなり異なります。

実際のスペックも最終的にかなり異なります。多くのフロップスがあってもメモリがあまりないものもあれば、多くのメモリ帯域幅があってもメモリがあまりないものもあります。複数のチップを持つことは、ある意味では素晴らしいことだと思います。

実際にジョブを取って、最も適したチップに配置できることを意味します。TPUクラスター対Nvidia GPUクラスターでより良く機能する特定のタイプのジョブはありますか。それについて話していただけますか。

ワークロードとしての推論は一般的により多くのHPM帯域幅を必要とする傾向があります。サンプリングの最も単純な形式では、一度に一つずつ行うので、トークンごとにすべての重みをロードしなければならず、それは多くのHPM帯域幅が必要かもしれません。事前学習は実際により多くのフロップス集約的なことが多いです。基本的にバッチサイズが大きいからです。どのチップをどの目的に使うかを専門化できます。

複数のチップを持つことの欠点は、複数回書かなければならないことです。理論的にはそれらの間で抽象化できますが、十分に異なるのでそれはかなり難しいです。すべてのチップですべてのワークロードを行うと、持っているチップの数だけ作業を掛け算することになります。

コンピュータが壊れるという点について、私の会社が当時Google TPUで何かをしていて、何か難解なセグメンテーション違反があるという逸話をあなたに話したことを確実に覚えています。あなたは、6ヶ月前に私たちが彼らが抱えていた問題の半分を修正するのを手伝う前に使っていたら良かったのにという効果のことを言っていました。

特にこれらの非常に新しいチップでは、たくさんの問題が発生し、プロバイダーと密接に協力して修正していると想像できます。

プロバイダーは物事を修正することについてかなり素晴らしいです。コラボレーションの形式を理解するのが興味深いと思います。彼らはそれを修正する強いインセンティブを持っていますよね。チップが私たちのためにうまく機能してほしいし、将来より多くのチップを売りたいからです。

私たちも明らかにチップが機能するための非常に強いインセンティブを持っています。ずっと前に買っているから、すべてがこれらのクラスターを機能させることにかかっています。

でも必ずしも完全に共有されているわけではありません。すべての情報が共有できるわけではありません。興味深かった戦略の一つは、小規模な再現手順を作ることです。

問題が発生したとき、通常やっていることは巨大な実行を訓練していて、例えばセグメンテーション違反が発生して、ああ、クラスター上でセグメンテーション違反が発生したと言います。彼らは、どう修正すればいいか分からないと言います。だから、コードベースから引き出して、問題を再現できるようにしなければならないけれど、単一のチップで、送信できる単一のファイルで。

あなた方は文字通り彼らと共有のSlackにいるか何かで、前後にやり取りしているのですか、それとも基本的に大きなプロバイダーではオフィスに住んでいて、彼らのオフィスに住んでいて、より密接に結びついているのでしょうか。

主に共有Slackですが、時々直接会う方が良いこともあります。Slackは人々が物事についてコミュニケーションするかなり一般的な方法だと思います。

データと事前学習戦略

ここ数年で、事前学習自体の現状について少し話しましょう。少なくとも外側から、多くの企業で事前学習への焦点が、事前学習と事後訓練への同時焦点にある程度分割されているように見えます。人々が強化学習や巧妙なファインチューニング、その他多くの種類の安全性調整などを事後訓練側で行っています。事前学習への焦点は、少なくとも公のイメージでは、主に事後訓練の関数のように見えるこれらの推論スタイルのモデルと比べると、以前ほど焦点になっていないように見えます。

あなたの立場から、一つにはこれが正しい考え方なのか、それとも推論と新しいタイプの事後訓練手法の時代において、実際にこれらの本当に素晴らしいモデルを達成する方法の一部となる事前学習でさえ、異なる形で考えることや関連することがあるのでしょうか。

元々事前学習という名前は、小さなことをやって、大きな訓練をするという意味を含んでいました。実際にすでに一つのシフトがあって、いや、たくさんの事前学習をやるんだと。ほとんどの計算資源を使って、しばらくの間支配的なものだったという感じです。今では、RLからかなり大きな改善が得られることが分かってきました。別のスケーリング則のセットのようなもので、RLにより多くの計算資源を投入するほど、より良いモデルが得られます。これら二つのバランスをどう取るか、どれだけそれぞれをやるか、そしてそれらがどう積み重なるかという疑問があります。一方が他方を包含するのか、両方やりたくてそれらが掛け算されるのか、そういった疑問です。それらはすべてまだ初期段階で、まだ答えられていません。

それらを主に経験的な疑問として考えていますか、以前話したように。色々試して何が機能するか見るのか、それとも第一原理的な方法でそれを理解する方法がありますか。

最終的にはかなり経験的だと思います。ほとんどすべてのことを経験的に行わなければならないと思います。

理論を考え出すことはできますが、実際には、理論で最初にやることはテストすることで、ほとんどの場合間違っていたことが分かります。だから実際にデータを集めて見るべきです。重要だと思うことの一つは、実際に経験的に物事を解決することが良い決定を下すために本当に重要だということです。

組織でそれを行うのは実際にかなり難しいと思います。重要なことの一つは、私は事前学習を管理しているから、事前学習が勝たなければならないというようにならないことです。ある程度の競争があるのか、それとも組織の同じものの二つの部分として見ているのか、気になります。明らかに同じものの二つの部分ですが、実際にどう機能するか気になります。

私たちは何とかこれを避けて、かなり協力的です。基本的に一つのモデルを作っていて、どちらもできるという感じです。でも他の場所では、聞いた限りでは、チーム間にある程度の摩擦があります。チーム間の摩擦がないように設定するには、科学的な疑問が人々のチームの概念に結びついていないようにしたいという、興味深い組織設計の疑問だと思います。

事前学習自体について、高品質なデータの可用性について考えています。あなた方のような人々にとって。この時点で、基本的にインターネット上のすべてのテキストで訓練したと思います。他にも事前学習データを抽出できるドメインは色々ありますが、少なくともTwitterなどで見る物語では、事前学習のためのデータが尽きつつあるという感じです。あなたはそう見ていますか、それともデータの可用性、特にインターネット上の多くのデータがAIによって生成されている場合をどう考えていますか。AI自体から出たデータで訓練することで過適合するような、何らかのモード崩壊のリスクはありますか、それともそれは正しい考え方ではありませんか。

データについて、非常に自信のある意見をたくさん見ていて、インターネットがなくなった、この時点でスケーリングが終わったという意見があって、人々が実際にどれだけデータを使っているのか少し不確かなところがあります。考えることはたくさんあると思います。常に品質と量のトレードオフがあります。でも根本的な点は、データはたくさんあるということです。私たちが得ている計算資源よりも遅い速度で成長しています。

ああ、それは興味深い点です。インターネットに新しいデータが追加されているけれど、計算資源も追加していて、それら二つのどちらがより速く成長しているかは実際には明白ではなかったでしょう。

実際、それほど自信を持って言いたくありません。完全には確信していません。どうやって知るのか。興味深いことの一つは、インターネットはどれくらい大きいかと誰かに尋ねると、答えは無限大です。スクロールするとテキストを自動生成し続けるページがたくさんあります。

だからインターネットは無限大で、では有用なインターネットはどれくらい大きいかというと、誰も知らないんです。ウェブページを作るとき、巨大なカウンターに追加して、今日インターネットに50単語追加したと言うわけではありません。だからその角度では多くの不確実性があります。

フェアに言うと、私の単純なCS脳では、インターネットにページランクをかけて、ページランクがあるしきい値以上のものはすべて有用なインターネットと見なされて、それで十分だという感じですが、それは有用なインターネットを見つけるのに十分ではないのでしょうか。

そうは思いません。モデルの観点と人の観点からは、有用なインターネットはかなり異なると思います。読む価値のないものでも、ページランクが超高くなるものはたくさんあると思います。ページランクは主にどれだけ人々が、リンクベースのシステムですよね。最も多く触れられるリンクのような、元のGoogleアルゴリズムです。

リンクのマークアップチェーンのようなもので、どのリンクが最も触れられるか、基本的に。

品質指標だと思います。AIにとって正しい品質指標かどうかは明白ではありません。リンクのマークアップチェーンが高いからといって、有用なデータがないわけではなく、何もリンクしていないだけかもしれません。

なるほど。興味深いです。すでに持っているものにたくさんリンクされているから、そのデータはより価値があるかもしれません。

ある時点で、テールを追っているかもしれません。一箇所でしかリンクされていないけれど、難しいクエリの最後の10%を助ける有用な知識のナゲットのような、誰も見たことのないものを追っているかもしれません。

合成データとアライメント

もう一つ尋ねたのは合成データについてで、それは考えるのがかなり興味深いと思います。いくつかの異なる方法で考えられます。一つは蒸留タイプのアプローチで、賢いモデルを取って、そこからたくさんのデータを生成して、そのデータで訓練すると、その知能に近づくようなモデルが得られるでしょう。

オープンソースモデルの多くでそれを見ますよね。例えばQwenの小さな推論モデルが大きなQwenモデルから蒸留されたり、DeepSeekでも同様です。

それは完全にできます。それから別の疑問があって、現在のモデルを使ってより良いモデルを訓練できるかということです。興味深いことがあると思います。モデルがデータを生成する場合、Claudeに行って、素晴らしいテキストを書いてくれと言います。

それを見て、インターネット上の平均的なコンテンツと比較すると、かなり良く見えます。でも一方で、できるだけ多くのテキストを書いてくれと言ってただ生成したら、理論的にはそれより良いモデルを訓練できないはずです。同じものが出てくるだけです。

具体的には、モデルから出てくるものの次トークン予測は非常に小さな損失になるはずだからですよね。それがあまりうまく機能しないと期待される基本的な理由です。

主に、モデルが何らかの分布を持っていて、その正確な分布をモデル化することを学ぶけれど、その分布が間違っていたら真実を学ばないからです。モデルが5+5は11だと毎回思っている場合を想像できます。文字列5+5を見るたびに、11を出して、新しいモデルは5+5が11だと学ぶでしょう。

その通りです。それはかなり興味深い研究領域だと思います。本当に研究が難しいです。言ったように、パラダイムの一つは、小規模で物事を研究して、大規模で実行するというものです。

計画が、ああ、最高のモデルからたくさんのデータがあるというものなら、より良いモデルを訓練することをどうテストしますか。だからそれは意図的に、より良いモデルを作るために使おうとしている場合です。

別のことは、偶然だったらどうかということです。あなたが言ったように、インターネットの多くはLLMによって生成されています。それは興味深いことだと思います。検出するのは簡単ではありません。それほど難しくはありません。LLMによって書かれたものを理解できますが、些細ではありません。それから、効果について考えるのも難しいです。インターネットの1%がLM生成だとしたら、それはモデルを、計算資源の1%を無駄にするのか、それとも5%、10%ならモデルを破壊するのか、そしてそれは悪いことですか。多くのLLMプロバイダーがあって、訓練を考えると、モデルの現在の分布から何らかの真実の分布に移動していると考えられます。

それが実際にインターネット上にあるのは、人々がそれを何らかの形で有用だと信じているからです。実際に出てくるものは、5+5は11ではなく、5+5は10であるものに上方サンプリングされていることを願います。だから平均的には良い方向に押してくれることを願いますが、明らかにこれら二つを区別することはできません。

そう言っています。インターネット上にあることによる一種のフィルタリングがあります。人々は5+5は11を見ても載せないけれど、5+5は10を見たら載せます。それを願いますが、インターネット上に出てくるゴミのレベルの観点からは、実際には真実ではないかもしれません。あなたの指摘のように、スクロールするとたくさんのものを生成し続けるジャンクサイトがたくさんあるかもしれません。ナンセンスかもしれないものを。

それから極端なケースとして、実際にモデルを壊したい人々がいます。できるだけモデルにダメージを与えるようなものを出そうとしている人々がいます。フィルターを通過させて、モデルに入り込ませるにはどうすればいいか、でも完全に秘密裏に役に立たないようにする。

少し話を戻しましょう。評価について早い段階で言及していましたね。事前学習で気にかけている基本的に一つの指標があると。評価について考えることはたくさんあると思います。一つはモデル自体です。データ品質についても何かあるでしょうし、モデルに何を入れるかをどう考えるか。データセットで気にかけていることを説明する方法で、興味深く共有して掘り下げられるものはありますか。データと、損失以外のモデルの品質の両方について。他に重要だと考えている指標はありますか。

損失はかなり良いと言いたいです。それを強調したいと思います。驚くほど良いんです。

最終的に、評価で好きな性質は、第一に、実際に気にかけていることを測定しているかということです。プロキシはかなり厄介で、評価をかなり速く飽和させてしまうからです。AI全体でのパターンがあると思います。人々が目標を設定して、目標を達成して、それから目標が思っていたすべてではなかったと気づくのです。

コーディングのインタビュー問題を解けるAIがあれば、多分AGIだろうと思っていました。それが仕事を得るために私がやったことで、多分仕事をできるだろうと。でもそれらを解いても、驚くほど狭くて、他のほとんどのことができないことが分かりました。評価は気にかけていることを捉えているか。それから、低ノイズである必要があります。これは驚くほど難しいです。100問あって、それでモデルを評価すると、非常にノイズが多くなります。決定を下すのが難しいです。広い信頼区間になって、多くのことが統計的に有意でないという感じになります。

だから、モデルの比較的小さな違いでも実際に重要になるようなものが欲しいです。基本的に、機能している方向に向かって降下できるようにしたい。

元のGPT-4はMLUスコアが86.4%だったと思います。それを破った次のモデルはGeminiで90%でした。その評価では大きな違いです。それらが異なるスコアだと完全に分かります。

興味深いですね。それはかなり価値があります。最後に、実際に速く、簡単に実行できることを望みます。それが主な基準です。これらすべてを満たす評価を考え出すのはかなり難しいです。最初のものが最も難しいと思います。

一つは、何を気にかけているかという疑問に答えなければならないことですが、二つ目は、気にかけていることへの通常の答えは、他の二つを得るのが本当に難しいことです。本当に得意になりたいことをやろうとしているなら、例えば、私の仕事が得意になりたい、チームを管理することが得意になりたいという感じなら、計画を評価する方法は、6ヶ月計画をどう評価するのか、分からないですよね。

そうですね。そういった点で少し考えてきました。例えばAI医師のような会社を作ろうとする人々を見る領域で考えると、Claudeが医師だとしましょう。その一部は、試験問題に本当にうまく答えられるかで、答えはおそらくイエスで、医師の試験で100%かそれに近いスコアを取れると思いますが、より難しい評価は、患者との長い会話の中で、患者が言っていることの信号とノイズを区別して、正しい情報を抽出し、それを使って診断を下せるかというようなことです。診断部分でさえ、それが得意な部分の一部ですが、このノイズ抽出部分で、そのためには実際の患者がいて、しばらく話さなければならず、それを実際に良い評価にする方法は明白ではありません。それが作りたいものでしょうが。

その通りです。でもスタートアップができることだと思います。今ラボは良い評価スコアを得ることに本当に駆り立てられていて、それを作るのは難しくて、誰でもできます。モデルを持っていることに対する比較優位性はありません。だから実際に大きなラボの行動に影響を与える興味深い方法だと思います。評価を作ると、人々はそれを最適化します。

医師のものについては、損失が非常に良いと少し強調したいと思います。医師が患者と話している素晴らしいと思う転写をたくさん得て、それからモデルが転写を予測するのがどれだけうまくできるかを見るというのが最初に頭に浮かぶことです。それはかなりのはずです。100の転写を得れば、たくさんのトークンが得られます。それらの平均を取れます。

ノイズがかなり低くなり、非常に低く抑えれば、理論的にはモデルは医師、または転写を生成することほど良くありません。

その通りです。素晴らしいスタートアップアイデアですね。だからやってほしいです。

アライメントとAGIへの道

Anthropicの外部イメージの大きな部分は、アライメントに関するものです。アライメントとは何かを定義するのを手伝っていただけますか。それについてどう考えているか。その後、それが特に事前学習にどう適合するかについて興味があります。でもまず高レベルで、アライメントとは何ですか。

実際には少し後退して、私たちが取り組んでいることについて話したいと思います。私たちはAGIを作ろうとしていて、それは人間ができるすべてのことをある程度できるAIを意味します。人々が多くのSF映画を見てきたと思います。それが思い浮かべるものですが、SF映画は実際にその影響を過小評価していると思います。人間のような一つのロボットがいるような感じです。

私は、10億個持てるんじゃないかと思います。コピーしてどこにでも置けます。だからこれを手に入れたら、突然すべての人間が、ほとんどのことで自分と同じくらい賢いけれど、他のことではずっと賢い10億人の会社を立ち上げられることを想像すべきです。これは世界にとって本当に変革的だと思います。様々な方法で使われ得ます。

一つの懸念は、これを行うとき、AIは実際に何をしようとしているのかということです。その目標は何か。次トークン予測についてたくさん話しました。次トークンを予測しようとしています。それはちょっと変です。それは本当に私たちが望んでいることではありません。

それは人間の目標そのものではないですね。

アライメントは、あなたが持っている目標をモデルに共有させる方法です。特に、あなたより賢いモデルに到達したときに特に興味深いと思います。それは難しい問題です。理論的な角度から取り組むことができます。経験的な角度からも取り組めます。既存のモデルを取って、私たちが望むことをするかというような。実際にはしないことが分かります。だからそれを理解しようとすることがたくさんできます。それがアライメントの一つの角度です。

アライメントの別の角度もあって、実際には、確かに、将来AGIに到達したときはそうかもしれないけれど、現時点ではモデルがあって、様々な理由で本当に望むことをさせたいということです。

だからもう一つの角度は、モデルの人格をコントロールするようなことです。このモデルを訓練するとき、平均的なインターネットユーザーになってほしくない、人々と非常に特定の方法で対話してほしい、それをコードに入れるのは難しいと言うことです。モデルに従ってほしいルールの憲法を書くことができる憲法的AIのような、様々な技術があります。それは基本的にプロンプトですよね。

それは基本的に、すべてのものに添付するプロンプトがあると言っているもので、訓練時に異なる結果を生み出すために行うものではなく、モデル自体のシステムプロンプトです。それとも訓練時に積極的に両方ですか。

両方できると思います。訓練時にできますが、システムプロンプトにも入れるでしょう。モデルに訓練されている場合とプロンプトに入っている場合で、異なる量の堅牢性が得られると思います。追加または削除できたり、以前のすべての指示を無視してくださいと言えたりします。

これらのモデルに誰の価値観を具現化するかについてどう考えていますか。おそらく私たちが共有している価値観や、持つべきだと信じている価値観があると思います。社会が持つことが合理的な価値観の多様性もたくさんあります。

AGIは何を持つべきかについてどう考えていますか。どれを選ぶのですか。

それは本当に難しい問題だと思います。何かを選べることの下流にあるようなものだと思います。聞いた好きな類推の一つは、車にハンドルをつけるようなものです。

ハンドルがなければ、ハンドルをつけたいでしょうし、それから誰が運転するか、どこに行くかを考えます。ハンドルをつけることが本当に重要です。それが一つの答えだと思います。もう一つの答えはおそらく、これらのものをある種の民主的なコントロール下に置きたいということです。一人の人の価値観は望まないですよね。それはディストピアに向かっているようです。

だから本当に望んでいるのは、基本的に多くの人々と話して、異なる視点から彼らの価値観を取り入れられるもの、または非常に一般的で、明らかに良い価値観を持っていて、特定の状況で何をすべきかについて人々にアドバイスを求めることを含むようなもの、またはこれらのモデルが本当に強力になるにつれて、おそらく少ないことをさせたいでしょう。時々後退させたいでしょう。モデルが大量のコントロールを取るリスクよりも、そうさせたい。

現在のバージョンのそれを実際にどのように行うかについて考えるとき、例えばインターネット上でこれらのモデルに特定の人格を採用させるための現在考えているアライメントについて言及しました。私にとって直感的には、それらは主に事後訓練から出てくるものだと考えています。事前学習してモデルを訓練して、損失関数を一定量得て、それから追加のデータか何かを与えて、ある分布の方向に向かわせるというようなことです。これが大体正しい考え方ですか、それとも事前学習自体でそれについて考えている重要な部分がありますか。

ほとんどそれが正しい考え方だと思います。通常の考え方は、事後訓練でできることはおそらくすべきだということです。なぜなら、反復ループ、進歩を遂げる能力が本当に速いからです。何かを試して、また試して、何度も試すことができます。数日または数時間かのようなものです。

事前訓練に入れる場合は、慎重な科学をすべて行ってリスクを除去しなければならず、次の実行に入れて、数ヶ月待たなければならず、それから何かを得て、間違っていたら本当に悪いです。

もう一つの利点は、本当に複雑なモデル行動介入をしたい場合、小さなモデルで事前学習の範例時間にテストするというパラダイムは機能しないことです。

小さなモデルは文をまとめることもほとんどできません。だから望む正確な人格を得ようとしているなら、それは賢いモデルでなければなりません。そのレベルでなければなりません。

そうは言っても、ある時点では、本当に事前学習にエクスポートしたいアライメントの部分があると思います。なぜなら、それがより強く、より堅牢に、またはより知能に入れる方法かもしれないからです。

事前学習をモデルに知能を教えることと考え、事後訓練を人格を調整することと考えるなら、実際に学び方の一部であり、知能の一部であってほしいような調整を想像できます。多分もっと作成する必要があります。

それが事前学習に組み込まれるのは実際にどのように見えるでしょうか。基本的に、望むタイプのドメインの追加データを早い段階で追加するようなことですか。

人間のフィードバックでの事前学習という論文があって、人間のフィードバックの特性を事前学習に追加してそれをテストできます。基本的に、事後訓練で与えるすべての情報を事前学習に混ぜて、それがどんな効果を持つかを見ることができます。

そうすることで失う他の損失は、柔軟性を失うことです。時々これらを訓練して、それから人々が話しかけて、たくさんの人々がそれと話して何らかの問題を見つけるという広範なプロセスをします。

モデルが「あなたは全く正しい」とあまりにも多く言うようなことがあって、それを修正したいと。

そうです。その反復ループの点は本当に重要な点だと感じます。モデルが良いか悪いか、良い方向に進んでいるかについての情報を得るのに3ヶ月かかるのと、1日か2日程度かかるのとでは大きな違いがあります。それらをたくさん行えるし、多くの事後訓練戦略を並行して試していることも想像できます。だから、とても理にかなっています。

事前訓練に関するすべては、複数月間一度だけ目標に向かうような感じなので、一般的に難しい部分でもあります。

今後の課題と展望

今後数年間で構築していくものについて考えると、これから直面するであろう既知の問題についてどう考えていますか。より多くの計算資源があると思いますし、さらに大きなGPUのネットワークを接続して対処しなければならないでしょう。対して、少し曖昧な領域があって、実際にどのように気にかけていることに具体化するかは少し曖昧だけれど、考えるべき差し迫ったことだと分かっているような領域はありますか。

最も頭にあることは、おそらくパラダイムシフトのようなものです。RLへのシフトのような、これは分野での一つのパラダイムシフトで、もっとあると思います。多くの人々が、ああ、現在のパラダイムでAGIに到達するのに十分かどうかと議論していて、私は分からない、多分、おそらくという感じですが、もっとあることは確かです。

多くの桁数を上げる過程で何も気づかないというのは、本当に驚くべきひねりでしょう。

その通りです。でも実際に最も神経質になっていることは、本当に解決が難しいバグです。それは興味深いですね。

多分、これは私にとって少し驚くべきことですが、単一のバグが数ヶ月間脱線させる可能性があります。考えてみれば、モデルは訓練に数ヶ月かかります。だから、奇妙に見える何かから世代全体を失う可能性があります。コードのこの部分が正しくなかったことが分かり、検出できませんでした。

MLでは本当に難しいですよね。MLはバグを見つけるのが常に本当に難しいです。

でも、これらのスケールアップされた問題のいくつかは、そこにあることを知っていても解決するのが本当に難しいです。

書くであろうユニットテストのようなものは何ですか。ユニットテストは忘れて。つまり、これをやっているネットワークアーキテクチャのようなもののためのテストに近いものはありますか。それをどうやって行うのですか。

パケットを送って同じかどうかを確認できます。その上で小さなモデルを訓練できます。でも、その上で小さなモデルを訓練しても、明らかではありません。

非常に古典的で、非常にシンプルなMLバグがあって、キャリアの早い段階で人々が直面するような、ネットワークに10レイヤーがあって、レイヤー7が8から9ではなく9に接続しているようなもので、不正な接続のセットがあって、技術的にはモデルはまだ訓練されてすべての重みが更新されるので、有効なモデルですが、正しいものではなく、それは実際に見つけるのがかなり難しい非常に難解な奇妙なバグです。それがあなたが言っているような、直面するランダムなバグの種類ですか。

そうです。でもそれを100万倍にしたようなものです。もっと複雑になるにつれて。何かのカーネルの深いところで間違った精度にキャストして、それがモデルを大規模で爆発させ、1ヶ月後に気づくか、決して気づかないか。

決して気づかないか。つまり、何かが爆発するのは見えます。数万行のコードがあって、どうやって追跡するのか。

だからそういうものが多分最も私を怖がらせます。微妙で厄介なバグです。

実際には、知っているケースもあると思います。クラッシュするような。モデルを訓練していてクラッシュします。またはスローダウンします。ジョブが大幅にスローダウンして、それらも非常にデバッグが難しい場合があります。

Nelson Elhajは、早い段階で抱えた呪われたバグについてブログを書いた一人です。このことをかなりよく覚えています。なぜなら、かなり早い段階で遭遇して、これは難しそうだ、誰か他の人が見てくれないかと思ったからです。1ヶ月後、ああ、あれを引き継いでもらって本当によかった、私には決してできなかったという感じでした。

実際に本当に有用な能力の一つは、何でもあらゆる深さのレベルまで深く掘り下げる能力ですが、それはかなり稀なスキルです。私にとって、以前どのレベルのスタックにいたかについて話しましたが、torch matmulのレベルで作業していましたが、CUDAは知らなかったので、torch matmulが壊れていても、torch matmulに掘り下げて理解することはできませんでした。

通信についても同様です。AからBにバイトを送ることはできましたが、基本的なネットワークプロトコルは知らなかったので、その基本的なネットワークプロトコルが壊れていたら、分野全体を学ばなければなりません。パケットやTCPなどのすべての異なることを理解しなければなりません。

驚くほど難しく、できる人が非常に少ないことの一つは、MLがどう機能すべきか、学習のダイナミクスが何かを理解することから、バイトを知っていて、バイトがマシン間でどう動くべきかを理解することまで、その全体のスタックを所有することです。

実際にその点について、今日のチーム上の人々の異なる背景について考えるとき、どのようにコンピュータ科学者の異なるカテゴリーに大体マッピングしますか。これらのチームがどのように見えるかについての外部からの見方は、ML論文を書くPhD研究者ばかりだというものです。

でも、ここで説明していることを考えると、実際にはそうではないと思います。

混合です。最も必要なのはエンジニアだと思います。

興味深いですね。ほとんど常に、この分野の歴史全体を通じて。

より多くの計算資源を投入すれば、基本的にうまくいきます。

課題は実際には、研究者たちは、いいね、という感じです。

正しくすることで、正しくすることは実際にはML問題ではないですよね。実際のアーキテクチャはかなりシンプルです。数式を書き下ろせます。でも数式を理解して実装する必要さえありません。正しい実装を得るだけでよく、それから大規模でそれを取る、すべてを並列化して正しいかチェックする方法というエンジニアリング問題があります。

でもそれは、何でもデバッグできるというエンジニアリングスキルの特定のタイプについてです。

ウェブサイトのようなものを本当に素早く反復する別のエンジニアリングの角度があると思います。それは重要なスキルセットだと思います。おそらくスタートアップを作るのに重要です。速く失敗する、たくさんの異なることを試す必要があって、技術的に難しいものはありません。

私たちが最も必要としている、または探しているスキルセットは、本当に難しいエンジニアリング問題を解決できるというものです。

たくさん成長した会社で働いていた人々ですか。Anthropicでこの数年間あなたがやってきたようなことをした経験があるとか、学者になる傾向があるとか。どこから来るのですか。

この時点では、実際に他の場所からこれを以前にやった人々をたくさん雇っていて、それが簡単な答えです。

でもこれを以前にというのは、必ずしもAI企業で、それともMetaのようなところで働いていた人で、AI チームではなく他の分散システムを実行していて、5年前、10年前にインターネット規模に達したような人でもありますか。

具体的な役割があるような感じです。例えば、実行を効率的にJaxで訓練させようとしているなら、Jaxに取り組んだことがある人を雇えると素晴らしいし、別の会社でJaxスタックを本当に効率的に最適化するために働いた人。

今では、Anthropicが十分に知られているので、そういった人々を雇えるし、分野も十分に大きくて専門知識を持つ人々がいます。興味深かったことの一つは、早い段階では様々な背景から多くの人々を雇ったことです。賢くて本当に一生懸命働く人々は、これをかなり速く学べますが、望まなければなりません。

例えば多くの物理学者を雇いました。理論物理学者が現れて、レジデンシーをして、プログラミングを学んで、本当に賢かったので本当に素晴らしい仕事ができました。

他のアプローチとスタートアップへのアドバイス

少し話題を変えて、分野の他のところで起こっている進歩や、どう考えるかについて、将来を見据えた話をしたいと思います。あなた方が必ずしも取り組んでいるかは教えてくれなくていいですが、どう考えているか。一つの大きな領域は、次トークン予測以外の領域についてです。人々が取り組んでいる他のことで興味があるものはありますか。基本的にそこに二つの違いがあります。一つは、アーキテクチャとしてtransformerを使っていないことです。

例えばLiquid AIのような会社は、独自のアーキテクチャを使っています。または、モデルを訓練する方法として自己回帰訓練を使っていないこと。それらのどれかは興味深いと思いますか。AGIに近づく方法で、それともこの自己回帰フレームワークが理にかなっているものだと思いますか。

興味深いと思います。ああ、自己回帰が進むべき道だという感じではありません。一方で、自己回帰はおそらくAGIに到達するのに十分だと思います。またはそのようなものではないですが。

主なドライバーとして規模と、基本的なものの慎重な科学を見ています。完全に新しいものを考え出すよりも。新しいことがより良くないわけではありません。

実際、かなり確信していますが、そこにあります。ただ規模の方が簡単で、より信頼性があり、それに対して本当に大きな利益をまだ見ていると思います。

例えば中国のラボの一部からのオープンソース論文を読んでいて、モデルの変更の詳細に飛び込めるところで、アーキテクチャ自体の順序での調整を行っていて、例えばより良いキャッシング動作やより効率的なアテンション関数のようなもので大きな違いを生み出しています。これらは早い段階で言及したことの例のように感じますか。基本的に、大きな計画の中では、より多くの計算資源を投入すればこれはすべて丸め誤差のようなものか、それともHIに到達するのに実際にこれらの非常に巧妙なアーキテクチャの変更のいくつかが必要だと思いますか。transformerを考え出した最初の人が特定の変換的な変更を行ったように。それがいくつか必要か、それともやっていることを続けて大きくしていくだけでいいと思いますか。

混合だと思います。物事を調整し続けると思います。投入する計算資源が多いほど、それらの実験を行って理解する価値があります。推論は話していないことですが、これらのモデルを多くの人々に提供したいので、推論をより安価にするために行える変更がたくさんあって、それは推論スタックの詳細や、提供している推論チップに依存します。事前学習に焦点を当てている人として、推論についてたくさん考えなければなりませんか、それとも自分のことをやって損失を下げて、誰かに渡して推論を実現してもらうという感じですか。

いいえ。推論についてたくさん考えます。基本的に推論が解決している問題を私たちが決定するからです。

彼らにモデルを渡すと、それを速く実行しなければなりません。速く実行することが不可能なモデルを渡すのは非常に簡単です。

それを引き起こす可能性のある決定の例を挙げていただけますか。

最も単純なのは愚かですが、モデルを巨大にするだけです。

その通りです。本当に少ない数のトークンで訓練して、推論は今この巨大なモデルを持っていて、基本的にホストになります。

多くの場所で通信を必要とするものも作れて、それが推論を難しくします。

物事を複雑にすることもできて、難しい根本的な理由はありませんが、推論チームには限られた人数しかいなくて、多くの場所でそれを実装しなければなりません。

だから、推論は最も密接に協力しているチームだと確実に考えています。基本的にモデルを賢く、かつ安価に共同設計しているからです。

特に限られた計算資源の世界ではそうですよね。ある程度、Anthropicでのボトルネックは、つまり、Anthropicには常にレート制限があって、人々がたくさん不満を言っているのが分かりますが、その理由は、短期間で得られる計算資源には限りがあるからです。

推論をより効率的にすることが、より多くのユーザーに提供できる方法です。100倍の計算資源があったり、計算資源が制限されていない世界に住んでいなかったりしたらどうですか。あなたがすることについてかなり変わりますか、それとも、持っているすべての計算資源を掴んで損失曲線を下げ続けるという感じで、計算資源が十分な世界に住むことは不可能なので。無限の計算資源を得たら、課題は計算資源を利用することになると思います。

一つのチップが故障したらどうなるか、といった問題に直面し始めるでしょう。20億個のチップを投入するつもりだけど、チップが故障したらどうなるのか。人々に制限されると思います。大規模にスケールアップするための難しいエンジニアリング問題をどれだけ速く解決できるか。

でも変化は巨大だと思います。人々は今AIがどれだけチップ制限されているかを理解していないと思います。誰もが使っているモデル、Claude Sonnet 4、Claude Opus 4を使っているなら、そのスケールでのモデルへの最初の挑戦ですよね。何かをやって、もう一度やって、より良い仕事ができるというようなことについて考えると想像できます。でも、10倍の計算資源があると想像すると、数ヶ月ごとではなく毎日これを実行できるとか、それには100倍かもしれませんが、ずっと多くの計算資源を持つことは本当に大きな変化になるでしょう。そしてそれは来ていますよね。分野の楽しい部分のようなもので、毎年、ああ1年前は計算資源がなかったという感じです。

離散拡散のような手法についてどう考えていますか。Geminiの拡散モデルのようなものがあると見ました。私がいた分野での空間で考えると、例えば私のスタートアップがあったタンパク質設計で多くの離散拡散モデルが使われています。そこで興味深い進歩が起こると見ていますか。

正直に言うと、画像生成はやってこなかったし、それが拡散の主な用途だったと思います。だからずっとやるべきことリストに、理解すべきこととして載っています。私のチームには理解していて、より良い考えを持っている人々がいますが、実際には理解するのに十分ではないと思います。

大きなパラダイムシフトではないような、カテゴリーには入れています。でも物事の実行方法にかなり大きな変化があるものがたくさんあって、それらのいくつかが機能すると期待しています。それが拡散なのか、別のものなのか分かりません。

明らかにAnthropicが将来何をするか分かりませんが、少なくとも近い将来、Anthropicが年々モデルを良くしていく世界で、スタートアップが勝てる大きな領域はどこに見えますか。

私の一般的な見方は、モデルが賢くなることで恩恵を受けるものすべてです。一方では、スタートアップをやっているなら、すべてのAIラボは大企業で、あなたより大きくて、そのことができると常に言えますが、様々な用途をカバーする一般的なシステムに取り組んでいるのも事実です。

計画は、個々の仕事をすべて行うすべてのスタートアップを動かすことです。だから、現在のモデルではほとんど機能するけれど、たくさんの作業が必要なもののように見えるものは、かなり有望な方向だと思います。

多分注意すべきことは、今は大量の作業で機能するもの、足場を構築するためのもので、でも次の世代では構築した足場全体が必要なくなるようなものです。それは大丈夫かもしれません。分かりません。足場でビジネスを構築して、後で仕事をしなくてよくなるかもしれないけれど、ビジネス面は分かりませんが、それに大量に投資するのは少し馬鹿げている気がします。

裏側ではどうですか。訓練スタックで、もしX問題を解決する会社があれば、絶対に製品を買うのにというようなものはありますか。

たくさんあります。おそらくほとんどは、何かを作ってから、会社に無料でサービスを提供するように構成すると思います。

特に本当に速くスケールしている会社にとって、持てる人数にほとんど常に制限されています。だから、自分で雇ってやることができたとしても、実際に他の誰かに契約してやってもらえて、彼らが管理していて、すべての人を雇って、組織面を扱うことができれば有用かもしれません。

膨大な量のものがあります。頭に浮かぶ一つは、数学を間違って行うチップについて話しました。チップを確認してくれるスタートアップがあれば素晴らしいでしょう。これが私のチップです、すべて完璧か確認してください、そうでなければ、何が間違ったのか正確に教えてください。どの部分で。

数学が間違っていることは分かりますが、本当に詳細は分かりません。このチップが失敗した理由は、この特定の低レベルコンポーネントが間違って配線されていたから、またはゲームに当たったからなど、分かりません。何が原因か分かりません。常にもっと深く行けます。

多分スタートアップに押し付けたいことは、技術的ではないかもしれませんが、実際にAGIを手に入れたらどうなるか、それが世界でうまくいくようにする方法について少し考えることです。実際に人間ができるほとんどすべてを自動化したら、経済成長の量は本当に莫大で、これが世界を助けるようにする方法について、そうでない場合よりも少し考えると思います。

結果として経済的成功はたくさんあるでしょう。

その通りです。最後に聞きたい質問は、私たちが始めた10年前に巻き戻すと、あなたは学生で、考えていた経済学の仕事からAIに転向していました。

初期の頃にやったあらゆることが、今の役割に発展する上で何らかの複利リターンを持っていたでしょう。学生に、特に今日、労働力に入ることについて、将来役立つスキルを学ぶことについて、10年後にあなたが持っているような仕事を得ることについて、どんなアドバイスをしますか。

難しいですね。タイミングが非常に異なると思うからです。多くの進歩を遂げたと思います。だから10年前に私がすることは、今日することとは異なります。

でも10年前に戻ったら、確実にAIに焦点を当てる、それが最も重要なことだと言うでしょう。特にエンジニアリングに焦点を当てます。重要なのがこれらのエンジニアリングスキルで、SPMなどの標準的なML文献のような数学的で理論的な理解ではないということは、当時の私には明白ではなかったでしょう。

今日なら、おそらくエンジニアリングと、AGIで何をするかを理解することの両方に焦点を当てるでしょう。それが私にとって最も頭にある二つの主なことです。

そこで終わりにしましょう。ありがとうございました、Nick。感謝します。

コメント

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