• 我的订阅
  • 科技

从0构建gpt!网友:比之前的教程都要清晰

类别:科技 发布时间:2023-02-20 15:06:00 来源:浅语科技

现在只用60行代码,就能从0构建GPT了!

从0构建gpt!网友:比之前的教程都要清晰

想当初,前特斯拉前AI总监的minGPT和nanoGPT也都还要300行代码。

这个60行代码的GPT也有名字,博主将它命名为PicoGPT。

不过和此前minGPT和nanoGPT的教程不同,今天要讲的这个博主的教程,更侧重于代码实现部分,模型的权重则用已经训练好的。

对此,博主解释称这篇教程的重点在于提供一个简单且易于破解的完整技术介绍。

这对还不理解GPT背后概念的盆友,算是非常友好了。

从0构建gpt!网友:比之前的教程都要清晰

还有网友称赞,这篇博客介绍得非常清晰,第一部分尤为如此。

这篇介绍GPT模型的文章太好了,它比我之前看到的介绍都要清晰,至少在第一部分讨论文本生成和取样是这样的。

从0构建gpt!网友:比之前的教程都要清晰

目前,此项目在GitHub上标星已破百,HackerNews上的点击量也即将破千。

从0构建gpt!网友:比之前的教程都要清晰

从GPT是什么讲起

在介绍之前,还是需要说明一下,这篇教程不是完全零门槛,需要读者提前熟悉Python、NumPy以及一些基本的训练神经网络。

教程的重点聚焦在技术介绍上,统共有六大部分:

什么是GPT?

按照惯例,在正式构建GPT之前得先对它做一些基本介绍,教程从输入/输出、生成文本以及训练三个部分分别来讲GPT是如何工作的。

从0构建gpt!网友:比之前的教程都要清晰

在这趴,博主附上代码,甚至还用了一些比喻来让读者们更好地理解GPT。

举个栗子,在输入这一部分,作者将句子比作一条绳子,tokenizer则会将其分割成一小段一小段(单词),被称作token。

又比如说,在生成文本这part介绍自动回归时,博主直接贴上代码:

从0构建gpt!网友:比之前的教程都要清晰

在每次迭代中,它会将预测的token追加回输入,这个预测未来值并将其添加回输入的过程就是GPT被描述为自动回归的原因。

60行代码怎么运行?

了解完GPT的基本概念之后,就直接快进到了如何在电脑上运行这个PicoGPT。

博主先是甩出了他那只有60行的代码:

从0构建gpt!网友:比之前的教程都要清晰

然后从克隆存储库,安装依赖项等步骤一步步教你如何在电脑上运行GPT。

其中,还不乏一些贴心的小tips,比如说如果使用的是M1Macbook,那在运行pipinstall之前,需要将requments.txt中的tensorflow更改为tensorflow-macos。

此外,对于代码的四个部分:gpt2,generate,main以及fire.Fire(main),博主也有做详细解释。

等到代码能够运行之后,下一步博主就准备详细介绍编码器、超参数(hparams)以及参数(params)这三部分了。

从0构建gpt!网友:比之前的教程都要清晰

直接在笔记本或者Python会话中运行下面这个代码:

从0构建gpt!网友:比之前的教程都要清晰

一些必要的模型和tokenizer文件就直接下载到model/124M,编码器、hparams和params也能直接加载。

更具体的内容这里就不多说了,教程的链接已经附在文末。

一些基础神经网络层的介绍

这一趴涉及到的知识就更加基础了,因为下一趴是实际GPT自身的架构,所以在此之前,需要了解一些非特定于GPT的更基本的神经网络层。

博主介绍了GeLU、Softmax函数以及LayerNormalization和Linear。

从0构建gpt!网友:比之前的教程都要清晰

GPT架构

终于!这部分要来讲GPT自身的架构了,博主从transformer的架构引入。

从0构建gpt!网友:比之前的教程都要清晰

△transformer架构

GPT的架构只使用了transformer中的解码器堆栈(即图表的右边部分),并且其中的的“交叉注意”层也没有用到。

从0构建gpt!网友:比之前的教程都要清晰

△GPT架构

随后,博主将GPT的架构总结成了三大部分:

-文本+位置嵌入

-变压器解码器堆栈

-下一个token预测头

并且还将这三部分用代码展示了出来,是酱紫的:

从0构建gpt!网友:比之前的教程都要清晰

再后面,就是关于这三部分的更多细节……

测试构建的GPT

这部分将全部的代码组合在一起,就得到了gpt2.py,统共有120行代码,删除注释和空格的话,就是60行。

然后测试一下!

从0构建gpt!网友:比之前的教程都要清晰

结果是这样的:

从0构建gpt!网友:比之前的教程都要清晰

成功了!

一些后续补充

最后一部分,博主也总结了这短短60行代码的不足:非常低效!

不过他还是给出了两个可以让GPT变高效的方法:

-同时地而不是顺序地执行注意力计算。

-实现KV缓存。

此外,博主还推荐了一些训练模型、评估模型以及改进架构的方法和教程。

感兴趣的话,直接戳文末链接~

作者介绍

JayMody,目前在加拿大一家NLP初创公司Cohere从事机器学习的工作,此前,他还分别在特斯拉和亚马逊作为软件工程师实习过一段时间。

从0构建gpt!网友:比之前的教程都要清晰

除了这篇教程之外,小哥的博客网站上还有更新其他文章,并且都有附代码~

从0构建gpt!网友:比之前的教程都要清晰

代码传送门:https://github.com/jaymody/picoGPT/blob/29e78cc52b58ed2c1c483ffea2eb46ff6bdec785/gpt2_pico.py#L3-L58

教程链接:https://jaykmody.com/blog/gpt-from-scratch/#putting-it-all-together

以上内容为资讯信息快照,由td.fyun.cc爬虫进行采集并收录,本站未对信息做任何修改,信息内容不代表本站立场。

快照生成时间:2023-02-20 16:45:08

本站信息快照查询为非营利公共服务,如有侵权请联系我们进行删除。

信息原文地址:

《森林之子》代码教程
...戏的一些设定,下面游侠网小编给大家介绍森林之子代码教程,有兴趣的玩家一起来看看吧。森林之子代码怎么输1、玩家进入游戏后,按回车键打开对话框2、然后在对话框中输入【develo
2024-01-15 19:51:00
win10易上升错误代码0xc00000fd详细教程
...种情况呢?小编在这里为大家整理错误代码0xc00000fd详细教程文本,只需要遵循文本提示操作!最近,很多用户留消息给小编说win10通过简单的升级就能升级到win10系统
2023-01-09 11:24:00
《雨中冒险回归》技能修改教程 技能解锁代码分享
...能代码就可以修改技能了,技能解锁代码如下。技能修改教程存档位置:userdata/数字/1337520/remote
2023-11-11 11:25:00
消逝的光芒怎么刷东西99+ 无限刷物品bug代码教程
...一起来看看具体的方法吧!消逝的光芒无限刷物品bug代码教程1、先找到一个赈灾包裹,放入仓库,不要向下划,只能在物品栏的首页,选中一个数量较多的物品,鼠标左键点击一下选中。2、
2023-11-07 21:00:00
AI电商模特兴起,网上已有制作教程售卖!真人模特会被替代吗
...开始使用AI模特和AI商拍。这两年,AI技术突飞猛进。部分网友感叹,继文字工作者、画师和设计师后,真人模特也被放进了被AI代替职业的名单里。那么,事实真如网上所说那样吗?AI
2023-08-15 09:41:00
Axure高保真教程:通过输入框动态维护可视化图表
...图为例,分享了通过输入框控制调用外部的js图表的制作教程,希望对你有所帮助。与静态图表相比,动态图表更能吸引观众的眼球并提供更好的视觉效果。动态元素可以吸引观众的注意力,使数
2023-06-08 21:00:00
《幻兽帕鲁》32人服务器免费搭建教程一览
幻兽帕鲁32人服务器免费搭建教程是什么?幻兽帕鲁游戏元素非常丰富,很多小伙伴想自己和朋友玩,很多小伙伴问小编幻兽帕鲁32人服务器免费搭建教程是什么,下面小编就为大家带来了幻兽帕鲁
2024-01-25 23:56:00
如何创建“杀手级”SaaS 产品文档?
...需要清楚要创建哪一个。SaaS产品文档的类型可以包括:教程操作指南解释参考明确文档类型意味着可以对其进行最佳格式化并呈现给您的用户。您必须将不同类型的内容分开以避免混淆。教程
2023-02-28 10:26:00
《致命公司》mod管理器使用教程
...载mod管理工具在里面自己下载mod和更新mod。mod管理器使用教程ThunderstoremodManager-DesktopApponOverwolfr2modman|
2024-01-11 22:54:00
更多关于科技的资讯: