GPT from Scratch with Tensorflow
1.0.0
GPT“生成预训练的变压器”是GPT系列模型的第一个版本,它以其自动回归语言建模功能构建了构建在变压器体系结构的自然语言建模功能。
该项目是使用TensorFlow从头开始的GPT(生成预训练的变压器)模型的实现。它包括模型的所有组件,例如位置嵌入,注意机制,进料层等等。
重要说明:该项目的目的是对GPT体系结构及其内部运作有深入的了解。因此,这主要用于教育目的。您可以在此处完全了解该模型的结构和工作机制,并使用我在项目中实现的组件。通常,如果您想使用该项目用大数据训练您的语言模型,则可能需要修改数据集文件以更有效地处理大数据。我设计的数据集文件主要是为了处理简单而不是大数据,因为我现在不在这方面。
GPT有几个版本。该实施主要侧重于“通过生成预训练来提高语言理解”的实施。
config.py :用于模型超参数的配置文件。decoder.py :gpt解码器。positional_embeddings.py :位置嵌入生成。embeddings.py :令牌嵌入的生成。attention.py :自我发项机制。feed_forward.py :前馈神经网络。lr_schedule.py :学习率调度。utils.py :实用程序功能用于培训和推理。loss_functions.py :自定义损失功能。metrics.py :自定义评估指标。streamer.py :用于高效培训的数据流式。gpt_model.py :主要GPT模型实现。bpe_tokenizer.py (字节对编码)令牌化的象征。tokenizer.py :预先训练的GPT令牌。prepare_dataset.py :我们在数据集上执行某些操作的文件(为验证数据创建一个特殊文件夹)。inferance.py :py:基于输入提示符中从模型生成句子的文件。tmp/ :用于存储模型检查点的目录。demo/ :项目文档。tokenizer/ :保存重新训练令牌的目录。dummy_data/ :我们放入一些数据测试流媒体的目录。 详细的项目文档可以在demo/目录中找到。它包括对GPT体系结构,培训程序以及如何将模型用于各种自然语言处理任务的解释。
克隆存储库:
git clone https://github.com/AliHaiderAhmad001/GPT-from-Scratch-with-Tensorflow.git
cd GPT-from-Scratch-with-Tensorflow创建虚拟环境(可选但建议):
python -m venv venv
source venv/bin/activate # On Windows: venvScriptsactivate安装项目依赖性:
pip install -r requirements.txt下载并准备数据集:您可以去查看演示。您可以在同一数据集上工作,更改或调整您的首选项。但是,您可以直接从这里下载数据集。您可以通过以下代码验证其中的一部分:
python prepare_dataset.py aclImdb/test aclImdb/valid --num_files_to_move 2500我使用的数据加载程序需要验证集在单独的文件夹中。
python bpe_tokenizer.py aclImdb --batch_size 1000 --vocab_size 50357 --save --save_fp tokenizer/adapted-tokenizerpython train.pypython train.py --resumepython inferance.py " input_text_prompt " --sampler " greedy " # For greedy samplingpython inferance.py " input_text_prompt " --sampler " beam " --beam_width 5 # For beam search sampling with a beam width of 5 该项目已根据MIT许可获得许可。有关详细信息,请参见许可证文件。