GPT "Generative Pre-Found Transformer" adalah versi pertama dari serangkaian model GPT, yang merevolusi pemrosesan bahasa alami dengan kemampuan pemodelan bahasa autoregresif yang dibangun di atas arsitektur transformator.
Proyek ini adalah implementasi model GPT (transformator pra-terlatih generatif) dari awal menggunakan TensorFlow. Ini mencakup semua komponen model, seperti embeddings posisi, mekanisme perhatian, lapisan umpan-maju, dan banyak lagi.
Catatan penting: Tujuan dari proyek ini adalah untuk memberikan pemahaman yang mendalam tentang arsitektur GPT dan cara kerja batinnya. Jadi, ini terutama untuk tujuan pendidikan. Anda dapat sepenuhnya memahami struktur dan mekanisme kerja model ini di sini, dan menggunakan komponen yang telah saya terapkan dalam proyek Anda. Secara umum, jika Anda ingin menggunakan proyek untuk melatih model bahasa Anda dengan data besar, Anda mungkin perlu memodifikasi file dataset untuk dapat memproses data besar secara lebih efisien. Saya merancang file dataset terutama untuk menangani data yang sederhana, bukan besar, karena saya tidak dalam hal ini sekarang.
Ada beberapa versi GPT. Implementasi ini berfokus terutama pada implementasi "meningkatkan pemahaman bahasa dengan pra-pelatihan generatif".
config.py : File konfigurasi untuk model hyperparameters.decoder.py : decoder GPT.positional_embeddings.py : Generasi embedding posisi.embeddings.py : Token Embeddings Generation.attention.py : mekanisme perhatian diri.feed_forward.py : jaringan saraf feed-forward.lr_schedule.py : Penjadwalan tingkat pembelajaran.utils.py : Fungsi utilitas untuk pelatihan dan inferensi.loss_functions.py : Fungsi kerugian khusus.metrics.py : metrik evaluasi khusus.streamer.py : Streamer data untuk pelatihan yang efisien.gpt_model.py : Implementasi model GPT utama.bpe_tokenizer.py : tokenizer untuk BPE (byte pair encoding) tokenisasi.tokenizer.py : Tokenizer GPT pra-terlatih.prepare_dataset.py : File yang melaluinya kami melakukan beberapa operasi pada dataset (membuat folder khusus untuk data validasi).inferance.py : File yang diperlukan untuk menghasilkan kalimat dari model berdasarkan prompt input.tmp/ : Direktori untuk menyimpan pos pemeriksaan model.demo/ : Dokumentasi Proyek.tokenizer/ : Direktori untuk menyimpan tokenizer yang dilatih kembali.dummy_data/ : direktori di mana kami menempatkan beberapa data untuk menguji streamer. Dokumentasi proyek terperinci dapat ditemukan di demo/ Direktori. Ini termasuk penjelasan tentang arsitektur GPT, prosedur pelatihan, dan cara menggunakan model untuk berbagai tugas pemrosesan bahasa alami.
Klon Repositori:
git clone https://github.com/AliHaiderAhmad001/GPT-from-Scratch-with-Tensorflow.git
cd GPT-from-Scratch-with-TensorflowBuat lingkungan virtual (opsional tetapi direkomendasikan):
python -m venv venv
source venv/bin/activate # On Windows: venvScriptsactivateInstal Project Dependencies:
pip install -r requirements.txtUnduh dan Siapkan Dataset: Anda dapat pergi dan meninjau demo. Anda dapat mengerjakan dataset yang sama, mengubahnya atau menyesuaikan preferensi Anda. Namun, Anda dapat mengunduh dataset langsung dari sini. Anda dapat mengambil sebagian untuk validasi melalui kode berikut:
python prepare_dataset.py aclImdb/test aclImdb/valid --num_files_to_move 2500Loader data yang saya gunakan memerlukan set validasi untuk berada di folder terpisah.
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 Proyek ini dilisensikan di bawah lisensi MIT. Lihat file lisensi untuk detailnya.