本科生60行代码教你手搓GPT大模型,技术介绍堪比教程

手搓GPT2模型:以一个文本生成器为例 token embedding + position embedding ——dropout——transformer block——LayerNorm——输出头(将embedding维的数据转化vocabulary维的数据) 阅读详情

GPT 模型实现起来有时也很简单。

当前,大型语言模型(LLM)被认为是人工智能突破的方向。人们正在尝试用它们做各种复杂的事情,比如问答、创作、数学推理以及编写代码等。近段时间 ChatGPT 持续的爆火是最好的例证。

然而,对于机器学习从业者来说,大模型的门槛很高:因为体量太大难以训练,很长时间里这个方向一直被大公司垄断。不过最近,简化 GPT 模型的方法越来越多了。1 月中旬,前特斯拉 AI 高级总监 Andrej Karpathy(现已回归 OpenAI)就发布了从零开始构建 GPT 模型的完整教程。不过训练出的 GPT 和 OpenAI 的 GPT-3 比较,两者规模差距达 1 万 - 100 万倍。

近日,加拿大麦克马斯特大学的一位软件工程本科生 Jay Mody 在导入 NumPy 库下,仅用 60 行代码就从头实现了一个 GPT 模型,并将其命名为 PicoGPT。不仅如此,他还将经过训练的 GPT-2 模型权重加载到自己的实现中,并生成了一些文本。下面为 60 行代码展示。

img

不过要做到这些,你需要熟悉 Python 和 NumPy,还要有一些训练神经网络的基本经验。作者表示,这篇博客旨在对 GPT 进行简单易懂的完整介绍。因此,作者只使用已经训练的模型权重来实现前向传递代码。

img

代码地址:

https://github.com/jaymody/picoGPT/blob/29e78cc52b58ed2c1c483ffea2eb46ff6bdec785/gpt2_pico.py#L3-L58

对于此项研究,Andrej Karpathy 给出了四个字:虽迟但到。想当初,Karpathy 构建的 minGPT 和 nanoGPT 还要 300 行代码。

img

值得一提的是,这篇教程不是完全零门槛的。为了让读者明白,作者首先介绍了什么是 GPT、它的输入、输出如何等其他内容,介绍得都非常详细。

img

至于 GPT 到底能干什么,作者给出了几个示例,它能写电子邮件、总结一本书、给你 instagram 标题的想法、向 5 岁的孩子解释黑洞、用 SQL 编写代码等。

通过仔细阅读这部分内容后,你能大致了解 GPT 的一些基础知识。有了这些背景介绍,接下来就是如何设置了。

项目介绍

设置

这一章节主要介绍了如何设置编码器、超参数以及参数。

img

你要做的,首先是克隆代码库:

img

然后安装依赖项:

img

注意,如果你使用的是 M1 Macbook,在运行 pip install 之前,你需要在 requirements.txt 中将 tensorflow 更改为 tensorflow-macos。在这个项目下,文件包括 encoder.py、utils.py、gpt2.py、gpt2_pico.py:

  • encoder.py:包含 OpenAI BPE Tokenizer 的代码,直接取自 gpt-2 repo;
  • utils.py:包含下载和加载 GPT-2 模型权重、tokenizer 和超参数的代码;
  • gpt2.py:包含 GPT 模型和生成代码,可以将其作为 python 脚本运行;
  • gpt2_pico.py:与 gpt2.py 相同,但是代码行数更少。

其中 gpt2.py 需要从头开始实现,因此你要做的是先删除 gpt2.py 并重新创建一个空文件:

img

然后将下列代码复制到 gpt2.py 中:

img

上述代码包含 4 个主要部分:

  • gpt2 函数是本次实现 GPT 的实际代码;
  • generate 函数实现自回归解码算法;
  • main 函数;
  • fire.Fire (main) 将文件转换为 CLI 应用程序,以便最终可以运行代码:python gpt2.py “some prompt here”。

