在分析Autograd引擎之前,需要理解导数和偏导数的概念。偏导数是在固定其他变量的情况下对某一变量求导。若函数可微,其导数表现为线性变换。通过链式法则,复合函数的导数可通过各部分导数相乘得到。PyTorch的Autograd引擎在执行操作时构建计算图,累加共享输入的梯度,以确保计算的正确性。
本文探讨了PyTorch的自动微分机制,强调计算图和反向传播的重要性。自动微分主要针对PyTorch张量,神经网络通过torch.nn.Module实现,计算过程封装在forward()方法中。文章还介绍了张量的创建与操作,以及在训练中管理梯度和参数更新的方式。
作者使用torchview解析模型,发现其能展示张量、模块、函数等节点及输入输出形状和边关系,支持MLP、BERT、Gemma、Llama 3.2。但torchview无法优化连续矩阵乘法(因d_input与d_hidden差异不大),也无法解析LlamaAttention等特殊模块。作者认为LoRA和反向传播中的Autograd值得探索,并反思自己想法过多、阅读不足。
完成下面两步后,将自动完成登录并继续当前操作。