บทช่วยสอนนี้มีวัตถุประสงค์เพื่อโค้ดที่สนใจทำความเข้าใจกับการสร้างบล็อกของแบบจำลองภาษาขนาดใหญ่ (LLMS) วิธีการทำงานของ LLMS และวิธีการเขียนโค้ดจากพื้นดินใน Pytorch เราจะเริ่มต้นบทช่วยสอนนี้ด้วยการแนะนำ LLMs เหตุการณ์สำคัญล่าสุดและกรณีการใช้งานของพวกเขา จากนั้นเราจะเขียนโค้ด LLM ที่มีลักษณะคล้าย GPT ขนาดเล็กรวมถึงไปป์ไลน์อินพุตข้อมูลส่วนประกอบสถาปัตยกรรมหลักและรหัสก่อนหน้านี้ หลังจากทำความเข้าใจว่าทุกอย่างเข้ากันได้อย่างไรและวิธีการเปิด LLM เราจะได้เรียนรู้วิธีการโหลดน้ำหนักที่ได้รับการฝึกฝนและ Finetune LLM โดยใช้ห้องสมุดโอเพนซอร์ซ
วัสดุรหัสขึ้นอยู่กับการสร้างรูปแบบภาษาขนาดใหญ่ของฉันจาก Scratch Book และยังใช้ไลบรารี LITGPT
สภาพแวดล้อมคลาวด์พร้อมใช้งานพร้อมตัวอย่างโค้ดและการพึ่งพาทั้งหมดที่ติดตั้งอยู่ที่นี่ สิ่งนี้ช่วยให้ผู้เข้าร่วมเรียกใช้รหัสทั้งหมดโดยเฉพาะอย่างยิ่งในส่วนการเตรียมการและ finetuning บน GPU
นอกจากนี้ดูคำแนะนำในโฟลเดอร์การตั้งค่าเพื่อตั้งค่าคอมพิวเตอร์ของคุณเพื่อเรียกใช้รหัสในเครื่อง
| ชื่อ | คำอธิบาย | โฟลเดอร์ | |
|---|---|---|---|
| 1 | บทนำสู่ LLMS | การแนะนำการประชุมเชิงปฏิบัติการแนะนำ LLMs หัวข้อที่ครอบคลุมในการประชุมเชิงปฏิบัติการนี้และคำแนะนำการตั้งค่า | 01_intro |
| 2 | ทำความเข้าใจกับข้อมูลอินพุต LLM | ในส่วนนี้เรากำลังเข้ารหัสไปป์ไลน์อินพุตข้อความโดยใช้ tokenizer ข้อความและ pytorch dataloader ที่กำหนดเองสำหรับ LLM ของเรา | 02_data |
| 3 | การเข้ารหัสสถาปัตยกรรม LLM | ในส่วนนี้เราจะข้ามหน่วยการสร้างแต่ละอันของ LLM และรวบรวมไว้ในรหัส เราจะไม่ครอบคลุมโมดูลทั้งหมดในรายละเอียดที่พิถีพิถัน แต่จะมุ่งเน้นไปที่ภาพรวมที่ใหญ่ขึ้นและวิธีการประกอบพวกเขาเป็นแบบจำลอง GPT | 03_architecture |
| 4 | Pretraining LLMS | ในส่วนที่ 4 เราจะครอบคลุมกระบวนการ pretraining ของ LLM และใช้รหัสเพื่อ pretrain สถาปัตยกรรมแบบจำลองที่เราใช้ก่อนหน้านี้ เนื่องจากการผ่าตัดมีราคาแพงเราจะใช้ตัวอย่างข้อความขนาดเล็กที่มีอยู่ในโดเมนสาธารณะเท่านั้นเพื่อให้ LLM สามารถสร้างประโยคพื้นฐานบางอย่างได้ | 04_pretraining |
| 5 | กำลังโหลดน้ำหนักที่ได้รับการฝึกฝนมาก่อน | เนื่องจากการผ่าตัดเป็นกระบวนการที่ยาวนานและมีราคาแพงตอนนี้เราจะโหลดน้ำหนักที่ได้รับการฝึกฝนไว้ในสถาปัตยกรรมของเรา จากนั้นเราจะแนะนำ LITGPT โอเพนซอร์ซซอร์สซึ่งให้รหัสที่ซับซ้อนมากขึ้น (แต่ยังคงอ่านได้) สำหรับการฝึกอบรมและ Finetuning LLMS เราจะเรียนรู้วิธีการโหลดน้ำหนักของ LLMs ที่ผ่านการฝึกอบรม (llama, phi, gemma, mistral) ใน Litgpt | 05_weightloading |
| 6 | Finetuning LLMS | ส่วนนี้จะแนะนำเทคนิค LLM finetuning และเราจะเตรียมชุดข้อมูลขนาดเล็กสำหรับการเรียนการสอน finetuning ซึ่งเราจะใช้เพื่อ finetune llm ใน LITGPT | 06_finetuning |
(เนื้อหารหัสขึ้นอยู่กับการสร้างรูปแบบภาษาขนาดใหญ่ของฉันจาก Scratch Book และยังใช้ไลบรารี LITGPT)