main 函数包含有 encode、hparams、params 参数,执行下列代码:

img

接着必要的模型以及 tokenizer 文件将被下载到 models/124M 文件。

设置完成之后,作者开始介绍编码器、超参数、参数的一些细节内容。就拿编码器来说,本文的编码器和 GPT-2 使用的 BPE tokenizer 一样。下面是该编码器编码和解码的一些文本示例:

img

实际的 token 长这个样子:

img

需要注意,有时 token 是单词(例如 Not),有时它们是单词但前面有一个空格(例如 Ġall,Ġ 代表一个空格),有时是单词的一部分(例如 capes 被拆分为 Ġcap 和 es),有时它们是标点符号(例如 .)。

BPE 的一个好处是它可以对任意字符串进行编码,如果遇到词汇表中不存在的内容,它会将其分解为它能理解的子字符串:

img

更细节的内容不再赘述。接下来介绍基础神经网络,这一部分就更加基础了,主要包括 GELU、Softmax 函数以及 Layer Normalization 和 Linear。

img

每一小部分都有代码示例,例如在 Linear 部分,作者展示了标准矩阵乘法 + 偏置:

img

线性层从一个向量空间投影到另一个向量空间的代码如下:

img

GPT 架构

这部分介绍 GPT 自身架构。

img

Transformer 架构如下:

img

Transformer 仅使用解码器堆栈(图的右侧部分):

img

需要注意,由于摆脱了编码器,中间的交叉注意力层也被删除了。

在高层次上,GPT 体系架构有以下三个部分:

  • 文本 + 位置嵌入;
  • Transformer 解码器堆栈;
  • 投影到词汇表。

代码就像下面这样:

img

代码部分截图

接下来更详细地分解以上三个部分中的每一个部分,这里也不再赘述。

以上就是作者对 GPT 的实现,接下来就是将它们组合在一起并运行代码,得到 gpt2.py。它的全部内容只有 120 行代码(如果删除注释和空格,则为 60 行)。

作者通过以下方式测试结果:

img

输出结果如下:

img

正如作者说的:这次实验成功了。

本文只是跟着作者的思路大概介绍了整体流程,想要了解更多内容的小伙伴,可以参考原文链接。

原文链接:https://jaykmody.com/blog/gpt-from-scratch/#basic-layers

如何学习AI大模型?

大模型时代,火爆出圈的LLM大模型让程序员们开始重新评估自己的本领。 “AI会取代那些行业?”“谁的饭碗又将不保了?”等问题热议不断。

不如成为「掌握AI工具的技术人」,毕竟AI时代,谁先尝试,谁就能占得先机!

想正式转到一些新兴的 AI 行业,不仅需要系统的学习AI大模型。同时也要跟已有的技能结合,辅助编程提效,或上手实操应用,增加自己的职场竞争力。

但是LLM相关的内容很多,现在网上的老课程老教材关于LLM又太少。所以现在小白入门就只能靠自学,学习成本和门槛很高

那么我作为一名热心肠的互联网老兵,我意识到有很多经验和知识值得分享给大家,希望可以帮助到更多学习大模型的人!至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】

👉 福利来袭优快云大礼包:《2025最全AI大模型学习资源包》免费分享,安全可点 👈

全套AGI大模型学习大纲+路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

img

640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

👉 福利来袭优快云大礼包:《2025最全AI大模型学习资源包》免费分享,安全可点 👈

img

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。

十一、搭建自己的GPT模型 基于GPT-2 1.3B模型,优点是cpu也可以跑,简单,快速。我们训练模型的过程,就是通过不断的迭代计算,使用梯度下降的优化算法,使得损失函数越来越小。直白来说,就是用它来描述我们模型的鲁棒性,损失函数越小,模型的鲁棒性就越好。如果仔细观察,会发现我们正在训练一个GPT,其上下文大小最多为256个字符,384个功能通道,它是一个6层的Transformer,每层有6个头。结束后,进入D:\Simon\nanoGPT\out-tang目录下,生成了一个ckpt.pt文件,这就是模型了。 阅读详情

