Assignment 01: Tokenization & Language Modeling

Assignment 01 要求我们实现一个简单的语言模型训练流程,涵盖数据预处理、模型定义、训练和评估等步骤。通过这个作业,我们将巩固对自然语言处理基础概念的理解,并掌握使用PyTorch进行深度学习模型开发的基本技能
Author

Yuyang Zhang

1 Part 01: Byte Pair Encoding (BPE) Implementation

在本部分中,我们将实现Byte Pair Encoding (BPE)算法,用于文本的tokenization。在Lecture 01中,我们已经介绍了BPE的基本原理和实现方法。现在,我们将通过代码来进一步的实现并且优化BPE算法。

1.1 BPE Algorithm Recap

回顾一下BPE算法的基本步骤: 1. Initialization: 将输入文本视为字节序列,每个字节作为一个token。初始化词汇表包含所有可能的字节(0-255)。 2. Count Pairs: 统计文本中所有相邻字节对的出现频率。 3. Merge Pairs: 找到出现频率最高的字节对,并将其合并为一个新的token,更新文本和词汇表。 4. Repeat: 重复步骤2和3,直到达到预定的合并次数

2 Part 02: Language Model Implementation

在本部分中,我们将实现一个简单的语言模型,使用我们在第一部分中实现的BPE进行tokenization。我们将使用PyTorch来定义和训练模型。

对于Transformer模型不熟悉的同学,我非常推荐 Andrej Karpathy 的下面这个视频:

在视频中,Andrej Karpathy 详细讲解了GPT-2的实现细节, 包括Transformer的架构设计、注意力机制、位置编码等内容。 在理解了GPT-2的基础上,我们可以更好的理解Assignment 01 的内容。

Back to top