MiniGPT: 从第一性原理重建GPT

arXiv cs.CL 论文

摘要

本文介绍了MiniGPT,这是一个基于PyTorch从头实现的紧凑型GPT风格自回归语言模型,其构建参考了nanoGPT的研究。该模型在Tiny Shakespeare数据集上使用字符级分词进行评估,在10.77M参数配置下达到了1.4780的验证损失。

arXiv:2605.17398v1 Announce Type: new 摘要:本文介绍了MiniGPT,一个基于PyTorch从头实现的紧凑型GPT风格自回归语言模型。其目标是在研究Andrej Karpathy的nanoGPT设计后,从第一性原理重建核心GPT流水线,同时保持模型和训练代码独立编写在一个笔记本中。MiniGPT实现了令牌嵌入和位置嵌入、因果多头自注意力、预层归一化Transformer块、残差连接、前馈MLP层、下一个令牌交叉熵训练(教师强制)、验证跟踪、检查点选择以及自回归文本生成。本文在Tiny Shakespeare数据集上使用字符级分词评估了该实现。一个具有0.83M参数的基线模型经过3000次训练迭代后达到了1.7236的验证损失。一个更强的10.77M参数配置,使用更大的上下文长度和改进的训练设置,达到了1.4780的最佳验证损失,并生成了具有可识别的莎士比亚风格对话结构的文本。MiniGPT并没有引入新的语言模型架构。相反,它记录了一条清晰且可重现的实现路径,从原始文本到训练好的字符级生成,包括设计选择、训练行为、生成质量和实际局限性。
查看原文
查看缓存全文

缓存时间: 2026/05/19 06:40

# MiniGPT:从基本原理重建GPT  
来源:https://arxiv.org/html/2605.17398  

