现在只用60行代码,就能从0构建GPT了!
想当初,前特斯拉前AI总监的minGPT和nanoGPT也都还要300行代码。
这个60行代码的GPT也有名字,博主将它命名为PicoGPT。
不过和此前minGPT和nanoGPT的教程不同,今天要讲的这个博主的教程,更侧重于代码实现部分,模型的权重则用已经训练好的。
对此,博主解释称这篇教程的重点在于提供一个简单且易于破解的完整技术介绍。
这对还不理解GPT背后概念的盆友,算是非常友好了。
还有网友称赞,这篇博客介绍得非常清晰,第一部分尤为如此。
这篇介绍GPT模型的文章太好了,它比我之前看到的介绍都要清晰,至少在第一部分讨论文本生成和取样是这样的。
目前,此项目在GitHub上标星已破百,HackerNews上的点击量也即将破千。
从GPT是什么讲起
在介绍之前,还是需要说明一下,这篇教程不是完全零门槛,需要读者提前熟悉Python、NumPy以及一些基本的训练神经网络。
教程的重点聚焦在技术介绍上,统共有六大部分:
什么是GPT?
按照惯例,在正式构建GPT之前得先对它做一些基本介绍,教程从输入/输出、生成文本以及训练三个部分分别来讲GPT是如何工作的。
在这趴,博主附上代码,甚至还用了一些比喻来让读者们更好地理解GPT。
举个栗子,在输入这一部分,作者将句子比作一条绳子,tokenizer则会将其分割成一小段一小段(单词),被称作token。
又比如说,在生成文本这part介绍自动回归时,博主直接贴上代码: