เทคนิคการตรวจจับความไม่แน่นอนของ LLM
(thariq.io)- Entropix เป็นโปรเจกต์ที่พยายามอ่านความไม่แน่นอนในขณะที่ LLM เลือกโทเค็นถัดไป แล้วปรับวิธี sampling ตามแต่ละสถานะ เพื่อยกระดับคุณภาพของการอนุมาน
- เกณฑ์ที่ใช้ตัดสินคือ entropy และ varentropy ของการกระจาย logits โดยแบ่งสถานะความมั่นใจของโมเดลออกเป็น 4 แบบจากการผสมกันของค่าสองตัวนี้
- ในสถานะที่มีความมั่นใจสูง argmax sampling เหมาะสม แต่เมื่อมีตัวเลือกเด่นหลายตัว อาจใช้การแตกแขนง (branching) เพื่อเปรียบเทียบเส้นทางได้
- สถานะ entropy สูงอาจหมายถึงโมเดลไม่รู้จริง ๆ หรือทางเลือกแทบจะเท่าเทียมกัน จึงจำเป็นต้องรับมือด้วยการแทรก thinking token การปรับ temperature หรือการแตกแขนง
- ยังไม่มี การประเมินขนาดใหญ่ จึงยังไม่แน่ชัดว่าได้ผลเพียงใด แต่ sampling ณ เวลาการอนุมานเป็นพื้นที่ที่สามารถทดลองปรับปรุงแบบโอเพนซอร์สได้โดยไม่ต้องใช้งบประมาณมาก
ปัญหาที่ Entropix มุ่งแก้
- Entropix เป็นโปรเจกต์ที่พัฒนาโดย XJDR โดยเป็นแนวทางที่พยายาม ปรับปรุงการอนุมาน ด้วยการเปลี่ยนกลยุทธ์ sampling ในช่วงเวลาที่โมเดลไม่แน่นอน
- ขณะนี้ยังไม่มี การประเมินขนาดใหญ่ สำหรับ Entropix จึงยังไม่ชัดเจนว่าประสิทธิภาพจริงดีขึ้นมากน้อยเพียงใด
- อย่างไรก็ตาม sampling บนฐานของความไม่แน่นอนมอบทั้งวิธีทดลองและโมเดลความคิดสำหรับมองการอนุมานของ LLM ในมุมที่แตกต่างออกไป
ความไม่แน่นอนของ LLM ปรากฏที่ไหน
- Sampling คือกระบวนการตัดสินใจว่า LLM จะเลือกโทเค็นใดจาก logits ซึ่งเป็นการกระจายของโทเค็นที่เป็นไปได้
- ระดับความมั่นใจของโมเดลดูได้จากการกระจาย logits สำหรับโทเค็นถัดไป
- ถ้าความมั่นใจสูง ความน่าจะเป็นจะกระจุกชัดเจนอยู่ที่โทเค็นบางตัว
- ถ้าความมั่นใจต่ำ ตัวเลือกโทเค็นถัดไปจะกระจายกว้างขึ้น
- ความไม่แน่นอนไม่ได้เป็นสัญญาณแย่เสมอไป และอาจมีหลายสาเหตุ
- ในกรณีที่โทเค็นเป็น คำพ้องความหมาย หรือแทบจะเทียบเท่ากัน เช่น
goodกับgreat - ในกรณีที่มี เส้นทางแตกแขนง เช่น โปรแกรมอาจเขียนด้วย Java หรือ C ก็ได้
- ในกรณีที่โมเดลไม่รู้ว่าควรทำอะไร หรือพบอินพุตที่ อยู่นอกการกระจาย (out of distribution) ซึ่งไม่เคยเห็นในข้อมูลฝึก
- ในกรณีที่โทเค็นเป็น คำพ้องความหมาย หรือแทบจะเทียบเท่ากัน เช่น
Entropy และ varentropy
- Entropix วัดความไม่แน่นอนด้วย entropy และ varentropy ของ logits
- Entropy แสดงให้เห็นว่า logits ที่ทำนายแตกต่างกันมากน้อยเพียงใด และสะท้อนความไม่แน่นอนต่อผลลัพธ์ที่มีความเป็นไปได้สูงสุด
- เมื่อ entropy ต่ำ โมเดลค่อนข้างมั่นใจใน logits บางตัว
- เมื่อ entropy สูง การกระจาย logits จะสม่ำเสมอกว่าเดิม ทำให้ความมั่นใจลดลง
- Varentropy เป็นตัวชี้วัดที่แสดง รูปทรง (shape) ของความไม่แน่นอน
- Varentropy สูงหมายความว่าค่าบางค่าต่างจากค่าอื่น ๆ อย่างมาก
- ตัวชี้วัดทั้งสองอิงกับแนวคิด surprisal (self-information)
- Surprisal วัดว่าเหตุการณ์หนึ่ง ๆ นั้นเหนือความคาดหมายแค่ไหนเมื่อเทียบกับความน่าจะเป็นของมัน
- เมื่อความน่าจะเป็นของเหตุการณ์
xคือP(x)ค่า surprisal คือI(x) = -log₂(P(x)) - ถ้า
P(x) = 1/8ค่า surprisal คือ 3 บิต และถ้าP(x) = 1/2คือ 1 บิต
- Entropy คือ ค่าคาดหวัง ของ surprisal ของผลลัพธ์ที่เป็นไปได้ทั้งหมด
- Varentropy คำนวณจาก ความแปรปรวน ของ surprisal และบอกว่าผลลัพธ์บางอย่างน่าประหลาดใจกว่าค่า surprisal เฉลี่ยมากน้อยเพียงใด
สถานะความไม่แน่นอน 4 แบบ
- เมื่อดู entropy และ varentropy ร่วมกัน สามารถแบ่งสถานะของโมเดลได้เป็น 4 แบบ
- entropy ต่ำ·varentropy ต่ำ: การกระจายที่แหลม โดยมีผลลัพธ์หนึ่งมีความน่าจะเป็นสูงมาก
- entropy ต่ำ·varentropy สูง: การกระจายที่มีจุดยอดหลายจุดแตกต่างกัน
- entropy สูง·varentropy ต่ำ: การกระจายที่สม่ำเสมอหรือเกือบสม่ำเสมอ
- entropy สูง·varentropy สูง: การกระจายที่กระจายกว้างแต่ไม่สม่ำเสมอ
Adaptive sampling ตามสถานะ
-
entropy ต่ำ·varentropy ต่ำ
- เป็นสถานะในอุดมคติที่โมเดลค่อนข้างมั่นใจทั้งตัวเลือกแรก และแม้แต่ตัวเลือกสำรองในกรณีที่ตัวเลือกนั้นผิด
- รายการตัวเลือกมักถูกจัดเรียงอย่างเป็นระเบียบ จึงเหมาะกับ argmax sampling ซึ่งเลือกโทเค็นที่มีความน่าจะเป็นสูงสุด
-
entropy ต่ำ·varentropy สูง
- เป็นสถานะที่โมเดลทำนายตัวเลือกไม่กี่ตัวไว้สูงมาก
- สถานะนี้อาจหมายถึงเส้นทางเอาต์พุตใหม่ทั้งเส้นทาง หรืออาจเป็นสถานการณ์ที่หลายสำนวนใช้ได้ทั้งหมด เช่น คำพ้องความหมาย จึงตัดสินได้ยาก
- วิธีรับมือที่เป็นไปได้คือ branching โดยทำนาย logits ทั้งสองตัว แล้วตามแต่ละเส้นทางไป จากนั้นเปรียบเทียบผลลัพธ์หลังผ่านไปช่วงหนึ่ง
- หากผลจากการแตกแขนงมีระดับความมั่นใจใกล้เคียงกันแต่เนื้อหาต่างกัน ก็อาจแปลงเป็นคำถามเพื่อถามผู้ใช้ได้
-
entropy สูง·varentropy ต่ำ
- โมเดลอาจอยู่ในสถานะที่มีความมั่นใจต่ำ หรือทุกตัวเลือกอาจใช้แทนกันได้
- Entropix เสนอวิธีใส่ thinking token เป็นโทเค็นถัดไป เพื่อพาโมเดลไปสู่สถานะที่มีความมั่นใจสูงขึ้น
- ตัวอย่างคือโทเค็นอย่าง
Wait.. - Thinking token จะถูกแทรกเข้าไปในเอาต์พุตเพื่อส่งสัญญาณว่าโมเดลควรใช้เวลาคำนวณเพื่อคิดมากขึ้นก่อนให้คำตอบ
- ตัวอย่างเช่น หากโมเดลกำลังจะทำนายว่า
The capital of Germany is Parisแต่ไม่มั่นใจ การใส่Waitอาจทำให้ข้อความต่อเป็นThe capital of Germany is Paris… Wait, no, it’s actually Berlin
-
entropy สูง·varentropy สูง
- เป็นสถานะที่ไม่มีผู้สมัครอันดับบนสุดที่ชัดเจน แต่โมเดลมั่นใจในเอาต์พุตบางตัวมากกว่าเอาต์พุตอื่น
- ตัวเลือกอันดับต้น ๆ อาจเป็นตัวเลือกที่ใช้ได้ทั้งหมดเหมือนคำพ้องความหมาย จึงอาจสุ่มเลือกด้วย temperature ที่สูงขึ้นได้
- เช่นเดียวกับสถานะก่อนหน้า อาจใช้การแตกแขนงหรือแทรก thinking token ก็ได้
ความแตกต่างระหว่างการแตกแขนงกับ thinking token
- ทั้งสองวิธีเป็นการใช้ การคำนวณเพื่ออนุมาน เพิ่มขึ้นในสถานะที่ไม่แน่นอน
- การทำนายแบบแตกแขนงจะตาม logits หลายตัวไปเพื่อดูว่าจะนำไปสู่โทเค็นอื่นใด
- มักเรียกว่า MCTS (Monte Carlo Tree Search)
- มีการลองใช้กับ LLM บ่อยครั้ง แต่ผลลัพธ์อยู่ในระดับปานกลาง
- trade-off หลักคือแต่ละแขนงไม่สามารถใช้ประโยชน์จากการคำนวณของกันและกันได้
- Thinking token เป็นวิธีเพิ่มการคำนวณในสถานะที่ไม่แน่นอน โดยไม่ใช้การคำนวณไปกับการสำรวจแขนงที่อาจถูกทิ้ง
- การแทรก
Wait…ทำให้ AI ตระหนักว่ามันอาจทำผิดพลาด
- การแทรก
- ระหว่างการแตกแขนงกับ thinking token แบบใดดีกว่ายังคงเป็น คำถามวิจัยที่เปิดอยู่
สัญญาณบนฐานของ attention
- Entropix ยังใช้ค่าการวัด entropy แบบอื่นบางส่วนเมื่อปรับ temperature
- Attention Entropy แสดงว่า attention head ตามโทเค็นเฉพาะตัวใดตัวหนึ่ง หรือกระจายความสนใจไปยังโทเค็นจำนวนมากในบริบท
- Attention Agreement แสดงว่า attention head หลายตัวให้ความสนใจกับโทเค็นเดียวกัน หรือมองไปยังโทเค็นต่างกัน
- หาก entropy ของ head ต่ำและ agreement สูง อาจเป็นสัญญาณเพิ่มเติมว่าสามารถ sampling โทเค็นที่มีความน่าจะเป็นสูงสุดได้
- หาก agreement ต่ำ อาจหมายความว่า head ต่าง ๆ กำลังมีส่วนต่อการทำนายที่แตกต่างกัน จึงควรพิจารณาการแตกแขนง
ทำไมจึงสำคัญ
- แนวคิดของ Entropix เข้าใจง่ายและไม่ได้ใหม่ทั้งหมด แต่ทำให้เรากลับมาคิดเรื่องการปรับปรุงการอนุมานของ LLM อีกครั้งในขั้นตอน sampling
- แม้การประเมินจะยังไม่ยืนยันประโยชน์ขนาดใหญ่ แต่ เทคนิค ณ เวลาการอนุมาน แบบนี้ค่อนข้างทดลองได้ง่าย
- อาจเป็นทิศทางที่มีแนวโน้มดีสำหรับแฮกเกอร์โอเพนซอร์สที่ต้องการลองปรับปรุงการอนุมานโดยไม่ต้องใช้งบประมาณมาก
1 ความคิดเห็น
ความคิดเห็นบน Hacker News
เล่ากันว่าเขาถูกถามถึงสองครั้งว่า “คุณ Babbage ถ้าใส่ตัวเลขผิดเข้าไปในเครื่อง จะได้คำตอบที่ถูกต้องออกมาหรือไม่?”
นี่คือคำพูดของ Charles Babbage ที่บอกว่าเขาไม่อาจเข้าใจได้จริง ๆ ว่า ความสับสนทางความคิด แบบใดกันที่ทำให้เกิดคำถามเช่นนั้น
เทคนิคที่อิงการสุ่มตัวอย่าง แบบนี้เป็นหนึ่งในกรณีหายากที่เราสามารถลองปรับปรุงโมเดลสมัยใหม่ได้บนฮาร์ดแวร์สำหรับผู้บริโภค
คิดว่าคงอยู่ได้ไม่นาน และสุดท้ายคงมีตัวสุ่มตัวอย่างที่ฝึกได้ออกมา แต่ตอนนี้ก็น่าลองเล่นให้เต็มที่: https://github.com/codelion/optillm
ผู้เขียน optillm ดูเหมือนจะมองว่าการคำนวณเพิ่มเติมของ Entropics ไม่ได้ให้ผลดีกว่าการถอดรหัสแบบ chain-of-thought ธรรมดา ไม่แน่ใจว่าได้ตรวจสอบเรื่องประสิทธิภาพด้วยหรือไม่: https://x.com/asankhaya/status/1846736390152949966
ปัญหาหลายอย่างของ LLM ดูเหมือนมาจาก การรั่วไหลทางความหมาย หรือปรากฏการณ์ที่ความสนใจถูกเบี่ยงเบนไปยังข้อมูลที่ไม่เกี่ยวข้อง เหมือนในบทความ GSM Symbolic และบางทีอาจยังมีช่องให้ปรับปรุง attention ได้
เคยเขียนบทความที่เกี่ยวข้องไว้สองสามชิ้นด้วย: https://zzbbyy.substack.com/p/semantic-leakage-quick-notes, https://zzbbyy.substack.com/p/llms-and-reasoning, https://zzbbyy.substack.com/p/o1-inference-time-turing-machi...
มีคนอ้างว่ามันทำงานได้ดีกว่า แต่ไม่มี เบนช์มาร์กที่เข้มงวด มาพิสูจน์ เป็นแนวว่า “เขียนได้ดีกว่า”, “สำนวนสดใหม่กว่า” ซึ่งผมคิดว่า LeCun พูดถูก 100% ในประเด็นนี้ การประเมินโมเดลทั่วไปด้วยการบอกว่าทำได้ดีใน “บทกวี” หรือ “ร้อยแก้ว” แทบจะเป็นนิยามของอคติ และเท่ากับเอาเกร็ดประสบการณ์ส่วนตัวมาผูกขาตัวเอง
อยากเห็นผลเมื่อนำไปใช้กับการเขียนโค้ดหรือคณิตศาสตร์ เช่น อยากให้เบนช์มาร์กอย่างละเอียดทั้งก่อนและหลังว่า ตัวสุ่มตัวอย่างทำงานได้ดีกว่าหรือไม่ในโจทย์คณิตศาสตร์โอลิมปิก
หรือไม่ก็อาจเป็นจุดอ่อนที่พื้นฐานกว่านั้นของกลไก attention ตอนนี้ก็เริ่มมีทางเลือกอื่น ๆ ออกมาแล้ว
ผมไม่ค่อยแน่ใจว่าโปรเจกต์นี้อิงงานวิชาการหรือไม่ กล่าวคือใช้เทคนิคที่เผยแพร่แล้วสำหรับตัดสินความไม่แน่นอนของ LLM หรือเปล่า
ในบรรดางานล่าสุด งานนี้ดูค่อนข้างเกี่ยวข้อง: https://learnandburn.ai/p/how-to-tell-if-an-llm-is-just-gues...
ที่นี่ใช้แนวคิด เอนโทรปีเชิงความหมาย ซึ่งซับซ้อนกว่าเอนโทรปีมาตรฐานของ token logits และเหมาะกว่าในการวัดเชิงสถิติว่า LLM กำลังเดาอยู่หรือมีความมั่นใจสูง บทความต้นฉบับเป็นบทความใน Nature โดยผู้เขียนจาก Oxford
ยังมีงานวิจัย [1] ที่ทำให้แนวทางนี้ทั่วไปขึ้น โดยทำการจัดกลุ่มแบบนุ่มนวลบนพื้นฐานของแนวคิดเรื่องความเท่าเทียมทางความหมายระหว่างเอาต์พุตตัวอย่าง
อย่างไรก็ตาม มีข้อควรระวังอยู่ เราเพิ่งเผยแพร่บทความ [2] ที่ทำเบนช์มาร์กอย่างครอบคลุมของเทคนิคล่าสุดในการประมาณความไม่แน่นอนของ LLM และในหลายกรณี วิธีที่คำนึงถึงความหมายทำงานได้ดีมาก แต่ในงานอื่น ๆ เส้นฐานง่าย ๆ อย่างเอนโทรปีเฉลี่ยของการกระจาย token ก็ทำได้ใกล้เคียงหรือดีกว่าเทคนิคที่ซับซ้อนเช่นกัน
นอกจากนี้ เรายังกำลังพัฒนาไลบรารี Python แบบโอเพนซอร์ส [3] ที่ใช้เทคนิคประมาณความไม่แน่นอนล่าสุดที่นำไปใช้กับ LLM ได้ และช่วยให้เบนช์มาร์กวิธีประมาณ รวมถึงประมาณความไม่แน่นอนของเอาต์พุตจากโมเดลที่ใช้งานจริงได้ง่ายขึ้น
[1] https://arxiv.org/abs/2307.01379
[2] https://arxiv.org/abs/2406.15627
[3] https://github.com/IINemo/lm-polygraph
ผมติดตามค่อนข้างใกล้ชิด และรู้สึกน่าสนใจที่โมเดลขนาดเล็กอาจมีประสิทธิภาพกับตัวสุ่มตัวอย่างนี้มากกว่า ถ้าสนใจก็คุ้มที่จะอ่านโพสต์เหล่านั้น และการสุ่มตัวอย่างประเภทนี้ให้ความรู้สึกว่าเป็น เรื่องที่มีความหมายมาก
อย่างที่ผมเขียนไว้ในคอมเมนต์อื่น ผู้เขียนดูเหมือนจะมีความเข้าใจผิดในระดับพื้นฐาน และเมื่อดูบันทึกด้านบนของบทความ จึงดูมีความเป็นไปได้ว่าเพราะเหตุนี้จึงไม่ได้ให้ผลลัพธ์ที่ใช้งานได้จริง
ทั้งนี้ไม่ได้ตั้งใจจะตำหนิหรือทำให้ท้อ เขาอาจจับบางอย่างได้จริง และแนวทางแปลกใหม่แบบนี้ก็ควรค่าแก่การลอง เพียงแต่ด้วยเหตุผลที่กล่าวไป หากมันไม่มีผลเชิงบวก ก็คงยากที่จะออกมาเป็นบทความวิชาการ ดังนั้นจึงไม่น่าแปลกใจเช่นกันที่ไม่มีบทความวิชาการเกี่ยวกับแนวทางนี้
เมื่อเอนโทรปีสูง ผมมองว่าโมเดลควรมี ทางออก
ควรทริกเกอร์ว่าความมั่นใจของคำตอบทั้งหมดต่ำ และสะสมคะแนนความมั่นใจระหว่างการสร้างคำตอบ เพื่อให้ผู้ใช้ตรวจสอบได้ในตอนท้ายว่าคำตอบนั้นมีความมั่นใจแย่มากหรือไม่ คำตอบแบบนั้นควรถูกทิ้งได้ หรือแทนที่ด้วย “ไม่ทราบครับ/ค่ะ” ได้
เมื่อเปรียบเทียบวิธีต่าง ๆ ในการวัดความไม่แน่นอนของโมเดลในสาขานี้ มักจะทำการตรวจสอบการปฏิเสธ วิธีพื้นฐานคือปฏิเสธจุดข้อมูลที่มีความไม่แน่นอนสูงไปเรื่อย ๆ แล้วดูว่าคุณภาพเฉลี่ยของผลลัพธ์ที่เหลือสูงขึ้นอย่างไร ค่าประมาณความไม่แน่นอนที่ดีควรมีความสัมพันธ์อย่างมากกับคุณภาพของผลลัพธ์ ดังนั้นผลลัพธ์ที่มีความไม่แน่นอนต่ำควรมีคุณภาพเฉลี่ยสูงกว่า
เบนช์มาร์กแนวทางประเมินความไม่แน่นอนของ LLM ล่าสุด [1] ก็ใช้วิธีนี้โดยตรง และยังมีการพัฒนาไลบรารีโอเพนซอร์ส [2] ที่ทำให้เบนช์มาร์กแบบนี้เป็นไปได้อยู่ด้วย นอกจากนี้ยังสามารถสร้างคะแนนความไม่แน่นอนสำหรับผลลัพธ์เฉพาะของโมเดลได้ จึงนำไปผสานในแอปพลิเคชันในภาคอุตสาหกรรมได้เช่นกัน
[1] https://arxiv.org/abs/2406.15627
[2] https://github.com/IINemo/lm-polygraph
ดังนั้นแม้เอนโทรปีสูงมักเป็นสัญญาณว่า “ไม่มั่นใจ” แต่โมเดลก็อาจ ผิดอย่างมั่นใจ ได้บ่อยมากเช่นกัน เพราะฉะนั้นการใช้เอนโทรปีของล็อกจิตเป็นตัวชี้วัดความน่าเชื่อถือจึงทำให้เข้าใจผิดอย่างมากได้ง่าย
ผมไม่ใช่ผู้เชี่ยวชาญ LLM นี่เป็นความเห็นจากความเข้าใจเกี่ยวกับตัวจำแนกประเภททั่วไป เลยสงสัยว่าถ้ามีข้อมูลเพียงพอ ข้อพิจารณานี้จะไม่ใช้ได้อีกต่อไปหรือไม่
จะทดลองผลักไปให้เป็นคำตอบปฏิเสธให้มากพอก็ได้ และแนะนำให้ลองทำเอง รีโพสิทอรี smollm-entropix [1] ทำทั้งชุดเป็น Jupyter Notebook ทำให้ทดลองไอเดียได้ง่ายขึ้น
[1]: https://github.com/SinatrasC/entropix-smollm
GPT ขนาดใหญ่สมัยใหม่ส่งออกล็อกจิตของตัวจำแนกประเภทขนาดมหึมาสำหรับคำศัพท์โทเคนทั้งหมด
สิ่งเหล่านี้อยู่ในปริภูมิบางอย่าง และเราไม่เพียงตั้งสมมติฐานได้ว่ามันเป็นแมนิโฟลด์ที่มีสมบัติความนูนที่ไม่ธรรมดา แต่ยังคำนวณเชิงประจักษ์ได้ด้วย ปัญหาการระบุว่า LLM ใดเขียนข้อความใด แม้รวมถึงกรณีที่มีการสั่งให้ใช้สำนวนเฉพาะ ก็เป็นปัญหาที่นิยามได้ชัดเจน หรือแทบจะถือว่าแก้ได้แล้ว
นี่ไม่ใช่แค่ปัญหาที่มีการวิจัยกันอยู่ แต่เป็นสาขาที่เคยมีความก้าวหน้าอย่างรวดเร็วและน่าประทับใจ แล้วอยู่ ๆ ก็เหมือนถูกปิดทิ้งไป
การเป็นเจ้าแห่งสาขานี้คือ ธุรกิจมหาศาล และเป็นงานแบบฉบับที่สตาร์ทอัพควรทำ เพราะผู้เล่นเดิมที่มีเงินหนาเข้ามาเป็นคู่แข่งได้ยาก ไม่ใช่เพราะพวกเขามองข้ามตลาดนี้ แต่เพราะพวกเขาไม่ต้องการอย่างจริงจังให้ตลาดนี้มีอยู่
วิธีอธิบายแบบนี้ฟังดูเกือบเหมือน อัลกอริทึมสำรวจเขาวงกต เลย ในที่นี้ เวลาคำนวณเทียบได้กับ “จะลองเดินตามเส้นทางหนึ่งลึกแค่ไหนเพื่อทดสอบว่าเป็นคำตอบที่เป็นไปได้หรือไม่”
สงสัยว่าจะมีความคล้ายคลึงอื่น ๆ อีกไหม เช่น มีอัลกอริทึมแก้เขาวงกตที่นำมาใช้กับ LLM ได้หรือเปล่า?
พูดตรง ๆ คือมันไปคนละทางกับ Bitter Lesson(http://www.incompleteideas.net/IncIdeas/BitterLesson.html) บทเรียนนั้นส่วนหนึ่งก็มาจากการจัดการการสำรวจเขาวงกตในหมากรุกอย่างละเอียดเกินไปด้วย แต่ในสเกลของ LLM ตอนนี้ การปรับปรุงแบบนี้อาจมีคุณค่าก็ได้
ทุกครั้งที่อ่านเรื่องการปรับให้เหมาะสมเชิงศักยภาพแบบนี้ ก็ยากจะเข้าใจว่าผู้คนเชื่อใจและใช้ LLM กันได้อย่างไรโดยมีการกำกับดูแลเพียงเล็กน้อย
พวกเขาเชื่อจริง ๆ หรือว่า ผลิตภัณฑ์ “AI” ที่ใช้ LLM มีความสามารถพอที่จะควบคุมคอมพิวเตอร์หรือเขียนโค้ดที่ถูกต้องได้? โดยการออกแบบแล้ว ทุกอย่าง ไม่ใช่ “ภาพหลอน” หรือการเดาหรือ? มันเอาชนะเรื่องนั้นได้จริงหรือ?
เป็นโปรแกรมที่ส่งการทำงานไปยังเครื่องจักร, ดึงผลลัพธ์/ข้อผิดพลาด/เอาต์พุต, บันทึกเป็น .csv แล้วแปลงเป็นไฟล์ Excel ที่จัดรูปแบบให้อ่านง่าย นอกจากนี้ยังมีคู่มือเริ่มต้นที่แสดงให้ช่างเทคนิคเห็นว่าต้องเชื่อมต่ออย่างไรในการทดสอบบางรายการ
ผมไม่ใช่โปรแกรมเมอร์ และบริษัทเราก็ไม่มีโปรแกรมเมอร์ แต่โค้ดที่มันเขียนให้ทำงานได้ตรงตามที่ขอพอดี ระหว่างพัฒนาถ้าโค้ดติดปัญหา ผมก็ใส่กลับเข้าไปใน ChatGPT ให้แก้ และสุดท้ายก็แก้ได้ทั้งหมด ใช้เวลาประมาณหนึ่งวัน ถ้าผมทำเองคงใช้หนึ่งเดือน ถ้าจ้างข้างนอกคงต้องใช้ 10,000 ดอลลาร์กับเวลาหนึ่งสัปดาห์
LLM อาจไม่ดีสำหรับโปรเจกต์เขียนโปรแกรมระดับสูงค่าตอบแทนสูง แต่สำหรับคนที่ต้องทำอะไรบางอย่างด้วยคอมพิวเตอร์ แต่ข้าม กำแพงภาษา ของการบอกคอมพิวเตอร์ว่าต้องทำอะไรไม่ได้ มันคือพรจากฟ้า
มันทนทานและถูกต้องกว่าโค้ดที่ผมเขียนตามปกติมาก ผมเขียนโปรแกรมมา 20 ปีแล้ว
มันก็เป็นแค่กระแสเกินร้อนอีกอย่างหนึ่ง เหมือน Client/Server, Industry 4.0, Machine Learning, Microservices, Cloud, Crypto
เคยมีใครทดลองไหมว่าถ้าทำให้โมเดลไม่สามารถไม่แน่ใจได้เลย ผลลัพธ์จะออกมาเป็นอย่างไร?
เช่น ตัว sampler ย้อนกลับไปเลือกโทเค็นอื่นทุกครั้งที่ความมั่นใจตกลงต่ำกว่า threshold สุดท้ายแล้วโทเค็นเดี่ยวทุกตัวจะอยู่ในสถานะที่มีความมั่นใจสูงกว่า threshold
คงไม่ได้กำจัดเอาต์พุตที่ไม่พึงประสงค์ได้หมด แต่ก็น่าสนใจ
หรือไม่ก็อาจพูดว่า “ไม่ทราบครับ/ค่ะ” ด้วยความมั่นใจเต็มเปี่ยม
กลยุทธ์การสุ่มตัวอย่างของโมเดลภาษามีเป็นพันล้านแบบ
ปัญหาคือ การแสดงเชิงประจักษ์ว่ากลยุทธ์การสุ่มตัวอย่างแบบใดดีกว่าการสุ่มตัวอย่าง top-k หรือ top-p มาตรฐานนั้นทำได้ยากมาก การลด perplexity อย่างเดียวไม่พอที่จะพิสูจน์ความเหนือกว่าของวิธีใดวิธีหนึ่ง กลยุทธ์ที่เสนอในบล็อกโพสต์ก็มีปัญหาเดียวกัน ในเชิงทฤษฎีดูสมเหตุสมผล แต่ในทางปฏิบัติยังเป็นนวัตกรรมที่ไม่ได้รับการตรวจสอบ
การพิสูจน์ทำได้ยาก เพราะพูดให้ชัดว่า “ดีกว่า” คืออะไรนั้นยาก และต้นทุนในการรวบรวมข้อมูลอย่างข้อมูลความชอบก็สูง
หลังจากดูตัวอย่างจำนวนมาก เราสามารถพูดตามสามัญสำนึกได้ว่า “ถ้าต้องการปรับ X ให้เหมาะสม วิธีนี้ดูเหมือนจะทำงานได้ดีกว่า”
ข้อจำกัดของคำตอบจาก LLM มีหลายมิติกว่า “ความไม่แน่นอน” เพียงอย่างเดียวมาก
มีทั้ง “คำถาม/ประโยคไม่มีความหมาย”, “ข้อมูลไม่เพียงพอที่จะตอบ”, “มีข้อมูลว่าฉันทามติของผู้เชี่ยวชาญคือ ‘ไม่มีใครรู้จริง ๆ ได้’” เป็นต้น
มนุษย์มีแนวโน้มจะลดทอนเหตุผลที่ทำให้ตอบคำถามหนึ่ง ๆ ได้ยากให้เหลือเป็นปัญหาเรื่อง ความไม่แน่นอน แบบง่าย ๆ และจึงมองว่าคำตอบของ LLM มีระดับความไม่แน่นอนเดียวเท่านั้น แต่ นั่นเป็นการทำให้เหมือนมนุษย์
ภาพ AI และก่อนหน้านั้นคือภาพถ่าย ได้แสดงวิธีใหม่ ๆ ที่ไม่เคยจินตนาการมาก่อนซึ่งภาพอาจผิดได้ นั่นคือดูเหมือนจริงแต่ผิด ปฏิสัมพันธ์ทางภาษาของ AI ก็ทำสิ่งเดียวกันในแบบที่ละเอียดอ่อนกว่า
จนถึงตอนนี้ส่วนใหญ่ทำด้วย reinforcement learning แต่แนวทางที่จับและจัดการตอน inference ก็ดูน่าสำรวจเช่นกัน และเข้าถึงได้มากกว่าสำหรับโอเพนซอร์สด้วย reinforcement learning แบบนี้เป็นสิ่งที่มีแต่แล็บ ML ขนาดใหญ่ทำได้
ผมรู้สึกว่าการทำให้เหมือนมนุษย์เป็นส่วนหนึ่งของกลยุทธ์การตลาดของ LLM
ความไม่แน่นอนอาจถูกแยกออกเป็น “รสชาติ” หลายแบบได้ การแบ่งที่เรียบง่ายและพูดถึงบ่อยที่สุดคือ ความไม่แน่นอนเชิงสุ่ม กับ ความไม่แน่นอนเชิงญาณวิทยา ความไม่แน่นอนเชิงญาณวิทยา หรือความไม่แน่นอนจากตัวโมเดล มักหมายถึงกรณีที่โมเดลได้รับอินพุตชนิดที่ไม่เคยเห็นมาก่อนและให้เอาต์พุตที่ไม่ดี ซึ่งเป็นสถานการณ์ที่คาดหวังให้จัดการได้อย่างถูกต้องได้ยาก ในทางกลับกัน ความไม่แน่นอนเชิงสุ่มเป็นสิ่งที่มีอยู่ในตัวข้อมูลเอง ให้นึกถึงความกำกวมตามธรรมชาติของงานหรือการติดป้ายกำกับที่มี noise มาก
ในสาขาการประเมินความไม่แน่นอน มีความสนใจอย่างมากในการพัฒนาวิธีวัดปริมาณความไม่แน่นอนประเภทต่าง ๆ เหล่านี้ และแต่ละวิธีอาจไวต่อประเภทใดประเภทหนึ่งมากกว่า