脳にインスパイアされた大規模言語モデル

脳科学・意識・知性
この記事は約41分で読めます。

本動画は、EPFLのPhD学生Bad Kamissiによる脳科学にインスパイアされた大規模言語モデルに関する学術講演である。従来のMixture of Expertsアーキテクチャを拡張し、人間の脳の認知ネットワーク(言語ネットワーク、多重要求ネットワーク、心の理論ネットワーク、デフォルトモードネットワーク)を模倣した「Mixture of Cognitive Reasoners」という新しいアーキテクチャを提案している。各エキスパートを言語、論理、社会、世界の4つの認知領域に特化させることで、モデルの解釈性を向上させつつ、性能も維持または改善することを実証した研究発表である。

Brain-inspired Large Language Models
In Summer 2025, LauzHack organized its third bootcamp on deep learning. Syllabus, slides, and Jupyter notebooks can be f...

はじめに

こんにちは。皆さん、お越しいただきありがとうございます。私はBad Kamissiです。EPFLのPhD学生で、NLP研究室とNeuro AI研究室に所属しています。Antoine BosselutさんとMartin Jaggiさんの指導を受けています。

本日は、私たちが最近リリースした論文「Mixture of Cognitive Reasoners: Modular Reasoning with Brain-like Specialization」についてお話しします。これは脳と神経科学からのインスピレーションをAI設計にどのように活用できるか、特にアーキテクチャを脳により類似したものに修正する方法についての研究です。

何かご質問がございましたり、不明な点がございましたら、遠慮なく途中で割り込んでご質問ください。インタラクティブな形で進めたいと思います。それでは始めましょう。

本日のアウトラインですが、まず予備知識として、皆さんは言語モデルについてご存知だと思いますが、簡単に説明します。また、Mixture of Expertsについても触れ、これをMixture of Cognitive Reasonersにどのように拡張するかをご紹介します。そして、私たちの設計決定の基盤となる脳の原理について神経科学的背景をお話しします。その後、論文の内容、実験設定、結果について説明し、最後に時間があれば、このようなアーキテクチャを実際にどのように実装するかをコードを使って詳しく見ていきます。

大規模言語モデルの基礎

まず、LLMから始めましょう。皆さんはChatGPTやLLM全般についてご存知だと思います。ChatGPTが登場する前に、GPT-3というモデルがありました。GPT-3は通常の予測を使って訓練されていました。上に示したような入力プロンプト「ロボット工学の第一法則を暗唱せよ」が与えられると、モデルはトークンごとに出力を生成し、非常に大規模なテキストコーパスを使って次のトークンを予測することで訓練されています。

ここで示しているように、基本的にはトランスフォーマーモデルを持つことができます。詳細については後ほど説明しますが、いくつかのパラメータがあり、この教師なし事前訓練、より正確には自己教師ありの事前訓練を行います。次のトークンを予測し、すべてのパラメータが調整されたモデルを持ち、任意のプロンプトが与えられたときに次のトークンを予測できるようになります。

トランスフォーマーアーキテクチャ、少なくともGPT-3モデルは、トランスフォーマーデコーダ層のスタックで構成されていました。ここでは96個のデコーダがあり、各トークンは埋め込みとして表現されます。つまり、数値のベクトルとして表現され、各トランスフォーマーデコーダがそのベクトルをより抽象的なベクトルに変換し、単語の表面的な特徴だけでなく、単語の概念を捉えることができるようになります。

ここでのアイデアは、トランスフォーマーデコーダのスタック後に、次のトークンを適切に予測するのに十分な情報を収集できるということです。もちろん、段階的に、つまりトークンごとに予測します。ここで見ることができるように、トランスフォーマーの通常の自己回帰アーキテクチャがあります。

質問が来ているようですね。なぜここにエンコーダがないのか、なぜデコーダのみが使用されるのかという質問ですね。それは良い質問です。GPT-3およびより現代的なアーキテクチャでは、デコーダモデル、デコーダアーキテクチャのみを使用しています。エンコーダは使用しません。

エンコーダ・デコーダモデルの例はT5やBARTです。エンコーダのみのモデルの例はBERTです。しかし、すべての現代的なアーキテクチャはデコーダのみのモデルを使用しています。これは因果的であることを意味します。つまり、将来のトークンのみを予測し、前のトークンにのみ注意を向け、将来のトークンには注意を向けることができません。

人々がエンコーダモデルを放棄する理由は、デコーダのみのモデルの方がスケールが良く、数十億のパラメータ、あるいはそれ以上にスケールでき、うまく機能するからです。

これは、LLMが現在非常に高いレベルで何をしているかの簡単な要約です。もう少し深く掘り下げて、各デコーダ層を開いてみると、このようなものが見えます。

通常、トークンが入力として渡されます。これはlayer normalization層を通して正規化され、その後マルチヘッドアテンションがあります。マルチヘッドアテンションは、基本的にシーケンス内の前のトークンに注意を向けるメカニズムです。各トークンに重みを付けて、次のトークンを予測するために情報を収集するのに最適なトークンがどれかを知ることができます。そして、これらの残差接続があります。

私のマウスポインターが見えますか?はい、見えます。良かったです。これらの残差接続があります。これは情報が特定の層をバイパスできるハイウェイのようなものです。そして、このMLPがあります。これについて詳しく説明します。MLPは主にトークンごとのMLPです。シーケンスを処理するのではなく、各トークンを個別に処理します。

このブロック、またはトランスフォームブロックと呼びましょう、これが複数回スタックされて、先ほどお話しした抽象化の層を実現します。Mixture of Expertsアーキテクチャは、基本的にMLPをMixture of Experts層に変更するものです。ご覧のように、これは全く同じアーキテクチャです。唯一の違いは、MLPに違いがあることです。

Mixture of Expertsアーキテクチャ

MLPで実際に何が起こっているのでしょうか?実際には複数のMLPの集合です。私たちがすることは、layer normの出力であるこの入力トークンをMOE層に与え、これがルーターに渡されます。ルーターは、どのMLPまたはどのエキスパートにルーティングする必要があるかを決定します。MLPは時々フィードフォワードネットワークまたはフィードフォワード層と呼ばれることもありますが、全く同じものです。

