<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Expert Parallel on Duo&#39;s Tech Blog</title>
    <link>https://duoan.github.io/tags/expert-parallel/</link>
    <description>Recent content in Expert Parallel on Duo&#39;s Tech Blog</description>
    <image>
      <title>Duo&#39;s Tech Blog</title>
      <url>https://duoan.github.io/images/papermod-cover.png</url>
      <link>https://duoan.github.io/images/papermod-cover.png</link>
    </image>
    <generator>Hugo -- 0.153.1</generator>
    <language>en-us</language>
    <lastBuildDate>Sat, 17 May 2025 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://duoan.github.io/tags/expert-parallel/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>MoE Internals: DeepSpeed-Megatron Expert Parallel Implementation</title>
      <link>https://duoan.github.io/posts/moe-deepspeed-megatron-internals/</link>
      <pubDate>Sat, 17 May 2025 00:00:00 +0000</pubDate>
      <guid>https://duoan.github.io/posts/moe-deepspeed-megatron-internals/</guid>
      <description>&lt;h1 id=&#34;moe-internals-deepspeed-megatron-expert-parallel-implementation&#34;&gt;MoE Internals: DeepSpeed-Megatron Expert Parallel Implementation&lt;/h1&gt;
&lt;p&gt;DeepSpeed-Megatron MoE is easy to misread if you only inspect one initialization function. Megatron builds the usual TP, PP, and DP topology. DeepSpeed then wraps the model, finds MoE modules, and gives those modules expert-parallel groups. The topology is split across the training framework and the MoE layer implementation.&lt;/p&gt;
&lt;p&gt;This post connects the pieces: &lt;code&gt;deepspeed.initialize()&lt;/code&gt;, EP groups, expert-DP groups, &lt;code&gt;MoELayer&lt;/code&gt;, and the difference between a DeepSpeed MoE wrapper and a Megatron-integrated SwitchMLP-style module.
For routing, capacity, and All-to-All fundamentals, start with &lt;a href=&#34;../moe-expert-parallelism-principles/&#34;&gt;MoE Parallelism Principles&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>MoE Parallelism Principles: GShard, Expert Parallel, and All-to-All</title>
      <link>https://duoan.github.io/posts/moe-expert-parallelism-principles/</link>
      <pubDate>Sat, 10 May 2025 00:00:00 +0000</pubDate>
      <guid>https://duoan.github.io/posts/moe-expert-parallelism-principles/</guid>
      <description>&lt;h1 id=&#34;moe-parallelism-principles-gshard-expert-parallel-and-all-to-all&#34;&gt;MoE Parallelism Principles: GShard, Expert Parallel, and All-to-All&lt;/h1&gt;
&lt;p&gt;Mixture-of-Experts is sparse compute wrapped in a communication problem. The model idea is simple: replace a dense FFN with many expert FFNs and route each token to a few of them. The distributed-training problem starts when those experts live on different GPUs.&lt;/p&gt;
&lt;p&gt;Shazeer et al. introduced the sparsely-gated MoE layer in &lt;a href=&#34;https://arxiv.org/abs/1701.06538&#34;&gt;Outrageously Large Neural Networks&lt;/a&gt;.
GShard made the pattern practical at scale with top-2 routing, capacity, load-balancing loss, and all-to-all dispatch in &lt;a href=&#34;https://arxiv.org/abs/2006.16668&#34;&gt;GShard&lt;/a&gt;.
Switch simplified the router to top-1 in &lt;a href=&#34;https://arxiv.org/abs/2101.03961&#34;&gt;Switch Transformers&lt;/a&gt;.
This post explains the shared systems model underneath them.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
