GPT的实现细节

关于GPT的代码细节,这里梳理了一下:

数据集构造

原始数据集schema:

text 复制代码
input=who is your favorite basketball player?
output=Of course Kobe Bryant!

那么在构造训练集时,根据chunk size构造多个输入:

text 复制代码
input_1=who is your favorite basketball player? Of
input_2=who is your favorite basketball player? Of course
......
input_n-1=who is your favorite basketball player? Of course Kobe Bryant!
input_n=who is your favorite basketball player? Of course Kobe Bryant! <EOS>

由于训练任务是下一个单词预测,所以 x = i n p u t [ : − 1 ] , y = i n p u t [ 1 : ] x=input[:-1], y=input[1:] x=input[:−1],y=input[1:]

loss

x x x是模型可见已知的,需要mask掉不算入loss

python 复制代码
y[:-1] = -1
loss = F.cross_entropy(logits.view(-1, logits.size(-1)), targets.view(-1), ignore_index=-1)

生成

karpathy/minGPT项目中,是直接粗暴地生成固定长度的文本。这样做的问题就是生成的文本无法判断何处阶段。

在构造模型输入的时候,我们就加入了 <EOS> token,来标记文本的结束。那么在推理阶段,如果碰到该token,则结束生成

python 复制代码
if token == "<EOS>":
    break

参考

相关推荐
uncle_ll8 小时前
ChatGPT大模型极简应用开发-CH5-使用 LangChain 框架和插件增强 LLM 的功能
gpt·chatgpt·langchain·llm·rag
uncle_ll2 天前
ChatGPT大模型极简应用开发-CH4-GPT-4 和 ChatGPT 的高级技巧
人工智能·gpt·chatgpt·llm·微调
myzzb2 天前
GPT 结束语设计 以nanogpt为例
python·gpt·学习·自然语言处理·nanogpt
Montauk LUO3 天前
AD7606, 逐次逼近型ADC以及一次被GPT坑了的过程.
stm32·嵌入式硬件·gpt
如果'\'真能转义说5 天前
TypeScript - 利用GPT辅助学习
gpt·学习·typescript
日出等日落5 天前
小白也能轻松上手的GPT-SoVITS AI语音克隆神器一键部署教程
人工智能·gpt
网络安全研发随想6 天前
深入理解GPT底层原理--从n-gram到RNN到LSTM/GRU到Transformer/GPT的进化
gpt·rnn·lstm
2401_897605657 天前
OpenAI进军实体机器人:GPT赋能的智能未来
前端·gpt·机器人
GISer Liu8 天前
Transformer详解:Attention机制原理
人工智能·python·gpt·深度学习·机器学习·语言模型·transformer
hunteritself8 天前
Sam Altman亲自确认:o3-mini即将上线!GPT和o系列模型合并!
人工智能·gpt·ai·chatgpt