相关推荐

【新手必看】挖漏洞流程指南,黑客手把手教你挖漏洞月入过万!收藏这篇就够了!(附学习笔记)

【新手必看】挖漏洞流程指南,黑客手把手教你挖漏洞月入过万!收藏这篇就够了!(附学习笔记)【新手必看】挖漏洞流程指南,黑客手把手教你挖漏洞月入过万!收藏这篇就够了!(附学习笔记)

weixin_57514792的博客 1105

AI大模型企业应用实战:Prompt让LLM理解知识

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

2401_84204413的博客 3215

国产数据库PolarDB-X实战:5分钟快速搭建本地开发环境(附Docker一键部署脚本)

本文提供了一份详尽的国产分布式数据库PolarDB-X本地开发环境搭建指南。通过Docker Compose一键部署脚本,开发者可在5分钟内快速启动一个功能完整的PolarDB-X实例,涵盖环境准备、脚本解析、连接验证及日常维护,极大简化了国产数据库的入门和体验流程。

weixin_29246195的博客 360

训练自己的GPT-2闲聊模型

该项目来自于GitHub上的开源项目。

weixin_62844480的博客 1906

从IMU数据到精准定位:手把手推导ESKF中的四元数运动学与误差状态方程

本文详细介绍了如何从IMU数据推导ESKF中的四元数运动学与误差状态方程,实现精准定位。通过分析误差状态卡尔曼滤波器的优势、四元数表示的必要性,以及IMU测量模型和运动学基础,提供了完整的数学推导和实现要点。适合机器人定位和自动驾驶领域的算法工程师参考,帮助优化导航系统性能。

weixin_30271335的博客 680

小红书爬取实战指南

以上方案仅供技术学习参考,请确保遵守目标网站的服务条款和相关法律法规。

monk all the way 6930

训练自己的GPT2模型(中文),踩坑与经验

GPT模型,中文,自己微调,经验与踩坑

防搞活机的博客 2万+

别再让C盘爆红了!手把手教你将Anaconda虚拟环境迁移到其他盘(附权限问题解决)

本文详细指导如何将Anaconda虚拟环境从C盘迁移到其他驱动器,解决C盘空间不足问题。通过conda config命令和直接修改.condarc配置文件两种方法,确保环境迁移顺利进行,同时提供权限问题解决方案和长期维护技巧,帮助用户高效管理虚拟环境。

weixin_42525289的博客 423

AI大模型技术红利:大学生与程序员的机遇与转型指南

AI大模型作为当前技术发展的核心驱动力,正在重塑各行各业的开发范式。其核心原理基于Transformer架构,通过自注意力机制实现高效的序列建模。从技术价值看,大模型显著提升了开发效率并降低了技术门槛,使得跨学科应用成为可能。在应用场景上,从代码生成到智能客服,大模型正在创造全新的职业机会。特别值得关注的是LoRA微调等轻量化技术,使得在消费级硬件上运行大模型成为现实。对于大学生和程序员而言,掌握PyTorch框架和Hugging Face生态成为把握这波技术红利的关键切入点。

weixin_29032337的博客 217

ThingsBoard PE专业版解决方案技术文档——温度&湿度

温湿度解决方案

weixin_67440240的博客 820

具身智能:原理、算法与系统 第18章 模仿学习与人类示范

与基于试错机制的强化学习不同,模仿学习假设存在能够提供高质量轨迹示范的专家策略,学习者的目标是在不直接访问专家内部决策机制的情况下,复现或泛化专家的行为模式。此外,选项 GAIL(Option-GAIL)将分层强化学习与对抗模仿结合,学习选项(Options)级别的策略,能够捕捉专家示范中的多模态行为与高层意图。X-Sim 框架提出从真实到模拟再到真实的迁移路径:首先从人类视频中重建物理仿真环境,在仿真中训练状态级策略,随后通过策略蒸馏获得基于视觉的策略,最后通过在线领域自适应对齐真实与仿真观测。

