大規模モデルのモデル融合法についてお話しましょう

大規模モデルのモデル融合法についてお話しましょう

モデル融合は、特に判別モデルにおいて、これまで頻繁に使用されてきました。これは、常に着実に改善できる手法の 1 つです。ただし、生成言語モデルは、デコード処理のため、識別モデルほど直感的ではありません。

さらに、大規模モデルのパラメータ数の増加により、パラメータスケールが大きいシナリオでは、単純なアンサンブル学習で考慮できる手法は、低パラメータ機械学習の場合よりも制限されます。たとえば、スタッキングやブースティングなどの古典的な手法は、スタックされたモデルのパラメータの問題により、単純に拡張することはできません。したがって、大規模モデルのアンサンブル学習には慎重な検討が必要です。

以下では、モデル統合、確率統合、グラフティング学習、クラウドソーシング投票、MOE という 5 つの基本的な統合方法について説明します。

1. モデルの統合

モデルの統合は比較的単純です。つまり、大規模なモデルは出力のテキスト レベルで統合されます。たとえば、3 つの異なる LLama モデルの出力結果を、参照用に 4 番目のモデルに入力するためのプロンプトとして使用するだけです。実際には、テキストによる情報伝達はコミュニケーション手段として使用できます。その代表的な方法は、論文「Exchange-of-Thought: Enhancing Large Language Model Capabilities through Cross-Model Communication」に由来する EoT です。EoT は、モデル間の相互コミュニケーションを促進し、問題解決プロセスにおける集合的理解を強化することを目的とした、新しい思考交換フレームワーク「Exchange-of-Thought」を提案しています。このフレームワークを通じて、モデルは他のモデルの推論を吸収し、独自のソリューションをより適切に調整および改善することができます。論文の図は次のことを示しています。

写真

図に示すように、著者は CoT と自己修正方法を統一的に捉えています。EoT により、複数のモデルが階層的にメッセージを渡すことができます。モデル間の通信を通じて、モデルは他のモデルの推論と思考プロセスを利用して、問題をより適切に解決できます。これにより、モデルのパフォーマンスと精度が向上します。

2. 確率的アンサンブル

確率的アンサンブルは、モデルによって予測されたロジット結果の平均化など、従来の機械学習の融合に似ており、正式には次のように表現できます。同様に、大規模モデルの確率的アンサンブルは、トランスフォーマー語彙出力確率レベルで融合できます。このような操作では、融合される複数の元のモデルの語彙が一貫している必要があることに注意してください。

以下に簡単な疑似コード実装を示します。

 kv_cache = None While True: input_ids = torch.tensor([[new_token]], dtype=torch.long, device='cuda') kv_cache1, kv_cache2 = kv_cache output1 = models[0](input_ids=input_ids, past_key_values=kv_cache1, use_cache=True) output2 = models[1](input_ids=input_ids, past_key_values=kv_cache2, use_cache=True) kv_cache = [output1.past_key_values, output2.past_key_values] prob = (output1.logits + output2.logits) / 2 new_token = torch.argmax(prob, 0).item()

3. 接ぎ木学習

接ぎ木学習の概念は、国内の Kaggle Grandmaster である plantsgo から来ており、データマイニングのコンテストから生まれました。これは本質的には一種の転移学習であり、当初は 1 つのツリー モデルの出力を別のツリー モデルの入力として使用する方法を説明するために使用されていました。この方法は樹木の繁殖における接ぎ木に似ているため、この名前が付けられました。大規模モデルでは、グラフティング学習の応用もあります。モデル名はSOLARです。記事は「SOLAR 10.7B: シンプルかつ効果的な深度アップスケーリングによる大規模言語モデルのスケーリング」から来ています。記事では、モデルグラフティングのアイデアを提案しています。機械学習のグラフティング学習とは異なり、大規模モデルは別のモデルの確率結果を直接統合するのではなく、構造と重みの一部を融合モデルにグラフティングし、特定の事前トレーニングプロセスを経て、モデルパラメータを新しいモデルに適応させます。具体的な操作は、後続の変更のために n レイヤーを含む基本モデルをコピーすることです。次に、最後の m 層が元のモデルから削除され、最初の m 層がそのコピーから削除され、2 つの異なる nm 層モデルが形成されます。最後に、これら 2 つのモデルを連結して、2 * (nm) レイヤーのスケール モデルを形成します。