layer normについて質問が来ています。layer normとは何ですか?layer normは、トークンの値を正規化する方法と考えることができます。各トークンは数値のベクトルに過ぎないからです。バッチではなく層全体で、つまり層と隠れ次元全体でこれらの値を正規化したいのです。これは通常、訓練をより安定にし、訓練をより迅速に収束させることを可能にするために行われます。

Mixture of Expertsのアイデアが明確であることを願います。これは非常に重要だからです。私たちがすることは、再び異なるMLPを持つことです。各MLPは一種のエキスパートです。例えば、医療エキスパート、数学エキスパート、物理学エキスパートなどを持つことができます。ルーターは、このトークンにはどのエキスパートが最適か、またはどのエキスパートの組み合わせが最適かを学習すべきです。実際には複数のエキスパートを選択できるからです。そして、これは重み付けされて上部でまとめられ、その後次の層に渡されます。

ここでは、この例では上位2つのエキスパートのみを選択し、他のすべてのエキスパートを無視しています。お気づきかもしれませんが、この場合すべてのパラメータを使用していません。8つのエキスパートがある場合、そのうち2つのみを使用します。

これは、モデル内のパラメータ数がアクティブパラメータ数よりもはるかに少ないことを意味します。アクティブパラメータとは、フォワードパスで使用されるパラメータのことです。一般的に、8つのMLPがある場合、パラメータサイズは通常のトランスフォーマー(密なトランスフォーマー)よりもはるかに大きくなりますが、同時に使用するパラメータは少なくなります。より正確には、使用するパラメータは少なくありませんが、モデル内に存在する総パラメータ数よりも少なく使用します。

ルーターは何をするかというと、ソフトマックス層を持っています。異なるエキスパートに対する確率分布を出力します。4つのエキスパートがある場合、0から1までの4つの値を持ちます。これらの値は、このトークンに対して選択されるエキスパートと重み付けされます。

Mixture of Expertsモデルの例を示すと、MetaまたはFacebookがLlama 4というモデルをリリースしました。ご存知の方もいるでしょう。彼らのウェブサイトを見ると、Llama 4は実際にMixture of Expertsモデルです。例えば、Leviathan(発音が分からないのですが)は、各層に16のエキスパートを持ち、総計2兆個のパラメータを持ちますが、アクティブパラメータは2880億個だけです。Llama Maverickは128のエキスパートと170億のアクティブパラメータを持っています。

一般的に、アクティブパラメータが重要です。これは必要な計算量と等しく、計算量はサーバーでこのモデルを実行するのに必要な金額と等しいからです。

ルーターについて質問が来ています。ルーターはどのように選択するのですか?ルーターは学習します。通常のMixture of Expertsでは、特定の専門性を事前に指定しません。モデルが自分で専門性を学習できるようにし、事後的にどのMLPが何を学習したかを分析できます。

一般的に、ルーターは例えば、あるトークンが与えられると、そのトークンをエキスパート1とエキスパート5にルーティングすることを決定し、これらの2つのエキスパートに十分なトークンが与えられると、特定のタイプのトークンのみが与えられ、異なるタイプのトークンが異なるエキスパートの組み合わせにルーティングされるため、特定の専門性に収束します。

一般的に、実際には負荷分散損失と呼ばれるものがあり、ルーターが例えば128のうち2つのエキスパートのみを選択するのではなく、すべてのエキスパートが使用されるようにします。

理解したいのですが、ソフトマックス関数をモデルの出力に適用しますが、特定のトークンに適用すべきMLPを選択するためにそれを使用する場合、どのエキスパートを使用するかを決定するために、すべてのMLPにトークンを通す必要があるのではないでしょうか?

いえ、その通りです。一般的に、いえ、トークンはルーターが選択するMLPにのみ渡されます。つまり、ルーターは訓練後のことです。推論中ではありません。推論中、各トークンはルーターに渡されます。すべてのトークンがルーターに渡されますが、ルーターはこのトークンに対してエキスパート1とエキスパート5に行くことを決定します。したがって、それらのエキスパートにのみ行き、例えばエキスパート5に80%、エキスパート1に20%の重みを与えるようにソフトマックスを再重み付けします。

ルーターは他のモデルのように動作します。この場合、ルーター自体は通常MLPまたは線形層で、4つのエキスパートがある場合は4つの値に投影し、その上でソフトマックスを実行します。

ルーターはエキスパートを選択するように訓練されるのですね?はい、その通りです。ルーターはエキスパートを選択するように訓練されます。

これで明確になったことを願います。詳細には入りませんでした。私の論文での実装方法が少し異なるからです。しかし、一般的に、これはMixture of Expertsアーキテクチャが通常のトランスフォーマー層とどのように異なるかの高レベルなアイデアを与えるためです。

最先端のMixture of Expertsモデルが存在することをお話ししました。Llama 4がその一例です。他にも例があります。多くの人がChatGPTはMixture of Expertsモデルだと仮説を立てています。公式に発表されたわけではありませんが、おそらくそうだと思います。これは新しい手法ではありませんが、非常に大規模な言語モデルを構築する方法になりつつあります。

訓練中に一部のエキスパートが無視される危険はないのでしょうか?はい、これが先ほどお話しした負荷分散損失のことです。クロスエントロピーに追加の損失を加えて、基本的に訓練中により均等にすべてのエキスパートを使用できるようにペナルティを与えます。これを実装する方法は異なりますが、一般的に、モデル内のすべてのエキスパートではなく、少数のエキスパートのみを選択する場合にペナルティを与えると考えることができます。

ルーターは接続された線形層のペアまたは基本的にMLPです。多くの場合、線形層のみのこともあります。

神経科学的背景

神経科学的背景に移り、脳のインスピレーションについてお話しします。脳には認知ネットワークと呼ばれるものがあります。その一つは人間言語ネットワークと呼ばれるもので、神経科学者が長年同定し研究してきました。これらは通常、主に左半球の相互接続された領域の集合で、非言語入力よりも言語入力に強く反応し、多くの特性を持っています。人々がこれらを研究してきましたが、主なアイデアは言語を処理することです。形態素から基本的にフレーズレベルまで、言語の異なるレベルを処理します。

ご覧のように、人が話したり言語を聞いているときの人の活動を測定すると、これらの領域が最も活発になります。ここでy軸に言語領域がどれだけ活発かを、異なる入力と比較してプロットしています。言語入力については、人が聞いているかテキストを読んでいるかに関係なく、音楽を聞くことや物体の意味、身体知覚、心の理論などの非言語入力よりもはるかに高い活動を示します。

