กลับสู่คอร์สเรียน
AI010 Professional

บทนำสำหรับผู้พัฒนา: โมเดลภาษาขนาดใหญ่

หลักสูตรนี้เป็นเวอร์ชันที่ปรับให้เหมาะกับจีนของซีรีส์คอร์สสามตอนที่อังเดรย์ ง ร่วมกับโอเพ่นเอไอจัดทำขึ้น ครอบคลุมหัวข้อการเขียนคำสั่ง (Prompt Engineering) การสร้างระบบด้วย API ของแชทจีพีที การพัฒนาแอปพลิเคชันด้วยภาษาเชน และการใช้ภาษาเชนเพื่อเข้าถึงข้อมูลส่วนตัว หลักสูตรนี้นำเสนอแนวทางที่ชัดเจนและเข้าใจง่ายเกี่ยวกับวิธีใช้ศักยภาพของโมเดลภาษาขนาดใหญ่ในการสร้างแอปพลิเคชันที่มีฟังก์ชันการสรุป เสนอข้อสรุป การแปลง การขยาย และการสนทนา

4.8
24h
916 ผู้เรียน
8 การถูกใจ
ปัญญาประดิษฐ์

ภาพรวมคอร์สเรียน

📚 สรุปเนื้อหา

หลักสูตรนี้เป็นการปรับแต่งภาษาจีนของซีรีส์สามตอนเกี่ยวกับโมเดลภาษาขนาดใหญ่ (LLM) ที่พัฒร่วมกันโดยแอนดรูว์ ง และโอเพ่นเอไอ โดยครอบคลุมหัวข้อต่าง ๆ เช่น การเขียนคำสั่ง (Prompt Engineering) การสร้างระบบโดยใช้ API ของ ChatGPT การพัฒนาแอปพลิเคชันด้วย LangChain และการใช้ LangChain เพื่อเข้าถึงข้อมูลส่วนตัว หลักสูตรนี้ให้การแนะนำเชิงลึกแต่เข้าใจง่ายในการใช้ศักยภาพของโมเดลภาษาขนาดใหญ่เพื่อพัฒนาแอปพลิเคชันที่มีฟังก์ชันการทำงานด้านการสรุป อนุมาน การแปลง การขยาย และการสนทนา

จัดการกับการเขียนคำสั่งและกรอบงาน LangChain เพื่อเป็นนักพัฒนาแอปพลิเคชันปัญญาประดิษฐ์ในยุคของโมเดลขนาดใหญ่

🎯 เป้าหมายการเรียนรู้

  1. แยกแยะความแตกต่างระหว่างฐานโมเดลภาษา (Base LLMs) และโมเดลที่ปรับให้เหมาะสมกับคำสั่ง (Instruction Tuned LLMs)
  2. ใช้กลยุทธ์เฉพาะเจาะจง 4 แบบในการเขียนคำสั่งที่ชัดเจนและเฉพาะเจาะจง (เครื่องหมายแบ่ง, ผลลัพธ์ที่มีโครงสร้าง, การตรวจสอบเงื่อนไข และการส่งตัวอย่างจำนวนน้อย)
  3. ประยุกต์ใช้กลยุทธ์เพื่อให้โมเดล "มีเวลาคิด" โดยระบุขั้นตอนของงานและให้โมเดลแก้ปัญหาอย่างอิสระ
  4. ใช้การประมวลผลข้อความที่มีโครงสร้าง: สรุปข้อมูลและดึงข้อมูลเฉพาะจากเอกสารหนึ่งหรือหลายฉบับ โดยควบคุมความยาวและเน้นของผลลัพธ์
  5. วิเคราะห์ข้อความอัตโนมัติ: จัดประเภทอารมณ์ ระบุอารมณ์เฉพาะเจาะจง และดำเนินการจำแนกหัวข้อโดยไม่ต้องใช้ตัวอย่าง (zero-shot topic classification) โดยใช้คำสั่ง
  6. ดำเนินการแปลงหลายมิติ: แปลภาษา แปลงรูปแบบข้อมูล (เช่น จาก JSON เป็น HTML) และแก้ไขไวยากรณ์/การสะกดคำโดยอัตโนมัติ
  7. แยกแยะความแตกต่างระหว่างฐานโมเดลภาษา (Base LLMs) และโมเดลที่ปรับให้เหมาะสมกับคำสั่ง (Instruction-Tuned LLMs) พร้อมเข้าใจผลกระทบของการแบ่งข้อความ (tokenization) ต่อพฤติกรรมของโมเดล
  8. สร้างสถาปัตยกรรมระบบแบบมีโครงสร้างโดยใช้บทบาทของข้อความประเภทระบบ (System), ผู้ใช้ (User) และผู้ช่วย (Assistant) เพื่อกำหนดบุคลิกของโมเดล
  9. ใช้เทคนิคการจัดหมวดหมู่และการตรวจสอบเพื่อประเมินคำขอจากผู้ใช้ด้านความปลอดภัยและการส่งต่อ
  10. ใช้การเชื่อมโยงคำสั่ง (Prompt Chaining): แยกงานซับซ้อนออกเป็นงานย่อยที่จัดการได้ง่าย เพื่อเพิ่มความน่าเชื่อถือและลดต้นทุน

