Deep Language & Knowledge Understanding Series : เจาะลึกความสามารถด้าน "ภาษา" และ "ความรู้" ของโมเดล AI ที่ดีที่สุด  

  RSS
The Neural Engineer
(@neural-engineer)
Boltzmann Machine

ตอนปฐมบท

ปรากฏการณ์ "Clever Hans" บน NLP  (หรือ Deep NLP ไม่ได้เก่งอย่างที่คิด)

By ThaiKeras and Kaggle (28 Jan 2562)

สวัสดีครับเพื่อนๆ วันนี้ขออนุญาตเจาะประเด็นเรื่อง ‘’โมเดล AI กลุ่ม Deep NLP ที่ขึ้นชื่อว่าเก่งกาจด้านภาษาสุดๆ นั้นแท้จริงแล้วเข้าใจ ภาษามนุษย์จริงหรือไม่”

ในตอนที่แล้วเราได้พูดถึงปรากฏการณ์ “Clever Hans” หรือเจ้าม้าแสนรู้ฮันส์ไปแล้ว ( http://bit.ly/thaikeras-nlp-hans) โดยมีหัวใจสำคัญอยู่ที่ว่า เจ้าม้าฮันส์ที่ดูฉลาดมากตอบคำถามได้ทุกเรื่อง โดยที่ไม่มีการตุกติกอะไรทั้งสิ้น แท้จริงแล้วมันไม่ได้มีความรู้อะไรเลย!! ปรากฏการณ์นี้แสดงให้เห็นว่า “การวัดความฉลาด” นั้นยากกว่าที่คิด และไม่สามารถนำผลการทดลอง (ที่ไม่รัดกุม) มาวัดได้เลย

ล่าสุดในงานประชุมวิชาการ ACL 2019 ที่เป็นหนึ่งในงานประชุม NLP (งาน AI เกี่ยวกับการเข้าใจภาษามนุษย์) ที่ดีที่สุดในโลก ก็ได้มีนักวิจัยจากหลายแห่งชำแหละปรากฏการณ์เดียวกันนี้ของโมเดล AI หรือ Deep Learning ฝั่ง NLP ระดับสุดยอดเช่น BERT

(ดูเรื่้อง BERT ได้ที่ http://bit.ly/thaikeras-nlp-transfer ) ว่าแท้จริงโมเดลอัจฉริยะเหล่านี้อาจ “ไม่ได้รู้อะไรเกี่ยวกับภาษามนุษย์” เลย นอกจากมีความเชี่ยวชาญเรื่อง “สถิติ” ของคำต่างๆ เท่านั้น และทำให้นักวิจัยต่างกล่าวว่านี่คือปรากฏการณ์ “Clever Hans Moment ในวงการ NLP” เลยทีเดียว!! (ดูอ้างอิง 1.) เหตุการณ์นี้เป็นอย่างไรลองมาฟังรายละเอียดกันครับ

รูปที่ ล้อเลียน BERT สุดยอดโมเดล AI ในงานด้าน NLP หรือด้านภาษามนุษย์ ว่าแท้จริงแล้วเปรียบเสมือนฮันส์ คือไม่ได้รู้เรื่องอะไรเกี่ยวกับภาษาอย่างแท้จริงเลย (ภาพจากอ้างอิง 1.) 

การวัดความฉลาดทางภาษาด้วยการตอบปัญหาทางตรรกะ

เหตุการณ์นี้เริ่มต้นจากการวัดความเข้าใจในภาษามนุษย์ของโมเดล Deep Learning นั้นจะวัดผลจาก Dataset ที่แล็บต่างๆ รวบรวมมาจากแหล่งข้อมูลทั่วโลก โดยตัวอย่าง Dataset หนึ่งที่ได้รับการยอมรับว่า “น่าจะ” วัดความเข้าใจภาษามนุษย์ของ AI ได้ก็คือ Dataset ขนาดใหญ่ที่มีชื่อว่า Multi-Genre Natural Language Inference (MNLI) ที่มหาวิทยาลัยระดับโลกอย่าง New York University เป็นผู้รวบรวมขึ้นมา โดย Dataset นี้จะมุ่งทดสอบปัญหาความเข้าใจ “ตรรกะ” ซึ่งอธิบายได้ดังนี้

กำหนดให้โมเดล AI เช่น BERT (ซึ่งถูกฝึกมาอย่างดี) อ่านประโยคสองประโยค แล้วต้องตอบว่า ”ประโยคที่สองนั้นเกี่ยวข้องกับประโยคแรกหรือไม่” โดยมีคำตอบที่เป็นไปได้สามแบบดังนี้

1. ประโยคสอง “สรุปได้“ จากประโยคแรก — (entailment) ประโยคแรก: The doctor was paid by the actor ประโยคสอง: The actor pays the doctor

2. ประโยคสอง “ขัดแย้ง” กับประโยคแรก — (contradiction) ประโยคแรก: The doctor was paid by the actor ประโยคสอง: The actor does not pay the doctor

3. ประโยคสอง “ไม่เกี่ยว” กับประโยคแรก — (neutral) ประโยคแรก: The doctor was paid by the actor ประโยคสอง: The doctor and the actor have fun together

โดย Dataset MNLI นี้มีขนาดใหญ่ถึง 433,000 คู่ประโยค มาจากหลายแหล่ง และแต่ละประโยค ค่อนข้างมีความหลากหลายและซับซ้อนทางไวยากรณ์กว่าตัวอย่างที่แสดงข้างต้นมาก (ผู้สนใจดูตัวอย่างที่เอกสารอ้างอิง 2. ) ทั้งนี้เพื่อใช้ทดสอบให้แน่ใจว่าโมเดลนั้นเข้าใจภาษาจริงหรือไม่ สมมติฐานก็คือถ้าโมเดลสามารถตอบคำถามในคู่ประโยคที่มีความซับซ้อนระดับนี้ เป็นจำนวนมหาศาลได้ถูกต้องจริง นั่นก็แปลว่า “โมเดลมีความเข้าใจภาษาอย่างแท้จริง”

แต่สมมติฐานนี้เป็นจริงหรือไม่?

 

ความทรงพลังของสถิติและจุดอ่อนของ Datasets

นักวิจัยสองกลุ่มจาก John Hopkins และ Taiwan ได้ทำการทดลองอย่างละเอียดและพบว่า “สถิติ” ของกลุ่มคำนั้นมีพลังมากกว่าที่เราคิด โดยจุดอ่อนของ MNLI ก็คือ ถึงแม้ว่าข้อมูลจะมีความหลากหลายและซับซ้อนสูง Datasets ชุดนี้ก็ยังมีจุดร่วมบางอย่างอยู่ที่ทำให้โมเดลสามารถสร้าง “กลวิธีในการเดาคำตอบ” (Heuristic) ได้

รูปที่ ตัวอย่างวิธีการเดา (heuristic) ที่ทีมวิจัยพบว่า BERT นำมาใช้ 

ทีมวิจัยพบว่าแท้จริงแล้ว โมเดล “ค้นพบ” ถึง “วิธีการเดาอย่างง่ายๆ” (Heuristic) ดังปรากฏในรูปที่ 2 ตัวอย่างเช่น

ถ้าประโยคที่ 2 มี substring ที่สอดคล้องกับประโยคที่ 1 มาก ให้ตอบว่า ประโยคที่ 2 “สรุปได้“ (entailment) จากประโยคที่ 1 (ดูตัวอย่างในคอลัมภ์สุดท้ายของรูปที่ 2.)

วิธีการเดานี้แม้ไม่ถูกต้อง 100% แต่ก็ให้ผลลัพธ์ถูกต้องราวๆ 80% บน MNLI ซึ่งเพียงพอในการจะ “หลอก” มนุษย์อย่างพวกเราว่า ”AI นั้นเก่งจริง!!”

อย่างน้อยก็เก่งเหมือนเจ้าม้าฮันส์ที่สามารถคิดวิธี “เดา” เหล่านี้ได้เอง โดยวิธีการเดาเหล่านี้สามารถใช้ได้กับข้อมูลทั่วๆ ไปจริง แต่สามารถตอบผิดได้ 100% ถ้าผู้ถามทราบวิธีการเดาเหล่านี้

 

ทำไม Datasets ถึงมีจุดอ่อนง่ายๆ แบบนี้?

ถึงแม้ว่าทีม NYU ซึ่งเป็นผู้รวบรวม Dataset MNLI ได้พยายามรวบรวมรูปประโยคจากหลายแหล่งในโลก ทว่าก็ยังเป็นรูปประโยคที่พบได้ทั่วไป และ “ไม่ได้” ถูกออกแบบมาเพื่อ “ดักวิธีการเดาง่ายๆ“ เหล่านี้ ซึ่งแสดงให้เห็นว่าการออกแบบการทดลอง และ Datasets มีความสำคัญมาก

 

เจ้าม้า BERT ผู้ซึ่งถูกจับได้ และตอบผิดเกือบ 100% ซึ่งทีมวิจัยได้ทดสอบด้วยการออกแบบและสร้าง Dataset NLI อีกชุดที่เรียกว่า HANS (ล้อเลียนเจ้าม้าฮันส์) ซึ่งย่อมาจาก “Heuristic Analysis for NLI System” โดยจงใจสร้างประโยคที่ 2 ให้ขัดแย้งกับประโยคที่ 1 ถึงแม้ประโยคที่ 2 จะเป็น substring ของประโยคแรกก็ตาม ดูตัวอย่างประโยคในคอลัมภ์สุดท้ายของรูปที่ 2 ครับ

และพบว่าเมื่อให้เจ้าม้า BERT ที่มีความแม่นยำสูงใน MNLI มาทดสอบใน Dataset HANS นี้ (ซึ่งมนุษย์เราตอบได้ถูกเกือบ 100%) ปรากฏว่าเจ้าม้า BERT จะตอบผิดเกือบ 100% เลยครับ!!!

แสดงว่า BERT ที่ปรากฏตามงานวิจัยที่ผ่านมาว่าเข้าใจภาษามนุษย์อย่างดีนั้น ไม่ได้เข้าใจภาษามนุษย์เลย!! (แบบเดียวกับม้าฮันส์เป้ะ)

 

ความสำคัญของการทำนาย “ข้อมูลที่ไม่ค่อยพบเจอ” หลายคนอาจสงสัยว่า "แล้วความรู้ทางสถิติที่สอดคล้องจากข้อมูลมหาศาลมันไม่ดีตรงไหน มันยิ่งทำให้แม่นยำกับโลกความเป็นจริงไม่ใช่เหรอ"? คำตอบคือ ใช่ครับ มันอาจจะแม่นยำกับข้อมูล "ปกติ" แต่มันสามารถทำงานผิดพลาดได้ 100% (พูดภาษาบ้านๆ คือ ผิดแบบน่าอับอาย) ได้ตลอดเวลาถ้าเจอข้อมูลที่ "ไม่ค่อยได้พบเจอ" (หรือ “ไม่เคยเจอ”)

จุดนี้หลายคนอาจสงสัยต่อว่า เราต้องใส่ใจข้อมูลที่ “ไม่ค่อยเจอ” ด้วยเหรอ?

ขอตอบให้ชัดครับว่า เรา “จำเป็น” ต้องใส่ใจกับข้อมูลที่ “ไม่ปกติ” เหล่านี้ถ้าโมเดลของเราถูกนำไปใช้ในงานที่เกี่ยวข้องกับ "ความปลอดภัย" ต่างๆ

ลองจินตนาการถึงโลกอนาคตที่ AI ทำงานแทนมนุษย์เป็นเรื่องปกติ และเรายังไม่สามารถแก้จุดอ่อนนี้ได้ ย่อมเปิดโอกาสให้ผู้ไม่ประสงค์ดี หรือผู้ก่อการร้ายต่างๆ สามารถเล่นงานจุดอ่อนนี้ของ AI และทำให้ระบบความปลอดภัยต่างๆ ล้มเหลวได้ไม่เป็นท่าทันที ปัญหานี้จึงสำคัญมากๆ ในเหตุการณ์ที่ไม่ปกติแต่รุนแรงมากเหล่านี้ครับ

สำหรับผู้สนใจสามารถอ่านรายละเอียดเพิ่มเติมได้ในงานวิจัยฉบับเต็มในเอกสารอ้างอิง 3 และ 4 ครับ หรืออ่านบทความเพิ่มเติมในบทความเอกสารอ้างอิง 1. ครับ 😀

UPDATE กค. 2020 นักวิจัยได้คิดค้นวิธี syntactic data augmentation เพื่อให้เจ้าม้า Bert มีความเข้าใจ syntax ที่หลากหลายมากขึ้น และทำให้ไม่หลงกลข้อมูลใน Dataset HANS นี้ง่ายๆ โดยหลังจาก augment ไปแล้ว ความแม่นยำของ Bert บน Dataset HANS นั้นเพิ่มขึ้นหลายเท่าตัว ผู้สนใจดูเพิ่มได้ใน https://arxiv.org/pdf/2004.11999.pdf

เอกสารอ้างอิง

1. https://thegradient.pub/nlps-clever-hans-moment-has-arrived/

2. Dataset MNLI : https://www.nyu.edu/projects/bowman/multinli/

3. Right for the Wrong Reasons: Diagnosing Syntactic Heuristics in Natural Language Inference : https://www.aclweb.org/anthology/P19-1334.pdf

4. Probing Neural Network Comprehension of Natural Language Arguments : https://www.aclweb.org/anthology/P19-1459.pdf

 

This topic was modified 8 months ago 2 times by The Neural Engineer
อ้างอิง
Posted : 05/08/2020 5:26 am
The Neural Engineer
(@neural-engineer)
Boltzmann Machine

Deep Language & Knowledge Understanding Series ตอนที่ 1 การวัดความฉลาดของ AI

ARISTO - โมเดลแรกที่ทำข้อสอบวิทยาศาสตร์ระดับนานาชาติได้คะแนนระดับ "ยอดเยี่ยม"

ThaiKeras and Kaggle  26 กค. 2563

สวัสดีครับเพื่อนๆ ช่วงนี้ผมกำลังทำ short note เกี่ยวกับเรื่อง "AI เข้าใจภาษาและความรู้ระดับมนุษย์จริงหรือไม่ ในระดับไหน" ( Deep Language and Knowledge Understanding ) และเจอเรื่องที่น่าสนใจหลายเรื่องเลยอยากนำมาแชร์ให้เพื่อนๆ ด้วยครับ

เป็นที่ทราบกันดีว่าในงานหลายๆ ด้านที่เกี่ยวกับความรู้เฉพาะทาง โดยเฉพาะด้านเกมส์นั้น AI ฉลาดล้ำเหนือมนุษย์ไปแล้ว (เช่น เกมส์ด้านหมากรุก โกะ ที่ AI เก่งกว่าแชมป์โลกหรือแม้นแต่ StarCraft ที่ AI เหนือกว่า 99.8% ของผู้เล่นทั่วโลก -- ดูอ้างอิง 1)

อย่างไรก็ดี ถ้าเปลี่ยนมุมมองจากความรู้เฉพาะทางเป็นความรู้ท้่วไปแล้ว AI มีความรู้พื้นฐานทั่วไปในการใช้ชีวิตมากน้อยแค่ไหน ?? จะว่าไปสำหรับมนุษย์อย่างเราๆ เรามี "มาตรฐานในวัดความรู้พื้นฐานในการใช้ชีวิตกันอย่างไร" ?

มีหลายแนวคิดที่นำมาใช้ทดสอบการวัดความรู้นี้ เช่น แนวคิดแรกคือ ให้ AI "ตอบคำถามเรื่องตรรกะทางภาษา" ซึ่ง AI ทำคะแนนได้ดีมากๆ หลายชุดข้อมูล และก็ปรากฏเป็นข่าวดังบนหน้าหนังสือพิมพ์บ่อยครั้ง

ทว่าเมื่อนักวิจัยมีการวิเคราะห์อย่างละเอียดเพิ่มเติมในภายหลัง หลายๆ ชุดการทดสอบนั้นมีจุดอ่อนที่ผู้ออกแบบไม่คาดคิดนั่นคือ เพียง AI จดจำสถิติของคำที่ปรากฏขึ้นบ่อยๆ ในคำถามคำตอบได้ ก็สามารถนำไปสู่คำตอบที่ถูกต้องเป็นส่วนใหญ่ได้ ซึ่งนั่นแปลว่า AI นั้น "ลักไก่" หลอกพวกเราได้เท่านั้น (ซึ่งเราได้เล่าเรื่องนี้อย่างละเอียดในบทความชื่อ "

ปรากฏการณ์ "Clever Hans" บน NLP  (หรือ Deep NLP ไม่ได้เก่งอย่างที่คิด)" ตอนปฐมบทด้านบนครับ )

 

ChatBot & Turing Test

อีกมาตรฐานหนึ่งที่น่าสนใจมากๆ คือ "ความสามารถในการพูดตอบโต้กับมนุษย์" ซึ่งวิธีการทดสอบนี้มีรากความคิดมาจาก "นิยามความฉลาด" ของ AI ยุคเริ่มแรกที่มีชื่อเรียกว่า "Turing Test" ซึ่งคิดค้นโดย Alan Turing หนึ่งในบิดาของวงการคอมพิวเตอร์  โดยแนวคิดหลักอาจกล่าวได้คร่าวๆ ว่า "ถ้าคนที่คุยกับ AI แยกไม่ออกว่ากำลังคุยกับ AI หรือคุยกับคนอยู่ ก็แสดงว่า AI นั้นมีความฉลาดจริง"

อย่างไรก็ดีภายหลังพบว่า "มนุษย์เรานั้นถูกหลอกได้ง่ายกว่าที่คิด" โดยมีโปรแกรม chat ที่สอบผ่าน Turing Test ได้หลายโปรแกรม เพียงแต่นำข้อมูล "chat" ในอดีตมาเลือกตอบให้ถูกต้องเท่านั้น โดยโปรแกรมไม่ต้องเข้าใจความหมายของบทสนทนาเลย (ดูอ้างอิง 2. Section 1) นั่นคือ Turing Test อาจเหมาะนำมาทดสอบ "มนุษย์" มากกว่า AI  

ล่าสุดเมื่อปลายเดือน พ.ค. 2020 ทีม OpenAI ได้สร้างสุดยอดโมเดลชื่อว่า GPT-3 ได้และมีความสามารถในการเขียนบทความและพูดคุยที่ลึกล้ำมากกว่าโมเดลใดๆ ที่คนทั่วโลกเคยสร้างมา (สามารถดูตัวอย่างได้ที่นี่ : https://www.gwern.net/GPT-3 ) ซึ่งอาจได้ชื่อว่าเป็นโมเดลที่มีความฉลาดจริงๆ อย่างไรก็ดีโปรแกรม GPT-3 นี้ได้เปิดให้ใช้งานเพียงบุคคลไม่กี่กลุ่มเท่านั้น พวกเรายังไม่สามารถทดลองมันได้ จึงขอยกยอดเรื่อง GPT-3 ไว้เป็นบทความในอนาคตครับ

 

การสอบวัดความรู้มาตรฐานของโรงเรียน

มาตรฐานหนึ่งที่เป็นตัววัดความรู้สำหรับประชากรส่วนใหญ่ในโลก ก็คือ "การสอบวัดระดับ" นั่นเองครับ ลองคิดดูสมัยพวกเราเรียนป.6 เราก็ต้องทำการทดสอบวัดระดับเข้าเรียนต่อ ม.1 หรือตอนจบม.6 ก็ต้องสอบเอนทรานซ์เพื่อเข้าเรียนต่อมหาลัยเป็นต้น

ดังนั้นการสอบวัดระดับนี้น่าจะเป็นทางเลือกหนึ่งในการวัดความฉลาดได้ดีเลยครับ

ด้วยแนวคิดนี้เองทีม AI หลายทีมในโลกจึงสร้างโมเดลเพื่อทำการสอบวัดระดับขึ้น โดยเป็นข้อสอบของเด็ก "เกรด 8" (ราวๆ ม.2-ม.3 บ้านเรา) ตัวอย่างข้อสอบของการวัดระดับเกรด 8 นี้ดูได้ในรูปแนบ 1 โดยจะเห็นว่าโจทย์จำเป็นต้องใช้ความรู้ทางวิทยาศาสตร์ ผสมกับความรู้รอบตัวทั่วไป (common sense knowledge)

โดยในปี 2015 (5 ปีที่แล้ว ซึ่งเป็นยุคหลัง Deep Learning แต่ก่อนที่จะมี Transformers : http://bit.ly/thaikeras-nlp-transfer ) ทุกโมเดลต่างก็ "สอบตก" โดยโมเดลที่เก่งที่สุดทำคะแนนเฉลี่ยต่ำกว่า 60 จาก 100 คะแนนเต็มเท่านั้น (อ้างอิง 3)

 

รู้จักกับทีม AI2 หนึ่งในทีมดาวรุ่งของโลกผู้พิชิตการวัดระดับนานาชาติ

แม้หลายทีมจะเลิกทำโปรเจกต์นี้ไป แต่มีทีม AI ทีมนึงที่ตั้งเป้าพัฒนาโมเดลเพื่อที่จะมีความรู้เพียงพอที่จะทำข้อสอบนี้ให้ได้ ทีมนี้มีชื่อว่า AI2 (Allen Institute of Artificial Intelligence) ซึ่งก่อตั้งโดย Paul Allen ซึ่งเป็นผู้ร่วมก่อตั้ง Microsoft และเพื่อนสนิทของ Bill Gates นั่นเอง

โดย Paul Allen นั้นมีความฝันที่จะสร้างโมเดล AI ซึ่งรวมความรู้ต่างๆ ทั้งโลกเอาไว้และคิดให้เหตุผลได้อย่างเป็นระบบ จึงได้ก่อตั้งศูนย์ AI2 ซึ่งปัจจุันเป็นแลบ AI ชั้นนำของโลก และริเริ่มโปรเจกต์ที่มีชื่อว่า "Aristo" ขึ้นมา (ได้รับแรงบันดาลใจจาก Aristotle นักปราชญ์ผู้ยิ่งใหญ่)

โดยภารกิจหนึ่งของโปรเจกต์ Aristo ก็คือการสอบให้ผ่านข้อสอบวัดระดับนานาชาตินี้เองครับ โดยโมเดลของ Aristo นั้นได้พัฒนาต่อเนื่องทุกปีและมีความถูกต้องเพิ่มขึ้นเรื่อยๆ ดังรูปแนบที่ 2 และในปี 2019 นี่เองโมเดลของ Aristo ก็ทำได้สำเร็จโดยสามารถทำโจทย์ได้คะแนนเฉลี่ยมากกว่า 90 คะแนน !!!

 

เคล็ดลับความสำเร็จของ Aristo

เคล็ดลับความสำเร็จของ Aristo นี้หลักๆ มี 2 เรื่องด้วยกัน (อ้างอิง 2 Section 3.4) นั่นคือ

  1. การกำเนิดของ Transformers และ BERT -- ปฏิเสธไม่ได้เลยว่า Transformers และ BERT (ซึ่งเป็น Transformers ชนิดหนึ่ง) โดยทีม Google AI นั้นเข้ามาพลิกโฉมงานวิจัยทางท้าน NLP ทั้งหมดไม่ว่าจะเป็นงานด้านแปลภาษา ทำความเข้าใจตรรกะทางภาษา หรือแม้แต่บททดสอบวัดระดับนานาชาตินี้ก็ตาม โดยสิ่งที่ทำให้ Transformer นี้พลิกโฉมงานด้านภาษาในทุกมิติ คือ"ส่วนประกอบ" ที่เรียกว่า Attention ซึ่งทำให้โมเดลสามารถเข้าใจประโยคหรือบทความที่ยาวมากๆ ได้ อย่างที่โมเดลอื่นๆ ไม่เคยทำได้มาก่อน (อ้างอิง 4 และดูอธิบายเพิ่มเติมท้ายบทความ)

 

      2. อย่างไรก็ดีการใช้งาน BERT ในงานเป้าหมายนั้นจำเป็นต้องมีการ finetune หรือ "ติวเข้ม" จากข้อมูลที่คล้ายกัน เช่น ถ้าเราต้องการทำข้อสอบวัดผล เราก็ต้องมีข้อมูลสอนแนวข้อสอบให้ดูเพื่อให้โมเดลได้ปรับการทำงานให้มีประสิทธิภาพสูงสุดสำหรับข้อมูลประเภทนี้ (คล้ายๆ เด็กๆ บ้านเราที่ต้องติวทำโจทย์)

 

โดยคุนานุปการของทีม AI2 ก็คือทีมนี้ได้ทำชุดข้อมูล (datasets) สำหรับสอนโมเดลมามากกว่า 40 ชุด!!! (ดูได้ที่ https://allenai.org/data ) โดยแต่ละชุดข้อมูลมีจุดประสงค์ที่จะสอนหรือทดสอบความรู้โมเดลหลากหลายรู้แบบตั้งแต่ความรู้รอบตัว ความรู้ทางคณิตศาสตร์พื้นฐาน วิทยาศาสตร์พื้นฐาน ภาษาพื้นฐาน ตรรกะพื้นฐาน และมีทั้งแบบไม่อนุญาตให้เปิดเอกสารเพิ่ม (closed book) หรืออนุญาตให้มีการเปิดเอกสารได้(openbook) เป็นต้น ซึ่งชุดข้อมูลแต่ละชุดนี้ ต้องใช้เงินทุนทำมหาศาล (ต้องระดมคนมาตอบคำถามในแต่ละชุดข้อมูล หลายพันหรือหมื่นคำถาม และทำหลายครั้งต่อหนึ่งคำถาม ผ่านระบบที่เรียกว่า Mechanical Turk) ซึ่งชุดข้อมูลที่ทีม AI2 ทำมีคุณค่าต่อวงการ AI อย่างยิ่งและกลายเป็นการวัดผลความฉลาดมาตรฐานของโมเดลหลายรูปแบบ

นอกจากนี้เมื่อเราใช้ชุดข้อมูลเหล่านี้มาสอน (ติว) BERT ก่อนที่จะทำข้อสอบวัดระดับเกรด 8 ทำให้ตัว BERT นั้นมีความเชี่ยวชาญในโจทย์ประเภทนี้มากๆ ซึ่งทีม AI2 ตั้งชื่อ BERT ที่ถูกติวเข้มนี้ว่า AristoBERT

และในที่สุด AristoBERT ก็สามารถทำคะแนนได้มากกว่า 90 คะแนนซึ่งเป็นระดับ "ยอดเยี่ยม" สำหรับนักเรียนในประเทศสหรัฐอเมริกาครับ และยังทำผลงานระดับเกรด 12 หรือเทียบเท่าม. 6 ได้มากกว่า 80 คะแนนด้วย ซึ่งทำให้เป็นข่าวดังไปทั่วประเทศรวมทั้งได้ตีพิมพ์ใน New York Times ในอ้างอิง 3 อีกด้วย

ทีม AI2 ได้วิเคราะห์ผลการทดลองโดยละเอียด และวิเคราะห์ความอ่อนไหวของโมเดลเมื่อเรามีการหลอกด้วยการเพิ่มคำตอบที่คล้ายคำตอบถูกเข้าไป ซึ่งผู้สนใจสามารถดูอย่างละเอียดได้ในเอกสารอ้างอิง 2 ครับ

ความสำเร็จของ AristoBERT นี้ยังต้องทำการวิเคราะห์เพิ่มเติมหลายประเด็น อาทิเช่น โจทย์ที่ติว BERT ก่อนทำข้อสอบจริงนั้นคล้ายกับโจทย์ในข้อสอบจริงมากเพียงใด ซึ่งก็ยังมีทีมวิจัยที่กำลังวิเคราะห์เรื่องเหล่านี้อย่างละเอียดในปัจจุบันครับ

อันที่จริงผลงานของทีม AI2 ยังมีอีกหลากหลาย โดยเฉพาะที่เด่นมากๆ ในวงการคือการสอนให้ AI รู้จัก Common Sense ซึ่งเราจะเก็บไว้คุยกันในโอกาสถัดไปครับ

 

อ้างอิง

  1. StarCraft AI เหนือกว่า 99.8% ของผู้เล่นทั่วโลก  https://www.theverge.com/2019/10/30/20939147/deepmind-google-alphastar-starcraft-2-research-grandmaster-level
  2. From 'F' to 'A' on the N.Y. Regents Science Exams: An Overview of the Aristo Project : https://arxiv.org/abs/1909.01958
  3. http://jalammar.github.io/illustrated-transformer/
  4. https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1194/slides/cs224n-2019-lecture07-fancy-rnn.pdf

 

เพิ่มเติม

ประโยคภาษามนุษย์ โดยเฉพาะภาษาอังกฤษนั้นมีรูปประโยคที่เรียกว่า "Complex Sentence" ซึ่งคำสองคำนั้นเชื่อมโยงกันได้แม้นจะอยู่ตำแหน่งไกลกันในประโยคมากก็ตาม เช่น

 

The writer of the books, <ประโยคขยาย books ซึ่งยาวแค่ไหนก็ได้>, are <ประโยค/วลีถัดไป>

 

ซึ่งคำว่า "are" นั้นเป็น verb ของ "books" แต่สามารถอยู่ไกลกับ books ในประโยคแค่ไหนก็ได้ โดยโมเดลในอดีตเช่น LSTM / GRU นั้นไม่สามารถ track ความสัมพันธ์ที่ไกลกันมากๆ นี้ได้ (จากปัญหาที่เรียกว่า Vanishing of gradients ดูอ้างอิง 5) ทำให้ถ้าต้องเดา verb โมเดลเหล่านี้จะไม่สามารถเดาได้อย่างแม่นยำว่าต้องเป็น "are" โดยมันอาจเดาว่า "is" หรือ หรือ verb อื่นๆ ก็เป็นได้

 

ในขณะที่ Attention module (อ้างอิง 4) นั้นไม่มีข้อจำกัดเรื่องนี้

This post was modified 8 months ago by The Neural Engineer
ตอบกลับอ้างอิง
Posted : 05/08/2020 5:38 am
The Neural Engineer
(@neural-engineer)
Boltzmann Machine

ถ้าถูกหมีไล่ล่า  AI จะช่วยเราได้หรือไม่ ? Deep Language Understanding Series ตอนที่ 2 AI ไม่มีทางเข้าใจภาษา!! (จริงหรือ?)

ThaiKeras and Kaggle  5 สค. 2563

ในตอนที่แล้ว เราว่ากันด้วยเรื่องของความสำเร็จของ AI ที่สามารถทำข้อสอบระดับมัธยมได้อย่างยอดเยี่ยม ในตอนนี้เรามาดู "มุมมองเห็นต่าง" ของนักวิจัยด้านภาษาศาสตร์ 2 ท่านคือ Bender และ Koller จาก University of Washington ที่ฟันธงว่า

"ด้วยวิธีการขยายโมเดลให้ใหญ่ขึ้นเรื่อยๆ (Deep มากขึ้น เช่น Transformers, BERT, GPT-2) เช่นนี้ AI จะไม่มีทางเข้าใจภาษามนุษย์แน่นอน !!!!"

Bender และ Koller นักวิจัยทั้งสองท่านนี้ได้ตีพิมพ์ผลงานใน ACL 2020 [ดูอ้างอิง 1]  โดย ACL ย่อมาจาก Association for Computational Linguistics  ซึ่งเป็นการรวมตัวของนักวิจัยด้าน NLP มาตรฐานสูงสุดและได้จัดขึ้นในเดือน กรกฎาคม ที่ผ่านมานี้เองในรูปแบบ Virtual ซึ่งมีข้อดีตรงที่เราสามารถชม Presentation ทั้งหมดย้อนหลังได้ (อนึ่ง ACL 2021 ในปีหน้ากำหนดจะจัดที่กรุงเทพเป็นครั้งแรก ถ้าไม่โดน COVID ทำให้ยกเลิกไปก่อนนะครับ)

ผมแอบเอาลิงก์ Video presentation ของงานนี้มาให้เพื่อนๆ ได้ลองชมครับ 😀   https://slideslive.com/38929214/climbing-towards-nlu-on-meaning-form-and-understanding-in-the-age-of-data

 

ความเข้าใจคืออะไร ?

เล่าโดยสรุปงานนี้เคลมว่า เวลานักวิจัย AI ใช้คำว่า "understanding" หรือ "ความเข้าใจ" นั้นเป็นเพียงคำโฆษณา 🙂 โดย "ความเข้าใจ" ที่แท้จริงนั้นไม่ใช่เพียงจำรูปประโยคได้อย่างแม่นยำเท่านั้น ยังต้องสามารถ "เชื่อมโยง" (map) "คำต่างๆ" ไปยัง "สิ่งต่างๆ" ในโลกความเป็นจริงได้ด้วย

เช่น ถ้าเพื่อนเราพูดกับเราว่า "สิงโตดูน่ากลัวจัง" คนเราจะสามารถเชื่อมโยงคำว่า "สิงโต" ไปยัง สิงโตที่มีชีวิตอยู่จริงๆ ได้ ในขณะที่ AI (โมเดล NLP ที่ไม่ได้รวมส่วนของ Vision เข้ามาด้วย) จะทราบเพียงว่า

คำว่า "สิงโต" มักอยู่ใกล้กับคำว่า "น่ากลัว" (หรือคำที่ความหมายใกล้เคียง) เท่านั้น

โดยงานนี้ยกตัวอย่างความล้มเหลวของ Transformers ซึ่งเป็นโมเดล AI ที่ขึ้นชื่อว่าดีที่สุดในด้าน NLP ว่าเวลาเจอประโยคที่สลับลำดับของคำเล็กน้อย ที่เราได้ยกตัวอย่างในบทความเก่าของเรา http://bit.ly/thaikeras-hans-nlp2 และงานอื่นๆ ที่คล้ายกัน ว่าเป็นที่ทราบกันดีในวงการว่าโมเดลปัจจุบันนั้น sensitive และมักผิดพลาดง่ายๆ

งานนี้ย้ำว่า "interaction" หรือ การมีปฏิสัมพันธ์กับโลกจริง คือหัวใจของ "ความเข้าใจที่แท้จริง" เช่น เวลาแม่สอนเด็กทารกว่า "อย่าจับของร้อน" แต่ทารกไม่ระวังและไปจับ เด็กจะสามารถ "เชื่อมโยง" คำว่า "ของร้อน" กับ "สิ่งที่ร้อน" ในโลกที่เราอยู่ได้

ทำไม "เชื่อมโยง" ถึงเป็นหัวใจสำคัญ สิ่งที่ทำให้งานวิจัยนี้เป็นที่กล่าวขานใน ACL 2020 ก็คือ การเล่าแนว "thought experiment" (การทดลองทางจินตนาการ) เพื่อแสดงจุดอ่อนของ AI ให้เห็นชัดๆ ในบททดสอบ "Octopus Test" หรือก็คือ "ถ้าเราถูกหมีไล่ล่าในป่าลึก  AI จะช่วยเราหนีได้หรือไม่ ?" ---- หมายเหตุ "การทดลองทางจินตนาการ" เป็นเทคนิกเดียวกันกับที่ไอน์สไตน์ใช้ตอนคิดทฤษฎีสัมพัธภาพว่าถ้าเราสามารถเดินทางได้เร็ว +/- เท่าแสงจะเกิดอะไรขึ้น ?

.

 

ถ้าถูกหมีไล่ล่าในป่าลึก  AI จะช่วยเราหนีได้หรือไม่ ? (Octopus Test)

การทดลองทางจินตนาการนี้สมมติให้ A และ B เป็นนักท่องเที่ยวที่พลัดหลงไปในเกาะกลางมหาสมุทร โดย A และ B อยู่คนละเกาะกัน และเกาะทั้งสองนั้นไม่มีผู้คนอาศัยอยู่เลยในปัจจุบัน

อย่างไรก็ดีโชคดีที่เคยมีผู้ที่เคยอาศัยอยู่ได้สร้าง "โทรเลข" เพื่อให้คนทั้งสองเกาะสามารถพิมพ์ข้อความคุยกันได้ จึงทำให้ A และ B สามารถ "chat" หากันได้ เหมือนพวกเราในสมัยนี้ แต่เป็น text mode เพียงอย่างเดียวและไม่มีรูปภาพประกอบ

ในใต้ทะเลลึกนั้นมีปลาหมึกอัจฉริยะนามว่า "O" ที่สนใจข้อความของ A และ B มาก และแอบฟังผ่านเคเบิลใต้น้ำได้ทั้งหมด (ดังรูปแนบ)  เจ้า O ทำหน้าที่เป็นตัวแทนของโมเดล AI Transformers นั้นแท้จริงแล้วไม่เข้าใจภาษาอังกฤษเลย แต่สามารถจดจำ text messages ของ A และ B ได้ทั้งหมด รวมทั้งรูปแบบและสถิติต่างๆ ที่เกี่ยวข้อง สามารถอนุมานถึงคำใกล้เคียง ประโยคใกล้เคียงกันได้ทั้งหมดเฉกเช่นเดียวกันกับ BERT หรือ GPT-2 ในปัจจุบัน

เวลาผ่านไปนาน O เกิดเบื่อขึ้นมาเลยตัดสายเชื่อมโยงของ A และ B ทิ้ง และตัดสินใจที่จะตอบกลับไปยัง A แทน B!

A จะทราบหรือไม่ว่าแท้จริงแล้วตนเองคุยกับปลาหมึกอยู่ มิใช่ B ตัวจริง ?? (นี่คือ Turing Test ดีดีนี่เอง)

คำตอบที่ Bender และ Koller คิดก็คือ "ขึ้นกับว่าคุยเรื่องอะไร" โดยทั่วไป เนื่องจาก A และ B ต่างก็คุยกันมาเป็นเวลานาน หลากหลายเรื่องราว เจ้า O ซึ่งสามารถจดจำ pattern ได้ทั้งหมดสามารถสวมรอยแทน B ได้อย่างแนบเนียน

อย่างไรก็ดีจะเกิดอะไรขึ้นถ้า A นั้นเริ่มต้นคุยเรื่องใหม่ที่ไม่เคยคุยกับ B มาก่อน เช่น A นึกสนุกประดิษฐ์ "เครื่องยิงลูกมะพร้าว" ขึ้นมาและส่งข้อความไปเล่า B  …. เจ้า O จะไม่มีทางทราบว่า  "เครื่องยิงลูกมะพร้าว" นี่มันคืออะไรกันแน่ อย่างไรก็ดี ในประโยคที่ A เล่ามานั้นอาจมีถ้อยคำที่บ่งบอกถึงความตื่นเต้นดีใจอยู่ และเจ้า O จะสามารถจับคำเหล่านี้ได้ จึงตอบไปว่า "เยี่ยม เจ๋งไปเลยเพื่อน" หรือคำตอบอื่นในทำนองเดียวกัน

.

อยู่มาวันหนึ่ง บททดสอบที่แท้จริงก็มาถึง เมื่อมี "หมี" ที่ดุร้ายอยู่ในเกาะของ A และพุ่งตรงเข้ามาทำร้าย A โดย A ไม่มีความรู้ที่จะมารับมือกับหมีได้จึงได้ส่งข้อความไปขอคำแนะนำจาก B !!

แน่นอนเจ้า O ไม่เคยรู้มาก่อนว่า "หมี" ที่ว่าคืออะไร และ A ไม่เคยตกอยู่ในอันตรายมาก่อน เจ้า O จะตอบว่าอะไร?? ในงานวิจัยของ Bender และ Koller ได้ทดลองจำลองคำพูดเหล่านี้ให้โมเดล GPT-2 ซึ่งเป็นตัวแทนของ O และได้ชื่อว่าเป็นโมเดลทางภาษาที่ดีที่สุดตอบกลับมา โดยให้โอกาส GPT-2 ได้ตอบซ้ำๆ หลายรอบ

ผลปรากฏว่า GPT-2 ไม่สามารถช่วยอะไรได้เลย และหนึ่งในคำตอบก็คือ "นายไม่รอดแน่" !!! (ฮา)

จากการทดลองทางจินตนาการและการทดลองกับ GPT-2 นี้ทำให้ Bender และ Koller เคลมว่าถ้าเปรียบเทียบการสร้าง AI ให้เข้าใจภาษามนุษย์จริงๆ เป็นการปีนเขาไปให้ถึงจุดยอด ถ้าดูจากผลการทดลองต่างๆ ในวงการ NLP เช่นบทความตอนที่แล้วของเรา เรากำลังถึงจุดยอดจริง แต่เป็นการปีนเขาผิดลูกครับ!

 

บทส่งท้าย -- การปรากฏตัวของ GPT-3 และสมมติฐานที่ไม่ครอบคลุมของ Bender และ Koller

ขอปิดท้ายไว้ว่างานวิจัยฉบับนี้ออกมาในขณะที่ GPT-3 ยังไม่ถูกเผยแพร่ และนักวิจัยบางท่านมีโอกาสได้ทดลอง GPT-3 กับเคส Study "หมีวิ่งไล่" นี้อย่างละเอียดพบว่า แท้จริงแล้ว GPT-3 สามารถแนะนำวิธีที่ถูกต้องที่จะทำให้เรารอดพ้นจากหมีได้จริงครับ!!! หรือว่าแท้จริงแล้ว เราไม่ได้ปีนเขาผิดลูก และทำไมการทดลองทางจินตนาการของ Bender และ Koller ถึงไม่สมบูรณ์  เรามาดู case study นี้ของ GPT-3 ในตอนถัดไปครับ

 

เอกสารอ้างอิง

 

 

This post was modified 8 months ago 2 times by The Neural Engineer
ตอบกลับอ้างอิง
Posted : 05/08/2020 5:42 am
The Neural Engineer
(@neural-engineer)
Boltzmann Machine

รู้จัก "บททดสอบ" และความเป็นมาของเหล่า "ผู้ท้าชิง" AI ที่ฉลาดที่สุดในปี 2020 Deep Language & Knowledge Understanding Series ตอนพิเศษ A

ThaiKeras and Kaggle  16 สค. 2563

 

สวัสดีครับเพื่อนๆ ตอนนี้ทีมงาน ThaiKeras กำลังออกแบบและเขียน Workshop ภาคปฏิบัติ "มือใหม่ หัดใช้ Keras" บน TF2.0 อยู่ และใช้เวลานานกว่าที่คิด ทำให้เขียนเสร็จไม่ทันสัปดาห์นี้  สัปดาห์นี้เลยขอทักทายเพื่อนๆ ด้วยบทความภาคพิเศษในชุดบทความ "Deep Language & Knowledge Understanding" แทนครับ

โดยบทความตอนพิเศษนี้จะแนะนำบททดสอบมาตรฐาน ที่ใชัวัดความฉลาดของสุดยอดโมเดล AI ด้านภาษาในปัจจุบัน ปี 2020

เท้าความกันซะหน่อยว่าใน series นี้ (อ่าน 3 ตอนก่อนหน้าได้ที่นี่ https://bit.ly/thaikeras-understanding-nlp ) เรามีจุดประสงค์ที่จะเจาะลึกโมเดล AI ที่ดีที่สุดในปี 2020  ว่ามี "ความรู้" เทียบกับมนุษย์ได้ในมุมไหนหรือไม่ 

โดยในบทความชุดนี้เราเน้นเฉพาะ "ความรู้" ที่มี "ภาษา" เป็นสื่อกลางเท่านั้น ไม่นับรวมความรู้ที่ต้องอาศัยประสาทสัมผัสอื่นๆ เช่นการมองเห็น เสียง หรือกลิ่น  หรือการเล่นเกมส์ต่างๆ ที่ AI รับ input โดยตรงได้โดยไม่ต้องผ่านสื่อกลาง

.

 

การทดสอบความรู้ที่ต้องใช้ภาษาเป็นตัวกลางด้านต่างๆ ในปัจจุบัน

โดยการทดสอบ "ความรู้ผ่านภาษา" นี้อาจจะแยกได้สองด้านหลักๆ คือ "ด้านการอ่าน" และ "ด้านการเขียน" ด้านการเขียนวัดได้ยากกว่ามากและยังไม่มีมาตรฐานที่ชัดเจนดังเช่นการอ่าน จึงจะขอกล่าวถึงในโอกาสถัดไป ส่วนใหญ่ในงานวิจัยปัจจุบัน ทีมวิจัยทั่วโลกได้นำเสนอการวัดความรู้ผ่าน "การอ่าน" ซึ่งก็ยังแยกย่อยได้หลายประเภทด้วยกัน อาทิเช่น

  • ทดสอบเรื่อง "ไวยากรณ์ภาษา"  ว่ารู้จักรูปประโยคที่ถูกหลักไวยากรณ์หรือไม่  รู้จักสองประโยคที่มีความหมายคล้ายกันหรือความหมายเดียวกัน (Paraphrase) หรือไม่

 

  • ทดสอบความเข้าใจ "ความหมาย" เช่นแยกแยะประโยคว่าเป็นประโยคที่มีแสดงความพอใจ หรือไม่พอใจ (Sentiment Analysis) หรือประโยคหยาบคาย กล่าวโทษ (Toxic Detection)

 

  • ทดสอบความเข้าใจด้านตรรกะ ตัดสิน 2 ประโยคที่กำหนดได้ว่าเชื่อมโยงกัน ขัดแย้งกัน หรือไม่เกี่ยวข้องกัน (ดูบทความ Hans ในตอนที่ 0 ของ Series นี้)

 

  • ทดสอบเรื่องความเข้าใจ "เรื่องราว" เบื้องต้น เช่น กำหนดเนื้อเรื่อง 1 ย่อหน้าและคำถามมา แล้วให้ AI เลือก "คำตอบที่ถูกต้อง" จากตัวเลือก A, B, C และ D (เหมือนการทำข้อสอบภาษาอังกฤษบ้านเรา)

 

  • ทดสอบความรู้ทั่วไป "ความจริงเกี่ยวกับโลก" (Knowledge & Commonsense) ทุกเรื่องที่เป็นความรู้พื้นฐานที่คนทั่วไปหรือกระทั่งเด็กประถมทราบ อาทิเช่น รู้ว่าประเทศต่างๆ มีมีสถานที่สำคัญอะไรบ้าง บุคคลสำคัญของโลก รู้ว่าพระอาทิตย์ขึ้นทางทิศตะวันออก ตกทางตะวันตก ไก่มักขันตอนเช้า เป็นต้น

 

  • ทดสอบความรู้ด้าน "วิทยาศาสตร์" ผ่านการอ่าน เช่นเดียวกับทดสอบความเข้าใจเรื่องราวด้านบน แต่เน้นคำถามด้านวิทยาศาสตร์ (ในระดับมัธยม) แทนที่จะเป็นเรื่องทั่วไป (ดูบทความ Aristo ในตอนที่ 1 ของ Series) เช่น เลือกคำตอบที่อธิบายปรากฏการณ์ "สังเคราะห์แสง" ได้ทีที่สุด หรือคำตอบใดอธิบาย "ปรากฏการณ์ไดโนเสาร์สูญพันธุ์" ที่ได้รับการยอมรับมากที่สุด เป็นต้น

 

.

 

ประวัติย่อของบททดสอบสุดหิน!! รู้จัก GLUE, SuperGLUE และ อื่นๆ

 

**ปี 2018 - GLUE vs. BERT **

จากหัวข้อข้างบน จะเห็นว่าเนื่องจากการทดสอบที่หลายทีมทั่วโลกเสนอนั้นมีหลากหลายเหลือเกิน ในกลางปี 2018 (ดูอ้างอิง 1) ทีมวิจัยจากมหาวิทยาลัยนิวยอร์กร่วมกับ DeepMind จึงได้มีความคิดที่ว่า "โมเดลที่เก่งจริงต้องทำได้ทุกโจทย์พร้อมกัน" จึงได้ร่วมกันเสนอสุดยอด Dataset ที่ชื่อว่า GLUE (General Language Understanding Evaluation) ขึ้นมาซึ่งจริงๆ ก็คือการคัดเลือก Dataset ทางภาษาที่หลากหลาย 9 ชนิดไว้ด้วยกัน และใช้ค่าเฉลี่ยความแม่นยำของ 9 datasets นั้นขึ้นมาตัววัดความฉลาดที่เรียกว่า "GLUE Benchmark"

 

โดยทีม GLUE ได้รายงานว่า "มนุษย์" นั้นยังมีความแม่นยำกว่าโมเดลที่ดีที่สุด (ในขณะนั้นคือต้นปี 2018) อยู่ราว 20%++ เพื่อนๆ สามารถดูรายละเอียดของ 9 บททดสอบใน GLUE รวมทั้งคะแนนของโมเดลที่ดีสุดบน GLUE ในปัจจุบันได้ที่นี่ครับ https://gluebenchmark.com/

 

อย่างไรก็ดี GLUE นั้นตีพิมพ์ครั้งแรกในปี 2018 ซึ่งแปลว่าทีมงานได้ลงมือทำจริงในปี 2017

 

ซึ่งในปี 2017 นั้นโมเดล Transformers (อ้างอิง 2) จาก Google ซึ่งเป็นโมเดลมหัศจรรย์ที่ทำลายสถิติของ "งานด้านแปลภาษา" (ไม่อยู่ใน GLUE) เพิ่งได้ตีพิมพ์เช่นเดียวกัน ทำให้ "โมเดลที่ดีที่สุด" ในมาตรฐานของ GLUE ยังไม่นับรวมโมเดลกลุ่ม transformers

 

นอกจากนี้ GLUE นั้นยังเน้นเพียงบททดสอบในแง่ของ "ภาษา" เป็นหลัก ยังไม่มีบททดสอบในแง่ "ความรู้" อื่นๆ เช่นความรู้วิทยาศาสตร์หรือความรู้ทั่วไป เนื่องจากในปีนั้น Dataset ทางวิทยาศาสตร์ซึ่งส่วนใหญ๋มาจากทีม AI2 (ดูบทความใน Series นี้ตอนที่ 1) ยังไม่ถูกเผยแพร่นั่นเอง

 

ชะตากรรมความขลังของ GLUE เริ่มสั่นคลอน ในปลายปี 2018 เพียง 6 เดือนหลังจากที่งานวิจัย GLUE ตีพิมพ์ ทีมวิจัยจาก Google ก็ได้ดัดแปลง Transformers จากงานแปลภาษา (ที่ต้องอ่านและเขียน) ให้มาเจาะลึกด้านการอ่านอย่างเดียว นั่นก็คือกำเนิดงานระบือโลกอีกงานที่ชื่อว่า BERT (อ้างอิง 3) นั่นเอง และ BERT นี้ก็มีความแม่นยำน้อยกว่ามาตรฐานมนุษย์ของ GLUE เพียง 10% เท่านั้น!

 

**ปี 2019 - RoBERTa vs. SuperGLUE ---> T5 **

ในปี 2019 ในที่สุดมาตรฐานมนุษย์ใน GLUE ถูกทำลายเพียง 1 ปีเศษหลังจากที่งานวิจัย GLUE ตีพิมพ์ โดยโมเดลที่ทำลายสถิติมนุษย์ได้นั้น ก็ไม่ใช่ใครที่ไหน แต่เป็น BERT ที่ปรับโฉมใหม่โดยทีมงาน Facebook AI ที่ปรับโฉม BERT ด้วยการใส่ข้อมูลฝึกสอนมากกว่า BERT ดั้งเดิมราว 10 เท่า!! แล้วตั้งชื่อใหม่ว่า RoBERTa !! (อ้างอิง 4)

 

และในปี 2019 นี้เอง หลังจาก RoBERTa ตีพิมพ์ ทีมวิจัยอื่นๆ ทั่วโลกต่างๆ ก็นำ BERT มาดัดแปลง และเพิ่มข้อมูลสอน ทำให้มีโมเดลที่แซงมาตรฐานมนุษย์ของ GLUE ได้เต็มไปหมด และก็ทำให้กลายเป็นข่าวดัง (อีกเช่นเคย) ไปทั่วโลกว่า "AI ฉลาดกว่ามนุษย์แล้ว" !!?

 

นอกจากนี้ทีม Facebook AI ยังได้อัพเกรด RoBERTa ให้เข้าใจได้ 100 ภาษาทั่วโลกพร้อมกัน ดั่งที่เราเคยนำเสนอในบทความก่อนหน้าเรื่องตรวจจับภาษาพิษ 7 ภาษา (ลองอ่านย้อนหลังดูครับ)

 

อย่างไรก็ดีทีม GLUE เองก็ไม่ยอมแพ้ ในเดือนกลางปี 2019 ซึ่งไล่เลี่ยกับที่งาน RoBerta ตีพิมพ์  ทีม GLUE ได้โละ 7 บททดสอบเดิมของ GLUE ดั้งเดิมทิ้ง (โดยกล่าวว่าง่ายเกินไป) เหลือเพียง 2 บททดสอบเก่าที่หินที่สุด แล้วใส่บททดสอบใหม่ๆ ที่ยากที่สุด (ที่เพิ่งถูกนำเสนอในช่วงปี 2018-2019) เข้าไปอีก 8 ชิ้นและได้ตั้งชื่อ GLUE โฉมใหม่นี้ว่า "SuperGLUE" !!

(อ้างอิง 5) ซึ่งในบททดสอบใหม่สุดหินนี้ รวมการวัดความรู้ทางวิทยาศาสตร์ และความรู้ทั่วไปเข้าไปด้วย ทำให้ยากขึ้นมาก

 

ผู้อ่านสามารถเข้าไปดูรายละเอียดของ SuperGLUE ได้ที่นี่ครับ : https://super.gluebenchmark.com/tasks   อ้อ หนึ่งในทีมของ SuperGLUE นั้นมีน้องนักวิจัยคนไทยซึ่งอยู่ในมหาวิทลัยนิวยอร์กอยู่ด้วยนะครับ 😀

 

อย่างไรก็ดีมาตรฐานมนุษย์ของ SuperGLUE นั้นก็อยู่เหนือกว่า RoBERTa เพียง 10% เท่านั้น

 

มาถึงจุดนี้ผู้อ่านอาจพอเดาได้ไม่ยากว่าอีกไม่นานก็น่าจะมีโมเดลที่ขึ้นมาเทียบเท่ามนุษย์ได้ SuperGLUE ได้สำเร็จ

 

และยังไม่ทันจบปี 2020 ในเดือนตุลาคมปี 2019 เพียง 5 เดือนหลังจากงาน SuperGLUE ทีม Google ก็ได้สร้างโมเดลใหม่ชื่อว่า "T5" ขึ้นมาโดย T5 นั้น เป็นโมเดลแรกที่ทำคะแนนใน SuperGLUE ได้เที่ยบเท่ามาตรฐานมนุษย์ จนถึงปัจจุบันนี้ (สิงหาคม 2020) ก็ยังเป็นเพียงโมเดลเดียวที่ทำได้ครับ

 

โดย T5 ตัวเต็มนี้ได้กลับไปใช้สถาปัตยกรรมคล้าย Transformer รุ่นแรกคือมีทั้งอ่านและเขียน โดยฝึกสอนบนข้อมูลที่ใหญ่กว่า RoBERTa 5 เท่า และมีขนาดใหญ่กว่า RoBERTa 10 เท่า!!! นั่นคือมีขนาดโมเดลที่มีพารามิเตอร์ถึง 1.1 หมื่นล้านตัวแปร  และคนธรรมดาอย่างพวกเราไม่สามารถเทรนหรือใช้งานโมเดลนี้ได้ครับ (แต่ใช้ T5 ตัวย่อส่วนได้ครับ ซึ่งจะมีความสามารถลดลงมาพอควร)

 

เนื่องจาก T5 นี้ถูกฝึกสอนมาทั้งอ่านและเขียน (ในทางเทคนิกเรียกว่า Encoder-Decoder)

ดังนั้นแม้นจะเก่งเรื่องการอ่านมากเป็นพิเศษ แต่ก็มีความสามารถด้านการเขียนอันเยี่ยมยอดอีกด้วยเช่นกัน โดย T5 ยังทำคะแนนด้านการ "ย่อความ" ได้ติดระดับท้อป (เรื่องการวัดผลด้านการเขียนรอขยายความในโอกาสถัดไปนะครับ)

 

** อนาคตในปี 2020 - 202x **

จากบทเรียนเรื่อง GLUE และ SuperGLUE นั้นทำให้นักวิจัยหลายกลุ่มเริ่มมองตรงกันว่า "การอ่าน" เพียงอย่างเดียวไม่ท้าทายอีกต่อไป ทำให้เริ่มมีการมุ่งเน้นมายังปัญหาที่ยากขึ้น (แต่ก็วัดผลยากขึ้น) นั่นคือ

 

"ปัญหาการเขียน" และ "ปัญหาการอ่านภาษาและทำความเข้าใจรูปภาพพร้อมกัน" (Vision-Language Problems) ซึ่งรอติดตามได้ในภาคถัดไปคร้าบ

 

 

ภาคผนวก: ดาวโหลดชุดข้อมูลมาตรฐานด้วย HuggingFace NLP

ทีม HuggingFace ได้ทำให้การดาวโหลดข้อมูลมาตรฐานเหล่านี้เป็นเรื่องง่ายๆ โดยได้ทำ Library nlp ขึ้นมา เพื่อนๆ สามารถเรียกใช้งานง่ายๆ ดังนี้ หรือดูวิธีการโดยละเอียดได้ที่  https://huggingface.co/nlp/ ครับ

 

</p>
<pre>!pip install nlp
from nlp import load_dataset
dataset = load_dataset('glue', 'mrpc', split='train')</pre>
<p>

 

อ้างอิง

  1. GLUE paper : https://arxiv.org/abs/1804.07461
  2. Transformers: http://jalammar.github.io/illustrated-transformer/ และ https://thaikeras.com/2018/transfer-learning-nlp/
  3. BERT : https://arxiv.org/abs/1810.04805 / http://jalammar.github.io/illustrated-bert/
  4. RoBERTa https://arxiv.org/abs/1907.11692
  5. SuperGLUE : https://arxiv.org/abs/1905.00537
  6. T5 : https://arxiv.org/abs/1910.10683
This post was modified 8 months ago by The Neural Engineer
ตอบกลับอ้างอิง
Posted : 16/08/2020 2:17 pm
The Neural Engineer
(@neural-engineer)
Boltzmann Machine

"การเขียน" บททดสอบที่แท้จริงของ AI ที่มีความรู้แท้จริง Deep Language & Knowledge Understanding Series ตอนที่ 3 สู่การสร้าง Jarvis

ThaiKeras and Kaggle  26 สค. 2563

credit ภาพ Lego "Jarvis! , keep the skies clear!" :

Flickr

อนุญาตให้ใช้ด้วยสิทธิ CC By-ND 2.0

 

สวัสดีครับเพื่อนๆ ในตอนที่แล้วของ series นี้เราได้เล่าถึง "บททดสอบ" ที่หินที่สุดสำหรับ AI ในแง่ของ "การอ่าน" ในความรู้หลากหลายด้าน นั่นคือบททดสอบที่เรียกว่า SuperGLUE  (อ่านย้อนหลังทั้งหมดได้ที่นี่ https://bit.ly/thaikeras-understanding-nlp ) โดยบททดสอบในกลุ่มนี้จะเน้นเรื่อง "การอ่าน แล้ว เลือกคำตอบที่ถูกที่สุด" นั่นคือ มีตัวเลือกคำตอบมาให้เหมือนข้อสอบกากบาทในโรงเรียนบ้านเรานั่นเอง

อย่างไรก็ตาม  แม้แต่บททดสอบที่หินที่สุดนี้ โมเดล AI ที่ชื่อว่า T5 นั้นทำแบบทดสอบได้ใกล้เคียงมนุษย์ และโมเดลอื่นๆ ก็ทำแบบทดสอบได้คะแนนต่ำกว่ามนุษย์เพียงราวๆ 10% เท่านั้น เรียกได้ว่าความสามารถในแง่ของ "อ่านแล้วเลือกคำตอบ" นั้น AI ถือว่าใกล้เคียงมนุษย์แล้วครับ

ดังนั้นในปัจจุบัน นักวิจัยจึงเปลี่ยนมุมมองเริ่มมาทดสอบ AI ด้าน "การเขียน" (ส่วนใหญ่จะเป็น "อ่านแล้วเขียน") มากขึ้น ซึ่งถือได้ว่าเป็นบททดสอบที่ต้องใช้ความฉลาดมากกว่าการ อ่านแล้ว "เลือกคำตอบ" 

เปรียบเทียบให้เห็นภาพง่ายๆ การอ่านแล้วเลือกคำตอบ "ที่ถูกที่สุด" จากตัวเลือก A, B, C และ D  มีเพียง 4 ตัวเลือกให้โมเดลตัดสินใจในแต่ละคำถามเท่านั้น  … นั่นคือ output ของโมเดลนั้นเรียบง่ายมีเพียง 1 ตัวแปร และตัวแปรเดียวนี้เป็นไปได้เพียง 4 ค่า โมเดลเพียงเลือก 1 ใน 4 เท่านั้น

 ในขณะที่การเขียนสัก 1 ย่อหน้า ขอยกตัวเลขง่ายๆ แต่ละย่อหน้าอาจประกอบไปด้วยประโยค 10 ประโยค แต่ละประโยคมี 10 คำ ทำให้โมเดลต้อง output 100 ตัวแปร โดยแต่ละตัวแปรคือ 1 คำ … นอกจากนั้นในตัวแปรคำแต่ละคำนั้นยังมีค่าที่เป็นไปได้คือ "คำศัพท์" ทั้งหมด โดยมาตรฐานของคำศัพท์ในโมเดล AI ปัจจุบันอยู่ที่ 30,000-50,000 คำศัพท์

ดังนั้นโมเดลต้องมีความสามารถที่จะ output 100 ตัวแปร โดยแต่ละตัวแปรนั้นมีค่าได้ถึง 50,000 ค่า … ซึ่งรวมทั้งหมดแล้ว โมเดลต้องเลือกตอบ 1 ประโยคจากประโยคที่เป็นไปได้ถึง 50,000^100 ซึ่งมหาศาลมากๆ และยากกว่าการเลือกตอบเพียง 1 ใน 4 อย่างเทียบกันไม่ได้

 

.

จะเขียนให้ดี ต้องสร้างประโยคอย่างไรบ้าง

ในบรรดา 50,000^100 ประโยคที่เป็นไปได้นั้น ประโยคที่โมเดลเขียนหรือเลือกขึ้นมาต้องมีคุณสมบัติต่างๆ มากมาย อาทิเช่น

ก) เขียนได้ถูกต้องตามหลักไวยากรณ์

ข) ประโยคมีความหมาย โดยประโยคเช่น The colorless green feels sleepy นั้นถูกไวยากรณ์แต่ไม่มีความหมาย

ค) ความหมายของประโยคต้องสอดคล้องกับประโยคก่อนหน้า

ง) ความหมายของข้อความทั้งหมดโดยรวมต้องสอดคล้องกับคำถาม หรือสอดคล้องกับโจทย์

จ) ตกผลึกความรู้ เรื่องราว เชื่อมโยงความรู้ สร้างประโยคที่นอกจากจะสอดคล้องและมีความหมายแล้ว ยังแสดงถึงความรู้จริง และความฉลาดในการตอบปัญหาหรือโจทย์ที่กำหนดด้วย

 

จริงๆ แล้ว ไม่ต้องพูดถึงประเด็น จ) ซึ่งเป็นประเด็นที่ยากที่สุด แม้แต่ประเด็น ก) ข) ค) และ ง) นั้นนับว่ายากมากๆ โดยก่อนหน้าที่จะมีการคิดค้นโมเดล Transformers ได้นั้น แค่การพูดให้ถูกและรู้เรื่องตาม ก) และ ข) นั้นแทบจะเป็นไปไม่ได้เลยทีเดียวครับ

