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許可獲得許可。有關詳細信息,請參見許可證文件。