DeepSeek-V3では、シグモイドの活性化関数は、トークンが専門家に割り当てられる方法を変更することにより、専門家のルーティングプロセスにおいて重要な役割を果たします。 SoftMax関数を使用した以前のバージョンとは異なり、DeepSeek-V3はシグモイド関数を採用して、トークンと専門家の間のアフィニティスコアを計算します。この変更は、極端な専門家の選択確率を防ぐのに役立ちます。これにより、ルーティングの崩壊につながる可能性があります。これは、モデルが他の専門家よりも少数の専門家を支持し、専門性と効率性の利点を減少させる状況につながる可能性があります。
###エキスパートルーティングにおけるシグモイド活性化関数
$$ \ sigma(\ cdot)$$として示されるシグモイド関数は、トークンと専門家の間のアフィニティスコアを計算するために使用されます。具体的には、スコア$$ s_ {i、t} $$ for token $$ t $$およびExpert $$ i $$は次のように計算されます。
$$ s_ {i、t} = \ sigma(u_t^t e_i)$$
ここで、$$ u_t $$はトークンの埋め込みであり、$$ e_i $$は$$ i $$の中心的ベクトルです。このスコアは、トークンが専門家の専門分野とどれだけうまく合っているかを反映しています。
###正規化と選択
これらのスコアを計算した後、DeepSeek-V3はそれらを正規化し、これらの正規化されたスコアに基づいてTOP-$$ K_R $$の専門家を選択します。このプロセスにより、各トークンは、それに最も関連する専門家のサブセットにルーティングされ、効率的で専門的な処理を促進することが保証されます。
###ロードバランシングのバイアス用語
ルーティングの崩壊を防ぎ、専門家のバランスの取れた負荷分布を確保するために、DeepSeek-V3は動的に調整可能なバイアス用語を導入します。これらのバイアス用語は、トップの専門家を選択する前に、アフィニティスコアに追加されます。専門家が過負荷になった場合、そのバイアス項は減少し、それが下負荷の場合、バイアス項が増加します。このメカニズムにより、補助損失関数に依存することなく負荷のバランスがとられ、モデルのパフォーマンスに悪影響を与える可能性があります[1] [3]。
softmaxよりもシグモイドの利点
SoftMaxの代わりにS状の機能を使用すると、さまざまな専門家の選択確率を切り離すことができます。 SoftMaxでは、確率は合計に正規化され、1人の専門家が著しく好まれると極端な確率につながる可能性があります。一方、シグモイドは、より柔軟で独立した確率の割り当てを可能にし、崩壊をルーティングする可能性を減らし、よりバランスのとれた専門家の利用を促進します[4]。
全体として、DeepSeek-V3のシグモイド活性化関数は、バランスの取れたワークロードを維持しながら、関連する専門家にトークンを効率的にルーティングするモデルの能力を高めます。
引用:
[1] https://gonzoml.substack.com/p/deepseek-v3-technical-details
[2] https://aman.ai/primers/ai/deepseek-r1/
[3] https://machinelearningatscale.substack.com/p/deepseek-v3-model
[4] https://mlfrontiers.substack.com/p/understanding-deepseek-v3
[5] https://docs.nvidia.com/nemo-framework/user-guide/latest/llms/deepseek_v3.html
[6] https://planetbanatt.net/articles/deepseek.html
[7] https://arxiv.org/pdf/2412.19437.pdf
[8] https://builtin.com/machine-learning/sigmoid-axtivation-function