60行NumPy代码实现GPT


在本文中,我们将仅用60 行numpy. 然后,我们会将 OpenAI 发布的经过训练的 GPT-2 模型权重加载到我们的实现中,并生成一些文本。

GPT代表生成式预训练变压器。它是一种基于Transformer的神经网络架构。Jay Alammar 的 How GPT3 Works是对 GPT 的高级介绍,但这里是 tl;dr:

  • 生成式:GPT生成文本。
  • 预训练:GPT接受了大量书籍、互联网等文本的训练......
  • Transformer:GPT 是一个只有解码器的transformer神经网络。

OpenAI 的 GPT-3Google 的 LaMDACohere Command XLarge等大型语言模型 (LLM)只是底层的 GPT 。它们的特别之处在于它们恰好是1)非常大(数十亿个参数)和2)在大量数据(数百 GB 的文本)上进行训练。
从根本上说,GPT 会根据提示生成文本。即使使用这个非常简单的 API(输入 = 文本,输出 = 文本),一个训练有素的 GPT 也可以做一些非常棒的事情,

  • 这篇文章假定您熟悉 Python、NumPy 和一些训练神经网络的基本经验。
  • 我写这篇文章的目的是对作为教育工具的 GPT 进行简单易懂但完整的技术介绍。因此,我们只使用已经训练好的模型权重来实现前向传递代码。
  • 了解 GPT 架构是了解 LLM 的重要部分,但架构只是拼图的一小部分。大规模分布式训练、收集数 TB 的高质量文本数据、加快模型推理速度、评估性能以及使模型与人类兴趣保持一致是 100 多名工程师/研究人员毕生的工作,他们需要让 LLM 成为今天的样子,而不是只是架构。[1]
  • 这篇博文的所有代码都可以在github.com/jaymody/picoGPT找到。
  • 黑客新闻线程

详细点击标题