VectorShift的博客 127

AI大模型如何重构智力劳动与产业格局

人工智能大模型正在引发类似工业革命的范式转移,其核心在于将认知任务的边际成本趋近于零。从技术原理看,通过深度学习与海量数据训练,AI系统能够自动化处理传统需要人类智力完成的工作。这种技术突破带来了GitHub Copilot代码生成、Claude教育辅导等典型应用,显著提升了生产效率并降低创新门槛。在工程实践中,AI已深度渗透教育、医疗、制造等行业,例如特斯拉工厂的视觉质检系统将检测效率提升10倍。面对AI带来的智力贬值趋势,开发者需要关注人机协作工作流设计、创造性问题解决等关键技术策略,同时重视模型偏见消

weixin_29029995的博客 196

4.4 线上vs离线:使用 Langfuse 实现智能体的全方位无死角评估

本文介绍了如何利用Langfuse工具实现AI智能体的全方位评估,包括线上和离线两种评估方式。线上评估通过收集用户实时反馈(如点赞/点踩)来监控真实表现,而离线评估则通过创建标准化数据集进行批量测试和自动评分。文章详细演示了如何为"旅小智"AI应用添加反馈功能、创建评估数据集,并利用Langfuse SDK进行自动化评估和分析。通过这两种评估方式的结合,开发者可以建立数据驱动的AI质量保障体系,实现持续优化和版本迭代。

yonggeit的博客 3318

AI如何革新学术写作:六维智能解决方案解析

自然语言处理与知识图谱技术正在重塑学术写作流程。通过多模态Transformer架构,AI写作助手实现了从选题定位到文献管理的智能化支持,其核心价值在于将传统写作中80%的机械性工作转化为自动化流程。在工程实践中,这类系统显著提升了文献利用率(实测提升60%)和写作效率(流畅度提升2.7倍),特别适用于论文写作、研究报告等需要严谨框架的学术场景。以StyleGAN2为基础的学术风格迁移技术,更能帮助用户快速适应不同出版规范,解决新手常见的口语化问题。当前最前沿的AI写作工具已具备动态校验、跨模态输入等创新功

weixin_32830601的博客 224

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

深入理解大模型之手搓大模型训练(附源码,深入理解)

coeff = 0.5 * (1.0 + math.cos(math.pi * decay_ratio)) # 余弦函数计算衰减系数,范围为0到1。batch_iter = iter_batches(split=split) # 获取对应数据集的批次迭代器。说白了,大模型就像一个“超级学霸”,它“博览群书”(海量数据训练),“过目不忘”(超强记忆力),“举一反三”(生成能力)。tokens_per_iter = batch_size * max_seq_len # 每次迭代处理的token数。

lizhijianwill的博客 1393

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

从零开始打造更强的私有GPT大模型- RAG教程

众所周知,大模型基于海量的数据来训练,它具备非常强大的智能,能够回答各种问题。但是我们在使用过程中发现,通用大模型在某些专业领域能力还不够强,很多领域相关问题很难回答得上来。通常,预训练(pre-train)的大模型只懂得它训练时用的数据,对于训练集之外的新信息(比如网络搜索新数据或特定行业的知识)就不太清楚。那么怎么构建一个私有的GPT大模型呢?方法有很多种,包括 1. 重新训练私有领域数据的大模型,2. 基于已有大模型做专有数据的微调(FineTuning) 3. 通过RAG技术,优化大模型基础能力。

xxue345678的博客 2113

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

训练自己的GPT2

