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=input1: x=input:−1,y=input1:

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

参考

相关推荐
天天有money10 小时前
API中转站与多账号内容运营:如何统一管理不同项目的调用
gpt·ai·chatgpt·产品运营·内容运营
月诸清酒12 小时前
我同时在用的 AI Coding Agent 和模型评测,cc/gpt/antigravity(2026.08)
人工智能·gpt·chatgpt
抱抱宝13 小时前
大模型应用开发教程01 | 专栏导读与学习路线
人工智能·gpt·语言模型·prompt
程序猿编码16 小时前
不用PyTorch,不用CUDA,我用C++手写了一个能跑GPT和Whisper的推理库
c++·pytorch·gpt·大模型·whisper
赛博三把手2 天前
Codex 桌面版安装 + CC Switch 接入第三方 API 完整教程,支持gpt-5.6-sol和claude opus 5(2026 最新)
gpt
u0102789402 天前
GPT-Image-2 图片编辑:一键改色换背景,AI视觉创作的效率革命
人工智能·gpt·ai作画·aigc
南方程序猴3 天前
我把 Node.js、npm 和 Codex CLI 全卸了,重新测了一遍 Windows 一键安装
人工智能·gpt·ai·ai编程
南方程序猴3 天前
Windows一键安装Codex所有环境
人工智能·gpt·ai·chatgpt·ai编程
王莹月4 天前
nano banana pro 怎么用?生图接口返回的图别直接存链接:nano banana pro / gpt-image-2 出图结果的落库与转存
gpt·ai·chatgpt·ai作画·aigc·agi
A小码哥4 天前
Qwen3.8-Max、GPT-5.6 以及 Claude (Opus 5 / Fable 5)的横向对比
gpt