MoCE — クラスタ化専門家の混合モデル(Mixture-of-Clustered-Experts)
概要
MoCE(Mixture-of-Clustered-Experts)は、従来のMixture-of-Experts(MoE)アーキテクチャに対し、シーケンス単位のクラスタリングとトークン単位のルーティングを組み合わせた二段階ルーティング(dual-stage routing)を導入することで、各専門家(expert)の専従化(specialization)を促進しつつ、未学習の入力に対する汎化性を維持・向上させることを狙った実装です。リポジトリではCamelidaeベースの実装、設定ファイル、データと図表が含まれており、指示チューニング等の下で専門家の割当てと負荷調整を評価するためのコードベースを提供します。
リポジトリの統計情報
- スター数: 15
- フォーク数: 8
- ウォッチャー数: 15
- コミット数: 2
- ファイル数: 12
- メインの言語: Python
主な特徴
- 二段階ルーティング:シーケンスレベルのクラスタ割当て+トークンレベルの活性化を組み合わせる設計。
- 専門家の専門化と汎化の両立を目指すアーキテクチャ設計。
- Camelidaeをベースにした実装で、既存MoEワークフローとの親和性を確保。
- 実験用のデータ、可視化画像、設定ファイルを同梱し再現性を重視。
技術的なポイント
MoCEの中心概念は「sequence-level clustering」と「token-level gating」を分離しつつ連携させる点にあります。まず各入力シーケンス(例:1つの指示+応答ペア)を埋め込み空間にマッピングし、シーケンス単位でクラスタリングを行います。クラスタごとに専門家のサブセット(あるいは優先順)を割り当てることで、同種のシーケンスが同じ専門家群を共有しやすくなり、専門家が特定のタスク領域や文脈に特化することを促します。次に、トークンレベルでは従来のトークン単位ゲーティング(たとえばTop-k softmax等)を用いて実際の専門家活性化を決定します。これにより、シーケンスレベルの粗い割当てで方向付けしつつ、各トークンの局所的な特徴に基づいて最適な専門家を選択できます。
この二段構成は、専門家の「偏り(collapse)」を防ぎつつ負荷分散を改善する効果があります。具体的には、クラスタリングにより類似シーケンスがまとまり、専門家が十分なデータで学習できるため専門化しやすくなります。一方でトークンレベルのルーティングは、シーケンス内で多様なトークン処理を可能にし、汎化性能を損なわない工夫です。実装面では、クラスタリングは事前に計算したシーケンス表現(平均プーリングやCLSトークン表現)に基づいて実施され、訓練中に動的に更新する設計も想定されます。さらに、負荷均衡のための補助損失(load balancing loss)やcapacity factorの管理、専門家間の通信コスト削減といった実践的なハイパーパラメータ調整が必要になります。
利点としては、指示チューニングやマルチタスク設定での専門家分化、計算効率と性能のトレードオフ改善、少ない専門家活性化での高性能維持などが期待できます。注意点としては、クラスタ数や専門家数、クラスタ割当ての頻度など追加の設計空間が増える点、クラスタリング実行による前処理とオンライン更新の実装負担、レイテンシや分散トレーニングでの通信コスト増加が挙げられます。
プロジェクトの構成
主要なファイルとディレクトリ:
- LICENSE: file
- README.md: file
- camelidae: dir(Camelidaeベースの実装、設定やモデル構成)
- data: dir(実験用データや前処理スクリプト)
- img: dir(図表、可視化画像)
その他ファイル(設定ファイル、スクリプト、モデルモジュール等)含め約12ファイルの軽量リポジトリ構成で、実験の再現とカスタマイズが容易な設計になっています。
…他 7 ファイル
まとめ
二段階ルーティングで専門化と汎化を両立する実験的なMoE実装。
リポジトリ情報:
- 名前: MoCE
- 説明: 説明なし
- スター数: 15
- 言語: Python
- URL: https://github.com/sugyeonge/MoCE
- オーナー: sugyeonge
- アバター: https://avatars.githubusercontent.com/u/37296965?v=4
READMEの抜粋:
Mixture-of-Clustered-Experts: Advancing Expert Specialization and Generalization in Instruction Tuning
This repository provides an implementation of Mixture-of-Clustered-Experts (MoCE), a MoE extension featuring a dual-stage routing mechanism that combines sequence-level clustering with token-level activation to enhance expert specialization and generalization capability.
Repository Structure
Camelidae/
├── configuration_camelidae.py # Global confi...