図に示すように、48 層のターゲット モデルを構築する必要がある場合、2 つの 32 層モデルから最初の 24 層と最後の 24 層を取り出して接続し、新しい 48 層モデルを形成します。結合されたモデルは事前トレーニングできます。通常、事前トレーニングを継続することで消費されるデータ量とコンピューティング リソースは、最初からトレーニングする場合よりも少なくなります。

写真

事前トレーニングを継続した後は、命令の微調整と DPO の 2 つのプロセスを含むアライメント操作が必要です。命令の微調整では、オープンソースの命令データを使用し、それを数学固有の命令データに変換して、モデルの数学的機能を強化します。 DPO は従来の RLHF の代替であり、最終的には SOLAR チャット バージョンになります。

4. クラウドソーシング投票

今年のWSDM CUPの1位提案ではクラウドソーシング投票が採用され、これまでの国内世代別大会でも実施されてきた。中心となる考え方は、モデルによって生成された文がすべてのモデルの結果に最も類似している場合、この文はすべてのモデルの平均と見なすことができるというものです。これにより、確率的な意味での平均が、生成されたトークン結果の平均に変換されます。テストサンプルが与えられ、集約する必要がある候補回答があると仮定します。各候補について、 と ) 間の相関スコアを計算し、それらを品質スコア () として合計します。同様に、相関定量化のソースは、埋め込み層のコサイン類似度 (emb_a_s と表記)、単語レベルの ROUGE-L (word_a_f と表記)、および文字レベルの ROUGE-L (char_a_f と表記) です。以下は、リテラルおよびセマンティックのものを含む、人工的に構築された類似度インジケーターです。

コードアドレス: https://github.com/zhangzhao219/WSDM-Cup-2024/tree/main

5. 文部科学省

最後に、そして最も重要なのは、大規模モデルである Mixture of Experts (MoE) です。これは、複数のサブモデル (つまり「専門家」) を組み合わせ、複数の専門家の共同作業を通じて全体的な予測効果を向上させることを目的としたモデル アーキテクチャ手法です。 MoE 構造により、モデルの処理能力と動作効率が大幅に向上します。典型的な大規模モデルの MoE アーキテクチャは、ゲーティング メカニズムと一連のエキスパート ネットワークで構成されます。ゲーティング メカニズムは、入力データに基づいて各エキスパートの重みを動的に調整し、各エキスパートの最終出力への貢献度を決定します。同時に、エキスパート選択メカニズムは、ゲーティング信号の指示に従って、実際の予測計算に参加するエキスパートの数を選択します。この設計により、全体的なコンピューティング要件が削減されるだけでなく、モデルがさまざまな入力に基づいて最も適切なエキスパートを選択できるようになります。

専門家の混合 (MoE) の概念は新しい概念ではありません。専門家の混合の概念は、1991 年に発表された論文「Adaptive Mixture of Local Experts」にまで遡ることができます。このアプローチはアンサンブル学習に似ており、その中核は、多数の独立した専門家ネットワークのコレクションの調整と融合のメカニズムを作成することです。このアーキテクチャでは、各独立したネットワーク(つまり、「エキスパート」)がデータセットの特定のサブセットの処理を担当し、入力データの特定の領域に焦点を当てます。このサブセットは、特定のトピック、特定の分野、特定の問題分類などに偏っている可能性があります。これは明示的な概念ではありません。

さまざまな入力データに直面した場合、システムがどの専門家を処理するかをどのように決定するかが重要な問題となります。ゲーティング ネットワークは、この問題を解決するために設計されています。重みを割り当てることで、各専門家の職務責任を決定します。トレーニング プロセス全体を通じて、これらのエキスパート ネットワークとゲーティング ネットワークは、明示的な手動操作を必要とせずに同時にトレーニングされます。

2010年から2015年にかけて、2つの研究方向が専門家混合(MoE)モデルのさらなる発展に重要な影響を与えました。

コンポーネント化された専門家: 従来の MoE フレームワークでは、システムはゲーティング ネットワークと複数の専門家ネットワークで構成されます。サポートベクターマシン (SVM)、ガウス過程、およびその他の機械学習手法のコンテキストでは、MoE はモデルの別の部分として扱われることがよくあります。しかし、Eigen、Ranzato、Ilyaなどの研究者は、MoEをディープネットワークの内部コンポーネントとして使用するというアイデアを提案しました。この革新により、MoE を多層ネットワーク内の特定の場所に統合できるようになり、効率性を維持しながらモデルを拡大できるようになります。