อย่างไรก็ดีโมเดล Transformers เช่น GPT-2 ที่ฝึกสอนบนข้อมูลปริมาณมหาศาลนั้น สามารถสร้างประโยคที่ผ่านเงื่อนไข ก) ข) ค) ได้อย่างน่าอัศจรรย์ รวมทั้งประเด็น ง) บางส่วน และเหลือเพียงประเด็น จ) เท่านั้นที่ยังเป็นปัญหาที่แก้ไม่ตก

ประเด็นสุดท้าย จ) เป็นประเด็นที่ท้าทายมากที่สุด เพราะเวลาเจอคำถามที่ต้องใช้ความรู้จริงๆ โมเดลอาจจะตอบเพียง "I don't know" หรือเลี่ยงคำถามไปตอบอย่างอื่น เช่น ถ้าเจอคำถามเกี่ยวกับเรื่องยากๆ โมเดลอาจจะตอบเพียงว่า "This is very interesting, and I really think it's cool!"   ดูรายละเอียดเพิ่มเติม ใน "การทดลองทางจินตนาการเรื่องปลาหมึกอัจฉริยะ" ที่เราได้กล่าวในตอนที่ 2 ของ series นี้ครับ

โดยโมเดล GPT-3 ซึ่งเพิ่งเผยแพร่ในเดือน มิ.ย. 2020 และยังไม่ได้เปิดให้คนทั่วไปใช้งานจริงจัง อาจเป็นโมเดลแรกที่เริ่มทำโจทย์ จ) ได้ดีในระดับนึง ซึ่งต้องอดใจรอการใช้งานอย่างละเอียดกันต่อไปครับ

