Ryan小任 2023-04-27 07:45 采纳率: 0%
浏览 5

gpt预训练边界在哪里

王博士,我想问一下,fine-tuning的边界一般在哪里。要让gpt学习行业知识,用fine-tunning是否够

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-04-27 11:42
    关注
    • 这篇博客: GPT原理介绍中的 2.2 fine-tuning(有监督) 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
    • 当语言模型训练结束后,就可以将其迁移到具体的NLP任务中,假设将其迁移到一个文本分类任务中,记此时的数据集为C\mathcal{C}C,对于每一个样本,其输入为x1,…,xmx^{1}, \ldots, x^{m}x1,,xm,输出为yyy。对于每一个输入,经过预训练后的语言模型后,可以直接选取最后一层Transformer最后一个时间步的输出向量hlmh_{l}^{m}hlm,然后在其后面接一层全连接层,即可得到最后的预测标签概率:
      P(y∣x1,…,xm)=softmax⁡(hlmWy) P\left(y | x^{1}, \ldots, x^{m}\right)=\operatorname{softmax}\left(h_{l}^{m} W_{y}\right) P(yx1,,xm)=softmax(hlmWy)
      其中,WyW_{y}Wy为新引入的全连接层的参数矩阵。因此,可以得到在分类任务中的目标函数:
      L2(C)=∑(x,y)log⁡P(y∣x1,…,xm) L_{2}(\mathcal{C})=\sum_{(x, y)} \log P\left(y | x^{1}, \ldots, x^{m}\right) L2(C)=(x,y)logP(yx1,,xm)
      在具体的NLP任务中,作者在fine-tuning时也把语言模型的目标引入到目标函数中,作为辅助函数,作者发现这样操作可以提高模型的通用能力,并且加速模型收敛,其形式如下:
      L3(C)=L2(C)+λ∗L1(C) L_{3}(\mathcal{C})=L_{2}(\mathcal{C})+\lambda * L_{1}(\mathcal{C}) L3(C)=L2(C)+λL1(C) 其中,λ\lambdaλ一般取0.5。

      可以发现,在fine-tuning阶段,此时新增的参数只有最后一层全连接层的参数WyW_{y}Wy,这比ELMo算法要容易得多。

      不过,上面这个例子只是对于文本分类任务,如果是对于其他任务,比如文本蕴涵、问答、文本相似度等,那么GPT该如何进行微改呢?针对这几种情况,作者提出了以下的修改方法:

      • 文本蕴涵:对于文本蕴涵任务,作者用一个“$”符号将文本和假设进行拼接,并在拼接后的文本前后加入开始符“start”和结束符“end”,然后将拼接后的文本直接传入预训练的语言模型,在模型再接一层线性变换和softmax即可。
      • 文本相似度:对于文本相似度任务,由于相似度不需要考虑两个句子的顺序关系,因此,为了反映这一点,作者将两个句子分别与另一个句子进行拼接,中间用“$”进行隔开,并且前后还是加上起始和结束符,然后分别将拼接后的两个长句子传入Transformer,最后分别得到两个句子的向量表示hlmh_{l}^{m}hlm,将这两个向量进行元素相加,然后再接如线性层和softmax层。
      • 问答和常识推理:对于问答和常识推理任务,首先将背景信息与问题进行拼接,然后再将拼接后的文本依次与每个答案进行拼接,最后依次传入Transformer模型,最后接一层线性层得多每个输入的预测值。

      具体的方法可以查看下图,可以发现,对这些任务的微改主要是新增线性层的参数以及起始符、结束符和分隔符三种特殊符号的向量参数。
      在这里插入图片描述

    评论
    编辑
    预览

    报告相同问题?

    手机看
    程序员都在用的中文IT技术交流社区

    程序员都在用的中文IT技术交流社区

    专业的中文 IT 技术社区,与千万技术人共成长

    专业的中文 IT 技术社区,与千万技术人共成长

    关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

    关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

    客服 返回
    顶部