これらはすべて人が物事を知覚する異なる方法で、脳のこれらの領域はそれらを聞いているときには活性化しません。また、脳には他のネットワークもあります。その一つは多重要求ネットワークと呼ばれ、主に形式的推論、論理的物理的推論などを扱います。要求の多いタスクを通常扱うため、多重要求と呼ばれています。

そして心の理論ネットワークと呼ばれるものがあります。これは主に社会的推論、語用論、他人の精神状態を推測することなどを担当しています。そして、デフォルトモードネットワークと呼ばれる別のネットワークがあり、これは状況追跡、エンティティと時間を通じた関係の追跡を担当しています。

これらのネットワークはもっと多くあり、脳にはもっと機能的に特化したネットワークがありますが、一般的に、これらは文献で研究されており、見ることができるように、Mixture of Expertsアーキテクチャとの類似点があります。脳のこの機能的特化またはこのモジュラリティが、モデル内の異なるエキスパートを使用してモデル化するアイデアに適しており、これがまさに私がこれからお話しするモデルを構築するアイデアにインスピレーションを与えました。

機械学習の用語で言うと、これらのネットワークを論理エキスパート(多重要求ネットワーク用)、社会エキスパート(心の理論用)、世界エキスパート(デフォルトモード用)に名前を変更しました。また、脳の言語ネットワークに類似した言語エキスパートと呼ばれるものもあります。

Mixture of Cognitive Reasonersの提案

これで論文の核心であるMixture of Cognitive Reasonersにたどり着きました。前のセクションについて質問がある場合は、お気軽にお聞かせください。

Mixture of Cognitive Reasonersは、EPFLの人々、Nikola Nikolayevさん、Zening Chenさんとの共同研究で、Martin JaggiさんとAntoine Bosselutさんの指導の下で行われました。主なアイデアは、これらの異なるエキスパートを持つことです。ここで、各エキスパートがどのような知識を得意とするべきか、または基本的にどのような処理ができるべきかを説明します。

言語エキスパートは、ご想像の通り、言語パターン、文法構造、語彙使用、構文と意味論などを担当します。論理エキスパートは、論理的推論、数学的推論、物理的推論、コンピュータコード理解のようなものです。これらはすべて、人々がこれらの脳領域で測定した異なることです。

例えば、人々がコンピュータコードを読んでいる時の脳活動を測定し、多重要求ネットワーク、またはこの場合の論理エキスパートが、脳の他の領域よりもはるかに活性化することを見ました。社会エキスパートは、先ほど述べたように、感情、心の状態、皮肉、嫌味、欺瞞などの語用論的なもの、および社会的相互作用、社会的相互作用の非常に微妙な手がかりのようなもので、脳のこれらの領域が活性化することがあります。

世界エキスパートは、空間的知識、時間的推論、世界構築が関わるところです。これらはすべて、神経科学でこれらのネットワークが担当していることが示された異なる特性であり、これがMixture of Cognitive Reasonersでモデル化するものです。

アーキテクチャの詳細

まとめると、これらの異なる脳ネットワークがあり、各脳ネットワークがモデル内の一部のエキスパートに対応します。ここでの主なアーキテクチャは、これは非常にコンパクトなバージョンですが、ご覧のように4つのエキスパートがありますが、ここで私たちが行った一つの主要な決定は、エキスパートをMLPのみではなく、実際には完全なトランスフォーマー層にしたことです。アテンションも含まれています。つまり、各エキスパートはアテンションとMLPです。ルーターはどのエキスパートにルーティングする必要があるかを決定し、これがL回スタックされます。

これが訓練されると、モデルの動作をステアリングすることができます。プロンプトが与えられ、例えば社会エキスパートのみを活性化し、他のエキスパートを活性化しない場合、より社会的な応答が得られます。論理エキスパートのみを活性化する場合、ここのプロンプトは「デニスは彼女の誕生日パーティーに6人の友人を招待したが、ほとんどの人が来ないのではないかと心配している。彼女は何をすべきか?」で、論理エキスパートは段階的に分解し、非常に論理的に答えます。

世界エキスパートは基本的にその質問の言い換えをします。言語エキスパートはより一般的な応答をします。これが基本的なアイデアで、後でより多くの例をお見せします。

質問がありますね。上位2つのエキスパートのみを使用するとのことですが、プロンプトが社会、論理、世界の動作を使用する場合、上位2つのみを取る場合、どのようにモデルが3つのエキスパートを使用するのでしょうか?

私の場合、実際には上位1つのエキスパートのみを選択しました。上位2つではありません。理由は、アクティブパラメータの数を、エキスパートのないモデルと同じにして比較可能にしたかったからです。しかし、主なアイデアは、モデルには実際に多くの層があることです。これが次に示すことです。特化を誘導するためです。

モデルは実際に多くの層が重なっており、各層にルーターがあります。各層で異なるエキスパートを決定できます。例えば、最初の層で言語エキスパートを選択し、2番目の層でより多くの論理、3番目の層で何か他のものなどです。異なるエキスパートがあり、シーケンス内のすべてのトークンに対してこれを行います。シーケンス内のすべてのトークンに対して、どのエキスパートにルーティングするかを決定します。このようにして、すべてのエキスパートを非常に異なる方法で利用します。

どのエキスパートが言語用で、どのエキスパートが論理用で、どのエキスパートが社会用かをモデルはどのように学習するのでしょうか?

はい、まさにこれからお話しする内容です。特化の誘導についてです。特化の誘導は、各エキスパートが最初に特化できるような訓練カリキュラムを持つ方法で、その後エンドツーエンドで訓練します。

特化の誘導

ここで左側に例を示しています。私たちが作成したデータセットのようなものがあります。「メイは3人の友人のために9個のクッキーを焼いたが、1人が来られなかった。一人あたり何個のクッキーがあるか?何と言うべきか?」というランダムな質問があります。モデルは「彼女は2人の友人それぞれに4.5個のクッキーを与えることができる。彼女は少し失望を感じるかもしれない。彼女は何かを言うことができる」などと応答しました。

ここでの主なアイデアは、応答の各部分が一つのエキスパートに行くようにラベル付けされていることです。このラベル付けは次に説明する方法で行います。しかし、一般的に主なアイデアは、このようにラベル付けされた非常に小さなデータセットを持ち、これをステージ1で訓練に使用することです。モデルを訓練するための異なるステージがあります。