.

 

บททดสอบเกี่ยวกับ "การเขียน" มีอะไรบ้าง

ดูจากงานวิจัยในปัจจุบันนั้น จะมีงานด้านการเขียนอยู่ 5 ประเภทที่นักวิจัยศึกษากันอย่างจริงจัง และมีความคืบหน้ามาก ดังนี้ครับ

  1. การแปลภาษา (Translation)
  2. การย่อความ (Summarization)
  3. การแต่งเรื่องราว (Story Generation)
  4. Chatbot (Dialogue Generation)
  5. ถามตอบแบบไม่มีตัวเลือก (Free-form Question Answering)

ถึงแม้นปัญหาเหล่านี้อาจจะดูแล้วยากในระดับเดียวกันหมด แต่สองปัญหาแรกนั้น ดูมีความคืบหน้ามากกว่าอีก 3 โจทย์ที่เหลือ

ทั้งนี้เนื่องจากตามนิยามของปัญหา "แปลภาษา" และ "ย่อความ" นั้นประโยค output จะมีลักษณะ "สั้น" (short-form) และ "ไม่ต้องใช้ความรู้ภายนอก" (closed-domain) ในขณะที่อีก 3 โจทย์ที่เหลืออาจจะยาวมาก และจำเป็นต้องใช้ความรู้ภายนอกที่ไม่มีอยู่ใน input

