minGPT
minGPT 是一个 PyTorch 重新实现的 GPT(Generative Pre-trained Transformer)训练模型,它试图保持小巧、清洁、可解释和教育性,因为目前大多数可用的 GPT 模型实现可能有点庞大。
GPT 不是一个复杂的模型,这个实现适当地只有大约 300 行代码(见 mingpt/model.py)。所有的操作就是将一系列索引输入到 Transformer 中,然后输出序列中下一个索引的概率分布。大部分的复杂性只是为了效率而巧妙地进行批处理(既跨示例又跨序列长度)。
minGPT 库包含三个文件:
- minGPT model.py 包含实际的 Transformer 模型定义
- minGPT bpe.py 包含一个轻微重构的 Byte Pair Encoder,它可以像 OpenAI 在 GPT 中那样在文本和整数序列之间进行转换,
- trainer.py 是(与 GPT 无关的)PyTorch 引导代码,用于训练模型。然后在 projects 文件夹中有许多使用库的演示和项目。
minGPT 的应用:minGPT 提供了一些项目和演示,展示了如何使用这个库。例如:
- minGPT demo.ipynb
- minGPT generate.ipynb
- projects/adder 项目展示了如何从头开始训练 GPT 来添加数字,
- projects/chargpt 项目展示了如何训练 GPT 成为某个输入文本文件的字符级语言模型。
请注意(2023 年 1 月):尽管作者可能会继续接受并更改一些细节,但 minGPT 处于半归档状态。有关更近期的发展,请参见作者的重写 nanoGPT。
基本上,minGPT 被广泛引用在各种地方(笔记本电脑、博客、课程、书籍等),这使我不太愿意进行我想要进行的更大变化,以推动代码向前发展。我还想稍微改变方向,从仅关注教育到仍然简单且易于操作但具有牙齿(重现中等规模行业基准、接受某些权衡以获得运行时效率等)。
网络资源
本文作者:Maeiee
本文链接:minGPT
版权声明:如无特别声明,本文即为原创文章,版权归 Maeiee 所有,未经允许不得转载!
喜欢我文章的朋友请随缘打赏,鼓励我创作更多更好的作品!