条件付き計算: 従来のニューラル ネットワークは、各レイヤーですべての入力データを処理します。この時期に、ヨシュア・ベンジオなどの学者は、入力特徴に基づいてネットワークの一部を動的に有効化または無効化する方法を研究し始めました。

これら 2 つの研究を組み合わせることで、自然言語処理 (NLP) の分野でハイブリッド エキスパート モデルの応用が促進されました。特に、2017 年に Shazeer 氏と彼のチームは、この概念を 137 億パラメータの LSTM モデル (Schmidhuber 氏が提案した、当時 NLP 分野で広く使用されていたモデル アーキテクチャ) に適用しました。モデルを大きく保ちながら推論を高速化するためにスパース性を導入しました。この研究は主に翻訳タスクに適用され、高い通信コストやトレーニングの安定性の問題など、さまざまな課題に直面しています。図に示すように、「Outrageously Large Neural Network」の MoE レイヤー アーキテクチャは次のとおりです。

写真

従来のMoEは、非トランスフォーマーモデルアーキテクチャに重点を置いています。大規模モデルの時代には、トランスフォーマーモデルのパラメータ数は数百億に達します。MoEをトランスフォーマーに適用し、パラメータを数百億に拡張し、トレーニングの安定性と推論効率の問題を解決する方法は、大規模モデルへのMoEの適用における重要な課題となっています。 Google は代表的な手法として Gshard を提案し、Transformer モデルのパラメータ数を 6,000 億以上に増やすことに成功し、モデルレベルを向上させました。

GShard フレームワークでは、エンコーダーとデコーダーの各フィードフォワード ネットワーク (FFN) レイヤーが、Top-2 ゲーティング メカニズムを備えたエキスパート混合 (MoE) レイヤーに置き換えられます。次の図はエンコーダの構造設計を示しています。この設計は、大規模なコンピューティング タスクを実行する場合に非常に有益です。モデルが複数の処理デバイスに分散されている場合、MoE レイヤーはデバイス間で共有され、他のレイヤーは各デバイスで独立して複製されます。そのアーキテクチャを下の図に示します。

写真

トレーニング中の負荷バランスと効率性を確保するために、GShard は損失関数、ランダム ルーティング メカニズム、エキスパート容量制限という 3 つの主要なテクノロジを提案します。

補助的な負荷分散損失関数: 損失関数は、エキスパートのバッファーに格納されているトークンの数に、エキスパートのバッファーに格納されているトークンの平均重みを乗算したものを考慮します。このような損失関数を構築することで、エキスパートの負荷分散を維持できます。

ランダム ルーティング メカニズム: Top-2 メカニズムでは、常に 1 位の専門家が選択されますが、2 位の専門家は重みに応じてランダムに選択されます。

エキスパートの容量制限: エキスパートが処理できるトークンの数を制限するしきい値を設定できます。両方のエキスパートが容量に達した場合、トークンはオーバーフローし、残余接続を介して次のレイヤーに渡されるか、場合によっては単に破棄されます。エキスパート容量は、MoE アーキテクチャにおいて非常に重要な概念です。その存在理由は、すべてのテンソル サイズがコンパイル時に静的に決定されるためです。各エキスパートに割り当てられるトークンの数は予測できないため、固定容量制限を事前に設定する必要があります。

推論フェーズでは、一部のエキスパートのみがアクティブ化されることに注意してください。同時に、自己注意メカニズムなど、一部の計算プロセスはすべてのトークンで共有されます。このようにして、120 億のパラメータを持つ高密度モデルの計算リソースを使用して、8 人の専門家で 470 億のパラメータ モデルを実行できました。 Top-2 ゲーティング メカニズムを使用すると、モデル パラメータの数は 140 億に達する可能性がありますが、自己注意操作は専門家間で共有されるため、モデルの実行時に実際に使用されるパラメータの数は 120 億です。

