墨淳雅 发表于 昨天 12:25

论文解读:Fast Model Editing at Scale (MEND)

  论文发表于人工智能顶会ICLR(原文链接)。为了实现大规模编辑,提出基于梯度分解的模型编辑网络(Model Editor Networks with Gradient Decomposition, MEND):训练一个小型辅助编辑网络的集合,对通过微调获得的梯度的低阶分解进行变换,使用变换后的梯度更新模型权重。
  阅读本文请同时参考原始论文图表。
方法

  如图1所示,待编辑样本为$(x_e,y_e)$,MEND的编辑过程如下:
  1、将$x_e$输入模型,计算模型输出与$\hat{y}_e$的损失,反向传播得到模型每个层权重$W_k$的梯度$\Delta W_k$。
  2、每个$\Delta W_k$都对应于MEND的一个模型$g_k$,将$\Delta W_k$输入$g_k$得到模型权重的更新$\Delta\tilde{W}_k$。
  3、用$\Delta\tilde{W}_k$更新模型权重。
  对于LLM中的线性层权重$W_l\in\R^{n\times m}$来说,直接为其梯度$\Delta W_l$定义MEND模型参数量太大。而由于$\Delta W_l$是线性层输出的梯度$\delta_{l+1}$与输入$\mu_l$的外积,即$\Delta W_l=\delta_{l+1}\mu_l^T$。所以作者将$\delta_{l+1}$与$\mu_l$拼接作为MEND模型的输入,定义模型结构为图2所示的MLP。本文只对LLM的FFN层进行修改,而FFN层权重只有两种形状,因此仅定义两个MEND模型,相同形状的FFN权重共享一个MEND模型。为了使不同层的更新有差异性,另外为每个层定义了参数$s_l$和$o_l$,则MEND模型最终表示为式(3a,b),其中$z_l=\mathrm{concat}(u_l,\delta_{l+1})$。计算出的$g(z_l)$再进行拆分得到$\hat{\delta}_{l+1}$和$\hat{\mu}_l$,外积得到$\Delta\hat{ W}_l$。对于批量输入,如式(2)所示。
  MEND在应用于编辑测试之前要先对MEND模型的参数进行训练。设训练集为$D_{edit}^{tr}=\{(x_e,y_e,x_{\mathrm{loc}},x_e',y_e')\}$,其中$x_{\mathrm{loc}}$和$(x_e',y_e')$分别为与待编辑样本$(x_e,y_e)$无关和相似的样本。训练的损失就是式(4a,b),$L_{\mathrm{e}}$保持了编辑的准确性和泛化性,$L_{\mathrm{loc}}$保持了编辑的局部性。最终损失为这两者的加权和。训练过程中仅更新MEND模型权重。MEND模型训练好之后,就可以进行模型编辑。训练和测试过程分别如算法1/2所示。
实验

  对于局部性样本,选择预训练模型的预训练数据集。对于编辑样本和重述样本:
  1、seq2seq模型使用zsRE数据集,其中重述样本通过回译原始样本生成。
  2、分类模型(比如BERT)使用FEVER数据集。
  3、GPT模型,创建了Wikitesxt数据集,来自Wikitext-103。
  编辑参数选择:BART和T5训练编码器和解码器最后两层Transformer块的MLP权重矩阵;其它模型编辑最后三层Transformer块的MLP权重矩阵。
  表2:MEND的实例测试结果,仅使用a样本进行编辑。
  表3:编辑方法在大模型上的对比。
  表4:编辑方法在小模型上的对比。
  表5:批量编辑效果对比。
  表6:消融实验。

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: 论文解读:Fast Model Editing at Scale (MEND)