モデルアーキテクチャのための生成AIに向けて

モデルアーキテクチャの生成AIへの挑戦

「MAD」AIが次のトランスフォーマーの発見に役立つ方法

Credit: https://unsplash.com/photos/person-wearing-gas-mask-in-grayscale-photography-2PV6wdWVAMM

「Attention is All You Need」トランスフォーマー革命は、深層学習モデルの設計に深い影響を与えています。BERTの直後にはRoBERTa、ALBERT、DistilBERT、SpanBERT、DeBERTaなどが登場しました。その他にも、依然として「Ernie 4.0」として強力なERNEI、GPTシリーズ、BART、T5などが存在します。ハギングフェイスのサイドパネルには、トランスフォーマーアーキテクチャの博物館が形成され、新しいモデルのペースはますます加速しています。Pythia、Zephyr、Llama、Mistral、MPTなどが登場し、それぞれ精度、速度、トレーニング効率などのメトリックに影響を与えています。

モデルアーキテクチャとは、モデルの実行に基づく計算グラフのことを指します。たとえば、以下はT5の計算グラフの一部を示すNetronからのスニペットです。各ノードは操作または変数(操作の入力または出力)であり、ノードグラフのアーキテクチャを形成します。

Image by the author

たくさんのアーキテクチャが存在するにもかかわらず、私たちは将来的にさらなる修正や新たなブレイクスルーがあることを十分に確信しています。しかし、どの場合も、人間の研究者がモデルを理解し、仮説を立て、トラブルシューティングし、テストする必要があります。人間の創造力は無限ですが、モデルがより大きく複雑になるにつれて、アーキテクチャの理解の課題は困難になります。AIのガイダンスによって、もしかしたら人間がAIの支援なしで何年もかかるか、何十年もかかるであろうモデルアーキテクチャの発見が可能になるかもしれません。

インテリジェントなModel Architecture Design(MAD)は、生成的AIが科学者やAIの研究者をより優れた、より効果的なモデルアーキテクチャへと案内するアイデアです。我々は既に大規模な言語モデル(LLM)が概括的な要約、分析、画像生成、執筆支援、コード生成などのあらゆる分野で極めて価値と創造性を提供しているのを見ています。問題は、同じ知的な支援と創造性をモデルアーキテクチャデザインにも活用できるかどうかです。研究者は直感に従ってAIシステムにアイデアを促すことができます。たとえば、「階層的にスケールする自己注意」や「モデルの最後のレイヤーにLoRAを追加する」といった具体的な操作のためにです。モデルアーキテクチャのテキストベースの説明(たとえば、Papers with Codeを使用)を関連付けることで、特定のモデルアーキテクチャに関連付けられる技術や名称の種類を学ぶことができます。

まず、なぜモデルアーキテクチャが重要なのかについて説明します。その後、ニューラルアーキテクチャサーチ、コードアシスタント、グラフ学習における知性MADに向けたいくつかのトラジェクトリーについて説明します。最後に、AIデザインと自己改善を通じたオートノマスMADに対するいくつかのプロジェクト手順とその影響について議論します。

モデル中心のAIの復活

Andrew Ngによる「データ中心」AIの推進と言葉の造語は、AI分野において非常に重要でした。深層学習において、クリーンで高品質なデータを持つことのROIは非常に大きいため、トレーニングのあらゆる段階で実現されています。文脈を理解するために、BERTがテキスト分類の世界に登場する直前の時代は、品質に犠牲を払ってでもデータを豊富に持つことを望んでいました。完璧な例ではなく、示例による表現が重要でした。これは、多くのAIシステムが事前学習済みの埋め込みを使用していなかった(またはそれらが優れていなかった)ため、モデルによる実用的な一般化が適用できなかったからです。2018年、BERTは下流のテキストタスクにおいてブレイクスルーとなりましたが、リーダーや実践者が合意に達し、その考え方が「データ中心」AIという考え方が、データをAIモデルに供給する方法を変える助けとなりました。

Image By Author

今日では、現在のアーキテクチャを「十分に良い」と見なす人々が多く、モデルの編集よりもデータの品質の向上に重点を置くことの方がずっと重要だと考えられています。例えば、「Red Pajama Data」のようなトレーニング用の高品質データセットへの大きなコミュニティの注力が現在進行中です。実際、LLM間の大幅な改善は、モデルのアーキテクチャではなく、データの品質と準備方法によるものであることが多いです。

同時に、毎週、トレーニング効率、推論速度、または全体的な精度に大きな影響を与えるモデルの手術に関する新しいメソッドが登場しています。たとえば、「RETNET」など、論文が「新しいトランスフォーマー」と主張すると、話題となります。既存のアーキテクチャは優れているとしても、セルフアテンションのような新たなブレークスルーは、フィールドにおいてAIが実現できる成果に重大な影響を与えるでしょう。小さなブレークスルーでも、トレーニングにはコストがかかるため、トレーニング回数を最小限に抑えたいです。したがって、特定の目標を持っている場合、MADは費用対効果を最大にするために重要です。