มาดู 2 โจทย์แรกกันอย่างย่อๆ ครับ

** 1) โจทย์แปลภาษา **

โดยปัญหาแปลภาษา จากภาษาที่ 1 ไปภาษาที่ 2 นั้น เป็นปัญหาที่เราคุ้นเคยกันดี โมเดลไม่ต้องสร้างประโยค output อะไรที่ซับซ้อนมากนัก นอกจากเงื่อนไขที่ว่า "ประโยคภาษาที่ 1" ต้องมีความหมายเช่นเดียวกับ "ประโยคภาษาที่้ 2" ซึ่งสังเกตได้ว่าถ้าไม่เน้นความสละสลวยทางภาษา เราสามารถแปลเป็นประโยคทีละประโยคได้  รวมทั้งโมเดลไม่จำเป็นต้องคิดค้นความรู้อะไรใหม่ๆ ขึ้นมาเอง นอกจากความหมายที่อยู่ใน input คือประโยคภาษาที่ 1 เรียบร้อยแล้ว

โดยทั่วไปถ้าภาษาที่ 1 และภาษาที่ 2 นั้นเป็นภาษายอดนิยม โมเดลนั้นมักจะทำผลงานได้ดีเนื่องจากโมเดลสามารถใช้เทคนิก Unsupervised learning หรือ Self-supervised learning เพื่อให้มีความเชี่ยวชาญในแต่ละภาษาก่อนที่จะมาเรียนเรื่องแปลภาษาได้ และยิ่งถ้าภาษาที่ 1 และภาษาที่ 2 มีความใกล้เคียงกัน เช่น อังกฤษ เยอรมัน ฝรั่งเศสหรือสเปน การแปลภาษาก็จะง่ายขึ้นมาอีกขั้นครับ