MoeLayer の原理全体は、次の疑似コードで表現できます。

 M = input.shape[-1] # input维度为(seq_len, batch_size, M),M是注意力输出embedding的维度reshaped_input = input.reshape(-1, M) gates = softmax(einsum("SM, ME -> SE", reshaped_input, Wg)) #输入input,Wg是门控训练参数,维度为(M, E),E是MoE层中专家的数量,输出每个token被分配给每个专家的概率,维度为(S, E) combine_weights, dispatch_mask = Top2Gating(gates) #确定每个token最终分配给的前两位专家,返回相应的权重和掩码dispatched_expert_input = einsum("SEC, SM -> ECM", dispatch_mask, reshaped_input) # 对输入数据进行排序,按照专家的顺序排列,为分发到专家计算做矩阵形状整合h = enisum("ECM, EMH -> ECH", dispatched_expert_input, Wi) #各个专家计算分发过来的input,本质上是几个独立的全链接层h = relu(h) expert_outputs = enisum("ECH, EHM -> ECM", h, Wo) #各个专家的输出outputs = enisum("SEC, ECM -> SM", combine_weights, expert_outputs) #最后,进行加权计算,得到最终MoE-layer层的输出outputs_reshape = outputs.reshape(input.shape) # 从(S, M)变成(seq_len, batch_size, M)

MoE のアーキテクチャの改善に関しては、Switch Transformers は、2 つの独立した入力 (つまり、2 つの異なるトークン) を処理でき、処理用の 4 つのエキスパートを備えた特別な Switch Transformer レイヤーを設計しました。スイッチトランスフォーマーは、トップ2エキスパートの本来の考え方とは対照的に、簡略化されたトップ1エキスパート戦略を採用しています。次の図に示すように:

写真

これに対し、国内で有名な大規模モデルであるDeepSeek MoEのアーキテクチャは、毎回アクティベーションに参加する共有の専門家で設計されており、特定の専門家が特定の知識分野に精通できるという前提で設計されています。専門家の知識領域を細かく分割することで、一人の専門家が多くの知識を習得する必要がなくなり、知識の混乱を避けることができます。同時に、共有の専門家を設定することで、一般的に適用可能な知識をあらゆる計算で使用できるようになります。写真

<<:  普及モデルはどのようにして新しい世代の意思決定エージェントを構築するのでしょうか?自己回帰を超えて長いシーケンス計画軌道を生成する

>>:  アルトマン氏がOpenAIの役員に復帰: 3万件の文書を読んだ後、調査チームは

ブログ    
ブログ    
ブログ    
ブログ    

推薦する

...

データ構造とアルゴリズム: 文字列の分割とバランス

[[441873]]バランスの取れた文字列を分割するLeetCode の問題へのリンク: https...

李開復:今後数年間、中国で最も収益性の高い仕事は何でしょうか?

1物語はAI熱狂の3つの波から始まる2017年、誰もが人工知能について語っていました。しかし、2度...

...

落とし穴を避けよう!ニューラルネットワークの欠点と短所を数え上げよう

最近、ディープラーニングが大々的に宣伝されており、人々はニューラル ネットワークをあらゆる場所で使用...

人工知能は実際のデータセットを「放棄」するのか?

現在、人工知能技術は、顔認識、音声認識、仮想デジタルヒューマンなど、私たちの日常生活のあらゆる側面に...

小さくても素晴らしい、ミニプログラムのデビュー

[51CTO.comより引用] 2017年1月9日にWeChatミニプログラムが正式リリースされて以...

Dialogflow、Lex、Watson、Wit、Azure Robots の比較

[51CTO.com クイック翻訳] チャットボットは顧客とコミュニケーションをとる革新的な方法です...

NLP事前トレーニングパラダイムが統合され、下流のタスクタイプに絡まらなくなり、Googleの新しいフレームワークは50のSOTAを更新します

この論文では、Google の研究者がさまざまな事前トレーニング パラダイムを統合する事前トレーニン...

...

人工知能の時代に教育はどのように変化するのでしょうか?

「教育は人材を育成する長期的な取り組みなので、将来を見据えたものであるべきだ。」先日開催された人工...

フルスタックが未来です。「組み立てられたコンピュータ」人工知能コンピューティングセンターはどこまで進化できるのでしょうか?

人工知能が徐々に社会経済の発展を促進する新たな原動力となるにつれ、あらゆる階層の人々が産業知能のアッ...

人工知能は教育にどのような変化をもたらすのでしょうか?

[[441080]]経済観察記者 鄭躍新12月16日、中国教育部元副部長で中国教育国際交流協会会長...

llama.cppを勉強した後、携帯電話で大規模なモデルを実行するのはとても簡単だと分かりました

最近、オープンソース コミュニティでは、大規模モデルの最適化手法を模索する人が増えています。 LLa...