トランスフォーマーアーキテクチャは巨大で複雑であり、モデル中心のAIに焦点を当てることがより困難になっています。私たちは、生成型AIメソッドがより高度で知的なMADを目指している時代にいます。

https://arxiv.org/pdf/1808.05377.pdf

ニューラルアーキテクチャ検索(NAS)の基本的な前提と目標は、研究者が最良のアーキテクチャを設計し、発見する負担を軽減することにあります。一般的に、これはハイパーパラメータの設計に関するAutoMLの一種として実現されており、多くのハイパーパラメータ設定に組み込まれるようになっています。

NASデータセット(例:NASベンチマーク)とは、機械学習のデータセット<X, Y>のことであり、ここでXはグラフとして表現される機械学習のアーキテクチャであり、Yはそのアーキテクチャが特定のデータセットでトレーニングおよびテストされた場合の評価メトリックです。NASベンチマークはまだ進化中です。最初は、NASベンチマークの学習表現は単なる順序付きリストであり、各リストが操作のシーケンスとしてニューラルアーキテクチャを表していました(例:[3x3Conv、10x10Conv、…])。これは、モダンなアーキテクチャに見られる「スキップ接続」など、後半のレイヤーにもフィードフォワードするレイヤーなど、部分的な順序付けを捉えるには低レベルすぎました。その後、DARTS表現ではノードが変数を表し、エッジが操作を表すようになりました。最近では、あらかじめ定義された検索空間を必要としないようにするための新しいNAS技術がいくつか作成されており、例えばAGNNは、グラフベースのデータセットにおけるパフォーマンスを向上させるためにGNNの学習にNASを適用しています。

結局のところ、TensorFlowやPyTorchのようなディープラーニングテンソルライブラリには約250種類のプリミティブレベルのテンソル操作しかありません。もし検索空間が第一原理から構築され、すべての可能なモデルを含んでいるならば、次のSOTAアーキテクチャのバリエーションも含まれるべきです。しかし実際には、これがNASの設定方法ではありません。技術が相当な数年間のGPU計算時間を要することがありますし、その場合、検索空間はリラックスされ、さまざまな方法で制限されます。そのため、NASは主に既存のモデルアーキテクチャの再結合に焦点を当てています。例えば、NAS-BERTは、GLUEダウンストリームタスクで良好なパフォーマンスを発揮するBERTアーキテクチャの小さなバリエーションでトレーニングするためのマスキングモデリング目的を使用し、自身をより少ないパラメータに濃縮または圧縮する役割を果たしています。Autoformerも別の検索空間で同様のことをしました。

効率的なNAS(ENAS)は、すべてのモデルを検索空間で詳細に訓練および評価する必要があるという問題を克服します。これは、重みを共有する多くの候補モデルをサブグラフとして含むスーパーネットワークを最初に訓練することで実現されます。一般的に、候補モデル間のパラメータ共有により、NASはより実用的になり、既存の重みを最適に利用するためにアーキテクチャの変動に集中することができます。

テキストベースのMAD versus グラフベースのMAD

生成AIの観点からは、モデルアーキテクチャに事前学習し、この基礎モデルを言語としてアーキテクチャを生成するために使用する機会があります。これはNASだけでなく、プロンプトの使用や文脈に基づいた提案など、研究者の一般的な案内システムとしても使用できます。

この視点からの主な問題は、アーキテクチャをテキストとして表現するか、直接グラフとして表現するかです。最近、コード生成AIアシスタンスの台頭を見てきましたが、そのうちの一部はPyTorch、TensorFlow、Flaxなど、深層学習モデルアーキテクチャに関連するコードです。ただし、この用途にはコード生成にはいくつかの制限があります。主に、コード生成は表層形式、つまりテキスト表現に関連しているためです。

一方、Graph Neural Networks(GNN)やグラフトランスフォーマーのようなGNNは、MADを含むどこでも非常に効果的です。グラフに直接取り組む利点は、モデルがデータの基礎的な表現上で学習していることであり、表面的なテキスト表現よりも真実に近いデータ表現を学習しています。最近のLLMがグラフの生成において驚くべき成果を収めるためのいくつかの最近の研究(例:InstructGLM)もあり、特にLLMと組み合わせることでグラフトランスフォーマーに期待が持てます。

https://arxiv.org/pdf/2308.07134.pdf

GNNまたはLLMを使用するかにかかわらず、モデルアーキテクチャを表現するためにグラフはテキストよりも優れた表現です。重要なのは、基礎となる計算です。TensorFlowやPyTorchのAPIは常に変化しており、コードの行数もモデルアーキテクチャだけでなく、一般的なソフトウェアエンジニアリングの原則やリソースインフラストラクチャなども扱っています。

モデルアーキテクチャをグラフとして表現するためのいくつかの方法があり、ここではいくつかのカテゴリーを紹介します。最初に、GLOWMLIRApache TVMなどのコードマシンラーニングコンパイラがあります。これらはPyTorchコードなどを中間表現にコンパイルでき、グラフの形式を取ることができます。TensorFlowには既に中間グラフ表現があり、TensorBoardで視覚化することができます。また、既存の保存されたモデルからコンパイルできるONNX形式もあります。たとえば、HuggingFaceを使用して簡単に次のようにします:

