พื้นฐานของปัญญาประดิษฐ์เชิงสร้างสรรค์ในภาษา Python
คู่มือที่ครอบคลุมเกี่ยวกับการเข้าใจและประยุกต์ใช้ปัญญาประดิษฐ์เชิงสร้างสรรค์ (Generative AI) และโมเดลภาษาขนาดใหญ่ (LLMs) หลักสูตรนี้ครอบคลุมการเปลี่ยนจากพื้นฐานทางทฤษฎีไปสู่การพัฒนาเชิงปฏิบัติโดยใช้ภาษา Python รวมถึง GANs, โมเดลการกระจาย (diffusion models), โครงข่ายแบบทรานซ์ฟอร์เมอร์ (transformers), การปรับแต่งแบบเฉพาะเจาะจง (fine-tuning) และการนำไปใช้งานจริงในสภาพแวดล้อมผลิต
บทเรียน
ภาพรวมคอร์สเรียน
📚 สรุปเนื้อหา
คู่มือที่ครอบคลุมเกี่ยวกับการเข้าใจและนำไปใช้จริงกับปัญญาประดิษฐ์เชิงสร้างสรร (Generative AI) และโมเดลภาษาขนาดใหญ่ (LLMs) หลักสูตรนี้ครอบคลุมการเปลี่ยนผ่านจากพื้นฐานทางทฤษฎีไปสู่การพัฒนาในเชิงปฏิบัติโดยใช้ภาษา Python รวมถึง GANs, โมเดลการกระจายตัว (Diffusion models), โครงสร้างแบบแปลง (Transformers), การปรับแต่งเฉพาะงาน (fine-tuning) และการนำออกใช้งานในสภาพแวดล้อมผลิต
จัดการหลักการสำคัญและแอปพลิเคชันเชิงปฏิบัติของโมเดลภาษาขนาดใหญ่ (LLMs) และเทคนิคการสร้างสรรค์สมัยใหม่ด้วยภาษา Python
ผู้เขียน: คาร์ลอส โรดริเกซ
คำขอบคุณ: ขอขอบคุณเป็นพิเศษแก่ภรรยาของเขา จิลล์ บรรพบุรุษของเขา และนักตรวจสอบทางเทคนิค โมร์แกน บอยซ์ อีริก รุย และซาไมรา ชาฮ์ (ผู้เขียนบทนำ)
🎯 เป้าหมายการเรียนรู้
- แยกแยะ ระหว่างแนวทางการเรียนรู้ของเครื่องแบบดั้งเดิม (แบบจำแนก) กับโมเดลปัญญาประดิษฐ์เชิงสร้างสรร
- ระบุ สถาปัตยกรรมพื้นฐานของปัญญาประดิษฐ์เชิงสร้างสรร ได้แก่ GANs, โมเดลการกระจายตัว (Diffusion models) และ Transformers
- อธิบาย บทบาทและวิวัฒนาการของโมเดลภาษาขนาดใหญ่ (LLMs) ภายในบริบทกว้างของปัญญาประดิษฐ์
- แยกแยะลักษณะเฉพาะและแนวทางสถาปัตยกรรมของ GANs, Diffusers และ Transformers
- วิเคราะห์ข้อได้เปรียบและข้อจำกัดของแต่ละประเภทโมเดล รวมถึงปัญหาเฉพาะ เช่น การเกิด "โหมดหาย" หรือความเร็วในการสุ่มตัวอย่าง
- ดำเนินการจัดระบบการสร้างภาพแบบ Stable Diffusion และประเมินผลลัพธ์ที่ได้ โดยใช้ค่าลอจิตและค่าความน่าจะเป็นจากโมเดล CLIP
- ติดตามเส้นทางวิวัฒนาการของภาษาธรรมชาติ (NLP) จากวิธีการนับจำนวนเบื้องต้นและโมเดล RNN ไปสู่การแทนที่แบบกระจาย (Distributed Representations) และการเรียนรู้แบบถ่ายทอด (Transfer Learning)
- อธิบายกลไกทางเทคนิคของ Multi-head Attention (MHA), Self-attention, Masking และเครือข่ายฟีดฟอร์เวิร์ด (FFN)
- ดำเนินการสร้างโครงสร้างโมเดล Transformer แบบครบวงจร รวมถึงการแบ่งคำ (tokenization), การเข้ารหัสตำแหน่ง (positional encoding) และฟังก์ชันการฝึกและการคาดการณ์
- เปลี่ยนฟีเจอร์การทดลอง (เช่น Google Colab) ไปสู่สภาพแวดล้อมพร้อมสำหรับการผลิต โดยใช้ Docker และ VS Code
🔹 บทเรียนที่ 1: พื้นฐานและแนวคิดหลักของปัญญาประดิษฐ์เชิงสร้างสรร
บทนำ: บทเรียนนี้สร้างกรอบพื้นฐานของการเปลี่ยนแปลงจากแนวทางการเรียนรู้ของเครื่องแบบดั้งเดิม สู่ยุคของปัญญาประดิษฐ์เชิงสร้างสรร มุ่งสำรวจการเปลี่ยนแปลงทางสถาปัตยกรรม — จาก GANs ไปจนถึง Transformers — และแนะนำโมเดลภาษาขนาดใหญ่ (LLMs) ว่าเป็นหัวใจสำคัญของความเข้าใจเชิงสร้างสรรและกระบวนการสร้างเนื้อหา
ผลลัพธ์การเรียนรู้:
- แยกแยะ ระหว่างแนวทางการเรียนรู้ของเครื่องแบบดั้งเดิม (แบบจำแนก) กับโมเดลปัญญาประดิษฐ์เชิงสร้างสรร
- ระบุ สถาปัตยกรรมพื้นฐานของปัญญาประดิษฐ์เชิงสร้างสรร ได้แก่ GANs, โมเดลการกระจายตัว (Diffusion models) และ Transformers
- อธิบาย บทบาทและวิวัฒนาการของโมเดลภาษาขนาดใหญ่ (LLMs) ภายในบริบทกว้างของปัญญาประดิษฐ์
🔹 บทเรียนที่ 2: สำรวจสถาปัตยกรรม: GANs, Diffusers และ Transformers
บทนำ: บทเรียนนี้ให้ภาพรวมเชิงลึกเกี่ยวกับเสาหลักสามประการของปัญญาประดิษฐ์เชิงสร้างสรร ได้แก่ โครงข่ายเชิงสร้างสรรที่ต่อสู้กัน (GANs), โมเดลการกระจายตัว (Diffusion Models) และ Transformers นักเรียนจะสำรวจการถอดรหัสทางเทคนิคของวิธีเหล่านี้ ความก้าวหน้าทางวิวัฒนาการ ข้อจำกัดที่ซ่อนอยู่ และการนำไปใช้ในทางปฏิบัติ ทั้งในการสร้างภาพและการประเมินผลโดยใช้เมตริก CLIP ในสภาพแวดล้อม Jupyter/Colab
ผลลัพธ์การเรียนรู้:
- แยกแยะลักษณะเฉพาะและแนวทางสถาปัตยกรรมของ GANs, Diffusers และ Transformers
- วิเคราะห์ข้อได้เปรียบและข้อจำกัดของแต่ละประเภทโมเดล รวมถึงปัญหาเฉพาะ เช่น การเกิด "โหมดหาย" หรือความเร็วในการสุ่มตัวอย่าง
- ดำเนินการจัดระบบการสร้างภาพแบบ Stable Diffusion และประเมินผลลัพธ์ที่ได้ โดยใช้ค่าลอจิตและค่าความน่าจะเป็นจากโมเดล CLIP
🔹 บทเรียนที่ 3: วิวัฒนาการของภาษาธรรมชาติและการออกแบบโครงสร้างแบบแปลง
บทนำ: บทเรียนนี้ติดตามเส้นทางประวัติศาสตร์ของภาษาธรรมชาติ (Natural Language Processing) ตั้งแต่วิธีการทางสถิติแบบดั้งเดิม ไปจนถึงสถาปัตยกรรมแบบแปลงที่ปฏิวัติวงการ ครอบคลุมการเปลี่ยนผ่านจากโมเดลแบบลำดับ (RNN) ไปสู่กลไกการประมวลผลแบบขนานที่ใช้การตั้งใจตนเอง (self-attention) โดยอธิบายองค์ประกอบเฉพาะของโครงสร้างแบบแปลงดั้งเดิม (Encoder/Decoder) และการประยุกต์ใช้จริงในการสร้างระบบแปลภาษาด้วย PyTorch
ผลลัพธ์การเรียนรู้:
- ติดตามเส้นทางวิวัฒนาการของภาษาธรรมชาติ (NLP) จากวิธีการนับจำนวนเบื้องต้นและโมเดล RNN ไปสู่การแทนที่แบบกระจาย (Distributed Representations) และการเรียนรู้แบบถ่ายทอด (Transfer Learning)
- อธิบายกลไกทางเทคนิคของ Multi-head Attention (MHA), Self-attention, Masking และเครือข่ายฟีดฟอร์เวิร์ด (FFN)
- ดำเนินการสร้างโครงสร้างโมเดล Transformer แบบครบวงจร รวมถึงการแบ่งคำ (tokenization), การเข้ารหัสตำแหน่ง (positional encoding) และฟังก์ชันการฝึกและการคาดการณ์
🔹 บทเรียนที่ 4: วิศวกรรมการผลิตและการนำปัญญาประดิษฐ์อย่างรับผิดชอบมาใช้
บทนำ: บทเรียนนี้ครอบคลุมการเปลี่ยนผ่านที่สำคัญจากขั้นตอนการทดลอง (สถานะการทดลอง) ไปสู่การใช้งานในสภาพแวดล้อมการผลิตที่มั่นคงและปลอดภัย มุ่งผสมผสานหลักการวิศวกรรมการผลิต เช่น การบรรจุในคอนเทนเนอร์ด้วย Docker และการกำหนดสภาพแวดล้อม กับข้อกำหนดจริยธรรมของปัญญาประดิษฐ์อย่างรับผิดชอบ โดยเน้นการลดความลำเอียง การโปร่งใส และการทดสอบโมเดลอย่างเข้มงวดด้วยเมตริก เช่น คะแนน CLIP และความคล้ายคลึงเชิงคำศัพท์
ผลลัพธ์การเรียนรู้:
- เปลี่ยนฟีเจอร์การทดลอง (เช่น Google Colab) ไปสู่สภาพแวดล้อมพร้อมสำหรับการผลิต โดยใช้ Docker และ VS Code
- คำนวณความซับซ้อนทางการคำนวณของโมเดลและข้อกำหนดหน่วยความจำ เพื่อกำหนดความต้องการฮาร์ดแวร์เฉพาะ
- ประเมินโมเดลเชิงสร้างสรรโดยใช้เมตริกเชิงปริมาณ (BLEU, ROUGE, METEOR) และความสอดคล้องกับโมเดล CLIP
🔹 บทเรียนที่ 5: เทคนิคการปรับแต่งเฉพาะงานและการเรียนรู้ที่ประหยัดพารามิเตอร์
บทนำ: บทเรียนนี้ครอบคลุมการเปลี่ยนผ่านจากวิธีการปรับแต่งโมเดลแบบใช้ prompt ไปสู่การปรับแต่งเฉพาะงานตามงานจริง มุ่งสำรวจการเรียนรู้ในบริบท (In-Context Learning) แบบไม่มีตัวอย่าง (Zero-shot) และมีตัวอย่างน้อย (Few-shot) การเสริมการสร้างด้วยการค้นหา (Retrieval Augmented Generation - RAG) และการประยุกต์ใช้การปรับแต่งที่ประหยัดพารามิเตอร์ (Parameter-Efficient Fine-Tuning - PEFT) ด้วยภาษา Python นักเรียนจะได้เรียนรู้การสร้างระบบตอบคำถาม การใช้งานคลาส Trainer จาก Hugging Face และประเมินผลลัพธ์โดยใช้ค่าความผิดพลาดในการฝึกและค่าความคล้ายคลึงเชิงความหมาย
ผลลัพธ์การเรียนรู้:
- แยกแยะระหว่างการเรียนรู้ในบริบท (Zero/Few-shot), RAG และการปรับแต่งเฉพาะงาน (Fine-tuning)
- ดำเนินการเวิร์กโฟลว์การปรับแต่งเฉพาะงานแบบใช้ PEFT โดยใช้ AdaLoRA และคลาส
Trainerจาก Hugging Face - คำนวณและตีความเมตริกประสิทธิภาพของโมเดล รวมถึงค่าความผิดพลาดในการฝึกและคะแนนความคล้ายคลึงเชิงความหมาย
🔹 บทเรียนที่ 6: การปรับตัวตามโดเมนสำหรับโมเดลภาษาขนาดใหญ่เฉพาะด้าน
บทนำ: บทเรียนนี้สำรวจการเปลี่ยนผ่านของโมเดลภาษาขนาดใหญ่ (LLMs) จากเครื่องมือทั่วไป มาเป็นผู้เชี่ยวชาญเฉพาะด้านในด้านการเงิน นักเรียนจะได้เรียนรู้บริบททางประวัติศาสตร์ของการปรับตัวตามโดเมน ศึกษาแนวทางการฝึกอบรมหลัก เช่น การเรียนรู้แบบก่อเหตุ (Causal Language Modeling - CLM) และการคาดการณ์ประโยคถัดไป (Next-Sentence Prediction - NSP) และดำเนินโครงการการเรียนรู้แบบถ่ายโอนด้วยการปรับแต่งที่ประหยัดพารามิเตอร์ (PEFT) อย่างเป็นมืออาชีพ สุดท้ายจะมีเทคนิคการประเมินอย่างเข้มงวดโดยใช้เมตริก ROUGE และคะแนนการจำแนกประเภทแบบดั้งเดิม (ความแม่นยำ, ความครอบคลุม, ค่า F1)
ผลลัพธ์การเรียนรู้:
- อธิบายประวัติศาสตร์และความสำคัญที่สำคัญของการปรับโมเดลภาษาขนาดใหญ่ทั่วไปให้เหมาะสมกับโดเมนเฉพาะ
- ดำเนินการระบบทั้งหมดสำหรับการเรียนรู้แบบถ่ายโอนในโดเมนการเงิน รวมถึงการเตรียมข้อมูลและการแบ่งคำ
- แยกแยะระหว่างแนวทางการฝึกอบรมแบบ CLM และแบบ NSP
🔹 บทเรียนที่ 7: การออกแบบ Prompt ขั้นสูงและการนำระบบการค้นหามาใช้
บทนำ: บทเรียนนี้สำรวจการพัฒนาวิธีการโต้ตอบกับโมเดลภาษาขนาดใหญ่ (LLM) ที่เปลี่ยนจากวิธีการปรับแต่งที่ใช้พารามิเตอร์จำนวนมาก มาเป็นแนวทางที่อาศัยการใช้ Prompt อย่างมีกลยุทธ์ มุ่งอธิบายการใช้บทบาท (persona) สถานการณ์จำลองบทบาท และการติดตั้งระบบการสร้างข้อมูลเสริมด้วยการค้นหา (Retrieval-Augmented Generation - RAG) โดยใช้ LlamaIndex เพื่อสร้างคำตอบของปัญญาประดิษฐ์ที่มีความรู้บริบท ปลอดภัย และสอดคล้องกับแบรนด์
ผลลัพธ์การเรียนรู้:
- อธิบายการเปลี่ยนผ่านจากวิธีการปรับแต่งที่ใช้พารามิเตอร์มากไปสู่การคาดการณ์ที่มีประสิทธิภาพโดยใช้ Prompt
- ออกแบบและติดตั้งบทบาท (personas) และสถานการณ์จำลองบทบาทเพื่อควบคุมพฤติกรรมและรูปแบบผลลัพธ์ของโมเดล
- สร้างระบบที่ทำงานได้จริงด้วย RAG โดยใช้ภาษา Python และเฟรมเวิร์ก LlamaIndex