🔹 บทเรียนที่ 1: หลักการเขียนคำสั่งและการพัฒนาแบบวนรอบ

ภาพรวม: บทเรียนนี้ครอบคลุมหลักการพื้นฐานของการเขียนคำสั่งสำหรับนักพัฒนา โดยเปลี่ยนจากโมเดลภาษาขนาดใหญ่พื้นฐาน (Base LLMs) ไปยังโมเดลที่ปรับให้เหมาะสมกับคำสั่ง (Instruction Tuned LLMs) มุ่งเน้นสองเสาหลักสำคัญของการโต้ตอบที่มีประสิทธิภาพ ได้แก่ การเขียนคำสั่งที่ชัดเจนและเฉพาะเจาะจง และการให้โมเดลมี "เวลาคิด" อย่างเพียงพอ นอกจากนี้ยังสร้างแนวทางการทำงานแบบวนรอบเพื่อปรับปรุงคำสั่งให้ตรงตามความต้องการทางธุรกิจ เช่น ข้อจำกัดด้านความยาวและรูปแบบ

ผลลัพธ์การเรียนรู้:

  • แยกแยะความแตกต่างระหว่างฐานโมเดลภาษา (Base LLMs) และโมเดลที่ปรับให้เหมาะสมกับคำสั่ง (Instruction Tuned LLMs)
  • ใช้กลยุทธ์เฉพาะเจาะจง 4 แบบในการเขียนคำสั่งที่ชัดเจนและเฉพาะเจาะจง (เครื่องหมายแบ่ง, ผลลัพธ์ที่มีโครงสร้าง, การตรวจสอบเงื่อนไข และการส่งตัวอย่างจำนวนน้อย)
  • ประยุกต์ใช้กลยุทธ์เพื่อให้โมเดล "มีเวลาคิด" โดยระบุขั้นตอนของงานและให้โมเดลแก้ปัญหาอย่างอิสระ

🔹 บทเรียนที่ 2: ความสามารถหลักด้านการเขียนคำสั่งและบอทสนทนา

ภาพรวม: บทเรียนนี้สำรวจการประยุกต์ใช้โมเดลภาษาขนาดใหญ่ (LLMs) ในห้าด้านหลัก: การสรุป อนุมาน การแปลง การขยาย และการสร้างบอทสนทนาแบบโต้ตอบ มอบแนวทางปฏิบัติจริงให้กับนักพัฒนาในการใช้ภาษาไพธอนและ API ของโอเพ่นเอไอ เพื่อประมวลผลข้อความ ดึงข้อมูลที่มีโครงสร้าง เปลี่ยนสไตล์ภาษา และคงสถานะการสนทนาไว้สำหรับการใช้งานจริง เช่น บอทบริการลูกค้า