[![[无标题图片]](https://arxiv.org/html/2605.17398v1/x1.png)  
Jibin Joseph](https://orcid.org/0009-0001-8585-2354)  
计算机科学系  
德克萨斯大学奥斯汀分校  
奥斯汀,德克萨斯州 78712  
jibinjoseph@utexas\.edu  

###### 摘要  
本文介绍MiniGPT,一个紧凑的、从零开始用PyTorch实现的GPT风格自回归语言模型。目标是在研究Andrej Karpathy的nanoGPT设计后,从基本原理重建核心GPT流程,同时保持模型和训练代码独立编写在单个笔记本中。MiniGPT实现了词元嵌入、位置嵌入、因果多头自注意力、预层归一化Transformer块、残差连接、前馈MLP层、下一个词元交叉熵训练(教师强制)、验证跟踪、检查点选择和自回归文本生成。本文在Tiny Shakespeare数据集上使用字符级词元化评估了该实现。一个基准模型(0.83M参数)在3000次训练迭代后达到验证损失1.7236。一个更强的配置(10.77M参数),使用更大的上下文长度和改进的训练设置,达到最佳验证损失1.4780,并生成具有可识别莎士比亚风格对话结构的文本。MiniGPT并未引入新的语言模型架构。相反,它记录了一条从原始文本到训练好的字符级生成的清晰且可复现的实现路径,包括设计选择、训练行为、生成质量和实际限制。  

*关键词* MiniGPT⋅\\cdot仅解码器Transformer⋅\\cdot自回归文本生成⋅\\cdotPyTorch  

## 1 引言  
生成式语言模型已成为现代深度学习最显著的成果之一。现代深度学习通常被描述为使用多层神经网络进行表示学习(LeCun et al., 2015 (https://arxiv.org/html/2605.17398#bib.bib1)),而更广泛的历史回顾表明,深度学习在神经网络、信用分配、监督学习、无监督学习和强化学习方面也有更长的谱系(Schmidhuber, 2015 (https://arxiv.org/html/2605.17398#bib.bib2))。在语言建模中,这一思想尤为重要,因为模型可以通过预测序列中的下一个词元来从原始文本中学习。Transformer架构通过使用注意力替代循环或卷积作为主要的序列建模机制,使这种方法更加实用(Vaswani et al., 2017 (https://arxiv.org/html/2605.17398#bib.bib3))。GPT风格模型在此基础上,使用仅解码器Transformer并配合自回归的下一个词元预测目标进行训练(Radford et al., 2018 (https://arxiv.org/html/2605.17398#bib.bib4), 2019 (https://arxiv.org/html/2605.17398#bib.bib5))。随后的大语言模型表明,相同的基本训练思路可以扩展到更大的模型和更广泛的语言任务(Brown et al., 2020 (https://arxiv.org/html/2605.17398#bib.bib6))。  

然而,仅凭高层解释仍然难以理解核心GPT流程。许多描述将模型展示为图表,而许多实际实现包含对大规模训练有用但初次接触较难理解的工程细节。像minGPT和nanoGPT这样的紧凑实现有助于在代码中更容易地检查GPT风格建模(Karpathy, 2020 (https://arxiv.org/html/2605.17398#bib.bib7), 2022 (https://arxiv.org/html/2605.17398#bib.bib8))。nanoGPT尤其有用,它在一个小型代码库中组织了模型定义、训练循环、评估、检查点和采样工作流,是一个实用的参考(Karpathy, 2022 (https://arxiv.org/html/2605.17398#bib.bib8))。不过,在单个笔记本中重建相同的核心思想,可以使从原始文本到生成样本的完整路径更加直接且易于复现。  

本文介绍MiniGPT,一个紧凑的、从零开始用PyTorch实现的GPT风格自回归语言模型。MiniGPT遵循高层的仅解码器Transformer设计,但模型和训练代码是独立编写的。该实现包括词元嵌入、位置嵌入、掩码多头自注意力、前馈Transformer块、残差连接、层归一化、下一个词元交叉熵训练、验证损失跟踪、检查点选择和自回归文本生成。目标不是引入新的语言模型架构,而是记录一条清晰且可复现的小型GPT风格模型实现路径。  

MiniGPT在Tiny Shakespeare数据集上使用字符级词元化进行评估。这个设置刻意保持较小规模,但很有用,因为数据集包含重复的结构,如说话者名称、标点、换行和类似对话的文本。该实现首先训练一个基准模型以验证完整流程,然后训练一个更强的配置,以研究模型容量增加、上下文长度增大、基于验证的检查点选择以及自回归生成质量的影响。  

本文的主要贡献是:  
- • 一个从零开始用PyTorch实现的小型仅解码器GPT风格语言模型。  
- • 一条从原始文本到训练和验证批次的完整字符级语言建模流程。  
- • 在Tiny Shakespeare数据集上的基准和更强配置实验,包括损失跟踪和检查点选择。  
- • 使用自回归采样的定性生成分析。  
- • 关于模型大小、上下文长度、词元化、过拟合和采样行为的实践性讨论。  

MiniGPT是一篇技术实现和可复现性论文。它未声称架构新颖性或最先进的语言建模性能。其价值在于使主要的GPT风格训练流程变得显式、紧凑且可复现。  

## 2 背景与相关工作  

### 2.1 Transformer语言模型  
语言建模是学习文本模式的任务,使模型能够根据之前的上下文预测即将出现的词元。早期的神经语言模型表明,分布式表示可以减少词序列建模中的稀疏性问题(Bengio et al., 2003 (https://arxiv.org/html/2605.17398#bib.bib9))。Transformer后来通过用基于注意力的层取代循环和卷积,改变了序列建模(Vaswani et al., 2017 (https://arxiv.org/html/2605.17398#bib.bib3))。这使得构建模型成为可能,其中每个词元表示通过自注意力从序列中的其他词元计算得出。  

GPT风格语言模型在仅解码器设置中使用Transformer思想。在这种设置中,模型只读取之前的上下文,并学习预测下一个词元。这种自回归训练目标在最初的GPT工作中被用于生成式预训练(Radford et al., 2018 (https://arxiv.org/html/2605.17398#bib.bib4))。GPT-2表明,当扩展到更大的模型和更大的文本数据集时,相同的基本目标可以支持更广泛的语言行为(Radford et al., 2019 (https://arxiv.org/html/2605.17398#bib.bib5))。GPT-3进一步表明,大型自回归语言模型可以通过提示和上下文示例执行许多任务,而无需为每个任务更新模型参数(Brown et al., 2020 (https://arxiv.org/html/2605.17398#bib.bib6))。  

MiniGPT遵循相同的下一个词元预测思想,但刻意保持较小的设置。它不关注规模,而是专注于使GPT风格模型的主要部分可见。  

### 2.2 词元化与小型语言模型设置  
词元化是语言建模中的一个重要设计选择。许多较大的语言模型使用子词或字节级词元化,因为它在词级意义和字符级灵活性之间提供了实用的平衡。诸如字节对编码之类的子词方法很有用,因为它们可以将罕见或未见过的词表示为更小的单元(Sennrich et al., 2016 (https://arxiv.org/html/2605.17398#bib.bib10))。GPT-2也使用字节级字节对编码方法作为其语言建模流程的一部分(Radford et al., 2019 (https://arxiv.org/html/2605.17398#bib.bib5))。  

MiniGPT改用字符级词元化。使用自注意力的字符级语言建模在先前的工作中也已有研究,表明基于注意力的深度模型可以直接从字符序列中学习有用的结构(Al-Rfou et al., 2019 (https://arxiv.org/html/2605.17398#bib.bib11))。这种选择比子词词元化更简单,并使完整的预处理流程易于检查。每个独特字符成为一个词元,因此词汇表很小,且不需要外部词元化器。权衡之处在于,模型必须从单个字符中学习单词、标点和更长的模式,这使得长距离连贯性比子词词元化更困难(Sennrich et al., 2016 (https://arxiv.org/html/2605.17398#bib.bib10))。  

### 2.3 nanoGPT作为设计参考  
一些面向实现的资源使GPT风格模型更容易在代码中学习。Karpathy (2020 (https://arxiv.org/html/2605.17398#bib.bib7)) 提供了一个最小化的PyTorch GPT重实现,专注于小型、可读的模型代码。Karpathy (2022 (https://arxiv.org/html/2605.17398#bib.bib8)) 在此基础上扩展了一个紧凑但更实用的GPT训练仓库。nanoGPT尤其相关,因为它包含一个字符级的莎士比亚示例、模型定义、训练循环、验证评估、检查点和采样工作流(Karpathy, 2022 (https://arxiv.org/html/2605.17398#bib.bib8))。  

MiniGPT使用nanoGPT作为设计参考,而不是复制或导入的代码。目标是在单个笔记本中重建相同的核心思想:仅解码器Transformer、因果掩码、下一个词元训练和自回归生成。这使实现比完整的训练仓库更小更直接,同时仍然保留主要的GPT风格工作流。  

还有更大的Transformer软件生态系统,如Hugging Face Transformers库,提供许多预训练模型和统一的API用于训练、微调和推理(Wolf et al., 2020 (https://arxiv.org/html/2605.17398#bib.bib12))。MiniGPT与这些库不同。它不是一个预训练模型平台,也不旨在覆盖多种架构。它是一份紧凑的实现报告,展示了从原始文本到训练好的字符级生成的最小完整路径。  

## 3 MiniGPT架构  
MiniGPT作为一个小型仅解码器Transformer语言模型实现。该模型遵循标准的GPT风格结构:词元ID被转换为词元嵌入,添加位置信息,序列由一堆Transformer块处理,最后通过一个线性语言模型头生成词汇表上的logits。这遵循了Vaswani等人(2017 (https://arxiv.org/html/2605.17398#bib.bib3))引入的通用Transformer设计以及GPT风格模型中使用的仅解码器自回归语言建模方向(Radford et al., 2018 (https://arxiv.org/html/2605.17398#bib.bib4), 2019 (https://arxiv.org/html/2605.17398#bib.bib5))。该实现刻意紧凑,从零开始用PyTorch编写,同时仅将nanoGPT作为高层设计参考(Karpathy, 2022 (https://arxiv.org/html/2605.17398#bib.bib8))。  

### 3.1 模型概览  
MiniGPT的高层架构为:  
词元ID →\\rightarrow 词元嵌入 + 位置嵌入 →\\rightarrow Transformer块 ×L\\times L →\\rightarrow 最终层归一化 →\\rightarrow 线性LM头  

模型接收形状为 (B,T)(B,T) 的词元ID批次,其中 BB 是批次大小,TT 是序列长度。每个词元ID通过词元嵌入表映射到一个学习到的向量。还添加了一个学习到的位置嵌入,以便模型区分序列中词元的顺序。这是必要的,因为自注意力本身不直接编码词元位置(Vaswani et al., 2017 (https://arxiv.org/html/2605.17398#bib.bib3))。  

主要的架构设置存储在一个配置对象中。这包括上下文长度、词汇表大小、Transformer层数、注意力头数、嵌入维度和丢弃概率。在基准配置中,MiniGPT使用上下文长度128、4个Transformer层、4个注意力头、嵌入维度128。这给出了一个具有826,433个可训练参数的小型模型。在更强配置中,MiniGPT使用上下文长度256、6个Transformer层、6个注意力头、嵌入维度384,得到10.77M个可训练参数(表1 (https://arxiv.org/html/2605.17398#S4.T1),表2 (https://arxiv.org/html/2605.17398#S5.T2))。  

### 3.2 因果自注意力  
MiniGPT中的核心操作是因果多头自注意力。对于每个输入序列,模型将隐藏状态投影为查询、键和值向量。这些向量被分割到多个注意力头中,允许模型并行学习不同的词元到词元关系。注意力分数使用缩放点积注意力计算,遵循Transformer公式(Vaswani et al., 2017 (https://arxiv.org/html/2605.17398#bib.bib3))。对于一个注意力头,这可以写为:  
Attention(Q,K,V)=softmax(QK⊤dhead+M)V,\\mathrm{Attention}(Q,K,V)=\\mathrm{softmax}\\left(\\frac{QK^{\\top}}{\\sqrt{d_{\\mathrm{head}}}}+M\\right)V,  
其中 MM 是因果掩码。在MiniGPT中,当 i≥ji\\geq j 时 Mij=0M_{ij}=0,当 i<ji<j 时 Mij=−∞M_{ij}=-\\infty。这确保在计算第 jj 个token的注意力时,token ii 只能看到当前和之前的token,而不能看到未来的token。  

**提示:** 请继续提供需要翻译的英文内容。

相似文章

发布 GPT-5.4 mini 和 nano

OpenAI Blog

OpenAI 发布了 GPT-5.4 mini 和 nano,它们是 GPT-5.4 的更小、更快的变体,专为高吞吐量工作负载设计,在编码、推理和多模态理解方面有显著改进,同时保持 2 倍以上的速度提升。

GPT-4o mini:推进成本高效的智能模型

OpenAI Blog

OpenAI 发布 GPT-4o mini,一款成本高效的小型模型,每百万输入令牌价格仅为 15 美分,比 GPT-3.5 Turbo 便宜 60%,在 MMLU 上表现强劲(82%),在推理、数学和编码任务上超越 Gemini Flash 和 Claude Haiku 等竞争对手。

更好的语言模型及其影响

OpenAI Blog

OpenAI 推出 GPT-2,这是一个拥有 15 亿参数的基于 Transformer 的语言模型,在 40GB 的互联网文本上进行训练,在语言建模基准上达到了最先进的性能,并在阅读理解、翻译、问答和摘要生成等任务上展示了零样本学习能力。出于安全考虑,仅公开发布了较小的模型和技术论文,而非完整的训练模型。

迷你可修改的CUDA语言模型实现

Hacker News Top

一个最小化的、可修改的CUDA实现,类似于GPT的变压器语言模型,处理字节序列,附带示例输出和构建说明。