MoCE — クラスタ化専門家の混合モデル(Mixture-of-Clustered-Experts)

AI/ML

概要

MoCE(Mixture-of-Clustered-Experts)は、従来のMixture-of-Experts(MoE)アーキテクチャに対し、シーケンス単位のクラスタリングとトークン単位のルーティングを組み合わせた二段階ルーティング(dual-stage routing)を導入することで、各専門家(expert)の専従化(specialization)を促進しつつ、未学習の入力に対する汎化性を維持・向上させることを狙った実装です。リポジトリではCamelidaeベースの実装、設定ファイル、データと図表が含まれており、指示チューニング等の下で専門家の割当てと負荷調整を評価するためのコードベースを提供します。

GitHub

リポジトリの統計情報

  • スター数: 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実装。

リポジトリ情報:

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...