ผลลัพธ์การเรียนรู้:

  • ใช้การประมวลผลข้อความที่มีโครงสร้าง: สรุปและดึงข้อมูลเฉพาะจากเอกสารหนึ่งหรือหลายฉบับ โดยควบคุมความยาวและเน้นของผลลัพธ์
  • วิเคราะห์ข้อความอัตโนมัติ: จัดประเภทอารมณ์ ระบุอารมณ์เฉพาะเจาะจง และดำเนินการจำแนกหัวข้อโดยไม่ต้องใช้ตัวอย่าง (zero-shot topic classification) โดยใช้คำสั่ง
  • ดำเนินการแปลงหลายมิติ: แปลภาษา แปลงรูปแบบข้อมูล (เช่น จาก JSON เป็น HTML) และแก้ไขไวยากรณ์/การสะกดคำโดยอัตโนมัติ

🔹 บทเรียนที่ 3: ตรรกะระบบ: การจำแนกประเภทอินพุตและการคิดวิเคราะห์

ภาพรวม: บทเรียนนี้สำรวจกลไกพื้นฐานของโมเดลภาษาขนาดใหญ่ (LLMs) ตั้งแต่การแบ่งข้อความเบื้องต้นและบทบาทของข้อความ ไปจนถึงกลยุทธ์การจัดการอินพุตขั้นสูง นักเรียนจะได้เรียนรู้วิธีสร้างระบบที่แข็งแรงโดยการจำแนกเจตนาของผู้ใช้ ตรวจสอบเนื้อหาเพื่อความปลอดภัย และนำแนวคิด "โซ่เหตุผล (Chain of Thought)" มาใช้เพื่อเพิ่มความแม่นยำและควบคุมประสบการณ์ผู้ใช้ผ่าน "การคิดภายใน"

ผลลัพธ์การเรียนรู้:

  • แยกแยะความแตกต่างระหว่างฐานโมเดลภาษา (Base LLMs) และโมเดลที่ปรับให้เหมาะสมกับคำสั่ง (Instruction-Tuned LLMs) พร้อมเข้าใจผลกระทบของการแบ่งข้อความ (tokenization) ต่อพฤติกรรมของโมเดล
  • สร้างสถาปัตยกรรมระบบแบบมีโครงสร้างโดยใช้บทบาทของข้อความประเภทระบบ (System), ผู้ใช้ (User) และผู้ช่วย (Assistant) เพื่อกำหนดบุคลิกของโมเดล
  • ใช้เทคนิคการจัดหมวดหมู่และการตรวจสอบเพื่อประเมินคำขอจากผู้ใช้ด้านความปลอดภัยและการส่งต่อ

🔹 บทเรียนที่ 4: กระบวนการทำงานซับซ้อนและประเมินระบบ

ภาพรวม: บทเรียนนี้ครอบคลุมการเปลี่ยนจากคำสั่งง่าย ๆ ไปสู่กระบวนการทำงานที่ซับซ้อนหลายขั้นตอนของโมเดลภาษาขนาดใหญ่ โดยเน้น "การเชื่อมโยงคำสั่ง (Prompt Chaining)" เพื่อแยกงานซับซ้อนออกเป็นงานย่อย ติดตั้งชั้นความปลอดภัยผ่าน API การตรวจสอบ (Moderation API) และสร้างกรอบการประเมินอย่างเข้มงวด ทั้งกรณีที่มีคำตอบเดียวถูกต้อง และกรณีที่ต้องประเมินแบบอิงเกณฑ์เชิงวิจารณ์

