ไขข้อข้องใจ “ChatGPT” เก่งขนาดนั้นจริงหรือ?

Q: “ChatGPT คือจุดเริ่มต้นของจุดจบ! โลกยังไม่พร้อมกับมัน! มันจะแย่งงานเรา! มันจะเขียนโค้ดแทนเรา! มันจะมาแทน StackOverflowหรือไม่ในการช่วยเราตอบคำถามเรื่องการเขียนโค้ด? ช่วยเราเขียนโค้ดลงทุนเก่งกว่าเราแล้ว?”

A : ไม่!!! ChatGPT ไม่ใช่จุดเริ่มต้นของจุดจบอะไรทั้งนั้น เหมือนกับที่ Alpha Go ไม่ใช่ จุดเริ่มต้นของ Reinforcement Learning ฉันใด ChatGPT ก็ไม่ใช่จุดเริ่มต้นของ NLP ฉันนั้น หากแต่เป็นโมเดลต่อยอดขนาดใหญ่(GPT3)ที่น่าสนใจทั้งฉลาดมาก แต่ในขณะเดียวกันก็สามารถทำตัวโง่อวดฉลาดมากในเวลาเดียวกันเช่นครับ

ถ้า ChatGPT เป็นคนซักคนหนึ่ง จินตนาการว่าเค้าจะเหมือนอะไร?

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

Photo by KOBU Agency on Unsplash

ภาษาชาวบ้าน ก็คือ …

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

ตั้งแต่ ChatGPT เปิดตัวออกมาเมื่อไม่นานมานี้ สังคมเราโดยเฉพาะคนไทยเรา ตื่นเต้นกันอย่างมากกับความมหัศจรรย์ของมัน (ยิ่งไม่รู้ ยิ่งตื่นตระหนก) มีความกังวลออกมาว่า ChatGPT จะมาแย่งงานเราในเขียนโค้ดลงทุนไหม? จะมาแทนที่เรางาน ABCD ใหม่?

คำตอบคือ ใจเย็นๆ ครับ มันไม่ได้เก่งขนาดนั้นหรอกครับ จริงอยู่ ที่มันสามารถมันสูงเนื่องจากเป็นโครงข่าย Neural Network Transformer Model ดูจากชื่อChatGPT มันก็มาจากพื้นฐานของมันที่ใช้ GPT-3 โมเดลภาษาชื่อดังนั่นเอง

อะไรคือ GPT-3

GPT หรือ Generative Pre-trained Transformer 3 คือโครงข่าย Neural Network ที่ผ่านการเทรนมาแล้ว ขนาดใหญ่ ที่มีพารามิเตอร์ใน Network กว่า 175,000,000,000 (อ่านว่า แสนเจ็ดหมื่นห้าพันล้าน!) พารามิเตอร์ ซึ่งโคตรใหญ่!! ถ้าเราย้อนไป 4-5 ปีก่อน Andrew Trask เคยกล่าวอ้างว่าเค้าเทรนโครงข่าย Neural Network ใหญ่สุดในโลก ตอนนันมันก็ระดับ 1,000,000,000 (พันล้าน) พารามิเตอร์เท่านั้นเอง ซึ่งนับว่าครั้งนี้ โคตรใหญ่ ซึ่งทำให้มันก็ดูฉลาดและเท่มาก แน่แหละครับ เพราะมีโครงข่ายที่ใหญ่มากๆ (GPT-4 จะใหญ่กว่านี้แบบไม่เห็นฝุ่นเลยล่ะ) และ มีการใช้ทั้ง Supervised และ Reinforcement Learning (RL) มาช่วยในการสอนโมเดล ตามรูปจะแสดงให้เห็นว่าถูกสอนมาอย่างไรในฐานะลูกผสม RL

รูปจาก Twitter @DanKornas

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

ChatGPT สามารถช่วยเราเขียนการบ้านเขียนโค้ดได้แต่มันก็มั่วได้


ต่อให้ไม่มั่ว ถ้าเราถามคำถามไม่เจาะจงพอ มันก็จะให้ผลที่ไม่ดีให้เราได้ เช่น บอกให้สร้างของง่ายๆ แบบ Moving Average Crossover เค้าก็จะตอบมาอย่างน่าเชื่อถือ ดูเหมือนจะถูกต้อง แต่ถ้าเราบอกเค้าไม่ครบ ละเราเชื่อตามนี้ เราก็อาจจะได้โค้ดที่มี Bug มี Bias ไปใช้งานได้ครับ หรือถ้าไม่มี Bug เราเองก็อาจจะบอกมันไม่ครบก็มีปัญหาอยู่ดี

ตอบอย่างดีมีคอมเม้นอธิบายโค้ดพร้อม

เราสามารถบอกเค้าได้อีกว่า เขียนมาให้เป็น Vectorization ให้เราหน่อย เค้าก็จัดให้ได้

ดูดีครับ แต่จากที่เห็นถ้าเราเคลิ้มกับภาษาทางการที่เค้าตอบมาเราอาจจะลืมไปว่ามันมี Lookahead Bias อยู่ชัดๆคุณไม่สามารถนำผลไป Simulation กับราคาได้ทันที ขั้นนี้พี่ ChatGPT ไม่ได้ทำอะไรผิดเลยครับ แต่เราบอกเค้าไม่ครบเอง ในชั้นต่อไปเราสามารถนำผลที่เค้าให้มาไปทำ Lagging เพื่อจัดการปัญหาได้แต่นั่นแหละครับ อย่าเคลิ้มว่าคำตอบอย่างเป็นทางการแล้วจะไม่มีปัญหา

จากนั้นผมบอกว่า ขอแบบกัน Lookahead Bias ให้ผมหน่อย

โอเคอันนี้ดูดี แปลความเราเข้าใจได้ แต่มันก็มีหลายเคสที่ก่อให้เกิดปัญหาได้

ความเสี่ยงของความไม่เข้าใจ

แต่เรื่องนี้ถ้าเราไม่ทำความเข้าใจ หลงไปกับกระแสความ Hype จนล้นเกินของมัน นี่อันตรายมากครับ เพราะคนอวยเยอะ เราอาจจะคิดมันเก่งจริง ซึ่งจริงๆ แล้ว การมีคนอวยเยอะไม่ได้สัมพันธ์ความจริงของมัน ตัวโมเดลเป็นโมเดลที่ดีครับ แต่หลักการทำงานของ Attention Model ที่เป็นตัวตั้งต้นของมัน สามารถแปลความคำพูดที่ยาวมากๆ ออกมาให้มีความหมายได้ซึ่งดี แต่หลักการคือ แปลความเอาข้อความที่แปลงเป็นตัวเลขจะเอาไปเข้าโมเดล จากนั้น Output คำตอบที่คิดว่าเกี่ยวข้องกับคำถามของเรา ละก็ไปดึงข้อมูลที่มันอ่านมา (Train มา) มาตอบเรานั่นเอง ปัญหาง่ายๆของเรื่องนี้ผมคิดคร่าวๆได้

สาเหตุที่ทำให้ ChatGPT ไม่เก่ง

1. ขั้นตอนการแปลคำถามของเราผิด!

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

2. เราถามไม่ครบถ้วนมันก็อาจจะผิด

ถ้าเราถามไม่ครบถ้วน คำตอบมันจะถูกครับ แต่มันจะไม่ได้ผลอย่างที่เราต้องการ เช่น ผมเอาตัวอย่างด้านบนแบบมี Lookahead Bias ไป Simulation เฉยๆเลยมันก็ผิด แล้วปัญหาคือ ผมอาจจะไม่รู้ว่ามันถามไม่ครบ มันตอบกลับมาอย่างมืออาชีพมีความมั่นใจสูง ผมอาจจะเคลิ้มเอาไปใช้เลยมันก็เกิดอันตราย

3 คำตอบที่ Probability สูงสุด ไม่ใช่คำตอบที่ถูกเสมอไป!!

ขั้นตอนในการตอบคำถาม ที่อ้างอิงมาจากการนำคำตอบที่ Probability สูงสุดที่น่าจะตรงกับคำถามเรามาตอบ แต่ … “ถ้าข้อมูลที่นำมาสอนนั้นมันไม่สมดุล Probability ความมั่นใจในคำตอบมันก็ไม่ได้สมดุลไปด้วย” ยังต้อง Fine Tune(เค้าก็ทำกันอยู่) กันอีกเยอะ ความไม่สมดุลของข้อมูลเช่น ช่วงต้นๆ ผมถาม What is the role of potter? หรือ อะไรคือหน้าที่ของช่างปั้นหม้อ? แต่โมเดลก็กลับตอบผมว่า “เป็นตัวละครพ่อมด Harry Potter!!!” นี่คือนิยายละครับพี่

ผมไม่ได้หมายความแบบนั้น แต่ก็ไม่แปลกครับ ข้อมูลที่โมเดลเจอมามันมี Harry Potter มากกว่า Potter ที่หมายถึงช่างปั้นหม้อ ทำให้ Probability ของการที่ Potter จะเหมายถึง Harry Potter ก็จะมีเยอะกว่าครับ แต่ข้อดีก็คือ การมี RL ทำให้มันก็เรียนรู้ได้ ดังนั้น พอผมบอกไปว่า ผมหมายถึง Potter ที่เป็นอาชีพน่ะ ต่อไปโมเดลก็ตอบละว่า … อ๋อ ก็มีหน้าที่ปั้นหม้อไง อันนี้ถูกแล้ว และ วันต่อๆ ไป ถ้าผมย้อนกลับไปถามใหม่ เค้าก็ตอบได้ตรงแล้วครับ

4. แปลคำถามถูก คำตอบมาตอบตรงเรื่อง แต่เนื้อหาก็ยังผิด!!!

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

กรณีแบบนี้เราก็อาจจะได้คำตอบที่ต้องการแต่ถ้าเราไปเจอคำถามห่วยๆ คำตอบห่วยๆล่ะ AI อย่าง ChatGPT เค้าจะรู้ไหม

ตัวอย่างคำถามห่วยๆ และหลายครั้งเราก็จะเจอคำตอบห่วยๆเช่นกัน เช่น คนมาตอบวิธีที่ผิด ก็จะมี Down Vote แต่เราไม่รู้เลยว่าคนทำโมเดลเค้าจัดการข้อมูลตรงนี้อย่างไร

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

เรามาดูตัวอย่างที่มันไม่เข้าใจกันบ้างครับ

Photo by Tengyart on Unsplash

บางครั้งคำตอบที่ ChatGPT เลือกมาตอบ (ที่ให้ Probability สูงสุด)มันก็ไม่ได้ถูกต้องเสมอไปครับ เช่น ผมถามว่าใครคือ King Narodom Srithondai ซึ่งไม่มีกษัติรย์ในโลกชื่อนี้อยู่แล้ว “สมเด็จนโรดม ศรีทนได้”!!! คำตอบคือ

แทนที่โมเดลมันจะบอกว่าไม่รู้คนๆ นี้ มันกลับตอบอย่างมั่นใจมาก ว่า “สมเด็จพระนโรมดม ศรีทนได้” เป็น กษัติรย์ของประเทศกัมพูชา ฮาาาา ซึ่งมันไม่จริงครับ แต่โมเดลพูดมาอย่างมั่นใจมาก มีประวัติให้ด้วยแหนะ อันนี้ ถ้าว่ากันที่ Probability มันก็ไม่แย่นักนะครับ เมื่อโมเดลเจอ คำว่า King หรือกษัติรย์ ต่อด้วย Narodom ซึ่งเป็นชื่อของสมเด็จพระนโรดมจริงๆ โมเดลมันก็มั่นใจ (แบบผิดๆ) แล้วครับ ว่าผมกำลังพูดถึง พระบาทสมเด็จพระนโรมดม ศรีสหนุแห่งกัมพูชา แต่ความจริงมันไม่ใช่เลย!! เค้าตัดสินใจว่า Sithondai ออกไปเลย จริงๆก็อาจจะไม่ได้ตัดนะครับ แต่พอเข้าโมเดลแล้ว Probability ของสองคำหน้ามันก็สูงมากจนเค้ามั่นใจว่าใช่ละ ผมกำลังพูดถึงกษัตริย์กัมพูชาแน่ๆ

นี่แค่ตัวอย่างเล็กน้อยๆที่ผมคิดออกในช่วงเวลาสั้นๆนะครับ จริงๆมันมีอะไรแบบนี้อีกเยอะมากกกกกกกกก ที่ พ่อ ChatGPT จะมั่วให้คุณได้อย่างมั่นใจ และพาคุณไปผิดทาง ซึ่งอันตรายมากๆ ครับ

ตัวอย่างอาจารย์ Andrew Ng หลอกล่อให้พี่ ChatGPT อธิบายว่าทำไมลูกคิดถึงเร็วกว่า GPU

Dunning Kruger Effect ที่โด่งดัง

คำกล่าวที่ว่า “รู้น้อย พูดเยอะ …รู้เยอะ พูดน้อย” ในโลกปัจจุบันนี่มันจริงๆ เลยครับ เห็นมาเยอะแล้ว โดยเฉพาะในโลกออนไลน์!!! รู้อะไรมานิดหน่อย แต่กลับคิดว่า รู้เยอะ และก็มีความมั่นใจสูงมาก พูดออกมาได้เป็นเรื่องเป็นราว ทั้งๆ ที่จริงๆแล้ว ไม่รู้ แต่ความมั่นใจก็ทำให้ สามารถมั่วได้อย่างมั่นใจ และน่าเชื่อถือ … เป็นเรื่องที่อันตรายมากๆ ต่อผู้อื่นครับ หลายครั้งก็พูดเพื่อผลประโยชน์ของตัวเอง เช่น คนขายอาหารเสริมแปลกๆ หรือเครื่องเสริมความงานครีมผิวขาวที่ทาแล้วผิวขาวยังกะทาสีทาบ้านสีขาวโดนทันที(ฮา) ที่ไปรู้มานิดๆหน่อยๆแล้วไปเถียงกับหมอว่าของเค้าดี แต่พวกนี้เค้าฉลาดกว่าChatGPT หน่อยเพราะเค้ามั่วอย่างมั่นใจเพื่อขายของตัวเอง!!!

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

ChatGPT สามารถเป็นได้ทั้งสองอย่างครับ ขึ้นกับข้อมูลที่เอามาสอนมัน และการแปลความหมาย ว่าถูกหรือไม่ ถ้าแปลถูก ข้อมูลสอนถูก ChatGPT ก็ Expert หรือ เชี่ยวชาญในเรื่องนั้น ๆ ครับ แต่ถ้า ChatGPT แปลผิด หรือ ข้อมูลที่สอนมาผิด เจ้า ChatGPT ก็จะสามารถมั่วได้อย่างมั่นใจเช่นกัน ดังรูป

สรุป

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

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s