TiedLinear¶
- class torchtune.modules.TiedLinear(tied_module: Module)[source]¶
一个绑定的线性层,没有偏置,与另一个线性层共享相同的权重。这对于使用绑定权重的模型非常有用,例如
qwen2_0_5b()
、qwen2_1_5b()
以及所有的gemma()
和llama3_2()
模型。它需要一个 nn.Module 作为输入,而不是模块的权重,以便它可以与 FSDP 一起工作。当应用 FSDP 时,权重的内存指针是不同的,但 nn.Module 保持不变。这就是为什么我们需要传递 nn.Module 而不是权重,如果我们想保持权重绑定。
- 参数:
tied_module (nn.Module) – 权重被共享的模块。仅使用权重。偏置被忽略。
- Raises:
AttributeError – 如果提供的模块没有属性 ‘weight’。