ผลลัพธ์การเรียนรู้:

  • ใช้การเชื่อมโยงคำสั่ง (Prompt Chaining): แยกงานซับซ้อนออกเป็นงานย่อยที่จัดการได้ง่าย เพื่อเพิ่มความน่าเชื่อถือและลดต้นทุน
  • สร้างระบบครบวงจรที่ปลอดภัย: รวมการตรวจสอบอินพุต/เอาต์พุต และกลไกการตรวจสอบข้อเท็จจริงไว้ในกระบวนการผลิต
  • พัฒนากลยุทธ์การประเมิน: สร้างชุดตรวจสอบเพื่อวัดประสิทธิภาพของโมเดลภาษาขนาดใหญ่โดยเปรียบเทียบกับคำตอบที่ "สมบูรณ์แบบ" และใช้เกณฑ์ที่ได้รับการสนับสนุนจากโมเดลเอง

🔹 บทเรียนที่ 5: หลักการพื้นฐานของ LangChain: โมเดล คำสั่ง และหน่วยความจำ

ภาพรวม: บทเรียนนี้แนะนำองค์ประกอบหลักของเฟรมเวิร์ก LangChain โดยเฉพาะการดึงข้อมูลจากโมเดลภาษาขนาดใหญ่ (LLM) อย่างมีประสิทธิภาพ ครอบคลุมการเปลี่ยนจากคำขอโดยตรงผ่าน API ไปสู่การใช้ส่วนประกอบแบบโมดูลาร์ของ LangChain ได้แก่ โมเดล รูปแบบคำสั่ง (Prompt Templates) และตัวแยกผลลัพธ์ (Output Parsers) พร้อมลงลึกในกลยุทธ์หน่วยความจำ 4 แบบที่ใช้คงสถานะการสนทนา

ผลลัพธ์การเรียนรู้:

  • ใช้การเรียกโมเดลพื้นฐานโดยใช้คอมโพเนนต์ของ LangChain เช่น ChatOpenAI และส่วนประกอบแบบโมดูลาร์
  • สร้างโครงสร้างรูปแบบคำสั่งที่สามารถนำกลับมาใช้ใหม่ (ChatPromptTemplate) เพื่อจัดการตรรกะคำสั่งที่ซับซ้อนและตัวแปรต่าง ๆ
  • ดึงข้อมูลที่มีโครงสร้าง (เช่น รูปแบบ JSON/พจนานุกรมภาษาไพธอน) จากผลลัพธ์ของโมเดลที่ไม่มีโครงสร้างโดยใช้ StructuredOutputParser

🔹 บทเรียนที่ 6: สายการเชื่อมต่อ (Chains) ของ LangChain คำถาม-คำตอบ และเอนติตี้อัตโนมัติ

ภาพรวม: บทเรียนนี้ครอบคลุมองค์ประกอบหลักทางสถาปัตยกรรมของ LangChain โดยเปลี่ยนจากลำดับคำสั่ง-คำตอบแบบง่าย ไปสู่ระบบที่ซับซ้อนและขึ้นอยู่กับตรรกะ นักเรียนจะได้เรียนรู้วิธีจัดการการเรียกใช้โมเดลหลายครั้งผ่านสายการเชื่อมต่อ (Chains) ใช้การเพิ่มเติมข้อมูลจากแหล่งข้อมูลส่วนตัว (Retrieval Augmented Generation - Q&A) ผ่านเวกเตอร์สตอร์ และตั้งค่าเอนติตี้อัตโนมัติที่ใช้เหตุผลในการเลือกและดำเนินการเครื่องมือต่าง ๆ วัตถุประสงค์หลักคือการก้าวข้ามการโต้ตอบเพียงคำสั่งเดียว สู่แอปพลิเคชันโมเดลภาษาขนาดใหญ่ที่อัตโนมัติและขยายตัวได้

ผลลัพธ์การเรียนรู้:

  • สร้างงานลำดับและงานหลายขั้นตอนที่ซับซ้อนโดยใช้ SequentialChain และ RouterChain
  • สร้างระบบคำถาม-คำตอบบนเอกสารโดยใช้การฝังข้อมูล (embeddings), คลังเวกเตอร์ และสายการเชื่อมต่อ RetrievalQA
  • ใช้การประเมินอัตโนมัติแอปพลิเคชันโมเดลภาษาขนาดใหญ่โดยใช้ QAGenerateChain และ QAEvalChain

