Mixture-of-experts (MoE) inference on consumer hardware is bounded by weight memory: a 35B-class model is 19.5GB at 4-bit, and sparsity shrinks the compute per token, not the bytes that must be held. Naive offloading to SSD does not help on its own, because layer N+1's experts must be chosen before layer N's output exists, so the reads cannot start early enough to hide behind compute. We present Edge0, a streaming MoE inference engine that closes the gap with a prerouter: a per-layer head predicts the next layer's routing one token ahead, and the prediction is consumed as the routing itself, so the staged expert set equals the routed set and nothing is dropped. An unmerged recovery LoRA, trained on the student path, pays back the quality lost to int4 quantization and routing replacement. On a single 24GB machine, Edge0 serves a 35B MoE at 20tok/s inside 3GiB of peak active memory, within a few points of its fp16 teacher on average across five public benchmarks. An 8B tier runs on the same framework, and the framework, checkpoints, and adapters are open source.</p>\n","updatedAt":"2026-09-17T10:31:58.514Z","author":{"_id":"63ec492b6ef3ce22b88a40e8","avatarUrl":"/avatars/e1ae41d144302aa64dd2f7e244d4511d.svg","fullname":"yumu","name":"bupalinyu","type":"user","isPro":false,"isHf":false,"isHfAdmin":false,"isMod":false,"followerCount":6,"isUserFollowing":false}},"numEdits":0,"identifiedLanguage":{"language":"en","probability":0.9189943075180054},"editors":["bupalinyu"],"editorAvatarUrls":["/avatars/e1ae41d144302aa64dd2f7e244d4511d.svg"],"reactions":[],"isReport":false}},{"id":"6aabd8f8f10310f5c4ac8345","author":{"_id":"658412f93a84a40185adaf37","avatarUrl":"https://cdn-avatars.huggingface.co/v1/production/uploads/658412f93a84a40185adaf37/FKXH7e1jj09KO1v-B5sER.jpeg","fullname":"Aamer Mihaysi","name":"O96a","type":"user","isPro":false,"isHf":false,"isHfAdmin":false,"isMod":false,"followerCount":1,"isUserFollowing":false},"createdAt":"2026-09-17T12:11:36.000Z","type":"comment","data":{"edited":false,"hidden":false,"latest":{"raw":"Does a wrong prediction stall the decode to fetch the right experts, or push forward with the wrong ones and eat the quality hit? That's the whole game with one-token-ahead routing prediction. If it's the latter, I want the accuracy curve, not the average — the tail. One bad prediction mid-generation silently degrades output while your latency numbers still look fine. And on a consumer box, a wrong SSD fetch can cost more than the prediction saved. What's the per-layer accuracy, and what does the latency distribution actually look like?","html":"<p>Does a wrong prediction stall the decode to fetch the right experts, or push forward with the wrong ones and eat the quality hit? That's the whole game with one-token-ahead routing prediction. If it's the latter, I want the accuracy curve, not the average — the tail. One bad prediction mid-generation silently degrades output while your latency numbers still look fine. And on a consumer box, a wrong SSD fetch can cost more than the prediction saved. What's the per-layer accuracy, and what does the latency distribution actually look like?</p>\n","updatedAt":"2026-09-17T12:11:36.787Z","author":{"_id":"658412f93a84a40185adaf37","avatarUrl":"https://cdn-avatars.huggingface.co/v1/production/uploads/658412f93a84a40185adaf37/FKXH7e1jj09KO1v-B5sER.jpeg","fullname":"Aamer Mihaysi","name":"O96a","type":"user","isPro":false,"isHf":false,"isHfAdmin":false,"isMod":false,"followerCount":1,"isUserFollowing":false}},"numEdits":0,"identifiedLanguage":{"language":"en","probability":0.9126590490341187},"editors":["O96a"],"editorAvatarUrls":["https://cdn-avatars.huggingface.co/v1/production/uploads/658412f93a84a40185adaf37/FKXH7e1jj09KO1v-B5sER.jpeg"],"reactions":[],"isReport":false},"replies":[{"id":"6aabe47e0e100a969807e432","author":{"_id":"63ec492b6ef3ce22b88a40e8","avatarUrl":"/avatars/e1ae41d144302aa64dd2f7e244d4511d.svg","fullname":"yumu","name":"bupalinyu","type":"user","isPro":false,"isHf":false,"isHfAdmin":false,"isMod":false,"followerCount":6,"isUserFollowing":false},"createdAt":"2026-09-17T13:00:46.000Z","type":"comment","data":{"edited":true,"hidden":false,"latest":{"raw":"we use prediction result as routing, so it is 100% accuracy.","html":"<p>we use prediction result as routing, so it is 100% accuracy.</p>\n","updatedAt":"2026-09-17T13:01:03.516Z","author":{"_id":"63ec492b6ef3ce22b88a40e8","avatarUrl":"/avatars/e1ae41d144302aa64dd2f7e244d4511d.svg","fullname":"yumu","name":"bupalinyu","type":"user","isPro":false,"isHf":false,"isHfAdmin":false,"isMod":false,"followerCount":6,"isUserFollowing":false}},"numEdits":1,"identifiedLanguage":{"language":"en","probability":0.8359800577163696},"editors":["bupalinyu"],"editorAvatarUrls":["/avatars/e1ae41d144302aa64dd2f7e244d4511d.svg"],"reactions":[],"isReport":false,"parentCommentId":"6aabd8f8f10310f5c4ac8345"}}]}],"primaryEmailConfirmed":false,"paper":{"id":"2609.18063","authors":[{"_id":"6aab6e211d9cc4dec796250c","user":{"_id":"63ec492b6ef3ce22b88a40e8","avatarUrl":"/avatars/e1ae41d144302aa64dd2f7e244d4511d.svg","isPro":false,"fullname":"yumu","user":"bupalinyu","type":"user","name":"bupalinyu"},"name":"Yu Lin","status":"claimed_verified","statusLastChangedAt":"2026-09-17T09:09:45.608Z","hidden":false},{"_id":"6aab6e211d9cc4dec796250d","name":"Yiming Wang","hidden":false},{"_id":"6aab6e211d9cc4dec796250e","name":"Runyuan Cai","hidden":false},{"_id":"6aab6e211d9cc4dec796250f","name":"Hanze Liu","hidden":false},{"_id":"6aab6e211d9cc4dec7962510","name":"Xiaodong Zeng","hidden":false}],"mediaUrls":["https://cdn-uploads.huggingface.co/production/uploads/63ec492b6ef3ce22b88a40e8/rC6RhuvirSlar0MGZ-qJB.mp4"],"publishedAt":"2026-09-16T00:00:00.000Z","submittedOnDailyAt":"2026-09-17T00:00:00.000Z","title":"The Other Half of the Memory Wall: Serving 35B MoEs from SSD with Trained Routing Prediction","submittedOnDailyBy":{"_id":"63ec492b6ef3ce22b88a40e8","avatarUrl":"/avatars/e1ae41d144302aa64dd2f7e244d4511d.svg","isPro":false,"fullname":"yumu","user":"bupalinyu","type":"user","name":"bupalinyu"},"summary":"Mixture-of-experts (MoE) inference on consumer hardware is bounded by weight memory: a 35B-class model is 19.5GB at 4-bit, and sparsity shrinks the compute per token, not the bytes that must be held. Naive offloading to SSD does not help on its own, because layer N+1's experts must be chosen before layer N's output exists, so the reads cannot start early enough to hide behind compute. We present Edge0, a streaming MoE inference engine that closes the gap with a prerouter: a per-layer head predicts the next layer's routing one token ahead, and the prediction is consumed as the routing itself, so the staged expert set equals the routed set and nothing is dropped. An unmerged recovery LoRA, trained on the student path, pays back the quality lost to int4 quantization and routing replacement. On a single 24GB machine, Edge0\n serves a 35B MoE at 20tok/s inside 3GiB of peak active memory, within a few points of its fp16 teacher on average across five public benchmarks. An 8B tier runs on the same framework, and the framework, checkpoints, and adapters are open source.","upvotes":7,"discussionId":"6aab6e211d9cc4dec7962511","githubRepo":"https://github.com/Edge0-AI/edge0","githubRepoAddedBy":"user","githubStars":1858,"organization":{"_id":"6a9a75862d11e1c1a13dec37","name":"Edge0","fullname":"Edge0","avatar":"https://cdn-avatars.huggingface.co/v1/production/uploads/64361bcaf81a16e74367d2e2/D5QI700pnaujz5PeWE6MX.jpeg"}},"canReadDatabase":false,"canManagePapers":false,"canSubmit":false,"hasHfLevelAccess":false,"upvoted":false,"upvoters":[{"_id":"63ec492b6ef3ce22b88a40e8","avatarUrl":"/avatars/e1ae41d144302aa64dd2f7e244d4511d.svg","isPro":false,"fullname":"yumu","user":"bupalinyu","type":"user"},{"_id":"652bdc9a6f88e29851b37108","avatarUrl":"https://cdn-avatars.huggingface.co/v1/production/uploads/noauth/329HTCMObu3OeJ8CiKbc0.jpeg","isPro":false,"fullname":"ꑭ 𝙰𝚖𝚊𝚛𝚘𝚜 𝙽𝚒𝚝𝚑𝚎 🇺🇦 ꑭ☀︎","user":"amarosnithe","type":"user"},{"_id":"63413355e5071b0c5cc91cda","avatarUrl":"https://cdn-avatars.huggingface.co/v1/production/uploads/63413355e5071b0c5cc91cda/P5if_w7mXfPGPq8QtALjF.png","isPro":false,"fullname":"cai","user":"chua","type":"user"},{"_id":"64361bcaf81a16e74367d2e2","avatarUrl":"https://cdn-avatars.huggingface.co/v1/production/uploads/64361bcaf81a16e74367d2e2/N4pdqBd4DqIx71t8IWaWD.png","isPro":false,"fullname":"wanglamao","user":"wanglamao","type":"user"},{"_id":"620783f24e28382272337ba4","avatarUrl":"https://cdn-avatars.huggingface.co/v1/production/uploads/620783f24e28382272337ba4/zkUveQPNiDfYjgGhuFErj.jpeg","isPro":false,"fullname":"GuoLiangTang","user":"Tommy930","type":"user"},{"_id":"6351e5bb3734c6e8a5c1bec1","avatarUrl":"/avatars/a784a51b369b197398575c3afbd5ceab.svg","isPro":false,"fullname":"Han-Bit Kang","user":"hbkang","type":"user"},{"_id":"62cd94c4aac2c91c95538fb9","avatarUrl":"/avatars/6ac1c7a07ff73364892bb5f2f2074e1b.svg","isPro":false,"fullname":"Lars Vagnes","user":"larsh0103","type":"user"}],"acceptLanguages":["en"],"dailyPaperRank":0,"organization":{"_id":"6a9a75862d11e1c1a13dec37","name":"Edge0","fullname":"Edge0","avatar":"https://cdn-avatars.huggingface.co/v1/production/uploads/64361bcaf81a16e74367d2e2/D5QI700pnaujz5PeWE6MX.jpeg"},"markdownContentUrl":"https://huggingface.co/buckets/huggingchat/papers-content/resolve/2609/2609.18063.md","query":{}}">
The Other Half of the Memory Wall: Serving 35B MoEs from SSD with Trained Routing Prediction
Published on Sep 16
· Submitted by yumu on Sep 17 Abstract
Mixture-of-experts (MoE) inference on consumer hardware is bounded by weight memory: a 35B-class model is 19.5GB at 4-bit, and sparsity shrinks the compute per token, not the bytes that must be held. Naive offloading to SSD does not help on its own, because layer N+1's experts must be chosen before layer N's output exists, so the reads cannot start early enough to hide behind compute. We present Edge0, a streaming MoE inference engine that closes the gap with a prerouter: a per-layer head predicts the next layer's routing one token ahead, and the prediction is consumed as the routing itself, so the staged expert set equals the routed set and nothing is dropped. An unmerged recovery LoRA, trained on the student path, pays back the quality lost to int4 quantization and routing replacement. On a single 24GB machine, Edge0
serves a 35B MoE at 20tok/s inside 3GiB of peak active memory, within a few points of its fp16 teacher on average across five public benchmarks. An 8B tier runs on the same framework, and the framework, checkpoints, and adapters are open source.
Community
Mixture-of-experts (MoE) inference on consumer hardware is bounded by weight memory: a 35B-class model is 19.5GB at 4-bit, and sparsity shrinks the compute per token, not the bytes that must be held. Naive offloading to SSD does not help on its own, because layer N+1's experts must be chosen before layer N's output exists, so the reads cannot start early enough to hide behind compute. We present Edge0, a streaming MoE inference engine that closes the gap with a prerouter: a per-layer head predicts the next layer's routing one token ahead, and the prediction is consumed as the routing itself, so the staged expert set equals the routed set and nothing is dropped. An unmerged recovery LoRA, trained on the student path, pays back the quality lost to int4 quantization and routing replacement. On a single 24GB machine, Edge0 serves a 35B MoE at 20tok/s inside 3GiB of peak active memory, within a few points of its fp16 teacher on average across five public benchmarks. An 8B tier runs on the same framework, and the framework, checkpoints, and adapters are open source.
Does a wrong prediction stall the decode to fetch the right experts, or push forward with the wrong ones and eat the quality hit? That's the whole game with one-token-ahead routing prediction. If it's the latter, I want the accuracy curve, not the average — the tail. One bad prediction mid-generation silently degrades output while your latency numbers still look fine. And on a consumer box, a wrong SSD fetch can cost more than the prediction saved. What's the per-layer accuracy, and what does the latency distribution actually look like?
we use prediction result as routing, so it is 100% accuracy.
Discussion (0)
Sign in to join the discussion. Free account, 30 seconds — email code or GitHub.
Sign in →No comments yet. Sign in and be the first to say something.