You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何PyTorch Transformer不支持编解码器输出维度不同?如何实现?

PyTorch Transformer的维度通用性疑问

PyTorch Transformer接收d_model参数。

论坛相关讨论提到:

Transformer原论文的设计并非基于编码器与解码器输出特征维度不同的情况

这一说法是正确的,但不应限制PyTorch的实现更具通用性。尽管原论文中所有数据流的维度均为d_model,但这并非理论上的限制。

我想了解PyTorch的Transformer在此方面不够通用的原因,肯定存在合理的考量


我的理解尝试

Multi-Head Attention接收维度相互独立的query、key和value矩阵。
在我看来,仅这一点就应该允许Transformer模型的编码器拥有一种输出尺寸(因残差连接,与输入尺寸一致),而解码器的输入和输出拥有另一种尺寸(同样因残差连接)。

再看解码器中的Multi-Head Attention层,它接收来自解码器的Q,以及来自编码器的K、V。我不明白为何K、V的维度不能与Q不同,即便存在残差连接。我们只需设置d_Q==d_decoder==layer_output_dim和d_K==d_V==encoder_output_dim,一切应该仍能正常工作,因为Multi-Head Attention本应处理不同的嵌入尺寸。

我忽略了什么?或者说,如何在不彻底重写的情况下实现更通用的Transformer?

Transformer结构示意图

内容的提问来源于stack exchange,提问作者Gulzar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 20:13:30