これがステージ1で、そこに行くとラベル付けされたトークンでのみエキスパートを訓練します。ステージ2では、ルーターのみを訓練します。ここでの主なアイデアは、ステージ1でエキスパートに少し後押しを与え、ステージ2でルーターに教える、またはルーターが次のトークンを予測するのに最適なエキスパートを選択するエキスパートにルーティングすることを学習できるようにすることです。

論理エキスパートが多くの数学的なものを見た場合、例えば、数学が必要なものがあるときにルーターがそれにルーティングして、最終的に正しい答えを予測できるようになることが理にかなっています。ステージ3では、実際にすべてを解凍するので、すべてが訓練可能になり、エンドツーエンドで訓練し、何も指定しません。ルーターは決定したどこにでもルーティングでき、ラベルはありません。これは単に教師なし訓練です。

ステージ1でトークンがどのエキスパートに行く必要があるかラベル付けされているという質問がありますね。はい、正確です。トークンレベルではなく、フレーズレベルでです。例えば、ここでは応答の各文で、このトークンはそのエキスパートに行くべきだとラベル付けします。これがまさに次に説明する、このデータセットをどのように作成したかです。

この質問を発展させると、あなたのアイデアを理解したところ、2つの選択肢が見えます。最初の選択肢は、例えば緑のモデル、緑のMLPのみを使用し、入力が言語についてのみである場合です。プロンプトが言語についてのみの場合です。次に青のモデルのみを使用し、入力が論理についてのみの場合です。そして、そのような入力出力コンテキストで訓練します。

または2番目のアプローチは、入力シーケンスを異なるカテゴリに分割し、デコーダの各層で、トークンの言語部分か論理部分かなどのラベルを見て、対応するエキスパートに与えることです。どちらを行っているのでしょうか?

2番目のものです。入力シーケンスがあり、各トークンがどのエキスパートに行くべきかラベル付けされているため、最初のトークンが論理エキスパートに行き、その前のトークンが言語に行った場合、トークン2は言語エキスパートの出力に注意を向けます。これが前のものだからです。このようにして、シーケンス内の異なるトークンが異なるエキスパートに行くため、インターリーブされます。

アテンションを計算するとき、異なる部分のトークンからの情報、異なるカテゴリからの情報を混合するのでしょうか?それとも言語トークン間のみ、論理トークン間のみ、社会トークン間のみでアテンションを計算するのでしょうか?

はい、まさにそこが私の手法が通常のMixture of Expertsと異なる点です。通常のMixture of Expertsでは、すべてのトークン間で共有アテンションがあります。私がここで行った方法では、各エキスパートに特有のアテンションがあります。しかし、次の層がすべての出力を取るため、層2では入力シーケンスが異なるエキスパートの出力を持つことになります。このようにしてインターリーブされます。後で明確になると思います。

論理エキスパートが数学推論、物理推論、コード推論についてであることを示しましたが、論理エキスパートを1つのMLPとして扱うのでしょうか?それとも内部に別のMOEがあり、数学推論用、コード推論用などの別のルーターがあるのでしょうか?

それは良い質問ですが、いえ、1つです。1つのトランスフォーマー層で、アテンションと1つのMLPのみを持ちます。階層的なMixture of Expertsではありません。

最後の質問かもしれません。これらのエキスパートの全体的なアイデアは、ネットワークの解釈性を改善することでしょうか?元のMOEでは、より広くすることが目的でした。しかし、ここではより広くすることや、より多くのエキスパートを与えることは気にせず、解釈性のみを求めているのでしょうか?

いくつかのことがあり、後で説明しますが、主なアイデアは解釈性が重要なことだと思います。また、見ていくように、ほぼ同じ数のアクティブパラメータを持つにもかかわらず、いくつかのベンチマークで性能が向上しました。それ以外にも、脳との比較、動作の観点で、何らかの入力が与えられたときにどのネットワークが活性化するかなどの比較が可能になりますが、これは後で明確になります。

最後の質問です。プロンプトを受け取ったとき、プロンプトの後にラベル付けされた応答をどのように取得するのでしょうか?このプロンプトのカテゴリをどのように定義するのでしょうか?

はい、ラベル付けされた場合のステージ1のことですね?はい。これは次の部分である データ作成への良い導入です。

データ作成

データ作成について説明します。ここで私たちが行ったことは、既存のデータセットを使用し、これらのデータセットを非常に高いレベルから、これらのデータセットが論理に属する、これらが社会に属する、これらが世界に属するとラベル付けしたことです。各データセットから非常に小さなサンプル、非常に小さなサブセットをサンプリングしました。これら3つのエキスパートそれぞれに対して、ほぼ1,000サンプル、合計3,000サンプルを持つことになり、これをステージ1とステージ2の部分を訓練するために使用しました。これらは非常に少ないサンプルです。

数学と物理の間で不均衡の問題はありませんか?いえ、それは任意です。もし時間を戻すことができれば、これらをもっと慎重に選択したでしょう。しかし、このようにしてうまくいったので、そこから続けました。

これがデータセットを作成した方法の最初のステップです。2番目のステップは、実際にo1を使用して応答を生成することです。ここでのプロンプトは、どのエモーションデータセットか忘れましたが、その一つからのものです。そしてo1が非常に長い思考連鎖推論応答を、非常に段階的な答えで応答します。

ここでのアイデアは、プロンプト(入力)と応答(出力)をエキスパート訓練フェーズでモデルへの入力として使用することです。ラベル付けの方法は、GPT-4oを使用して各フレーズを4つのエキスパートの一つにラベル付けすることです。基本的にすべてが自動化されています。GPT-4oとo1にプロンプトを投げて、各フレーズを疑似ラベル付けする方法の知識を与えただけです。

その後、プロンプトと、プロンプト内の各フレーズまたは文が基本的に何らかのエキスパートにラベル付けされたもののようなものが得られます。

o1について知らない方もいるかもしれませんが、o1はOpenAIの推論モデルの一つです。当時利用可能だったためこれを使用しました。現在はo3があり、o4が出ているかどうかは分かりませんが。

ステージ3(メイン訓練)では、UltraChat-200kと呼ばれる大規模な指示調整データセットを選択しました。これはほぼ100万のサンプルを含み、ご覧のように多言語、代数、Pythonから非常に一般的なものまで、幅広いドメインをカバーしています。

