网站建设常用软件,网站开发参考文献期刊,网站数字化建设,威海做网站优化关于GPT的代码细节#xff0c;这里梳理了一下#xff1a; 数据集构造
原始数据集schema#xff1a;
inputwho is your favorite basketball player?
outputOf course Kobe Bryant!那么在构造训练集时#xff0c;根据chunk size构造多个输入#xff1a;
input_1who is …关于GPT的代码细节这里梳理了一下 数据集构造
原始数据集schema
inputwho is your favorite basketball player?
outputOf course Kobe Bryant!那么在构造训练集时根据chunk size构造多个输入
input_1who is your favorite basketball player? Of
input_2who is your favorite basketball player? Of course
......
input_n-1who is your favorite basketball player? Of course Kobe Bryant!
input_nwho is your favorite basketball player? Of course Kobe Bryant! EOS由于训练任务是下一个单词预测所以 x i n p u t [ : − 1 ] , y i n p u t [ 1 : ] xinput[:-1], yinput[1:] xinput[:−1],yinput[1:]
loss x x x是模型可见已知的需要mask掉不算入loss
y[:-1] -1
loss F.cross_entropy(logits.view(-1, logits.size(-1)), targets.view(-1), ignore_index-1)生成
在karpathy/minGPT项目中是直接粗暴地生成固定长度的文本。这样做的问题就是生成的文本无法判断何处阶段。
在构造模型输入的时候我们就加入了 EOS token来标记文本的结束。那么在推理阶段如果碰到该token则结束生成
if token EOS:break参考
GPT2LMHeadModelmingptGPT2-NewsTitle