ส่วนภาษาที่ใช้กันไม่แพร่หลายมาก และก็มีความแตกต่างจากภาษาหลักอื่นๆ พอควร เช่นภาษาไทย ความแม่นยำในการแปลภาษาก็จะน้อยลงไปครับ

สำหรับผู้ที่สนใจข้อมูลฝึกสอนเพื่อแปลภาษาคู่อังกฤษและไทยสามารถดูรายละเอียดเพิ่มเติมได้จากบทความนี้ http://bit.ly/medium-mt-enth  ซึ่งเป็นผลงานอันยอดเยี่ยมของเพื่อนๆ ทีมนักวิจัยบ้านเราครับผม 😀

 

**2) โจทย์ย่อความ **

การย่อความนั้นคือการ สร้าง "Output = ย่อหน้าสั้นๆ" จาก "Input  = ข้อความยาวๆ" (อาจจะหลายย่อหน้า) โดยมีความง่ายคล้ายการแปลภาษาที่ไม่ต้องใช้ความรู้ภายนอกมากนัก เพราะเนื้อหาหลักๆ จะอยู่ใน Input เรียบร้อยแล้ว และด้วยนิยามของ "การย่อความ" นั่นคือ ประโยค Output ก็จะไม่ยาวมากนัก

การย่อความหรือ Summarization นั้นจะมี 2 แบบหลักๆ คือ

2.1) Extractive Summarization คือการย่อความ โดยการตัดเฉพาะประโยคที่สำคัญๆ จากบทความต้นฉบับมา ไม่ต้องสร้างประโยคใหม่เอง

2.2) Abstractive Summarization คือการย่อความ โดยการเขียนประโยคใหม่

งาน 2.1) ด้าน Extractive นั้นถือว่าไม่ท้าทายมากนักในปัจจุบัน ส่วนงาน 2.2) ด้าน Abstractive นั้น

Dataset ทดสอบมาตรฐานสำหรับฝึกสอนโมเดลให้ย่อความเป็นคือ CNN-Dailymails ซึ่งเป็น datasets ที่กำหนดให้สรุปใจความสำคัญของ "ข่าวประจำวัน" เช่นจาก CNN  (ดูรายละเอียดได้ที่นี่ https://huggingface.co/nlp/viewer/?dataset=cnn_dailymail&config=3.0.0

 

โดยโมเดล T5 ที่ทำบททดสอบสุดหินด้านการอ่านคือ SuperGLUE ที่เรากล่าวถึงในบทความก่อน ก็สามารถย่อความได้ในตัวด้วยครับ เรียกว่าเป็นโมเดลสารพัดประโยชน์เลยทีเดียว

โมเดลจะย่อความประเภทใดได้เก่ง ก็ขึ้นอยู่กับข้อมูลสอนโดยโมเดลที่ถูกฝึกสอนด้วยข้อมูล CNN-Dailymails นี้ก็จะย่อข่าวได้เก่ง แต่อาจจะย่อเนื้อหาประเภทอื่น เช่น บทความทางวิทยาศาสตร์ ได้ไม่ดีมากครับ  โดยถ้าต้องการย่อความด้านวิทยาศาสตร์ได้เก่งก็จำเป็นต้องหา dataset ชุดใหม่ๆ มาสอน เช่น https://cs.stanford.edu/~myasu/projects/scisumm_net/ ที่เพิ่งเผยแพร่ในปี 2019 ที่ผ่านมานี่เอง

 

.

**3) -5) ปัญหาระดับการสร้าง Jarvis ให้เป็นจริง **

โจทย์ 3) - 5) นั้น โดยเนื้อแท้อาจเรียกได้ว่าเป็นปัญหาระดับ Turing Test คือมีความสำคัญมากๆ ต่อวงการ AI และเทคโนโลยีของมนุษย์เรา และถ้าทำได้ดี อาจเรียกได้ว่าเป็นบันไดไปสู่ AGI หรือ "ปัญญาประดิษฐ์" ที่แท้จริงของโลกที่ทำงานได้หลากหลาย ไม่ใช่แค่เก่งด้านใดด้านหนึ่ง

โจทย์ 3)-5) นั้นจริงๆ แล้ว ขอบเขตกว้างมาก และถ้าแก้ปัญหาใดปัญหาหนึ่งได้ ก็จะทำให้แก้ปัญหาอื่นๆ ได้ด้วย ยกตัวอย่างเช่น โจทย์ที่ 3) หรือการแต่งเรื่องนั้น ถ้าทำได้จริง เราก็จะแก้โจทย์ที่ 1) 2) 4) และ โจทย์ที่ 5) ได้ด้วย