比如,我把全世界所有的网页上的文本内容都整理出来,把全人类所有的书籍、论文都整理出来,然后进行训练。这个训练过程代价很大,首先模型很大,同时数据量又很大,比如GPT3参数量达到了175B,训练数据达到了45TB,训练一次就话费上千万美元。如此大代价学出来的是一个通用知识的模型,他确实很强,但是这样一个模型,可能无法在一些专业性很强的领域上取得比较好的表现,因为他没有针对这个领域的数据进行训练过。训练完成之后,推理的话,直接使用第二节里的代码,将预训练模型路径换成自己训练的模型路径就行了。

Make AI,Not War 4299

如何自己创建一个GPT

想要自己创建一个GPT模型,您需要具备一定的计算机知识和编程能力。下面是一些步骤,可以帮助您创建一个GPT模型: 准备数据集:GPT模型的训练需要大量的文本数据,因此您需要找到一个适合您目标任务的文本数据集。 预处理数据:将文本数据转换为计算机能够识别的数据格式,通常需要进行分词、去停用词、构建词汇表等操作。 选择一个深度学习框架:常用的深度学习框架有TensorFlow、PyTorch、M...

weixin_35756892的博客 4944

如何训练一个高效的GPT模型

1.背景介绍 自从OpenAI在2020年推出了GPT-3之后,人工智能领域的发展就取得了巨大的突破。GPT-3是一种基于大规模预训练的Transformer架构的语言模型,它的性能远超于之前的模型。然而,GPT-3的规模和计算成本非常高,这限制了其在实际应用中的范围。为了解决这个问题,我们需要学习如何训练一个高效的GPT模型,这篇文章就旨在帮助我们做到这一点。 在本文中,我们将讨论以下几个方...

AI天才研究院 2291

动手实践:训练GPT,打造你的人工智能模型

实现GPT(Generative Pre-trained Transformer)的训练相对复杂,但以下是一个简单的示例代码,用于使用Hugging Face库中的。请注意,这只是一个简化的示例,实际的GPT训练可能涉及更复杂的数据准备、模型配置和超参数调整。

bishedaima_com_q的博客 422

手搓GPT系列之 - 神经网络模型基础知识,教你5分钟实现一个手写体识别神经网络

​2023年了nlp还存不存在我不知道,数学家的思想真的有意思。介绍了线性回归分类器和softmax分类器,并证明了softmax分类器是由线性回归分类器并联而成的。本文将介绍以LR模型为基础的另一个分类器:神经网络。我们将介绍神经网络模型中的一些核心概念和训练过程,并介绍神经网络模型与LR模型及softmax模型的关系。可以帮助机器学习领域的初学者对神经网络模型建立一个基本的认知。

marlinlm的博客 1260

【RAG提升技巧】查询改写HyDE

提高 RAG 推理能力的一个好方法是添加查询理解层 ——在实际查询向量存储之前添加查询转换。

2301_81888214的博客 1125

400 行代码手搓最简 GPT,大模型就是这样玩的!

01怎样手搓一个最简GPT学习 GPT 的方式是什么?借用 Linus 大神的那句名言“talk is cheap, show me the code”,没有什么比手搓一个 GPT 出来更适合的了。有的同学可能会被吓到,人家花了几百亿美刀整出来的成果,说搓就能搓出来吗?其实我们的目标是写一个最简 GPT,从根本上去理解 GPT 技术。就像当初最早发布的 Linux 内核也就是两万行代码,但 Lin...

cainiao_python的博客 333

《大模型白盒子构建指南》毕业,仅需2G显存,手搓关于LLM的一切!

《大模型白盒子构建指南》是一个从原理出发、以“白盒”为导向、围绕大模型全链路的“手搓”大模型指南,旨在帮助有传统深度学习基础的读者从底层原理出发,“纯手搓”搭建一个清晰、可用的大模型系统,包括大模型架构、大模型预训练、RAG 框架、Agent 系统及大模型评估体系等。

pythonhy的博客 1062
上一篇: 大模型扫盲系列——大模型实用技术
下一篇: 【RAG落地利器】向量数据库Milvus教程:如何实现MetaData检索过滤
我爱学大模型
博客等级 码龄3年 7883粉丝 687原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值