optimum-cli export onnx --model google/flan-t5-small flan-t5-small-onnx/

このONNXグラフのシリアライズは次のようになります(一部のスニペット):

Image by the author

これらのコンパイル済み中間表現の問題は、高いレベルで理解するのが困難であるということです。NetronでのT5のONNXグラフは膨大です。モデルアーキテクチャグラフに対してより人間が読みやすい選択肢としては、Graphbookがあります。無料で使用できるGraphbookプラットフォームでは、グラフ内の各操作が生成する値やテンソルの形状と型が一致しない場所などを表示できますし、編集もサポートしています。さらに、AIに生成されたモデルアーキテクチャが完璧でない場合があるため、内部に入り、グラフの編集やうまくいかない理由をトラブルシューティングする簡単な方法があると非常に便利です。

グラフブックグラフの例、筆者の画像

GraphbookモデルはJSONであるが、階層的であり、したがってモデルレイヤーのより優れた抽象化レベルを可能にします。以下を参照してください。GPT2のアーキテクチャの階層構造の側面ビュー。

グラフブックグラフの階層構造を示す画像。ここではGPTが例として使用されています。フル画像:https://photos.app.goo.gl/rgJch8y94VN8jjZ5A、筆者の画像

MADステップ

これは生成型MADの提案のアウトラインです。このタスクへのアプローチを具体化するために、これらのサブステップを含めたかったのです。

  1. Code-to-Graph。HuggingFaceモデルカードなどのコードから、ONNXやGraphbookなどのグラフ形式に変換するMADデータセットを作成します。
  2. データセットの作成。これらは、グラフ内の操作の操作タイプの分類、グラフ自体の分類、操作とリンクのマスキング/回復、グラフが不完全な場合の検出、不完全なグラフを完全なものに変換するなどのデータセットです。これらは自己教師あり学習で行えます。
  3. グラフトークナイザー。グラフをトークン化します。例えば、グラフ内の各変数を一意の語彙IDとして扱い、GNNレイヤーに供給できる隣接行列を生成します。
  4. GNNの設計。グラフトークナイザーの出力をトランスフォーマーレイヤーにフィードするGNNを開発します。
  5. 訓練とテスト。データセットでGNNをテストし、反復します。

これらのステップが具体化されたら、GNNの設計をガイドするためのNASアプローチの一部として使用できます(ステップ4)。

最終ノート:自己改善の意味

筆者の画像

自律型のMADの示唆についてのメモを提供したいと思います。モデルアーキテクチャを設計するAIの意味は、自分自身の脳の構造を改善できるということです。思考プロセスの連鎖/グラフのいくつかの種類で、モデルは繰り返し自身のアーキテクチャの後継状態を生成し、それらをテストすることができます。

  1. 最初に、AIはモデルアーキテクチャを与えられて、モデルアーキテクチャを生成するための特定のデータでトレーニングされ、アーキテクチャの設計を含むトレーニングソースにアクセスできます。トレーニングソースには、グラフ分類、操作/ノードの分類、リンクの補完などのアーキテクチャタスクに関する様々なテストが含まれています。これらは一般的なタスクです。Open Graph Benchmarkで見つけることができます。
  2. 最初に、アプリケーションレベルでは、モデルアーキテクチャをトレーニングおよびテストできるエージェントが存在し、これらをAIのトレーニングソースに追加できます。また、何がうまくいき、何がうまくいかないかについて、AIにいくつかの指示を与えることもできるかもしれません。
  3. 繰り返し、AIは新しいモデルアーキテクチャのセットを生成し、エージェント(MADエージェントと呼びましょう)はそれらをトレーニングおよびテストし、スコアを付け、これらをトレーニングソースに追加し、モデルに再訓練を指示し、などを行います。

要するに、AutoML/NASだけでモデルアーキテクチャの空間を探索するのではなく、モデルアーキテクチャをグラフとして学習し生成することです。グラフベースのデータセットそのものが、グラフで表現されるモデルアーキテクチャと学習対象のモデルアーキテクチャの可能な空間となります。

何が意味するのか?システムが自己改善の能力を持っている場合、暴走のリスクがある可能性があります。上記のように設計され、より複雑なエージェントの文脈で設計された場合、エージェントは無限にデータソースやタスクを選択し、自己調整して多兆パラメータのエンドツーエンドの深層学習システムになる可能性がありますので、そのようなリスクが存在するかもしれません。ただし、より複雑なエージェントの設計、リソース割り当て、さらに幅広い機能をサポートするための多くの困難さがあることは言われていません。

結論

自律型AIモデルアーキテクチャデザイン(MAD)におけるAI技術は、将来的にAI研究者が新たなブレイクスルー技術を発見するのに役立つかもしれません。過去には、神経アーキテクチャサーチ(NAS)を通じてMADに取り組まれてきました。ジェネレーティブAIとトランスフォーマーと組み合わせることで、研究者を支援し、新たな発見の機会が生まれるかもしれません。

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more