ปัญญาประดิษฐ์
NLP Rise with Transformer Models | การวิเคราะห์ที่ครอบคลุมของ T5, BERT และ GPT

การประมวลผลภาษาธรรมชาติ (NLP) ได้รับผลกระทบอย่างมากจากความก้าวหน้าในหลายๆ ด้าน โดยเฉพาะอย่างยิ่งจากสถาปัตยกรรม Transformer ซึ่งช่วยให้เครื่องจักรสามารถเข้าใจและสร้างภาษาของมนุษย์ได้ดีขึ้น และยังเปลี่ยนแปลงภูมิทัศน์ของหลายๆ แอปพลิเคชัน ตั้งแต่เครื่องมือค้นหาไปจนถึง AI ที่สามารถสนทนาได้
เพื่อทำความเข้าใจถึงความสำคัญของ Transformer เราต้องมองย้อนกลับไปที่เทคนิคและรากฐานที่วางไว้ก่อนหน้านี้
เทคนิค NLP ในยุคแรกๆ : รากฐานก่อน Transformer
การฝังตัวของคำ : จาก One-Hot ถึง Word2Vec
ในแนวทาง NLP แบบดั้งเดิม การแสดงคำเป็นแบบที่ไม่มีความหมายหรือความสัมพันธ์ใดๆ กับคำอื่น การเข้ารหัสแบบ One-Hot เป็นตัวอย่างที่ชัดเจนของข้อจำกัดนี้
การเข้ารหัสแบบ One-Hot คือกระบวนการที่ตัวแปรประเภทจะถูกแปลงเป็นเวกเตอร์ทวินาม โดยที่บิตเดียวจะถูกตั้งค่าเป็น “1” และบิตอื่นๆ จะถูกตั้งค่าเป็น “0” ในบริบทของ NLP แต่ละคำในพจนานุกรมจะถูกแทนด้วยเวกเตอร์ One-Hot โดยที่แต่ละเวกเตอร์มีขนาดเท่ากับขนาดของพจนานุกรม และแต่ละคำจะถูกแทนด้วยเวกเตอร์ที่มี “0” ทั้งหมดและ “1” ที่ตำแหน่งที่สอดคล้องกับคำนั้นในรายการพจนานุกรม
ตัวอย่างของการเข้ารหัสแบบ One-Hot
สมมติว่าเรามีพจนานุกรมขนาดเล็กที่มีเพียง 5 คำ: [“king”, “queen”, “man”, “woman”, “child”] เวกเตอร์ One-Hot สำหรับแต่ละคำจะดูเหมือนนี้:
- “king” -> [1, 0, 0, 0, 0]
- “queen” -> [0, 1, 0, 0, 0]
- “man” -> [0, 0, 1, 0, 0]
- “woman” -> [0, 0, 0, 1, 0]
- “child” -> [0, 0, 0, 0, 1]
การแสดงทางคณิตศาสตร์
ถ้าเราแสดงขนาดของพจนานุกรมเป็น และเวกเตอร์ One-Hot ของคำที่ i ในพจนานุกรมเป็น การแสดงทางคณิตศาสตร์ของ จะเป็น:
โดยที่ตำแหน่งที่ i จะเป็น 1 และตำแหน่งอื่นๆ จะเป็น 0
ข้อเสียหลักของการเข้ารหัสแบบ One-Hot คือการรักษาคำแต่ละคำเป็นหน่วยที่แยกจากกัน โดยไม่มีความสัมพันธ์กับคำอื่นๆ ส่งผลให้เวกเตอร์เป็นแบบกระจายและมีมิติสูง ซึ่งไม่สามารถจับข้อมูลเชิงความหมายหรือเชิงไวยากรณ์ของคำได้
การแนะนำการฝังตัวของคำ (Word Embeddings) โดยเฉพาะ Word2Vec ถือเป็นช่วงเวลาสำคัญใน NLP ซึ่งพัฒนาโดยทีมงานที่ Google ภายใต้การนำของ Tomas Mikolov ในปี 2013 Word2Vec แสดงคำในพื้นที่เวกเตอร์ที่หนาแน่น โดยจับความสัมพันธ์เชิงไวยากรณ์และความหมายของคำตามบริบทภายในข้อความขนาดใหญ่
ไม่เหมือนกับการเข้ารหัสแบบ One-Hot Word2Vec สร้างเวกเตอร์ที่หนาแน่น โดยทั่วไปมีหลายร้อยมิติ คำที่ปรากฏในบริบทที่คล้ายกัน เช่น “king” และ “queen” จะมีการแสดงเวกเตอร์ที่ใกล้กันในพื้นที่เวกเตอร์
สำหรับการแสดงภาพ สมมติว่าเราทราบ Word2Vec ในพื้นที่ 3 มิติ (ซึ่งลดลงจากมิติจริงเพื่อความง่าย) การฝังตัวของคำอาจดูเหมือนนี้:
- “king” -> [0.2, 0.1, 0.9]
- “queen” -> [0.21, 0.13, 0.85]
- “man” -> [0.4, 0.3, 0.2]
- “woman” -> [0.41, 0.33, 0.27]
- “child” -> [0.5, 0.5, 0.1]
ตัวเลขเหล่านี้เป็นตัวอย่างเท่านั้น แต่แสดงให้เห็นว่าคำที่คล้ายกันมีเวกเตอร์ที่คล้ายกัน
การแสดงทางคณิตศาสตร์
ถ้าเราแสดงการฝังตัวของคำ Word2Vec เป็น , และพื้นที่การฝังตัวมีมิติ แล้ว สามารถแสดงเป็น:
ความสัมพันธ์เชิงความหมาย
Word2Vec ยังสามารถจับความสัมพันธ์ที่ซับซ้อน เช่น ความคล้ายคลึงกัน ตัวอย่างเช่น ความสัมพันธ์ที่มีชื่อเสียงที่ Word2Vec จับได้คือ:
เวกเตอร์(“king”) – เวกเตอร์(“man”) + เวกเตอร์(“woman”) ≈ เวกเตอร์(“queen”)
สิ่งนี้เป็นไปได้เพราะ Word2Vec ปรับเวกเตอร์ของคำระหว่างการฝึกให้คำที่ปรากฏในบริบทที่คล้ายกันในข้อความจะอยู่ใกล้กันในพื้นที่เวกเตอร์
Word2Vec ใช้สถาปัตยกรรมหลักสองแบบในการสร้างการแทนคำแบบกระจาย: Continuous Bag-of-Words (CBOW) และ Skip-Gram CBOW คาดการณ์คำเป้าหมายจากคำบริบทที่อยู่รอบๆ ในขณะที่ Skip-Gram ทำสิ่งที่ตรงกันข้าม โดยคาดการณ์คำบริบทจากคำเป้าหมาย สิ่งนี้ทำให้เครื่องจักรสามารถเข้าใจการใช้คำและความหมายได้อย่างละเอียดมากขึ้น
การสร้างแบบจำลองลำดับ: RNNs และ LSTMs
เมื่อภาค NLP ก้าวหน้า ความสนใจได้เปลี่ยนไปสู่การทำความเข้าใจลำดับข้อความ ซึ่งจำเป็นสำหรับงานเช่น การแปลภาษา การสรุปข้อความ และการวิเคราะห์ความรู้สึก เครือข่ายประสาทรับแบบเรียกซ้ำ (RNNs) กลายเป็นรากฐานสำหรับการใช้งานเหล่านี้ เนื่องจากความสามารถในการจัดการข้อมูลลำดับโดยการรักษาหน่วยความจำบางอย่าง
อย่างไรก็ตาม RNNs ไม่ได้ปราศจากข้อจำกัด พวกมันประสบปัญหาในการจัดการความสัมพันธ์ระยะไกลเนื่องจากปัญหาการจางหายของเกรเดียนต์ ซึ่งทำให้ข้อมูลสูญหายไปตามลำดับยาว ทำให้ยากที่จะเรียนรู้ความสัมพันธ์ระหว่างเหตุการณ์ที่อยู่ห่างไกล
เครือข่ายความจำระยะสั้นและระยะยาว (LSTMs) ซึ่งแนะนำโดย Sepp Hochreiter และ Jürgen Schmidhuber ในปี 1997 ได้กล่าวถึงปัญหานี้ด้วยสถาปัตยกรรมที่ซับซ้อนกว่า LSTMs มีเกตที่ควบคุมการไหลของข้อมูล: เกตการรับเข้า เกตการลบ และเกตการแสดงผล เกตเหล่านี้กำหนดข้อมูลที่จะถูกเก็บไว้ อัปเดต หรือทิ้งไป ทำให้เครือข่ายสามารถรักษาความสัมพันธ์ระยะไกลและปรับปรุงประสิทธิภาพในการทำงาน NLP ได้อย่างมาก
สถาปัตยกรรม Transformer
ภาค NLP ได้รับการเปลี่ยนแปลงอย่างมากด้วยการแนะนำโมเดล Transformer ในเอกสาร “Attention is All You Need” โดย Vaswani et al. ในปี 2017 สถาปัตยกรรม Transformer หันเหจากกระบวนการแบบลำดับของ RNNs และ LSTMs และใช้กลไกที่เรียกว่า ‘การดูแลตนเอง’ (self-attention) เพื่อชั่งน้ำหนักความสำคัญของส่วนต่างๆ ของข้อมูลเข้า
แนวคิดหลักของ Transformer คือสามารถประมวลผลข้อมูลเข้าทั้งหมดในครั้งเดียว ไม่ใช่แบบลำดับ ทำให้สามารถขนานการประมวลผลได้มากขึ้น และเพิ่มความเร็วในการฝึกอบรมอย่างมาก กลไกการดูแลตนเองช่วยให้โมเดลสามารถมุ่งความสนใจไปที่ส่วนต่างๆ ของข้อความตามที่กำลังประมวลผล ซึ่งจำเป็นต่อการทำความเข้าใจบริบทและความสัมพันธ์ระหว่างคำ ไม่ว่าจะอยู่ในตำแหน่งใดในข้อความ
การเข้ารหัสและตัวถอดรหัสใน Transformer:
ในโมเดล Transformer เดิมตามที่อธิบายไว้ในเอกสาร “Attention is All You Need” โดย Vaswani et al. สถาปัตยกรรมแบ่งออกเป็นสองส่วนหลัก: การเข้ารหัส (Encoder) และตัวถอดรหัส (Decoder) ทั้งสองส่วนประกอบด้วยชั้นที่มีโครงสร้างทั่วไป แต่มีหน้าที่ต่างกัน
การเข้ารหัส:
- บทบาท: บทบาทของการเข้ารหัสคือการประมวลผลข้อมูลเข้าและสร้างการแสดงผลที่จับความสัมพันธ์ระหว่างองค์ประกอบ (เช่น คำในประโยค) ส่วนนี้ของ Transformer ไม่สร้างเนื้อหใหม่ แต่แปลงข้อมูลเข้าให้อยู่ในรูปแบบที่ตัวถอดรหัสสามารถใช้ได้
- การทำงาน: แต่ละชั้นของการเข้ารหัสมีกลไกการดูแลตนเองและเครือข่ายประสาทแบบฟีดฟอร์เวิร์ด (Feed-Forward Neural Networks) กลไกการดูแลตนเองทำให้ทุกตำแหน่งในตัวเข้ารหัสสามารถดูแลตำแหน่งทั้งหมดในชั้นก่อนหน้าของตัวเข้ารหัสได้ ทำให้สามารถเรียนรู้บริบทรอบๆ คำได้
- การฝังตัวเชิงบริบท: ผลลัพธ์ของการเข้ารหัสคือชุดของเวกเตอร์ที่แสดงข้อมูลเข้าในพื้นที่มิติสูง เวกเตอร์เหล่านี้เรียกว่าการฝังตัวเชิงบริบท (Contextual Embeddings) เพราะไม่เพียงแต่แสดงคำแต่ละคำเท่านั้น แต่ยังแสดงบริบทภายในประโยคด้วย
ตัวถอดรหัส:
- บทบาท: บทบาทของตัวถอดรหัสคือการสร้างข้อมูลออกไปอย่างลำดับ โดยอาศัยข้อมูลเข้าที่ได้รับจากตัวเข้ารหัสและผลลัพธ์ที่ได้สร้างขึ้นจนถึงขณะนั้น ตัวถอดรหัสถูกออกแบบมาเพื่อใช้ในงานเช่น การสร้างข้อความ
- การทำงาน: ชั้นของตัวถอดรหัสมีกลไกการดูแลตนเองเช่นกัน แต่ถูกปิดบังเพื่อป้องกันตำแหน่งที่จะดูแลตำแหน่งที่ตามมา ซึ่งทำให้การคาดการณ์สำหรับตำแหน่งใดๆ ขึ้นอยู่กับผลลัพธ์ที่ทราบก่อนหน้านั้นเท่านั้น นอกจากนี้ ชั้นของตัวถอดรหัสยังมีกลไกการดูแลตนเองอีกแบบหนึ่งที่ดูแลผลลัพธ์ของตัวเข้ารหัส ซึ่งรวมบริบทจากข้อมูลเข้าเข้ากับการสร้างข้อมูลออก
- การสร้างลำดับ: หมายถึงความสามารถของตัวถอดรหัสในการสร้างลำดับไปทีละขั้น โดยอาศัยบริบทที่ได้รับจากตัวเข้ารหัสและลำดับที่สร้างขึ้นจนถึงขณะนั้น ตัวอย่างเช่น เมื่อสร้างข้อความ ตัวถอดรหัสจะคาดการณ์คำถัดไปตามบริบทที่ได้รับจากตัวเข้ารหัสและคำที่สร้างขึ้นแล้ว
ทุกๆ ชั้นย่อยในตัวเข้ารหัสและตัวถอดรหัสมีความสำคัญต่อความสามารถของโมเดลในการจัดการงาน NLP ที่ซับซ้อน กลไกการดูแลตนเองหลายหัวทำให้โมเดลสามารถเลือกดูแลส่วนต่างๆ ของลำดับได้ และให้ความเข้าใจที่ลึกซึ้งเกี่ยวกับบริบท
โมเดลยอดนิยมที่ใช้ Transformer
หลังจากความสำเร็จของโมเดล Transformer มีการพัฒนาโมเดลใหม่ๆ ที่สร้างขึ้นจากสถาปัตยกรรมนี้ โดยมีการปรับปรุงและนวัตกรรมสำหรับงานต่างๆ ;
BERT (Bidirectional Encoder Representations from Transformers): เปิดตัวโดย Google ในปี 2018 BERT เปลี่ยนแปลงวิธีการรวมข้อมูลเชิงบริบทเข้ากับการแสดงคำ โดยการฝึกอบรมบนข้อความขนาดใหญ่ด้วยโมเดลภาษาที่ปิดบังและคาดการณ์ว่าประโยคถัดไป BERT จับบริบทเชิงสองทิศทางและบรรลุผลลัพธ์ที่ดีที่สุดในงาน NLP หลากหลายประเภท
T5 (Text-to-Text Transfer Transformer): เปิดตัวโดย Google ในปี 2020 T5 นำงาน NLP ทั้งหมดมาเป็นปัญหาแบบข้อความต่อข้อความ โดยใช้รูปแบบข้อความที่เป็นเอกภาพ สิ่งนี้ทำให้การนำโมเดลไปใช้กับงานต่างๆ เช่น การแปล การสรุป และการตอบคำถาม เป็นกระบวนการที่เรียบง่าย
GPT (Generative Pre-trained Transformer): พัฒนาโดย OpenAI โมเดล GPT เริ่มตั้งแต่ GPT-1 และถึง GPT-4 ในปี 2023 โมเดลเหล่านี้ถูกฝึกอบรมโดยไม่มีการกำกับบนข้อมูลข้อความขนาดใหญ่ และปรับให้เหมาะสมสำหรับงานต่างๆ ความสามารถในการสร้างข้อความที่สอดคล้องและเกี่ยวข้องกับบริบททำให้พวกมันมีอิทธิพลอย่างมากทั้งในด้านวิชาการและพาณิชย์
นี่คือการเปรียบเทียบ T5, BERT และ GPT ในหลายๆ มิติ:
1. การแบ่งคำและพจนานุกรม
- BERT: ใช้การแบ่งคำ WordPiece โดยมีขนาดพจนานุกรมประมาณ 30,000 คำ
- GPT: ใช้การเข้ารหัสแบบ Byte Pair Encoding (BPE) โดยมีขนาดพจนานุกรมขนาดใหญ่ (เช่น GPT-3 มีขนาดพจนานุกรม 175,000)
- T5: ใช้การแบ่งคำ SentencePiece ซึ่งรับข้อความเป็นข้อความดิบโดยไม่ต้องแบ่งคำล่วงหน้า
2. วัตถุประสงค์การฝึกอบรมก่อน
- BERT: ใช้การสร้างแบบจำลองภาษาที่ปิดบังและคาดการณ์ประโยคถัดไป
- GPT: ใช้การสร้างแบบจำลองภาษาที่เป็นเหตุผล โดยที่แต่ละโทเค็นจะคาดการณ์โทเค็นถัดไปในลำดับ
- T5: ใช้วัตถุประสงค์การทำให้เสียหาย โดยที่ส่วนของข้อความจะถูกแทนที่ด้วยโทเค็นรักษาความปลอดภัยและโมเดลจะเรียนรู้เพื่อสร้างข้อความดั้งเดิมขึ้นมาใหม่
3. การแสดงข้อมูลเข้า
- BERT: ใช้การฝังตัวของโทเค็น การแบ่งส่วน และการฝังตัวเชิงตำแหน่งเพื่อแสดงข้อมูลเข้า
- GPT: ใช้การฝังตัวของโทเค็นและตำแหน่ง (ไม่มีการแบ่งส่วนเนื่องจากไม่ได้ออกแบบมาเพื่อทำงานแบบคู่ประโยค)
- T5: ใช้การฝังตัวของโทเค็นโดยเพิ่มการฝังตัวเชิงตำแหน่งแบบสัมพัทธ์ระหว่างการดำเนินการดูแลตนเอง
4. กลไกการดูแลตนเอง
- BERT: ใช้การฝังตัวเชิงตำแหน่งแบบสัมบูรณ์และอนุญาตให้แต่ละโทเค็นดูแลโทเค็นทั้งซ้ายและขวา (การดูแลตนเองแบบสองทิศทาง)
- GPT: ใช้การฝังตัวเชิงตำแหน่งแบบสัมบูรณ์เช่นกัน แต่จำกัดการดูแลตนเองให้เฉพาะโทเค็นก่อนหน้าเท่านั้น (การดูแลตนเองแบบหนึ่งทิศทาง)
- T5: ใช้การดูแลตนเองแบบสัมพัทธ์แทนการฝังตัวเชิงตำแหน่ง
5. สถาปัตยกรรมโมเดล
- BERT: ใช้สถาปัตยกรรมตัวเข้ารหัสเท่านั้น โดยมีหลายชั้นของบล็อก Transformer
- GPT: ใช้สถาปัตยกรรมตัวถอดรหัสเท่านั้น โดยมีหลายชั้นเช่นกัน แต่ออกแบบมาเพื่องานสร้างข้อความ
- T5: ใช้สถาปัตยกรรมตัวเข้ารหัส-ตัวถอดรหัส โดยที่ทั้งตัวเข้ารหัสและตัวถอดรหัสประกอบด้วยชั้นของ Transformer
6. วิธีการปรับให้เหมาะสม
- BERT: ปรับให้เหมาะสมด้วยการเพิ่มชั้นผลลัพธ์บนโมเดลที่ฝึกอบรมไว้ล่วงหน้าตามที่จำเป็นสำหรับงานที่จะทำ
- GPT: เพิ่มชั้นเชิงเส้นบนยอดของ Transformer และปรับให้เหมาะสมบนงานที่จะทำโดยใช้วัตถุประสงค์การสร้างแบบจำลองภาษาที่เป็นเหตุผล
- T5: แปลงงานทั้งหมดให้เป็นรูปแบบข้อความต่อข้อความ โดยที่โมเดลจะถูกปรับให้เหมาะสมเพื่อสร้างลำดับเป้าหมายจากลำดับข้อมูลเข้า
7. ข้อมูลฝึกอบรมและขนาด
- BERT: ฝึกอบรมบน BooksCorpus และวิกิพีเดียภาษาอังกฤษ
- GPT: GPT-2 และ GPT-3 ถูกฝึกอบรมบนชุดข้อมูลที่หลากหลายที่ถูกดึงมาจากอินเทอร์เน็ต โดยที่ GPT-3 ถูกฝึกอบรมบนชุดข้อมูลขนาดใหญ่กว่าเรียกว่า Common Crawl
- T5: ฝึกอบรมบน “Colossal Clean Crawled Corpus” ซึ่งเป็นชุดข้อมูลขนาดใหญ่และสะอาดของ Common Crawl
8. การจัดการบริบทและทิศทาง
- BERT: ออกแบบมาเพื่อทำความเข้าใจบริบทในสองทิศทางพร้อมๆ กัน
- GPT: ฝึกอบรมเพื่อทำความเข้าใจบริบทในทิศทางหนึ่ง (ซ้ายไปขวา)
- T5: สามารถสร้างแบบจำลองบริบทสองทิศทางในตัวเข้ารหัสและทิศทางเดียวในตัวถอดรหัส ซึ่งเหมาะสำหรับงานลำดับต่อลำดับ
9. การปรับให้เหมาะสมกับงานที่จะทำ
- BERT: ต้องการชั้นหัวที่เฉพาะเจาะจงสำหรับงานและปรับให้เหมาะสมสำหรับงานที่จะทำ
- GPT: มีลักษณะการสร้างข้อความและสามารถถูกกระตุ้นให้ทำงานต่างๆ โดยไม่ต้องเปลี่ยนแปลงโครงสร้างมาก
- T5: รับงานทั้งหมดเป็นปัญหาแบบข้อความต่อข้อความ ทำให้มีความยืดหยุ่นและสามารถปรับให้เหมาะสมกับงานใหม่ๆ ได้
10. ความสามารถในการอธิบาย
- BERT: ลักษณะสองทิศทางให้การฝังตัวเชิงบริบทที่มีคุณภาพสูง แต่อาจยากต่อการอธิบาย
- GPT: ทิศทางเดียวอาจทำให้การอธิบายง่ายขึ้น แต่ขาดความลึกของบริบทสองทิศทาง
- T5: โครงสร้างตัวเข้ารหัส-ตัวถอดรหัสให้การแยกกระบวนการประมวลผลที่ชัดเจน แต่อาจซับซ้อนในการวิเคราะห์เนื่องจากลักษณะการสร้างข้อความ
ผลกระทบของ Transformer ต่อ NLP
Transformer ได้ปฏิวัติภาค NLP โดยทำให้โมเดลสามารถประมวลผลลำดับข้อมูลแบบขนาน ซึ่งเพิ่มความเร็วและประสิทธิภาพในการฝึกอบรมเครือข่ายประสาทเทียมขนาดใหญ่ พวกมันนำกลไกการดูแลตนเองมาใช้ ซึ่งช่วยให้โมเดลสามารถชั่งน้ำหนักความสำคัญของส่วนต่างๆ ของข้อมูลเข้าได้ โดยไม่จำกัดระยะห่างภายในลำดับ สิ่งนี้นำไปสู่การปรับปรุงที่ไม่เคยเห็นมาก่อนในงาน NLP หลากหลายงาน รวมถึงการแปล การตอบคำถาม และการสรุปข้อความ
การวิจัยยังคงผลักดันขอบเขตของสิ่งที่โมเดลที่ใช้ Transformer สามารถทำได้ GPT-4 และรุ่นร่วมสมัยไม่เพียงแต่ใหญ่ขึ้นเท่านั้น แต่ยังได้รับการปรับปรุงด้านสถาปัตยกรรมและวิธีการฝึกอบรม ทำให้พวกมันมีประสิทธิภาพและความสามารถมากขึ้น เทคนิคเช่นการเรียนรู้แบบไม่ต้องมีตัวอย่างมาก (few-shot learning) และวิธีการถ่ายทอดการเรียนรู้ที่มีประสิทธิภาพมากขึ้นอยู่ในจุดสนใจของการวิจัยในปัจจุบัน
โมเดลภาษาเช่นโมเดลที่ใช้ Transformer จะเรียนรู้จากข้อมูลซึ่งอาจมีอคติอยู่ นักวิจัยและผู้ปฏิบัติงานกำลังทำงานอย่างแข็งขันเพื่อระบุ อธิบาย และบรรเทาอคติเหล่านี้ วิธีการต่างๆ ตั้งแต่การรวบรวมชุดข้อมูลฝึกอบรมที่คัดเลือกมาอย่างดีจนถึงการปรับเปลี่ยนหลังการฝึกอบรมเพื่อความยุติธรรมและความเป็นกลาง