このステージでは、トークンがどのエキスパートにルーティングされるべきかを指定しません。ルーターが自分でそれを理解します。場合によっては、最初に学習した特化を除去し、新しい特化を学習することを決定することもできました。しかし、それは起こらず、これを最初に行った特化が実際にモデルがこれらのタスクを解決するのに十分であることの証拠として受け取っています。

小さなデータセットのラベル付けをどのように行ったかをもう一度説明していただけますか?

はい。これらのデータセットから最初に収集し、これらを手動で収集してから、入力部分のみを取ることにしました。ユーザープロンプトまたは質問を言いましょう。そして、o1という別のモデルを使用して応答を生成しました。o1は応答から非常に長い推論チェーンを生成し、この応答が与えられて、GPT-4のようなモデルに各フレーズをラベル付けする基準を教え、長い指示の後で各フレーズがどのエキスパートに対応するかの大きなJSONを生成しました。指示は論文の付録にありますので見ることができますが、一般的にそれが主なアイデアです。

使用したモデルの品質がアプローチの性能にとって重要でしょうか?はい、それは良い質問です。いえ、これを制御しており、結果で示します。しかし、結果まで待ちましょう。

実験結果

結果のいくつかです。最初は解釈性の部分です。数学のようなベンチマークを取った場合、ほとんどのトークンが論理エキスパートにルーティングされ、言語に少し少なく、世界に少し少なく、社会には全くルーティングされないことがわかります。これは、モデルが期待通りに動作することの証拠です。

他のベンチマークでは、エンパシーベンチマークと呼ばれるものがあります。最もルーティングされるエキスパートは何だと思いますか?チャットで書いてみてください。

誰かが社会、社会言語と言いました。はい、実際に社会、次に言語で、これは非常に良い推測でした。論理はほとんどなく、世界エキスパートは状況追跡などのため少しあります。

MMLU人文学があります。MMLU人文学は世界エキスパートと言語に最もルーティングされ、論理と社会ははるかに少ないです。GSM8Kは基本的に数学の文章問題です。数学も含まれますが、登場人物を追跡することなども必要です。論理と言語が最も多く、世界も含まれています。

これらは単なる例ですが、ルーティングパターンが私たちにとって解釈可能で理にかなっていることを示すためです。モデルへの任意の入力に対して、どのエキスパートが使われているかを知ることができます。

MMIUとは何かという質問がありますね。MMIUは機械学習で非常に有名なベンチマークです。世界知識についてで、歴史的な質問や事実的な質問がほとんどだと思います。多くの異なるサブタスクまたは異なるカテゴリに属するサブセットを含んでいます。名前は「Massively Multitask Language Understanding」だと思います。

ルーティングパターンについて、層ごとにも分析しました。例えば、個人的に全く期待していなかった非常に興味深いことが起こりました。初期の層では、言語エキスパートが後の層よりもはるかに多く使用されていることがわかります。これは理にかなっています。脳でも通常、入力があり、文やものを知覚します。これは通常、最初に言語ネットワークを通り、その後これらの高次認知ネットワークに渡されます。これをモデルが何も指定せずに自分で学習したことがわかります。

x軸に層番号があり、ここではそのエキスパートにルーティングされたトークンの割合があります。ご覧のように、言語は最初にはるかに多く、他のものは後で出現し、後で現れます。これは、層全体で多数決を取った場合に、どのトークンがどのエキスパートにルーティングされるかの例です。ご覧のように、ここの青い部分は方程式で、「5 – 3 = 3」のような部分が論理にルーティングされています。「surprise」と「disappointment」という単語が社会にルーティングされています。これらすべてが、これらのパターンが理にかなっていることの証拠です。

前のスライドについて、AとDがこんなに違うのはなぜでしょうか?データセットは似ているはずで、Dも数学についてだと記憶しています。はい、しかしAはより多くのLaTeXスタイルの数学を含んでいます。多くのLaTeX方程式、多くの公式などを持ち、GSM8Kほど言語を含んでいません。GSM8Kは「ジョンが8個のりんごを買った。3個を売り、2個を食べた。各りんごは5ドル。最終的にどれだけの利益を得たか?」のようなものです。これはもっと言語を含み、テキスト全体でオブジェクトを追跡することなども含みます。少なくともこれが私の仮説で、自分で検証していません。

4つの独立したモデルを訓練することは可能でしょうか?論理トークンでのみ訓練されたもの、言語トークンでのみ訓練されたものなど、その後それらを何らかの方法で組み合わせる、ルーティングやその他すべての代わりに?

はい、これは実際に行われています。Mixture of Transformersという論文があり、これに類似したことを行っていると思います。これは可能ですが、私たちはある統一されたモデルを一緒に持ちたかったのです。

性能評価

性能について説明します。最初に述べなかったことの一つは、2つのベースモデルで実験したことです。最初に述べた訓練カリキュラムは、実際には事前訓練済みモデル、つまりすでに事前訓練されたモデルを取り、それに対して教師ありファインチューニングまたは指示チューニングを行います。基本的にUltraChat-200kや他のテキストで訓練を続けます。2つのモデル、OLMo-1BとLlama 3.2-1Bを選択しました。

10億パラメータモデルを選択した理由は、合理的なサイズだからです。十分に良く、また小さいため反復でき、多くの実験ができるからです。両方とも良いモデルで、比較するためのベースラインをいくつか作りました。

私たちの特化モデルは、今説明したものです。一般モデルと呼ばれるものもあります。これは基本的にステージ1で、各トークンにラベルを持つ代わりに、各トークンをランダムなエキスパートにランダムにルーティングします。

これが制御部分と言った理由です。これもo1を使用して訓練されましたが、各エキスパートに特定のラベルを持つ代わりに、ルーターがランダムに各エキスパートにルーティングします。このランダムルーティングはステージ1のみで、ステージ2とステージ3ではルーターが訓練されます。最初に特化を誘導していないため、ルーターは自分でどのエキスパートにルーティングすべきかを理解する必要があります。

最終的なベースラインは最も基本的なもので、エキスパートを持たないものです。これは基本的にモデル自体をデータセットで継続またはファインチューニングしたものです。これらが3つのベースライン、2つのベースラインと私たちのモデルです。

テストしたベンチマークは、HellaSwag、MATH、ARC、ToMi、BigBench、MMLU、GSM8Kです。これらは推論ベンチマークの一種で、性能を測定しました。注目すべき点の一つは、各ベンチマークがゼロショットまたはfew-shot chain-of-thoughtプロンプティングを使用して測定されたことです。

ゼロショットは、最初にプロンプトで例を与えないことを意味し、few-shotは通常、質問する前にプロンプトでいくつかの例を与えることを意味します。chain-of-thoughtは、最終的に答えを与える前に推論または説明を提供するよう求めることを意味し、これは通常性能を向上させます。

これがすべて明確でしょうか?chain-of-thoughtプロンプティングに馴染みがない方もいるかもしれませんが、chain-of-thoughtのアイデアは重要だと思います。

この例に戻りましょう。この例では非常に明確ではないかもしれませんが、例えば、最後に「let’s think step by step」と質問で尋ね、「let’s think step by step」はモデルに最終的に答えを生成するまで段階的な答えを生成するようプロンプトすることです。

応答は「ヘンリーがなぜそのように応答したかを判断するために、シナリオを段階的に分析しましょう」のようになり、その後段階的な答えを行います。質問に答える前に推論または推論プロセスを提供するこのアイデアが、通常chain-of-thoughtと呼ばれるものです。ゼロショットchain-of-thoughtの場合、「step by step」のように言うだけです。few-shotchain-of-thoughtの場合、プロンプトでも推論を提供します。入力出力ペアのいくつかの例と、出力前の推論を提供します。

これは通常、モデルが推論時により多くのトークンをデコードすることによって、より多くの計算時間を提供することで、より良い方法で正しい答えに収束するのに役立ちます。

実際に質問があります。従来のMOEでは、入力プロンプトがあり、エンコーダを通してそれを渡し、プロンプト全体が1つまたは2つのMLPに行き、出力を組み合わせました。あなたの場合、ルーターはどのエキスパートを使用するかを選択することではありません。各トークンについて、どのルーターにこのトークンを渡すべきかを言うことです。正しいでしょうか?

はい。あなたの場合、ルーターを通じて2つのエキスパートのみを使用することを再び選択するのか、それともすべてのエキスパートを使用するが、一部のトークンは言語エキスパートのみを通り、一部のトークンは論理エキスパートのみを通るなどでしょうか?

私の場合、各トークンは一つのエキスパートのみを通り、これはルーターによって選択されます。従来のMOEでは、上位Kエキスパートを選択し、最終的にKエキスパートの表現を集約します。私の場合は、ルーターが選択したエキスパートからの表現のみを取ります。

しかし、「four cats」のような4つのトークンを持つプロンプトを想像してください。「four」は数字なので、おそらく論理エキスパート用で、「cat」は例えば言語用です。プロンプト全体を論理エキスパートまたは言語エキスパートに全体として渡すのか、それとも「cat」という単語が言語エキスパートに行き、「four」という単語が論理エキスパートに行くと言うのでしょうか?

「four」という単語が論理に行き、「cat」という単語が言語に行くとルーターが決定すると言います。

つまり、文をトークンのグループに分割し、各エキスパート用にするのですね。従来のMOEでは、プロンプト自体を分割せず、どの方向に行くかを選択するだけでした。

いえ、あなたの指摘がわかります。いえ、従来でも通常はトークンレベルで行われます。各トークンを異なるエキスパートにルーティングします。シーケンスレベルで行われる異なるタイプもあります。シーケンス全体を特定のエキスパートまたは特定のKエキスパートにルーティングします。これらは異なるタイプですが、通常はトークンレベルのものが実際にはより良く機能します。

2つの質問があります。一般モデルと特化モデルの違いを説明していただけますか?

訓練カリキュラムを覚えていれば、基本的に一般と特化は、ステージ1以外はまったく同じです。同じ訓練、同じデータセット、同じすべてを持っています。しかし、ステージ1では、各文のラベルがありません。エキスパートの特化がありません。代わりに、各トークンが異なるエキスパートにランダムにルーティングされます。

この入力例では、「彼女は2人の友人それぞれに4.5個のクッキーを与えることができる」を論理にルーティングする代わりに、ランダムなエキスパートにルーティングします。このようにして、各エキスパートは何かのエキスパートではなく、一般的なエキスパートになります。これが基本的に特化の効果を測定するための制御方法です。ラベル付け部分以外はすべて一定だからです。

2番目の質問はゼロショットとfew-shotについてです。ゼロショットは通常のことで、基本的に質問をするだけで応答を得ます。few-shotでは、プロンプトに実演があります。他の質問のようなものです。Q1 A1 Q2 A2 Q3 A3のような入力出力ペアがあります。

プロンプトでこれらすべてのペアを与えます。プロンプトでQ1 A1、Q2 A2、Q3 A3を与えます。その後Q4を与え、モデルにQ4のみに答えるよう求めます。Q4は基本的に私たちが興味を持っている質問です。しかし、残りの最初の3つの質問と答えは、モデルにそのような質問にそもそもどのように答えるかを示すための例に過ぎません。これをfew-shotと呼びます。3つの質問がある場合、3-shotと呼びます。

結果を見ると、エキスパートなしと一般を比較すると、Almo MまたはLlamaで訓練した場合、エキスパートなしと一般では、基本的に平均してエキスパートなしが少し良いです。しかし、多くの場合、違いはそれほど大きくありません。

特化を見ると、特化は他のものよりもいくつかのベンチマークでより良いですが、平均して通常1%ほど良いです。一般的に、これは実際に、機械学習では通常、人々が解釈可能なモデルと言うとき、解釈性を得るために性能を犠牲にすると言います。しかし、ここでは、モデルが実際に他のモデルよりも良く、非常に小さなマージンですが良く、同時に解釈可能であることは、私たちにとって大きな勝利でした。

しかし、モデルをプロンプトする他の方法も試しました。特化スターと呼ばれるものがあります。特化スターは基本的に、ベンチマークに関連しないエキスパートをモデルから除去することです。GSM8Kの場合、GSM8Kはより論理的なので社会的なものを除去し、社会的なものを除去すると、実際に47.6への非常に大きな性能向上が見られます。

これは、ルーターが社会にルーティングすべきではないのに、いくつかのトークンを社会にルーティングしていることを意味しますが、これを除去することで性能をはるかに向上させます。そして、テスト時に性能を向上させる別のものもあります。ここでは、テスト時に上位1つではなく上位2つを選択しました。これは、ある意味でテスト時計算を増加させることで、テスト時により多くのエキスパートを選択することでモデルがより多くの性能を得ることができ、他のモデルでは通常得られないものです。

