Home Technology peripherals AI Undergraduate students use 60 lines of code to teach you how to make a large GPT model by hand. The technical introduction is comparable to a tutorial.

Undergraduate students use 60 lines of code to teach you how to make a large GPT model by hand. The technical introduction is comparable to a tutorial.

Apr 11, 2023 pm 11:49 PM
gpt Model

Currently, large language models (LLM) are considered to be the direction of breakthroughs in artificial intelligence. People are trying to use them to do all kinds of complex things, such as question and answer, creation, mathematical reasoning, and writing code. The recent explosion of ChatGPT is the best example.

However, for machine learning practitioners, the threshold for large models is very high: because they are too large and difficult to train, this direction has been monopolized by large companies for a long time. However, recently, there are more and more ways to simplify the GPT model. In mid-January, former Tesla AI Senior Director Andrej Karpathy (now returning to OpenAI) released a complete tutorial on building a GPT model from scratch​. However, compared with the trained GPT and OpenAI's GPT-3, the size difference between the two is 10,000-1 million times. Recently, Jay Mody, a software engineering undergraduate student at McMaster University in Canada, implemented a GPT model from scratch with only 60 lines of code after importing the NumPy library. It's named PicoGPT. Not only that, he also loaded the trained GPT-2 model weights into his implementation and generated some text. 60 lines of code are shown below.

Undergraduate students use 60 lines of code to teach you how to make a large GPT model by hand. The technical introduction is comparable to a tutorial.

But to do this, you need to be familiar with Python and NumPy, and some Basic experience in training neural networks. The author stated that this blog aims to provide a simple, easy-to-understand and complete introduction to GPT. Therefore, the author only uses the already trained model weights to implement the forward pass code.

Undergraduate students use 60 lines of code to teach you how to make a large GPT model by hand. The technical introduction is comparable to a tutorial.

## Code address:

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

For this item Research, Andrej Karpathy gave four words: late but arrived. Back then, the minGPT and nanoGPT built by Karpathy required 300 lines of code.

It is worth mentioning that this tutorial is not completely zero-threshold. In order to let readers understand, the author first introduces what GPT is, its input, output and other contents, all in great detail. Undergraduate students use 60 lines of code to teach you how to make a large GPT model by hand. The technical introduction is comparable to a tutorial.

Undergraduate students use 60 lines of code to teach you how to make a large GPT model by hand. The technical introduction is comparable to a tutorial.## As for what GPT can do, the author gave several examples. It can write Email, summarize a book, give you instagram caption ideas, explain black holes to a 5 year old, write code in SQL, etc.

After reading this part carefully, you can roughly understand some basic knowledge of GPT. With this background information, the next step is how to set it up.

Project Introduction

Settings

##This chapter mainly introduces how to set up the encoder , hyperparameters and parameters.

##What you have to do is to clone the code base:

Undergraduate students use 60 lines of code to teach you how to make a large GPT model by hand. The technical introduction is comparable to a tutorial.

Then install the dependencies:

Undergraduate students use 60 lines of code to teach you how to make a large GPT model by hand. The technical introduction is comparable to a tutorial.

Note that if you are using an M1 Macbook, you need to change tensorflow to tensorflow-macos in requirements.txt before running pip install. Under this project, the files include encoder.py, utils.py, gpt2.py, gpt2_pico.py:

  • ##encoder.py: Contains the code of OpenAI BPE Tokenizer, directly Taken from gpt-2 repo;
  • ##utils.py: Contains code for downloading and loading GPT-2 model weights, tokenizers, and hyperparameters;
  • gpt2.py: Contains the GPT model and generated code, which can be run as a python script;
  • gpt2_pico.py: Same as gpt2.py, but with fewer lines of code.
gpt2.py needs to be implemented from scratch, so what you have to do is to delete gpt2.py first and create an empty file again:

Undergraduate students use 60 lines of code to teach you how to make a large GPT model by hand. The technical introduction is comparable to a tutorial.

##Then copy the following code into gpt2.py:

Undergraduate students use 60 lines of code to teach you how to make a large GPT model by hand. The technical introduction is comparable to a tutorial.

The above code contains 4 main parts:

gpt2 function is used to implement GPT this time Actual code;
  • generate function implements the autoregressive decoding algorithm;
  • main function;
  • fire.Fire (main) Convert the file into a CLI application so that you can finally run the code: python gpt2.py "some prompt here".
  • The main function contains encode, hparams, and params parameters and executes the following code:

Undergraduate students use 60 lines of code to teach you how to make a large GPT model by hand. The technical introduction is comparable to a tutorial.

Then the necessary model and tokenizer files will be downloaded to the models/124M file.

After the setup is completed, the author begins to introduce some details of the encoder, hyperparameters, and parameters. Taking the encoder as an example, the encoder in this article is the same as the BPE tokenizer used by GPT-2. Here are some examples of text encoded and decoded by this encoder:

Undergraduate students use 60 lines of code to teach you how to make a large GPT model by hand. The technical introduction is comparable to a tutorial.

The actual token length This looks like:

Undergraduate students use 60 lines of code to teach you how to make a large GPT model by hand. The technical introduction is comparable to a tutorial.Note that sometimes tokens are words (e.g. Not), sometimes they are words but preceded by a space (e.g. Ġall, Ġ represents a space), sometimes they are part of a word (e.g. capes is split into Ġcap and es), sometimes they are punctuation marks (e.g. .).

One benefit of BPE is that it can encode arbitrary strings, and if it encounters something that doesn't exist in the vocabulary, it will break it into substrings that it understands :

Undergraduate students use 60 lines of code to teach you how to make a large GPT model by hand. The technical introduction is comparable to a tutorial.The more detailed content will not be repeated. Next, we will introduce the basic neural network. This part is even more basic, mainly including GELU, Softmax function, Layer Normalization and Linear.

Undergraduate students use 60 lines of code to teach you how to make a large GPT model by hand. The technical introduction is comparable to a tutorial.

There are code examples in each small section. For example, in the Linear section, the author shows the standard matrix multiplication offset:

Undergraduate students use 60 lines of code to teach you how to make a large GPT model by hand. The technical introduction is comparable to a tutorial.

The code for projecting a linear layer from one vector space to another vector space is as follows:

Undergraduate students use 60 lines of code to teach you how to make a large GPT model by hand. The technical introduction is comparable to a tutorial.

##GPT Architecture

This part introduces the structure of GPT itself.

Undergraduate students use 60 lines of code to teach you how to make a large GPT model by hand. The technical introduction is comparable to a tutorial.

##Transformer structure is as follows:

Undergraduate students use 60 lines of code to teach you how to make a large GPT model by hand. The technical introduction is comparable to a tutorial.

Transformer uses only the decoder stack (right part of the diagram):

Undergraduate students use 60 lines of code to teach you how to make a large GPT model by hand. The technical introduction is comparable to a tutorial.

It should be noted that due to getting rid of the encoder, the middle cross-attention layer is also deleted. ​

At a high level, the GPT architecture has the following three parts:

    Text position embedding;
  • Transformer decoder stack;
  • Project to vocabulary.
The code looks like this:

Undergraduate students use 60 lines of code to teach you how to make a large GPT model by hand. The technical introduction is comparable to a tutorial.

Code part screenshot

Next, each of the above three parts will be decomposed in more detail, and I will not go into details here.

The above is the author's implementation of GPT. The next step is to combine them together and run the code to get gpt2.py. Its entire content is only 120 lines of code (60 lines if you remove comments and whitespace).

The author tested the results by:

Undergraduate students use 60 lines of code to teach you how to make a large GPT model by hand. The technical introduction is comparable to a tutorial.

##The output results are as follows:

Undergraduate students use 60 lines of code to teach you how to make a large GPT model by hand. The technical introduction is comparable to a tutorial.

##As the author said: This experiment was successful.

This article only briefly introduces the overall process following the author's ideas. Friends who want to know more can refer to the original link.

Original link: https://jaykmody.com/blog/gpt-from-scratch/#basic-layers

The above is the detailed content of Undergraduate students use 60 lines of code to teach you how to make a large GPT model by hand. The technical introduction is comparable to a tutorial.. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

The world's most powerful open source MoE model is here, with Chinese capabilities comparable to GPT-4, and the price is only nearly one percent of GPT-4-Turbo The world's most powerful open source MoE model is here, with Chinese capabilities comparable to GPT-4, and the price is only nearly one percent of GPT-4-Turbo May 07, 2024 pm 04:13 PM

Imagine an artificial intelligence model that not only has the ability to surpass traditional computing, but also achieves more efficient performance at a lower cost. This is not science fiction, DeepSeek-V2[1], the world’s most powerful open source MoE model is here. DeepSeek-V2 is a powerful mixture of experts (MoE) language model with the characteristics of economical training and efficient inference. It consists of 236B parameters, 21B of which are used to activate each marker. Compared with DeepSeek67B, DeepSeek-V2 has stronger performance, while saving 42.5% of training costs, reducing KV cache by 93.3%, and increasing the maximum generation throughput to 5.76 times. DeepSeek is a company exploring general artificial intelligence

AI subverts mathematical research! Fields Medal winner and Chinese-American mathematician led 11 top-ranked papers | Liked by Terence Tao AI subverts mathematical research! Fields Medal winner and Chinese-American mathematician led 11 top-ranked papers | Liked by Terence Tao Apr 09, 2024 am 11:52 AM

AI is indeed changing mathematics. Recently, Tao Zhexuan, who has been paying close attention to this issue, forwarded the latest issue of "Bulletin of the American Mathematical Society" (Bulletin of the American Mathematical Society). Focusing on the topic "Will machines change mathematics?", many mathematicians expressed their opinions. The whole process was full of sparks, hardcore and exciting. The author has a strong lineup, including Fields Medal winner Akshay Venkatesh, Chinese mathematician Zheng Lejun, NYU computer scientist Ernest Davis and many other well-known scholars in the industry. The world of AI has changed dramatically. You know, many of these articles were submitted a year ago.

Google is ecstatic: JAX performance surpasses Pytorch and TensorFlow! It may become the fastest choice for GPU inference training Google is ecstatic: JAX performance surpasses Pytorch and TensorFlow! It may become the fastest choice for GPU inference training Apr 01, 2024 pm 07:46 PM

The performance of JAX, promoted by Google, has surpassed that of Pytorch and TensorFlow in recent benchmark tests, ranking first in 7 indicators. And the test was not done on the TPU with the best JAX performance. Although among developers, Pytorch is still more popular than Tensorflow. But in the future, perhaps more large models will be trained and run based on the JAX platform. Models Recently, the Keras team benchmarked three backends (TensorFlow, JAX, PyTorch) with the native PyTorch implementation and Keras2 with TensorFlow. First, they select a set of mainstream

Hello, electric Atlas! Boston Dynamics robot comes back to life, 180-degree weird moves scare Musk Hello, electric Atlas! Boston Dynamics robot comes back to life, 180-degree weird moves scare Musk Apr 18, 2024 pm 07:58 PM

Boston Dynamics Atlas officially enters the era of electric robots! Yesterday, the hydraulic Atlas just "tearfully" withdrew from the stage of history. Today, Boston Dynamics announced that the electric Atlas is on the job. It seems that in the field of commercial humanoid robots, Boston Dynamics is determined to compete with Tesla. After the new video was released, it had already been viewed by more than one million people in just ten hours. The old people leave and new roles appear. This is a historical necessity. There is no doubt that this year is the explosive year of humanoid robots. Netizens commented: The advancement of robots has made this year's opening ceremony look like a human, and the degree of freedom is far greater than that of humans. But is this really not a horror movie? At the beginning of the video, Atlas is lying calmly on the ground, seemingly on his back. What follows is jaw-dropping

KAN, which replaces MLP, has been extended to convolution by open source projects KAN, which replaces MLP, has been extended to convolution by open source projects Jun 01, 2024 pm 10:03 PM

Earlier this month, researchers from MIT and other institutions proposed a very promising alternative to MLP - KAN. KAN outperforms MLP in terms of accuracy and interpretability. And it can outperform MLP running with a larger number of parameters with a very small number of parameters. For example, the authors stated that they used KAN to reproduce DeepMind's results with a smaller network and a higher degree of automation. Specifically, DeepMind's MLP has about 300,000 parameters, while KAN only has about 200 parameters. KAN has a strong mathematical foundation like MLP. MLP is based on the universal approximation theorem, while KAN is based on the Kolmogorov-Arnold representation theorem. As shown in the figure below, KAN has

FisheyeDetNet: the first target detection algorithm based on fisheye camera FisheyeDetNet: the first target detection algorithm based on fisheye camera Apr 26, 2024 am 11:37 AM

Target detection is a relatively mature problem in autonomous driving systems, among which pedestrian detection is one of the earliest algorithms to be deployed. Very comprehensive research has been carried out in most papers. However, distance perception using fisheye cameras for surround view is relatively less studied. Due to large radial distortion, standard bounding box representation is difficult to implement in fisheye cameras. To alleviate the above description, we explore extended bounding box, ellipse, and general polygon designs into polar/angular representations and define an instance segmentation mIOU metric to analyze these representations. The proposed model fisheyeDetNet with polygonal shape outperforms other models and simultaneously achieves 49.5% mAP on the Valeo fisheye camera dataset for autonomous driving

Tesla robots work in factories, Musk: The degree of freedom of hands will reach 22 this year! Tesla robots work in factories, Musk: The degree of freedom of hands will reach 22 this year! May 06, 2024 pm 04:13 PM

The latest video of Tesla's robot Optimus is released, and it can already work in the factory. At normal speed, it sorts batteries (Tesla's 4680 batteries) like this: The official also released what it looks like at 20x speed - on a small "workstation", picking and picking and picking: This time it is released One of the highlights of the video is that Optimus completes this work in the factory, completely autonomously, without human intervention throughout the process. And from the perspective of Optimus, it can also pick up and place the crooked battery, focusing on automatic error correction: Regarding Optimus's hand, NVIDIA scientist Jim Fan gave a high evaluation: Optimus's hand is the world's five-fingered robot. One of the most dexterous. Its hands are not only tactile

DualBEV: significantly surpassing BEVFormer and BEVDet4D, open the book! DualBEV: significantly surpassing BEVFormer and BEVDet4D, open the book! Mar 21, 2024 pm 05:21 PM

This paper explores the problem of accurately detecting objects from different viewing angles (such as perspective and bird's-eye view) in autonomous driving, especially how to effectively transform features from perspective (PV) to bird's-eye view (BEV) space. Transformation is implemented via the Visual Transformation (VT) module. Existing methods are broadly divided into two strategies: 2D to 3D and 3D to 2D conversion. 2D-to-3D methods improve dense 2D features by predicting depth probabilities, but the inherent uncertainty of depth predictions, especially in distant regions, may introduce inaccuracies. While 3D to 2D methods usually use 3D queries to sample 2D features and learn the attention weights of the correspondence between 3D and 2D features through a Transformer, which increases the computational and deployment time.

See all articles