GPT "Transformer ที่ผ่านการฝึกอบรมมาแล้ว" เป็นรุ่นแรกของชุดรุ่น GPT ของแบบจำลองการปฏิวัติการประมวลผลภาษาธรรมชาติด้วยความสามารถในการสร้างแบบจำลองภาษาอัตโนมัติที่สร้างขึ้นบนสถาปัตยกรรมหม้อแปลง
โครงการนี้เป็นการดำเนินการตามรุ่น GPT (Transformer ที่ผ่านการฝึกอบรมมาแล้วก่อนหน้านี้ตั้งแต่เริ่มต้นโดยใช้ TensorFlow มันรวมถึงส่วนประกอบทั้งหมดของแบบจำลองเช่นการฝังตำแหน่งกลไกความสนใจเลเยอร์ฟีดไปข้างหน้าและอื่น ๆ
หมายเหตุสำคัญ: เป้าหมายของโครงการนี้คือการให้ความเข้าใจอย่างลึกซึ้งเกี่ยวกับสถาปัตยกรรม GPT และการทำงานภายใน ดังนั้นจึงเป็นหลักเพื่อจุดประสงค์ด้านการศึกษา คุณสามารถเข้าใจโครงสร้างและกลไกการทำงานของโมเดลนี้ได้ที่นี่และใช้ส่วนประกอบที่ฉันได้นำไปใช้ในโครงการของคุณ โดยทั่วไปหากคุณต้องการใช้โครงการเพื่อฝึกอบรมรูปแบบภาษาของคุณด้วยข้อมูลขนาดใหญ่คุณอาจต้องแก้ไขไฟล์ชุดข้อมูลเพื่อให้สามารถประมวลผลข้อมูลขนาดใหญ่ได้อย่างมีประสิทธิภาพมากขึ้น ฉันออกแบบไฟล์ชุดข้อมูลเป็นหลักเพื่อจัดการข้อมูลที่ง่ายไม่ใหญ่เพราะฉันไม่ได้อยู่ในเรื่องนี้ในตอนนี้
GPT มีหลายรุ่น การใช้งานนี้มุ่งเน้นไปที่การดำเนินการของ "การปรับปรุงความเข้าใจภาษาโดยการฝึกอบรมก่อนการกำเนิด"
config.py : ไฟล์กำหนดค่าสำหรับโมเดลไฮเปอร์พารามิเตอร์decoder.py : ตัวถอดรหัส GPTpositional_embeddings.py : การสร้างการฝังตำแหน่งembeddings.py : การสร้าง TOKEN EMBEDDINGSattention.py : กลไกการดูแลตนเองfeed_forward.py : เครือข่ายประสาทส่งไปข้างหน้าlr_schedule.py : การกำหนดค่าอัตราการเรียนรู้utils.py : ฟังก์ชั่นยูทิลิตี้สำหรับการฝึกอบรมและการอนุมานloss_functions.py : ฟังก์ชั่นการสูญเสียที่กำหนดเองmetrics.py : ตัวชี้วัดการประเมินที่กำหนดเองstreamer.py : Data Streamer สำหรับการฝึกอบรมที่มีประสิทธิภาพgpt_model.py : การใช้งาน Main GPT Modelbpe_tokenizer.py : tokenizer สำหรับการเข้ารหัส BPE (การเข้ารหัสคู่ไบต์)tokenizer.py : Tokenizer GPT ที่ผ่านการฝึกอบรมมาก่อนprepare_dataset.py : ไฟล์ที่เราดำเนินการบางอย่างในชุดข้อมูล (การสร้างโฟลเดอร์พิเศษสำหรับข้อมูลการตรวจสอบความถูกต้อง)inferance.py : ไฟล์ที่จำเป็นในการสร้างประโยคจากโมเดลตามพรอมต์อินพุตtmp/ : ไดเรกทอรีสำหรับการจัดเก็บจุดตรวจแบบจำลองdemo/ : เอกสารโครงการtokenizer/ : ไดเรกทอรีสำหรับการบันทึก tokenizer ใหม่dummy_data/ : ไดเรกทอรีที่เราใส่ข้อมูลบางอย่างเพื่อทดสอบสตรีม เอกสารโครงการโดยละเอียดสามารถพบได้ใน demo/ Directory มันมีคำอธิบายเกี่ยวกับสถาปัตยกรรม 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 ดูไฟล์ใบอนุญาตสำหรับรายละเอียด