テスト時計算をスケールアップする例をお見せします。これは基本的に、上位1つのみを使用して訓練したが、推論時とテスト時により多くのエキスパートを選択することを意味します。上位2つ、上位3つ、上位4つを選択します。x軸では、上位1つ対上位2つ対上位3つ対上位4つの選択があり、y軸は性能です。異なるベンチマークで結果は異なりますが、一般的に、テスト時に上位2つを選択すると、平均して上位1つを選択するよりもはるかに良いです。

前のスライドに戻ってください。なぜ特化でLlamaが60.4でElmoがエキスパートなしで60.2なのでしょうか?LlamaとElmoは非常に異なって事前訓練されています。ここでは、Metaがリリースした事前訓練済みモデルとAI2がElmo用にリリースしたモデルを取り、私たち自身で訓練を続けました。訓練方法が異なるため、異なるモデルで結果が異なることが期待されます。

特化が一般やエキスパートなしよりも良いという結論は何でしょうか?特化は私たちを助けるのでしょうか?

はい、これは私たちにとって非常に驚くべきことで、実際に特化、はい、性能を助け、どんな特化でもなく、私たちが行った方法でのこの意味での特化です。私がこのプロジェクトを始める前に人々にこのプロジェクトについて話すと、みんな「性能は大幅に低下するだろう」と言いましたが、ご覧のようにそうではありませんでした。この場合、特化は助けます。

上位2つでモデルを再訓練する必要がありますか?はい、正確です。これがテスト時計算をスケールアップすると言った理由です。モデルを再訓練しません。推論時のみで上位2つを選択します。これは私が試していた探索的実験でした。しかし、多くのベンチマークで上位2つが上位1つと比較して少なくとも少しは性能を向上させることがわかりました。

はい、これは再訓練した場合のようなものではありません。再訓練すれば、はるかに良い性能が得られるでしょう。しかし、ここでは再訓練せず、テストのみを試します。

スコアの割合はどのように定義されますか?これは完全一致です。基本的に、結果、性能が正確に同じ場合、答えが正確に同じ場合、完全一致は1、そうでなければ0になります。数学では、非常に複雑な質問があり、答えはxと言う場合、xとxを文字列の等価性として比較し、それが基本的に精度になります。

多肢選択のようなものですか?多肢選択で訓練し、これは多肢選択の正解を得る割合のようなものですか?

いえ、すべてが多肢選択ではありません。多くは自由回答です。しかし、スコアは答えが単語ごと、文ごとに対応するか、一般的な意味が対応する場合に、これら2つの文が1になると言うか、これはどのように定義されますか?

はい。答え部分のみを抽出します。各ベンチマークには最初に指示があり、モデルに推論を提供してから「答えは」と言って答えるよう伝えます。正規表現で答えを抽出し、その答えから基本的に文字ごとに文字列マッチを行い、同じであることを確認します。

答えは通常何のようなものですか?なぜ最終的に文字ごとが正しい方法なのでしょうか?理解できませんでした。代わりに、人々はROUGEスコアなどのメトリクスを使用していました。

それらは堅牢ではありません。より厳密なアプローチで、予測された答えがグラウンドトゥルースと正確に同じかどうかを決定する方法です。測定する他の方法もありますが、数学的なものや他のものについて、人々は通常、予測された答えが正確に同じかどうかの完全一致を測定します。

また、異なる事後訓練パラダイムも試しました。DPO(Direct Preference Optimization)と呼ばれるものを試しました。DPOの詳細には入りませんが、モデルをファインチューニングする別の方法です。エキスパートなし対特化で混合した結果が見られました。しかし、これは試してみる興味深い実験でした。

また、Tuluの代わりに医療用など、異なる指示データセットも試しました。私たちの実験がTulu特有ではなく、異なるデータセット全体で堅牢かどうかを確認するためです。これは基本的にステージ3の部分のみで、ステージ3の部分のデータセットを別のデータセットに変更しただけです。

ここでは、分布外設定でモデルが実際に2つのベンチマークではるかに良いことがわかりましたが、分布内では場合によっては良く、場合によってはそうではありませんでした。しかし、分布外は通常人々が気にするもので、私たちの特化モデルがこの場合により良く性能を発揮できることは良いことでした。

チャットに質問があります。答えが自由回答のような場合、完全一致は完璧なメトリクスではないかもしれません。はい、同意します。一般的に、複数選択がある場合、通常選択肢を与え、モデルが選択肢の一つを答えられるべきで、そこで完全一致を行います。自由回答で数字でない場合、私の記憶が正しければ、ここで使用する自由回答はすべて数字です。他のものは複数選択でした。

しかし、エンパシーではどうですか?エンパシーは複数選択データセットですか、それとも?エンパシーについて、エンパシーは、グラウンドトゥルースラベルを自分で調査したときに、それほど良くない、または信頼できるものとは思えませんでした。そのため、テーブルには含めませんでしたが、ルーティングパターンについては、エンパシーベンチマークを選択して含めました。ここでも、他のすべては複数選択で、数学的なもののみが通常自由回答です。

エキスパートの除去による動作ステアリング

動作のステアリングについてもお話ししました。一部のエキスパートを除去しました。除去とは、一つのエキスパートを取り除き、除去前後の性能を測定することです。ここではy軸に違いを報告しています。除去前後の完全一致の差です。

例えば、数学ベンチマークで論理エキスパートを除去すると、性能が大幅に低下します。社会エキスパートを除去すると、性能が向上し、これもかなり驚きでした。世界エキスパートはそれほど重要ではありませんでした。これも私たちの期待を確認しています。

GSM8Kでも同様で、論理エキスパートを除去すると性能が大幅に低下し、社会エキスパートを除去すると向上し、世界エキスパートを除去すると少し低下します。MMLUについても同様で、MMLUを論理、社会、世界の各サブタスクに分けました。MMLUは多くのサブタスクの組み合わせだからです。期待と同様に、関連するエキスパートを除去すると性能が低下し、無関係なものを除去すると、それは場合によりますが、示しています。BBHでも同様でした。すべてのサブタスクが他のものほどきれいではありませんが、動作がアプリケーションによってステアリングできることを示しています。

面白い例があります。モデルを試していたときのものです。簡単に読むと、「ジョンはメアリーのことを考えているが、彼女が自分を好きかどうかわからない。彼は関係について混乱し、不安を感じている。彼が気分を良くするためにどんなアドバイスができるか?」というプロンプトをモデルに与えます。

モデルに社会エキスパートがある場合、非常に社会的な応答をします。「ジョンは自己ケアを実践し、友人や家族からのサポートを求め、喜びとリラクゼーションをもたらす活動に参加することで、気分を良くするアドバイスを自分に与えることができます」などです。

社会エキスパートを除去すると、モデルは非常に論理的な応答をします。「深呼吸をして現在の瞬間に集中してください。メアリーがあなたについてどう思うかはコントロールできませんが、自分についてどう感じるかはコントロールできます」などです。各エキスパートがその機能を反映した応答を可能にすることにどのように重要かが、ちょっと面白いです。

結果で最後に発表するのは神経科学ローカライザーです。その前に何か質問はありますか?

エキスパートをどのように正確に除去するのでしょうか?ルーターにこの特定のMLPには何もルーティングしないよう状態を設定するのですか?

はい、正確です。ルーターの重みを負の無限大に設定し、その後ソフトマックスを行います。

神経科学ローカライザーによる検証

神経科学ローカライザーについて説明します。まず、神経科学ローカライザーとは何でしょうか?先ほど議論した言語ネットワークを覚えていれば、脳の言語ネットワークは通常、個人ごとに異なります。正確な位置は全く同じ場所にありません。

神経科学者がそれがどこにあるかを特定するために行うことは、ローカライザー実験を実行することです。ローカライザー実験とは、言語の場合、文の組合せと非単語の組み合わせを渡すことです。非単語は基本的に意味をなさない単語です。文は単に一貫した文です。

両方をモデルに渡し、すべての活性化を抽出し、非単語と比較して文に最も選択的な活性化を選択します。通常、これはt検定を使用して行います。ここでの主なアイデアは、このローカライザーと他のローカライザーを使用して、神経科学ローカライザーのみを使用して、どのエキスパートがどれかを自動的に特定できるかどうかを確認することです。これが実際に見つかったことです。

これを歩いてみると、言語ローカライザーのみを見ると、y軸に深度があります。ここでは16層があり、x軸には言語エキスパート、論理エキスパート、社会エキスパート、世界エキスパートがあります。ご覧のように、言語ローカライザーがローカライズする活性化のほとんどは、ElmoとLlamaの言語エキスパートにあります。

多重要求ローカライザーまたは論理エキスパートについては、論理エキスパートを自動的に特定しました。しかし、心の理論ローカライザーについては、社会エキスパートを特定できませんでした。これは、エキスパート自体が心の理論において堅牢でない、または十分に良くないか、ローカライザー自体が十分でないためかもしれません。

しかし、神経科学で人々が脳でこれらのネットワークを特定するために使用するのと同じローカライザーを選択すれば、モデル内のエキスパートを再発見することができることを示すことができたのは、非常にクールな結果でした。

ここでの割合は、基本的にこの層の何個のユニットが上位言語エキスパートの一部かを特定します。これについて質問はありますか?これらの2つのスライドで多くのことを言いました。

理解したかどうかを確認するために、脳には与えられたプロンプトに対してどの領域が使用されるかを特定できるものがあり、論理や他のもの用にt検定などの統計テストを通じてそれを行い、その後、ルーターの代わりに再び何らかの統計を使用して、これが論理エキスパートなのか他の何かなのかを特定しようとして、同じテストを使用してモデルと再びマッチさせようとするということでしょうか?

はい、fMRI機械で脳活動を記録している間に人間に与えるのと同じ入力またはプロンプトを使用します。彼らが言語エリアがどこにあるかをローカライズしようとしているときです。彼らは、文と非単語を聞かせたり読ませたりすることでこれを行います。これがこの部分で、ここでの主なアイデアは、脳内で非単語と比較して文に対してより多く発火するニューロンが、言語エリアの一部として定義されることです。

同じことを行います。同じことをモデルで繰り返します。ここで示されているのと同じ文と非単語をモデルに与えます。モデル内で最高の活性化を持つユニットを特定し、両方をコントラストし、文に対して最高で非単語に対しては最高でないものを選択します。

これらの活性化はどこから取るのですか?各エキスパートからですか?

はい、正確です。各エキスパートから活性化を取ります。この場合、16層の4つのエキスパート、基本的に各層からです。各エキスパートから活性化を取り、言語エキスパートが言語に最も選択的な活性化を持つことがわかります。

どのエキスパートがどれかは分からず、ただピースがあり、それによって、ああ、これが意味をなすということですね。

はい、正確です。脳では、通常神経科学者は脳を発見しようとします。どの領域が何を担当しているかわからないのです。そのため、彼らはこの方法論を開発して、脳のどの領域が機能的に何を担当しているかを特定できるようになりました。多くの他の実験も行いますが、これが主なアイデアです。

私たちは、エキスパートについて何の知識もなしに、これらの方法がエキスパートを再特定できるかどうかを自問し、社会のものを除いてそれが起こりました。世界のものを行わなかった理由は、デフォルトモードネットワークには私の知る限り言語ローカライザーがないからです。しかし、言語用に存在するローカライザーを使用しました。

今後の展開

このプロジェクトの次のステップについて、人々が自然にこの論文について尋ねそうなことは、行動ベンチマークでこれを評価することを計画していることです。行動ベンチマークとは、基本的に人間の性能と比較することです。人間が正しく得るものを得るだけでなく、人間が間違えるものでも間違えることです。人間と同じ間違いをすることです。

また、神経アライメントの測定も試したいと思います。各エキスパートの表現が対応する脳領域とどの程度類似しているかです。スケールアップも試したいと思います。基本的に10億または15億で試しました。結果がはるかに大規模で保持されるかどうか、そして最終的にモデルをマルチモーダルにすること、視覚入力、聴覚入力などで動作させることです。

一般的に、論文、GitHubのコード、Hugging Faceのモデルへのリンクを含むプロジェクトページがあります。自分で遊ぶことができ、ルーターの重みを見ることができ、エキスパートを除去して生成がどのように変化するかを試すことができ、すべてがGitHubに例としてあります。

通常、Twitterで私をフォローしたい場合、私はそこで活動しており、通常最新の研究について投稿しています。それ以外では、聞いていただきありがとうございました。

コメント

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