关于gpt2生成的训练验证

代码地址:GPT2-Chinese: 中文的GPT2训练代码,可以写诗,新闻,小说,或是训练通用语言模型 (gitee.com)

其中代码的分词部分直接使用的是按字分词

gpt2生成的结果与bert类似。gpt2使用了隐藏层的最后一层的最后一个序列作为对下一个token的预测基础

再此基础上,通过增加nn.Linear(config.n_embd, config.vocab_size, bias=False)来进行维度和token字库数量保持一致

关于在输出词的选择上,并非直接使用最大概率的token作为预测结果,而是使用如下内容:

torch.multinomial(F.softmax(filtered_logits, dim=-1), num_samples=1)进行概率分布式的预测。即增加了随机性,由对返回的概率加权使用。后续根据使用情况做进一步的判断。目前对已经被分享出来的模型效果满意度不是很高。而对于下一步要验证的内容,很难收集到相关的数据,有点限于停止。郁闷半分钟

跟人对于gpt2/gpt3等总结:在大数据量的训练下,模型的各个任务都会产生互补式的效果叠加。原因是一位大神的结论:数据的特征天然就存在于数据本身,和任务无关。这也是模型在学会了一个任务后对其他任务也是有很大的帮助。

但是其对应的前提条件是数据量够大。在数据量有限的情况下,小公司或许更应该专注于小模型的垂直开发,或基于已经开源的通过模型的二次调优。

猜你喜欢

转载自blog.csdn.net/sslfk/article/details/129148364
今日推荐