梯度裁剪(全局范数)

大模型手撕 · 简单 · 训练

实现 torch.nn.utils.clipgradnorm:把所有参数的梯度看作一个大向量,计算全局 L2 范数 \g\。若 \g\ \text{max\norm},所有梯度乘以 \dfrac{\text{max\norm}}{\g\ + 10^{-6}};否则保持不变。

数据范围

在 RagCodes 上用 Python / C++ / Java 在线编写并提交,核心代码模式与 ACM 模式均可评测。