Sockeye 3.0.7 发布,快速、可扩展的深度学习库
Sockeye 是一个基于 Apache MXNet 的快速而可扩展的深度学习库。Sockeye 代码库具有来自 MXNet 的独特优势。例如,通过符号式和命令式 MXNet API,Sockeye 结合了陈述式和命令式编程风格;可以在多块 GPU 上并行训练模型。
目前 Sockeye 更新到 3.0.7 版本,改进了训练速度,内容如下:
[3.0.7]
在训练期间使用 torch.nn.functional.multi_head_attention_forward 的自注意力和编码器注意力来提高训练速度。
需要重新组织键值输入投影的参数布局,因为当前的 Sockeye 注意力会交错以进行更快的推理。注意掩码(源掩码和自回归掩码都需要一些形状调整,因为对融合 MHA 操作的要求略有不同)。
- 联合键值输入投影参数的非交错格式:
in_features=hidden, out_features=2*hidden -> Shape: (2*hidden, hidden) - 联合键值输入投影的交错格式存储键和值参数,按头部分组:
Shape: ((num_heads * 2 * hidden_per_head), hidden) - 模型以交错格式保存和加载键值投影参数。
- 当
model.training == True键值投影参数被放入非交错格式时torch.nn.functional.multi_head_attention_forward - 当
model.training == False,即 model.eval() 被调用时,键值投影参数再次转换为交错格式。
[3.0.6]
- 修复了阻止使用
bleuas--optimized-metric进行分布式训练的检查点解码器问题(#995)
[3.0.5]
- 修复了多语言教程中的数据下载。