DEDEYUAN.COM演示站

时间:2023-04-16 02:42  编辑:admin

  欠中银消费贷款后果我们具体计算loss也只计算最后decoder输出的这三个token的概率比较mT5模子是T5模子正在众说话数据集C4上的络续练习,T5自己是较量早了,是2019年的一个模子,然则自后又有良众次差别的升级。

  起初是prompt tuning,便是咱们现正在一经有了良众仿佛bert/gpt/t5如此的预练习模子,然则它们都很大,或者有几十亿或者几百亿个参数。

  那这些模子举办凡是的fine-tune自己就很泯灭资源,而一个公司或者项目或者必要良众差别的职责基于这些模子,每个职责又必要孤独安放,也很泯灭资源。

  咱们通过gpt-2/gpt-3的极少zero-shot/few-shot learning为策动点,便是咱们给差别职责差别的提示(prompt),就可能很少的练习就可能正在统一个模子达成差别的职责。

  最开端,这些prompt便是极少奇特的句子,好比说咱们给gpt3的提示是:“1+1=2;2+2=4;4+5=9;5+6=”如此的提示,让模子络续天生,欲望能输出5+6的精确谜底。

  那么咱们何如找到每个职责的最好的prompt呢?当然咱们可能人工计划去一点一点测验,或者畅快穷举,当然也有良众基于差别要领的测试,可能参考上面提到的综述论文。

  除了hard-prompt以外,假设咱们思要更好的结果,是不是咱们可能计划极少奇特的仿佛token的东西,咱们称之为prompt embedding,把它和历来模子自己的embedding对齐。 如此愚弄self-attention的机制,让模子自己可能读取咱们插足的embedding。

  而练习,便是只更新咱们插足的prompt embedding的梯度,也便是只练习模子的极端小的一个人参数,而不去更新整个模子。

  如此分明模子练习用的资源就会更好,安放的期间咱们也只必要安放一个原版模子,只必要依照差别职责,插入差别的prompt embedding就好了。

  咱们说了咱们要做中文的分类职责,mT5如此的encoder-decoder布局原本自然的做的是sequence-to-sequence布局,仿佛机械翻译/对话闲话之类的

  咱们先定位职责为,输入一句(段)中文文本,输出一个三分类的标签,0,1,2。

  decoder的输入,也没什么好说的,终于咱们不是seq2seq职责,不必要奇特的输入。

  正在代码中的encoder和decoder的输入中,插足了prompt embedding的占位符,是恣意token id都可能,反正城市被咱们的代码调换掉的。

  咱们要获取的是decoder末了的输出,并把输出中的极少奇特字符位子,算作咱们的三分类结果。

  decoder默认必然会输出一个词外长度的向量,咱们只拿此中3个操纵,现实代码中我是操纵3,4,5,三个奇特token id动作判决三分类的结果。

  咱们整体揣测loss也只揣测末了decoder输出的这三个token的概率较量,好比3的概率最大,那么便是分类0,4的大便是分类1,5的大便是分类2。

  起初操纵tansformers就可能很轻易的去下载和移用谷歌的T5/mT5模子

  然后咱们修筑一个调换原版模子的输入器,用来把用于练习的prompt embedding插足到模子。

  下面代码首要参考github.com/kipgparker/soft-prompt-tuning这个repo举办点窜,由于这个repo的练习时基于GPT的,而咱们是基于mT5的,因此整个代码上略有区别,况且这个repo的练习代码也不太完备。