wenet icon indicating copy to clipboard operation
wenet copied to clipboard

refactor moe of positionwise_feed_forward to let us convert onnx success

Open computervisionlearner opened this issue 8 months ago • 6 comments

对Moe的实现进行了重构,原来的Moe实现带有python的流程控制,会导致导出onnx失败。修改后的moe实现,通过mask可以让pytorch更好动态追踪expert的选择。

computervisionlearner avatar Apr 26 '25 08:04 computervisionlearner

有没有单元测试小代码可以验证下两种方式在相同输入下可以得到相同输出?单测代码可以贴到这个PR里

xingchensong avatar Apr 26 '25 12:04 xingchensong

正好我最近也在研究这个,这种做法会让所有专家都参与推理,让onnx推理速度变慢,不建议采用 [expert(xs_flat) for expert in self.experts]

SwingSoulF avatar Apr 30 '25 09:04 SwingSoulF

这确实是一个问题,现在onnx对流程控制支持度不够,目前只能这么搞了

Andrew @.***

---Original--- From: @.> Date: Wed, Apr 30, 2025 17:48 PM To: @.>; Cc: @.@.>; Subject: Re: [wenet-e2e/wenet] refactor moe of positionwise_feed_forward tolet us convert onnx success (PR #2726)

SwingSoulF left a comment (wenet-e2e/wenet#2726)

正好我最近也在研究这个,这种做法会让所有专家都参与推理,让onnx推理速度变慢,不建议采用 [expert(xs_flat) for expert in self.experts]

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>

computervisionlearner avatar May 05 '25 11:05 computervisionlearner

正好我最近也在研究这个,这种做法会让所有专家都参与推理,让onnx推理速度变慢,不建议采用 [expert(xs_flat) for expert in self.experts]

赞同。libtorch支持流控制,这种改动也会导致libtorch推理变慢

cdliang11 avatar May 06 '25 03:05 cdliang11

感谢 这部分最近看下

llm moe那边有标准处理方法 大概思思路是 利用one hot 代替 for

Mddct avatar May 06 '25 14:05 Mddct

感谢 这部分最近看下

llm moe那边有标准处理方法 大概思思路是 利用one hot 代替 for

@Mddct 关于moe模型如何转onnx,能否提供一些参考文章呢?期待回复

HyacinthJingjing avatar Sep 28 '25 03:09 HyacinthJingjing