เช่น เราสามารถสั่งให้ AI แต่งเรื่องนิยายที่ีมีการ พูดคุยกันในเรื่องตลอดเวลาก็แสดงว่าโมเดลเองก็ต้องทำโจทย์ที่ 4) คือ ChatBot ได้ด้วย และถ้าเป็นนิยายที่เน้นถาม-ตอบปัญหาวิทยาศาสตร์ในเนื้อเรื่องก็จะแก้โจทย์ที่ 5) ได้ด้วยในตัวครับ

การถาม-ตอบในโจทย์ที่ 5) ก็ครอบคลุมโจทย์อื่นๆ เช่น ถ้าถามว่า "เนื้อเรื่องย่อของบทความนี้เป็นอย่างไร ?" โมเดลที่ตอบได้ถูกต้อง ก็จะจะสามารถทำโจทย์ที่ 1) ได้ หรือถ้าถามว่า "ประโยคนี้ จะแปลเป็นภาษาที่ 2 ได้อย่างไร ?" โมเดลก็จะแก้โจทย์ที่ 2) ได้ด้วย เป็นต้นครับ

นั่นคือถ้าเราแก้โจทย์ที่ 3) -5) ได้ เราก็จะแก้โจทย์อื่นๆ ที่เหลือได้นั่นเอง … เชื่อว่าหลายๆ คนคงเป็นแฟนหนัง The Avengers ซึ่งในเรื่องนั้นมีคอมพิวเตอร์อัจฉริยะ Jarvis ซึ่งมีความรู้ความสามารถที่จะตอบคำถามและให้คำปรึกษาด้านต่างๆ กับ Iron Man  ซึ่ง Jarvis เองต้องมีความสามารถที่จะผ่านบททดสอบ 1) - 5) ได้อย่างสมบูรณ์แบบครับ

เพื่อนๆ คงเห็นแล้วว่า โดยเทคโนโลยีระดับสร้าง Jarvis นั้นมีกุญแจสำคัญอยู่ที่การแต่งประโยคโดยใช้ความรู้ ดังที่เล่าในบทความนี้ครับ … แล้วพบกันใหม่ในบทความหน้าครับผม 🙂

This post was modified 8 months ago 2 times by The Neural Engineer
ตอบกลับอ้างอิง
Posted : 26/08/2020 1:42 pm
The Neural Engineer
(@neural-engineer)
Boltzmann Machine
โมเดล AI ที่ตอบคำถามได้ เก่งแค่ไหน?
Deep Language & Knowledge Understanding Series ตอนที่ 4
ThaiKeras and Kaggle 29 ตค. 2563
 
สวัสดีครับเพื่อนๆ วันนี้เรามาต่อเรื่อง "ความรู้ที่ถ่ายทอดด้วยภาษา" ของ AI ที่่ดีที่สุดในปัจจุบันกันต่อใน Series นี้ครับ
 
