王博士,我想问一下,fine-tuning的边界一般在哪里。要让gpt学习行业知识,用fine-tunning是否够
1条回答 默认 最新
关注 - 这篇博客: 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(y∣x1,…,xm)=softmax(hlmWy)
其中,WyW_{y}Wy为新引入的全连接层的参数矩阵。因此,可以得到在分类任务中的目标函数:
L2(C)=∑(x,y)logP(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(y∣x1,…,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模型,最后接一层线性层得多每个输入的预测值。
具体的方法可以查看下图,可以发现,对这些任务的微改主要是新增线性层的参数以及起始符、结束符和分隔符三种特殊符号的向量参数。
解决 无用评论 打赏 举报- 这篇博客: GPT原理介绍中的 2.2 fine-tuning(有监督) 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
悬赏问题
- ¥15 eda:门禁系统设计
- ¥50 如何使用js去调用vscode-js-debugger的方法去调试网页
- ¥15 376.1电表主站通信协议下发指令全被否认问题
- ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
- ¥15 复杂网络,变滞后传递熵,FDA
- ¥20 csv格式数据集预处理及模型选择
- ¥15 部分网页页面无法显示!
- ¥15 怎样解决power bi 中设置管理聚合,详细信息表和详细信息列显示灰色,而不能选择相应的内容呢?
- ¥15 QTOF MSE数据分析
- ¥15 平板录音机录音问题解决