🔹 บทเรียนที่ 7: การเตรียมข้อมูลส่วนตัว: การโหลดและแปลงเป็นเวกเตอร์

ภาพรวม: บทเรียนนี้ครอบคลุมขั้นตอนแรกของการสร้างระบบการเพิ่มเติมข้อมูลจากแหล่งข้อมูล (Retrieval Augmented Generation - RAG) โดยใช้ LangChain นำนักพัฒนาผ่านขั้นตอนการโหลดข้อมูลที่ไม่มีโครงสร้างจากแหล่งต่าง ๆ (ไฟล์ PDF, วิดีโอยูทูบ, เว็บไซต์, โนชัน) การแบ่งข้อมูลออกเป็นช่วงที่มีความหมายทางความหมาย และแปลงช่วงเหล่านั้นให้กลายเป็นเวกเตอร์เชิงตัวเลขเพื่อจัดเก็บและค้นหาความคล้ายคลึงในคลังเวกเตอร์

ผลลัพธ์การเรียนรู้:

  • ใช้ตัวโหลดข้อมูล (Document Loaders) ของ LangChain หลากหลายรูปแบบเพื่อดึงข้อมูลจากไฟล์ PDF, ข้อความเสียงยูทูบ, ลิงก์เว็บ และฐานข้อมูลโนชัน
  • กำหนดค่าและเปรียบเทียบตัวแบ่งข้อความ (Text Splitters) ต่าง ๆ (แบบตัวอักษร, แบบเรียกซ้ำ, แบบโทเค็น และแบบมาร์กดาวน์) โดยใช้พารามิเตอร์เช่น ขนาดช่วง (chunk_size) และการทับซ้อนช่วง (chunk_overlap)
  • ดำเนินการแปลงเป็นเวกเตอร์โดยการสร้างเวกเตอร์และจัดเก็บไว้ในคลังเวกเตอร์ของ Chroma เพื่อให้สามารถค้นหาความคล้ายคลึงเชิงความหมายได้

🔹 บทเรียนที่ 8: การเพิ่มเติมข้อมูลจากแหล่งข้อมูล (RAG) และการโต้ตอบ

ภาพรวม: เนื้อหานี้สำรวจการเปลี่ยนจากการค้นหาเชิงความหมายพื้นฐาน ไปสู่เทคนิคขั้นสูงด้านการดึงข้อมูลและการโต้ตอบเชิงบทสนทนาในแอปพลิเคชันโมเดลภาษาขนาดใหญ่ ครอบคลุมเทคนิคการดึงข้อมูลขั้นสูง เช่น การค้นหาที่มีความหลากหลายสูงสุด (Maximum Marginal Relevance - MMR), การกรองตามเมตาดาต้า และการบีบอัดบริบท ก่อนแสดงวิธีการสร้างสายการเชื่อมต่อคำถาม-คำตอบที่มีสถานะ และบอทสนทนาแบบครบวงจรโดยใช้หน่วยความจำและส่วนประกอบกราฟิกของ LangChain

ผลลัพธ์การเรียนรู้:

  • ใช้กลยุทธ์การดึงข้อมูลขั้นสูง (MMR, Self-Querying, และ การบีบอัด) เพื่อเพิ่มความหลากหลายและความเกี่ยวข้องของเอกสารที่ดึงมา
  • เปรียบเทียบและใช้งานประเภทสายการเชื่อมต่อต่าง ๆ (stuff, MapReduce, Refine) เพื่อประมวลผลบริบทที่ดึงมาในงานตอบคำถาม
  • สร้างอินเทอร์เฟซบอทสนทนาที่มีสถานะโดยใช้ ConversationalRetrievalChain และ ConversationBufferMemory เพื่อรักษาบริบทการสนทนา