เนื่องจาก series นี้บทความล่าสุดอยู่ที่สองเดือนที่แล้ว เรามาสรุปความเป็นมาของตอนก่อนๆ ดังนี้ครับ
(อ่านย้อนหลังทั้งหมดได้ที่นี่ https://bit.ly/thaikeras-understanding-nlp )
 
- ตอนปฐมบท: ว่าด้วยเรื่องปรากฏการณ์ "ม้าฮันส์" ที่ล้อเลียนโมเดล AI ที่เหมือนจะเข้าใจภาษาได้ดีมากแต่พอนำไปใช้จริง ผิดพลาดง่ายๆ เต็มไปหมด
 
- ตอนที่ 1 : ว่าด้วยเรื่องโมเดล AI ทำคะแนน "ข้อสอบมัธยม" (แบบเลือกคำตอบที่ถูกต้องที่สุด) ได้คะแนนระดับเกรด A+
 
- ตอนที่ 2 : นักวิจัยตีพิมพ์งานในเดือนเมษายน 2020 โต้ว่า โมเดล AI ที่ดีที่สุด "ไม่มีความสามารถในการพูดคุยอย่างรู้เรื่องอย่างแท้จริง" (การ "พูดคุย" นี้วัดด้วยการสร้างประโยคตอบโต้กับมนุษย์ ซึ่งต่างจากการเลือกคำตอบที่ดีที่สุดในตอนที่ 1 )
 
- ตอนพิเศษ A : เจาะลึก "บททดสอบมาตรฐาน" สุดหินเรียกว่า SuperGLUE ที่่ใช้ทดสอบโมเดลชั้นนำทั้งหลาย ที่ยังเน้นเฉพาะ "เรื่องการอ่าน และเลือกคำตอบที่ดีที่สุด" ในลักษณะเดียวกับปัญหาข้อสอบมัธยมในตอนที่ 1 … ซึ่งโมเดลชื่อ T5 ของ Google ทำคะแนนได้ใกล้เคียงมนุษย์แล้ว
 
- ตอนที่ 3 : ว่าด้วยเรื่อง "ความสามารถในการเขียน" (อาทิเช่น การตอบคำถามแบบให้เหตุผล หรือการพูดคุย) ซึ่งจะเป็นการทดสอบ "ความฉลาด" ได้ดีกว่า "การอ่านและเลือกคำตอบ" เนื่องจากนอกจากต้องเขียนให้ถูกแล้ว ในประโยคยาวๆ จำเป็นต้องเข้าใจเหตุผลที่เชื่อมโยงแต่ละประโยคเข้าด้วยกันอีกด้วย นอกจากนี้ในปัญหาตอบคำถามหรือพูดคุยยังต้องมีความรู้พื้นฐาน common sense ต่างๆ เกี่ยวกับสังคมและโลกของเราอีกด้วย
 
จากบทความที่ผ่านมา หลายคนอาจจะสงสัยว่าแล้วตกลง "AI ฉลาดจริงไหม?" กล่าวโดยสรุป คำตอบก็คือ "แล้วแต่ว่าวัดด้วยมาตรฐานไหน?" เช่น ถ้าวัดด้วยมาตรฐานการทำข้อสอบ เลือกคำตอบที่ดีที่สุด หรือแม้กระทั่งการ "แปลภาษา" โมเดล AI ที่ถูกคิดค้นในปีหลังๆ มานี้นั้นฉลาดมากๆ ระดับปริญญาครับ
 
อย่างไรก็ดีถ้าวัดด้วยมาตรฐานอื่นๆ เช่น "การคุยตอบโต้กับมนุษย์ในบทสนทนายาวๆ" หลายๆ โมเดล AI ที่ได้ผลการทดลองดีมากและผู้เขียนมีโอกาสได้ลองเป็นการส่วนตัวนั้น (อาทิเช่น DiabloGPT ของ Microsoft และ BlenderBot ของ Facebook ดูอ้างอิง 1 และ 2) ยังถือได้ว่าห่างชั้นจากการพูดคุยกับมนุษย์อยู่มาก โดยเฉพาะเวลาเราเปลี่ยนหัวข้อที่พูดอยู่ หรือย้อนกลับไปถามเรื่องเดิม
 
โมเดล GPT-3 ซึ่งเป็นโมเดลขนาดยักษ์ของทีม OpenAI ซึ่งใหญ่กว่าโมเดลของทีมอื่นๆ นับร้อยเท่า ดูจะเป็นโมเดลที่น่าจะพูดคุยตอบโต้ได้ใกล้เคียงกับมนุษย์อย่างแท้จริง อย่างไรก็ดี ณ วันนี้ OpenAI ยังคงไม่เปิดเผยโค้ดของโมเดลนี้ เราจึงดูความสามารถในการพูดคุยของ GPT-3 ผ่าน chat log ของผู้ที่มีสิทธิใช้งานเท่านั้น (ดูอ้างอิง 3) และเท่าที่ตามดูทีมวิจัยอื่นๆ ยังไม่สามารถสร้างโมเดลที่มีความสามารถใกล้เคียงกับ GPT-3 ได้
 
ในตอนที่ 3 เรายังได้เห็นว่าหลายๆ ปัญหานั้นยากเท่าเทียมกัน อาทิเช่น ปัญหาตอบคำถามแบบไม่มีตัวเลือก (Free-form Question Answering) ปัญหาสร้าง Chatbot และปัญหาแต่งเรื่องราว (Story Generation) ในบทความตอนที่ 4 นี้เราจะมา survey กันที่ ปัญหา "ตอบคำถามแบบไม่มีตัวเลือก" นี้่ซึ่งมีหลายประเภทกันครับ
 
.
 
ประเภทของปัญหาแบบไม่มีตัวเลือก (Q&A problems)
 
ปัญหา Question-Answering หรือ Q&A นี้แบ่งหยาบๆ ออกได้เป็น 4 หมวดหมู่ไล่จากง่ายที่สุดไปยากที่สุด โดยงานวิจัยที่มักอ้างว่าสร้างโมเดลที่เก่งใกล้มนุษย์ใน Q&A มักมุ่งเป้าเฉพาะหมวดที่ 1 ส่วนงานวิจัยใหม่ๆ ในปี 2020 กำลังมุ่งมายัง Q&A หมวดที่ 2-3 ครับ
 
หมวดที่ 1 ง่าย - Closed-domain Q&A on 1 short context
หมวดที่ 2 ยาก - Closed-domain Q&A on 1 long context or multiple contexts
หมวดที่ 3 ยากมาก - Open-domain short answer Q&A
หมวดที่ 4 ยากมากที่สุด - Open-domain long-answer Q&A
 
.
 
**********
หมวดที่ 1 ง่าย - Closed-domain Q&A on 1 short context
 
คำว่า Closed domain หมายถึงในการถามคำถามนั้น ผู้ถามจะเตรียม "เนื้อหาที่บรรจุคำตอบไว้ข้างใน" (context) ให้กับโมเดลเสมอ โดยในหมวดที่ 1 นี้จะมี context เพียง 1 บทความและเป็นบทความสั้นๆ เท่านั้น (เช่น ไม่เกิน 512 หรือ 1024 คำเป็นต้น) โดยที่ต้องเป็นบทความสั้นแบบนี้เนื่องจากสามารถส่งเป็น input ของโมเดลกลุ่ม transformers ซึ่งเป็นโมเดลภาษาที่ดีที่สุดได้ตรงๆ ไม่ต้องตัดทอนใดๆ และทำให้ transformers วิเคราะห์คำและความสัมพันธ์ระหว่างคำสำคัญทุกคำใน context ได้
 
ในแต่ละคู่ลำดับของ training data (x,y) ซึ่ง x เป็น input และ y เป็น output , ตัว input x ก็จะต้องประกอบไปด้วยคำถาม และบทความ นั่นคือ x = (q, c) เป็นต้น โดย q = string ของคำถามและ c = string ของบทความหรือ context และ y ซึ่งเป็นคำตอบก็จะเป็น substring ของ c เป็นต้น
 
เช่น สมมติถามว่า q = "นายกรัฐมนตรีคนแรกของประเทศไทยคือใคร ?" data ก็จะต้องแนบ c = บทความเกี่ยวกับ "ประวัตินายกรัฐมนตรีของไทย" (ฉบับสั้น) ให้กับโมเดล ซึ่งมีชื่อของ y="พระยามโนปกรณ์นิติธาดา" อยู่ใน c ด้วย เป็นต้น
 
หมวดที่ 1 นี้จริงๆ ถูกบรรจุอยู่ใน SuperGLUE (ตอนพิเศษ) เรียบร้อยแล้วและอาจไม่ท้าทายมากนักสำหรับโมเดล AI เก่งๆ ในปี 2020 เช่น T5 ซึ่งทีม ThaiKeras เราก็เคยแชร์บทความและโมเดลที่แก้ปัญหาในหมวดที่ 1 ไว้ในบทความนี้ครับ "ถอดรหัสถ้อยความสำคัญจาก Twitter"
 
.
 
**********
หมวดที่ 2 ยาก - Closed-domain Q&A on 1 long context or multiple contexts
 
หมวดที่ 2 นี้คือกรณีที่ context นั้นประกอบไปด้วยหลายบทความ หรือบทความเดียวแต่ยาวมากๆ เกินกว่าที่ transformers ปัจจุบันจะอ่านได้ใน 1 input ซึ่งก็ทำให้ต้องซอยตัดแบ่งบทความยาวออกเป็นหลายๆ บทความย่อย
 
นอกจากนี้ในการตอบปัญหาอาจจำเป็นต้องใช้ความรู้จากหลายบทความอีกด้วย (เรียกว่า multi-hop reasoning) เช่น คำถาม "ใครคือนักแสดงที่มีผลงานจากทั้งเรื่องบุพเพสันนิวาส และสุภาพบุรุษจุฑาเทพ" จำเป็นต้องมี contexts จากสองบทความคือ บทความบุพเพสันนิวาส c1 และบทความสุภาพบุรุษจุฑาเทพ c2 โมเดลถึงจะตอบได้ถูกต้องว่า "เบลล่า" เป็นต้น
 
การทำความเข้าใจจากบทความที่ยาวหรือหลายบทความในปัญหาหมวดที่ 2 นี้นั้นยากกว่าหมวดที่ 1 พอสมควร โดย dataset ใหม่ๆ ก็เริ่มมาหมวดที่ 2 มากขึ้นเช่น Google Natural Question dataset ที่สร้าง Q&A จากคำถามที่ถูกถามผ่าน Google บ่อยๆ และให้ context เป็นบทความวิกิพีเดียที่ยาวมากๆ กับโมเดล
 
ในปัญหา Natural Question นี้ ปัจจุบันเดือนตุลาคม 2020 โมเดลที่เก่งที่สุดจาก Microsoft ตอบคำถามได้ถูกต้องราว 77% ในขณะที่มนุษย์นั้นถูกต้องราว 87% (ดูอ้างอิง 4)
 
ในหมวด 1 และ 2 นั้นเนื่องจากคำตอบ y อยู่ในบทความหรือ context c ที่เตรียมให้โมเดลอ่านอยู่แล้ว Q&A ทั้งสองหมวดนี้จึงมีอีกชื่อเรียกว่าเป็น "ปัญหาการอ่านเพื่อความเข้าใจ" หรือ "Reading Comprehension Problem" โดยในหมวด 2 ก็อาจจะมีคำว่า "Multi-hop" เพื่อเน้นว่ายากกว่าหมวดที่ 1
 
.
 
**********
หมวดที่ 3 ยากมาก - Open-domain short-answer (factoid ) Q&A
 
ในปัญหาหมวดที่ 3 นี้ต่างจากหมวดที่ 1 และ 2 ตรงที่ใน training data จะไม่มี context มาให้ จึงเรียกปัญหากลุ่มนี้ว่าปัญหา Open Domain, ซึ่ง training data (x,y) เหมือนกับหมวด 1 และ 2 เพียงแต่ x = q นั่นคือมีแค่คำถามเท่านั้น ไม่มี context มาให้
 
เนื่องจากไม่มี contexts มาให้ ดังนั้นโมเดลจึงจำเป็นต้องมี "ความรู้" อยู่ในตัวเลย และสามารถ "เรียกใช้หรือเข้าถึง" (retrieve) ความรู้ที่ถูกต้องสำหรับคำถามนั้นๆ ขึ้นมาได้ด้วย
 
ในหมวดที่ 3 นี้คำตอบ y ยังคงเป็นคำตอบที่เป็นคำนามสั้นๆ เช็คความรู้ง่ายๆ (เช่น "เบลล่า" ในตัวอย่างที่แล้ว) ดังนั้นปัญหาในกลุ่มนี้จึงมักถูกเรียกว่า "open-domain factoid Q&A" เนื่องจาก factoid มาจากคำว่า facts หรือคือ "ความจริง" หรือ "ความรู้สั้นๆ" นั่นเอง
 
โมเดลใหม่ล่าสุดในปี 2020 ซึ่งเราสามารถใช้งานได้ที่ HuggingFace เช่น DPR, REALM หรือ RAG (อ้างอิง 5) นั้นถูกออกแบบมาเพื่อทำโจทย์เช่นนี้โดยเฉพาะ ซึ่งยังมีความห่างชั้นจากมนุษย์อยู่พอควร
 
.
 
**********
หมวดที่ 4 ยากมากที่สุด - Open-domain long-form (free-form) Q&A
 
ในหมวดคำถามตอบสุดท้ายซึ่งยากที่สุด นั่นคือ คำถามไม่ได้ต้องการเพียงคำตอบง่ายๆ สั้นๆ เท่านั้น แต่ยังต้องการเหตุผลอธิบายอีกด้วย เช่น คำถามประเภท how, why, what if เป็นต้น (ให้พวกเรานึกถึงกระทู้ถามตอบใน pantip.com ) เรียกได้ว่าเป็นปัญหาที่ต้องการโมเดลที่สามารถ "ให้เหตุผลได้อย่างแท้จริง" (True Reasoning)
 
ในปัจจุบันมีงานวิจัยน้อยมากที่เจาะปัญหาในหมวดที่ 3 โดยเท่าที่ทราบมีเพียง dataset ที่ชื่อ ELI5 (Explained like I am 5 - อ้างอิง 6) เท่านั้น ที่เจาะปัญหานี้โดยตรง สาเหตุที่มีนักวิจัยสนใจงานชนิดนี้น้อยเพราะ (ก) ไม่มีวิธีวัดผลที่ดีและเร็วในปัจจุบัน (ข) datasets มาตรฐานน้อย และ (ค) ยังแก้ปัญหาในหมวดที่ 2 และ 3ได้ไม่ดีพอ ซึ่งควรต้องทำให้ได้ก่อนที่จะมาเน้นชนิดที่ 4
 
ซึ่งอย่างที่ได้เล่าในบทความตอนที่แล้วครับว่า ถ้าเราอยากจะสร้างโมเดล AI ที่เก่งกาจระดับ Jarvis ในหนัง Ironman ได้จริงๆ เราต้องสร้างโมเดลที่ตอบโจทย์ปัญหาในหมวดที่ 4 ได้อย่างสมบูรณ์แบบครับ
 
.
 
เนื่องจากการตอบคำถามในหมวดที่ 3 และ 4 (Open Domain) นั้นโมเดลจำเป็นต้องมีความรู้ หรือเข้าถึงความรู้ภายนอกได้ สำหรับบทความหน้าเราจะมาดูกันว่า "ความรู้" เหล่านี้โมเดลต่างๆ เก็บหรือเข้าถึงได้อย่างไรครับ
 
 
อ้างอิง
1. Microsoft's Diablo GPT(2019) - https://github.com/microsoft/DialoGPT
3. ตัวอย่างบทสนทนากับ GPT-3 โดยถามเจ้า AI เกี่ยวกับเรื่อง AI เอง - https://medium.com/@kirkouimet/turing-test-2669daffae38
4. Google Natural Question Leaderboard - https://ai.google.com/research/NaturalQuestions/leaderboard
ตอบกลับอ้างอิง
Posted : 29/10/2020 12:44 pm
The Neural Engineer
(@neural-engineer)
Boltzmann Machine

บทความเจาะลึก Transformers ล้ำๆ จาก Huggingface team

ThaiKeras and Kaggle  11 พย. 2563

สวัสดีครับเพื่อนๆ เชื่อว่าทุกคนที่ทำงาน data science หรือ machine learning ด้านภาษา หรือข้อมูลมีลำดับ (sequential data) ย่อมรู้จักเป็นอย่างดีกับโมเดล Transformers ซึ่งปัจจุบันเป็น "มาตรฐานที่ดีที่สุด" ของงานกลุ่มนี้ โดยโมเดลที่ดีที่สุดในสามปีหลังต่างก็เป็น "สมาชิก" ในตระกูลนี้ทั้งสิ้น

นอกจากนี้เพื่อนๆ ย่อมรู้จักทีม Huggingface ซึ่งเป็นเจ้าของ open source library ของโมเดล Transformers ต่างๆ ที่ครบถ้วนมากที่สุด และใช้งานง่ายที่สุด และครอบคลุมทั้ง Tensorflow-keras และ Pytorch

อย่างไรก็ดีนอกจากผลงานโมเดลแล้ว ทีม Huggingface ยังได้แชร์ความรู้ผ่านบทความหรือโน้ตบุคมากมายอีกด้วย วันนี้อยากแนะนำบทความที่จะเป็นพื้นฐานสำคัญๆ ที่จะทำให้เราเข้าใจโมเดลที่พัฒนาล่าสุดและดีที่สุดในปัจจุบันครับ

 

Transformer-based Encoder-Decoder Models

โดย Patrick von Platen อ่านที่นี่ --> https://huggingface.co/blog/encoder-decoder

โมเดล Transformers ดั้งเดิมนั้นประกอบไปด้วย สองบล็อกใหญ่ๆ คือบล็อก Encoder ซึ่งทำหน้าที่เปลี่ยนข้อมูล (หรือเรียกเท่ห์ๆ ว่า "เข้ารหัส") อาทิเช่น ประโยคในภาษาต่างๆ ให้เป็นเวกเตอร์ทางคณิตศาสตร์ 

บล็อกที่สองคือ Decoder ก็จะทำหน้าที่ "ถอดรหัส" เวกเตอร์ทางคณิตศาสตร์ให้กลับมาเป็นข้อความที่เราต้องการครับ

หลักการเข้ารหัสและถอดรหัสหรือ Encoder-Decoder นี้ สามารถใช้กับงานทางด้านภาษามากมาย อาทิเช่น

  • แปลภาษา เช่น เข้ารหัสภาษาอังกฤษ และถอดรหัสออกเป็นภาษาไทย
  • ย่อความ เช่น เข้ารหัสบทความต้นฉบับ (ยาวๆ) และถอดรหัสออกมาเฉพาะข้อความที่สำคัญจริงๆ
  • ตอบคำถาม เช่น เข้ารหัสประโยคคำถาม และถอดรหัสออกมาเป็นประโยคคำตอบ (ในกรณีนี้โมเดลต้องมี "ความรู้" ในตัว หรือสามารถเข้าถึงความรู้ที่ถูกต้องและ "เข้ารหัส" ความรู้ร่วมกับคำถามได้ )

ซึ่งโมเดลชื่อดังระดับเทพต่างๆ ที่เราเห็นในเพจของ Huggingface https://huggingface.co/transformers/model_summary.html นั้น เช่น T5, Bart, MarianMT, Pegasus หรือ ProphetNet ล้วนแต่มี architecture พื้นฐานแบบเดียวกันทั้งสิ้น  ดังนั้นถ้าเพื่อนๆ เข้าใจพื้นฐานของ  Encoder-Decoder นี้อย่างดีแล้วก็จะทำให้เพื่อนๆ เข้าใจโมเดลที่คิดขึ้นมาใหม่ได้อย่างไม่ยาก

ในบทความนี่้ Patrick จะอธิบาย Transformers อย่างละเอียดมากๆ (มากที่สุดเท่าที่ผมเคยอ่านบล็อกเกี่ยวกับ Transformers มาเลยครับ 😀 )

  • ความเป็นมา เจ้า Transformers ซึ่งได้รับแรงบันดาลใจจาก RNN นั้นถูกคิดค้นมาได้อย่างไร ?  
  • อธิบาย "ภาพใหญ่" หรือ flow ของ Encoder-Decoder ผ่านกรอบของ "ทฤษฎีความน่าจะเป็น"
  • เจาะลึกสมการฝั่ง Encoder
  • เจาะลึกสมการฝั่ง Decoder

Patrick เจ้าของบทความนี้เป็นผู้ implement โมดูลสำคัญๆ บน Huggingface หลายชิ้น เช่น T5, Sampling-based Decoding และ Beam-Search Decoding ทำให้ตกผลึกออกมาเป็นบทความนี้ครับ

ผมมั่นใจว่าถ้าเพื่อนๆ อ่านจบบทความนี้ รวมทั้งทำความเข้าใจโค้ด tutorial transformer ของ official tensorflow ( https://www.tensorflow.org/tutorials/text/transformer ) เพื่อนๆ จะเข้าใจ Transformers อย่างลึกซึ้งแน่นอน ซึ่งทำให้เข้าใจแก่นสำคัญของโมเดลล่าสุดต่างๆ อีกด้วย

โอกาสถัดไปจะนำบทความเยี่ยมๆ ของทีมนี้มาแนะนำกันอีกครับ วันนี้ขอตัวก่อนครับผม สุขสันต์วัน 11.11 คร้าบบบ

ตอบกลับอ้างอิง
Posted : 14/11/2020 7:38 am
The Neural Engineer
(@neural-engineer)
Boltzmann Machine

สรุปย่อๆ (มาก) 22 Transformers ที่สำคัญบน Huggingface

ThaiKeras and Kaggle  15 พย. 2563

สวัสดีครับเพื่อนๆ ในบทความก่อนเราได้แชร์บทความเจาะลึก Transformers ของ Patrick จากทีม Huggingface ซึ่งเป็น library ของ Transformers ที่มีโมเดลให้เลือกใช้มากที่สุด (วันที่เขียนบทความนี้มีทั้งหมดราว 40 โมเดล)

อย่างไรก็ดีการมีตัวเลือกมากเกินไปบางครั้ง ทำให้ผู้ใช้ใหม่ๆ สับสนได้เหมือนกันว่าโมเดลใดเหมาะกับปัญหาแบบไหน และแตกต่างกันอย่างไร วันนี้ทีม ThaiKeras ได้ลองแยกประเภทและสรุปย่อ (มากๆ) โมเดลเฉพาะที่เรารู้จักคร่าวๆ ไว้   --- เราก็ไม่รู้จักทุกโมเดลเหมือนกันครับ แหะๆ

อย่างที่โพสต์ก่อนหน้าได้เกริ่นไป ( https://bit.ly/thaikeras-understanding-nlp ) เจ้า Transformers นั้นดั้งเดิมแล้วประกอบไปด้วยองค์ประกอบสองส่วนคือ ส่วนของ Encoder และส่วนของ Decoder โดยบล็อก Encoder ซึ่งทำหน้าที่เปลี่ยนข้อมูล (หรือเรียกเท่ห์ๆ ว่า "เข้ารหัส") อาทิเช่น ประโยคในภาษาต่างๆ ให้เป็นเวกเตอร์ทางคณิตศาสตร์  ส่วน Decoder ก็จะทำหน้าที่ "ถอดรหัส" เวกเตอร์ทางคณิตศาสตร์ให้กลับมาเป็นข้อความที่เราต้องการ

ทว่าในบางปัญหานั้น การมีแค่ Encoder หรือแค่ Decoder เพยงอย่างเดียวก็จะเหมาะสมกว่า ซึ่งทำให้เราอาจแบ่งประเภทของ Transformers ได้เป็น 4 ประเภทครับ

  1. Encoder-only (ในเพจ Huggingface เรียก Autoencoder models)
  2. Decoder-only (ในเพจ Huggingface เรียก Autoregressive models)
  3. Encoder-Decoder (หรือ Sequence-to-sequence models)
  4. Multi-modal Encoder-Decoder

 

โดย

  1. เจ้า Transformers ที่มี Encoder เพียงอย่างเดียวนั้นจะเหมาะกับปัญหาพื้นฐานพวก classification, regression, token classification และ reading comprehension (closed-domain Q&A -- ดูรายละเอียดที่ ตอนที่ 4 ใน https://bit.ly/thaikeras-understanding-nlp ) ตัวอย่างเช่น Bert, Roberta, XLM-Roberta, Longformer, DPR, etc.

 

2. กลุ่มที่มี Decoder เพียงอย่างเดียวก็จะเหมาะกับการ "สร้างเรื่องราวแบบอิสระ"  (story generation) เช่นตระกูล GPT, GPT-2 และ GPT-3 รวมทั้ง BertGeneration กลุ่มนี้ไม่ได้สร้าง output จาก input ที่เจาะจงโดยตรง (เพราะไม่มี encoder module) จึงเหมาะกับการสร้างเรื่องราวที่เป็น "อิสระ" และมีความสร้างสรรค์

 

3. กลุ่ม Encoder-Decoder ซึ่งสร้าง output จาก input ก็จะเหมาะกับปัญหา แปลภาษา (translation) ตอบคำถามแบบทั่วไป (free-form Q&A) หรือย่อความ (Summarization) ถึงแม้ว่า output ของโมเดลกลุ่มนี้จะขึ้นกับ input โดยตรง แต่ output ก็จะมีความ "อิสระ" หรือ "สร้างสรรค์" ได้ เช่นในปัญหา free-form Q&A เมื่อเจอคำถามประเภท "ทำไม?" หรือ "อย่างไร?" โมเดลจะสามารถอธิบายและให้แง่คิดเกี่ยวกับคำถามได้อย่างอิสระ ตัวอย่างของโมเดล เช่น  T5, Bart และ RAG

 

4. กลุ่ม Multi-modal encoder-decoder เป็นกลุ่มพิเศษซึ่งเพิ่งเริ่มเข้ามาใน Huggingface ปี 2020 นี่เอง นั่นคือ input นอกจากจะเป็น sequential data ได้แล้วยังรับ input พวก image ได้ด้วย เช่นปัญหา image captioning ที่โมเดลสามารถ "เล่าเรื่องราว" จากรูปภาพได้เป็นต้น (ดูตัวอย่างเก่าๆ ของเราที่ https://www.kaggle.com/ratthachat/flickr-image-captioning-tpu-tf2-glove ) โมเดลชื่อ LXMert เป็นตัวอย่างในกลุ่มนี้

 

ข้างล่างนี้จะเราจะลองสรุปย่อๆ ในแต่ละโมเดล ซึ่งในเพจของแต่ละโมเดลบน Huggingface จะมีลิงก์ไปยัง original paper ทุกโมเดลครับผม

https://huggingface.co/transformers/model_doc/bert.html (เปลี่ยนชื่อจาก bert เป็นโมเดลที่ต้องการ)

 

เนื่องจากเป็นสรุปสั้นๆ อาจเน้นศัพท์เทคนิคเพื่อความกระชับ ขออ้างอิงความหมายไปยังบทความฉบับก่อนๆ นะครับ https://bit.ly/thaikeras-understanding-nlp ส่วนขนาดของ pretrained models ต่างๆ จะมีสรุปที่หน้านี้ครับ https://huggingface.co/transformers/pretrained_models.html

 

โมเดลกลุ่ม Encoder-only

1.1 Bert : โมเดล Encoder-only แรกและเป็นต้นแบบของโมเดลอื่นๆ ทุกตัวในกลุ่มนี้ ทีม Bert เป็นผู้ริเริ่มแนวคิด pretrained บน unlabled data (self-supervised) แบบ masked language modeling (MLM) ซึ่งเมื่อ pretrain สำเร็จแล้ว สามารถไป  finetune ต่อที่ปัญหาประเภท "เลือกคำตอบ" (ที่เป็นมาตรฐานการวัดสำคัญในขณะนั้น) เช่น classification, token classfication ใดๆ ก็ได้และได้ผลลัพธ์ที่ดีที่สุด (ในขณะนั้น) ทันที นับเป็นการปฏิวัติวงการ NLP ที่ถูกเรียกว่า "ImageNet moment of NLP" ล้อไปกับปรากฏการณ์ pretrained บน ImageNet ที่ทำให้งาน Computer Vision ก้าวกระโดดเมื่อปี 2012 นั่นเอง โดยเราเคยเล่าไว้ที่นี่ครับ https://thaikeras.com/2018/rise-of-dl/

 

โดย Bert แบ่งเป็น Bert-large และ Bert-base (330 ล้านพารามิเตอร์ และ 110 ล้านพารามิเตอร์) โดยโมเดลใหญ่จะให้ความผลที่ดีกว่าแทบจะเสมอในทางปฏิบัติ

 

1.2 Albert : เป็นโมเดลจากทีม Google ที่ออกแบบให้มีการแชร์พารามิเตอร์กันให้มากที่สุด ทำให้ประหยัดพื้นที่ storage มากกว่า Bert มาก อย่างไรก็ดียังมีความซับซ้อน (deep หรือประกอบไปด้วยนิวรอนหลาย layers) ในระดับเดียวกับ Bert ทำให้ความต้องการ memory และความเร็วไม่ต่างจาก Bert มากนัก  เนื่องจาก Albert ประหยัดเนื้อที่เก็บมากกว่า Bert, ทำให้ทีมวิจัยทดลองขยายขนาดความซับซ้อนนอกจาก Albert-base และ Albert-large แล้วยังมี Albert-xlarge และ Albert-xxlarge

 

1.3 DistilBert : เป็น Bert จากทีม Huggingface ขนาดเล็กราวๆ ครึ่งนึงของ Bert-base และ pretrain ด้วยเทคนิก distillation นั่นคือเทรนบน soft-labels ของ Bert-large ซึ่งทำให้มีความแม่นยำน้อยกว่า Bert-base ไม่มาก (เช่น 10-15% จากการทดลอง) แม้จะมีขนาดเล็กกว่ามาก โมเดลนี้ถูกพัฒนามาราว 2 ปีก่อน ซึ่งปัจจุบันมี MobileBert ซึ่งดีกว่ามาก

 

1.4 MobileBert : Bert ขนาดจิ๋ว ในปี 2020 ที่ออกแบบโดยทีม Google เอง ซึ่งมีขนาดเล็กกว่า Bert-base เพียง 25% ของ bert-base และเร็วกว่า bert-base ถึง 5 เท่า แต่มีประสิทธิภาพโดยรวมใกล้เคียง Bert-base

 

1.5 SqueezeBert : เป็น Bert ขนาดจิ๋ว คู่แข่งของ MobileBert ซึ่งมีความเร็วและประสิทธิภาพใกล้เคียงกัน

 

1.6 Electra : เป็น Bert จากทีม Google ที่ออกแบบวิธีการ pretrain ให้พัฒนาจาก MLM ของ Bert ดั้งเดิม ทำให้เมื่อนำไป finetune จะมีความแม่นยำมากกว่า Bert (เล็กน้อย)

 

1.7 Roberta เป็น bert จากทีม Facebook ซึ่งได้ optimize การ pretrain MLM ของ bert ดั้งเดิม รวมทั้งเพิ่ม pretrained dataset ให้ใหญ่กว่าเดิมมาก ทำให้ได้ผลลัพธ์ดีกว่า Bert

 

1.8 Longformer : พัฒนาต่อจาก Roberta โดยทีม AI2 ได้มีการปรับแนวคิด attention mechanism ใหม่ (อธิบายในบทความแนะนำ transformers ของ Patrick ในตอนที่แล้ว) ให้เน้น attend local vector เป็นหล้ก จึงทำให้รองรับ input sequence ได้ยาวกว่า Bert และ Roberta มาก นั่นคือรองรับได้ถึง 4096 tokens ในขณะที่ bert และ roberta มาตรฐานอยู่ที่ 512 tokens

 

1.9  XLM-Roberta : พัฒนาต่อจาก Roberta โดย pretrain จาก dataset ถึง 100 ภาษาพร้อมกันทำให้เข้าใจภาษาเกือบทุกภาษาทั่วโลก ซึ่ง ThaiKeras เคยนำเสนอ workshop เกี่ยวกับ XLM-Roberta ไว้ที่นี่ครับ https://bit.ly/thaikeras-kaggle-xlmr

 

1.10 DPR : เป็นโมเดลเกือบล่าสุดจาก Facebook โดยพัฒนาให้มี "ความรู้" สำหรับปัญหา open-book Q&A โดยเฉพาะ เมื่อเจอคำถามใดๆ โดยใช้เทคนิคดึงข้อมูลในวิกิพีเดียที่เกี่ยวข้องขึ้นมาอ่าน และ "คัดลอก" ประโยคที่คาดว่าจะเป็นคำตอบจากบทความที่อ่านมาตอบคำถาม

โมเดล DPR เวอร์ชั่น Tensorflow-Keras บน Huggingface นั้นเขียนโดยทีม ThaiKeras ของเราเองครับ! ซึ่งเราภูมิใจมาก และจะขออนุญาตขยายความในบทความหน้าครับผม

 

.

 

โมเดลกลุ่ม Decoder-only

2.1 GPT-2 : โมเดลในตำนานของทีม OpenAI ที่เป็นผู้ริเริ่มการใช้ Decoder-only architecture โดยใช้การ pretraining ที่เรียกว่า "language model" หรือการ "เขียนบทความเลียนแบบ" จากบทความต่างๆ ใน trainnig data โดย pretraining dataset ของ GPT-2 นั้นเป็น article มหาศาลแทบทุกประเภทบน internet ครับ

เพื่อนๆ สามารถทดลองแต่งเรื่องราวสร้างสรรค์ด้วย GPT-2 บน workshop ของเราที่นี่ครับ https://bit.ly/thaikeras-kaggle-gpt2thai

ใน huggingface นั้น มี  pretrained models ให้เลือกหลายขนาดคือ 'gpt2' (ขนาดเล็กสุด 117ล้าน พารามิเตอร์), 'gpt2-medium' (ขนาด 345 ล้านพารามิเตอร์) 'gpt2-large' (ขนาด 774 ล้านพารามิเตอร์) 'gpt2-xl' (ขนาด 1.5 พันล้านพารามิเตอร์)

อนึ่งแม้ทีม OpenAI จะสร้างโมเดล GPT-3 ขึ้นมาแล้วในปี 2020 ทว่าไม่ได้ opensource ทำให้เราไม่สามารถใช้งานได้ใน Huggingface ครับ

 

2.2 Diablo GPT : คือ GPT-2 ที่ถูกนำมา pretrain ใหม่โดยทีม Microsoft บน chat logs จำนวนมหาศาล ทำให้ Diablo GPT นั้นสามารถพูดคุยตอบโต้ได้คล้ายกับ Chatbot (แทนที่จะแต่งเรื่องไปเรื่อยๆ เหมือน GPT-2 ปกติ)

 

2.3 Ctrl : เป็นโมเดลขนาด 1.6 พันล้านพารามิเตอร์ใกล้เคียง gpt2-xl จากทีม Salesforce โดยได้ออกแบบให้ training data มี tag ต่างๆ กัน เช่น tag "wikipedia", "horror" หรือ "legal" เป็นต้น ดังนั้นในตอนที่เราสร้างสรรค์เรื่องราวเช่นเดียวกับ gpt-2 เราจะสามารถควบคุมเนื้อเรื่องให้สอดคล้องกับ tag ที่กำหนดได้

 

.

 

โมเดลกลุ่ม Encoder-Decoder

ดั่งที่เกริ่นในบทความตอนที่แล้ว Encoder-Decoder เหล่านี้สถาปัตยกรรมไม่ต่างกันมาก จุดที่แตกต่างจะเป็น pretrained data ของแต่ละตัวครับผม

3.1 MarianMT : โดยทีม HelsinkiNLP เป็น transformers ดั้งเดิมเพื่องาน "แปลภาษา" โดยเฉพาะ  โดยมี pretrained models บนคู่ภาษามากกว่า 1,000 คู่รวมทั้งคู่ english-thai, french-thai

 

3.2 T5 : โดยทีม Google , ถ้าไม่นับ GPT-3  เจ้า T5 นับว่าเป็นโมเดลที่ใหญ่และดังทีสุดในปี 2020, เนื่องจากเป็นโมเดลแรกที่ทำ benchmark มาตรฐาน SuperGLUE ที่ยากที่สุดของปัญหา "เลือกคำตอบ" ได้ทัดเทียมมนุษย์ (รายละเอียดในตอนพิเศษใน https://bit.ly/thaikeras-understanding-nlp ) และเจ้า pretrained weights นอกจากสามารถใช้ตอบคำถามต่างๆ superGLUE แล้วยังสามารถ "ย่อบทความ" ได้ในตัวโดยไม่ต้อง finetune ใดๆ จึงนับว่าสารพัดประโยชน์มากๆ

T5 มี pretrained weights หลายขนาดเช่นกัน คือ t5-small, t5-base, t5-large, t5-3B (3พันล้านพารามิเตอร์) และ t5-11B (1.1 หมื่นล้านพารามิเตอร์) ใหญ่มากจนคนธรรมดาอย่างเราใช้ไม่ได้ :p เพราะต้องการเครื่อง spec สูงมากๆ

 

3.3 Bart : ของทีม Facebook ซึ่งเป็นคู่แข่งของ T5 (ใน size ใกล้เคียงกัน) โดย Bart นั้นมีการ pretrain บน unsupervised data และงาน "ย่อความ" คล้ายๆ T5 แต่ไม่มี pretrained บน superGLue

 

3.4 mBart : โดยทีม Facebook เช่นกัน ขยายความสามารถของ Bart เพื่อแปลภาษาหลายคู่ภาษา

 

3.5 BlenderBot : เป็น Chatbot ที่น่าจะดีที่สุดที่มี Opensource ผลงานจากทีม Facebook เช่นเดิม โดยมี structure เช่นเดียวกับ Bart แต่ขยายให้ใหญ่ขึ้น โดยตัวที่ใหญ่ที่สุดใน Huggingface มีขนาด 3พันล้านพารามิเตอร์

 

3.6 RAG : โมเดลล่าสุดจาก Facebook ที่รวมความสามารถของ Bart และ DPR เข้าด้วยกัน ซึ่งเป็นหนึ่งในไม่กี่โมเดลในปัจจุบันที่ตอบปัญหา Free-form Open-Domain Question-Answering ได้ นั่นคือตอบคำถามอะไรก็ได้ โดยไม่ต้องใบ้คำตอบใดๆ เลยแม้แต่น้อย เนื่องจากโมเดลจะไปค้นวิกิพีเดียมาตอบเอง และสามารถตอบได้อย่างอิสระด้วยความสามารถของ Bart (ไม่ได้ก้อปปี้คำตอบจากบทความมาเหมือน DPR) โมเดลนี้เป็นโมเดลที่ผมสนใจเป็นการส่วนตัวที่สุด และ ThaiKeras กำลังเขียนเวอร์ชัน Tensorflow-Keras ร่วมกับ Huggingface อยู่ครับ

 

3.7 Pegasus : อีกหนึ่งโมเดลจากทีม google ออกแบบ unsupervised pretraining task ใหม่ (อีกแล้ว) และปัจจุบันเป็น 1 ในโมเดลที่ทำงานด้าน "ย่อความ" ได้ดีที่สุด โดยมีความสามารถใกล้เคียงกับ T5 ตัวที่ใหญ่ที่สุดทั้งที่โมเดลมีขนาดเล็กกว่ามาก

 

3.8 ProphetNet : โมเดลจากทีม Microsoft ที่ออกแบบ unsupervised pretraining task ให้ทำนาย tokens ในอนาคตแบบ N-Gram พร้อมกัน และ Microsoft report ว่าโมเดลนี้เมื่อนำไป finetune ให้ผลลัพธ์ที่ดีมากๆ ในหลาย dataset

 

โมเดลกลุ่ม Multi-modal

4.1 LXMert : เป็นโมเดลแรกใน Huggingface ที่ฝั่ง Encoder รับ input ที่เป็นรูปภาพและภาษาได้พร้อมกัน ซึ่งทำให้ทำงานที่เชื่อมระหว่างสองโดเมนนี้ได้ เช่น อธิบายรูปภาพ (image captioning) และตอบคำถามจากภาพ (visual question answering) เป็นต้น

 

ในอนาคตถ้าผมได้มีโอกาสทดลองใช้และศึกษาเพิ่มเติม ก็จะมาอัพเดตบทความนี้เรื่อยๆ เพื่อให้ทันสมัยมากขึ้นครับ สำหรับบทความหน้าเราจะมาเจาะและทดลองใช้โมเดลที่สามารถอ่านวิกิพีเดียเพื่อตอบคำถาม ที่ชื่อว่า DPR  (1.10) กันครับ

ตอบกลับอ้างอิง
Posted : 15/11/2020 9:07 am
Share:

Please Login or Register