1 คะแนน โดย GN⁺ 2024-10-27 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • 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 ความคิดเห็น

 
GN⁺ 2024-10-27
ความคิดเห็นบน Hacker News
  • เล่ากันว่าเขาถูกถามถึงสองครั้งว่า “คุณ Babbage ถ้าใส่ตัวเลขผิดเข้าไปในเครื่อง จะได้คำตอบที่ถูกต้องออกมาหรือไม่?”
    นี่คือคำพูดของ Charles Babbage ที่บอกว่าเขาไม่อาจเข้าใจได้จริง ๆ ว่า ความสับสนทางความคิด แบบใดกันที่ทำให้เกิดคำถามเช่นนั้น

    • ผู้คนคิดว่าตนรู้ว่า “AI” ควรทำอะไร แต่เมื่อมันทำงานต่างจากที่คาดไว้จริง ๆ ก็เรียกว่า เสีย
    • นี่เป็นคำถามที่สมเหตุสมผลพอแล้ว และกลับดูเหมือนว่า 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
    • สิ่งนี้อิงงานของบัญชี Twitter นิรนามบัญชีนี้: https://x.com/_xjdr
      ผมติดตามค่อนข้างใกล้ชิด และรู้สึกน่าสนใจที่โมเดลขนาดเล็กอาจมีประสิทธิภาพกับตัวสุ่มตัวอย่างนี้มากกว่า ถ้าสนใจก็คุ้มที่จะอ่านโพสต์เหล่านั้น และการสุ่มตัวอย่างประเภทนี้ให้ความรู้สึกว่าเป็น เรื่องที่มีความหมายมาก
    • ผมไม่คิดว่านี่เป็นบทความวิชาการ เพราะถ้าเป็นในแวดวงวิชาการ ผมคาดว่าพวกเขาน่าจะเข้าใจความแตกต่างระหว่าง ความไม่แน่นอนของ token กับ ความไม่แน่นอนเชิงความหมาย/ความถูกต้องเชิงความหมาย ได้ดีกว่านี้ หรืออย่างน้อยก็น่าจะพยายามสร้างความสัมพันธ์เชิงสหสัมพันธ์จากข้อมูลก่อนจะอ้างความสัมพันธ์ระหว่างสองอย่างนี้
      อย่างที่ผมเขียนไว้ในคอมเมนต์อื่น ผู้เขียนดูเหมือนจะมีความเข้าใจผิดในระดับพื้นฐาน และเมื่อดูบันทึกด้านบนของบทความ จึงดูมีความเป็นไปได้ว่าเพราะเหตุนี้จึงไม่ได้ให้ผลลัพธ์ที่ใช้งานได้จริง
      ทั้งนี้ไม่ได้ตั้งใจจะตำหนิหรือทำให้ท้อ เขาอาจจับบางอย่างได้จริง และแนวทางแปลกใหม่แบบนี้ก็ควรค่าแก่การลอง เพียงแต่ด้วยเหตุผลที่กล่าวไป หากมันไม่มีผลเชิงบวก ก็คงยากที่จะออกมาเป็นบทความวิชาการ ดังนั้นจึงไม่น่าแปลกใจเช่นกันที่ไม่มีบทความวิชาการเกี่ยวกับแนวทางนี้
    • เท่าที่ผมรู้ ไม่ใช่บทความวิชาการ และนั่นคือเหตุผลที่ผมอยากเขียนเรื่องนี้ ถึงอย่างนั้น โปรเจกต์นี้ก็มีทั้ง ผู้ติดตามสายศรัทธา และฝ่ายต่อต้านอย่างแรงใน ML Twitter
    • ที่พูดมานี้หมายถึงผู้อ่าน HN ที่สนใจความไม่แน่นอนของ LLM ส่วนสำหรับผู้เขียนบทความ/รีโพ ผมอยากเห็นผลการทดสอบว่ามันระบุความไม่แน่นอนได้ดีแค่ไหนจริง ๆ
  • เมื่อเอนโทรปีสูง ผมมองว่าโมเดลควรมี ทางออก
    ควรทริกเกอร์ว่าความมั่นใจของคำตอบทั้งหมดต่ำ และสะสมคะแนนความมั่นใจระหว่างการสร้างคำตอบ เพื่อให้ผู้ใช้ตรวจสอบได้ในตอนท้ายว่าคำตอบนั้นมีความมั่นใจแย่มากหรือไม่ คำตอบแบบนั้นควรถูกทิ้งได้ หรือแทนที่ด้วย “ไม่ทราบครับ/ค่ะ” ได้

    • โดยทั่วไปเรียกว่า การงดตอบ หรือ การปฏิเสธ
      เมื่อเปรียบเทียบวิธีต่าง ๆ ในการวัดความไม่แน่นอนของโมเดลในสาขานี้ มักจะทำการตรวจสอบการปฏิเสธ วิธีพื้นฐานคือปฏิเสธจุดข้อมูลที่มีความไม่แน่นอนสูงไปเรื่อย ๆ แล้วดูว่าคุณภาพเฉลี่ยของผลลัพธ์ที่เหลือสูงขึ้นอย่างไร ค่าประมาณความไม่แน่นอนที่ดีควรมีความสัมพันธ์อย่างมากกับคุณภาพของผลลัพธ์ ดังนั้นผลลัพธ์ที่มีความไม่แน่นอนต่ำควรมีคุณภาพเฉลี่ยสูงกว่า
      เบนช์มาร์กแนวทางประเมินความไม่แน่นอนของ LLM ล่าสุด [1] ก็ใช้วิธีนี้โดยตรง และยังมีการพัฒนาไลบรารีโอเพนซอร์ส [2] ที่ทำให้เบนช์มาร์กแบบนี้เป็นไปได้อยู่ด้วย นอกจากนี้ยังสามารถสร้างคะแนนความไม่แน่นอนสำหรับผลลัพธ์เฉพาะของโมเดลได้ จึงนำไปผสานในแอปพลิเคชันในภาคอุตสาหกรรมได้เช่นกัน
      [1] https://arxiv.org/abs/2406.15627
      [2] https://github.com/IINemo/lm-polygraph
    • ปัญหาอยู่ที่โดยทั่วไปแล้วตัวจำแนกประเภทแบบโครงข่ายประสาทเชิงลึกนั้น ไม่ได้ถูกปรับเทียบทางสถิติมาอย่างดี ในสถานะเริ่มต้น
      ดังนั้นแม้เอนโทรปีสูงมักเป็นสัญญาณว่า “ไม่มั่นใจ” แต่โมเดลก็อาจ ผิดอย่างมั่นใจ ได้บ่อยมากเช่นกัน เพราะฉะนั้นการใช้เอนโทรปีของล็อกจิตเป็นตัวชี้วัดความน่าเชื่อถือจึงทำให้เข้าใจผิดอย่างมากได้ง่าย
      ผมไม่ใช่ผู้เชี่ยวชาญ LLM นี่เป็นความเห็นจากความเข้าใจเกี่ยวกับตัวจำแนกประเภททั่วไป เลยสงสัยว่าถ้ามีข้อมูลเพียงพอ ข้อพิจารณานี้จะไม่ใช้ได้อีกต่อไปหรือไม่
    • Entropix ให้เฟรมเวิร์กที่ทำสิ่งแบบนั้นได้ โครงสร้างของมันคือเมื่อตรวจจับสถานะปัจจุบันแล้ว ก็ปรับการตั้งค่าตัวสุ่มตัวอย่าง หรือเปลี่ยนไปใช้กลยุทธ์การสุ่มตัวอย่างแบบใหม่ทั้งหมด
      จะทดลองผลักไปให้เป็นคำตอบปฏิเสธให้มากพอก็ได้ และแนะนำให้ลองทำเอง รีโพสิทอรี smollm-entropix [1] ทำทั้งชุดเป็น Jupyter Notebook ทำให้ทดลองไอเดียได้ง่ายขึ้น
      [1]: https://github.com/SinatrasC/entropix-smollm
    • ดูแทบจะแน่นอนว่าจะมีการเพิ่มโทเคนจำนวนมากเข้าไปในชุดคำศัพท์ ไม่ใช่แค่โทเคนแบบ thinking แต่ยังอาจมีโทเคน “ไม่รู้” ด้วย และจะมีกลยุทธ์ การถอดรหัส ที่ซับซ้อนออกมาอีกมาก สิ่งที่จำเป็นคือการสร้างข้อมูล
    • จากประสบการณ์ของผม Claude Sonnet 3.5 รุ่นใหม่ทำสิ่งนั้นได้ในระดับหนึ่ง
  • GPT ขนาดใหญ่สมัยใหม่ส่งออกล็อกจิตของตัวจำแนกประเภทขนาดมหึมาสำหรับคำศัพท์โทเคนทั้งหมด
    สิ่งเหล่านี้อยู่ในปริภูมิบางอย่าง และเราไม่เพียงตั้งสมมติฐานได้ว่ามันเป็นแมนิโฟลด์ที่มีสมบัติความนูนที่ไม่ธรรมดา แต่ยังคำนวณเชิงประจักษ์ได้ด้วย ปัญหาการระบุว่า LLM ใดเขียนข้อความใด แม้รวมถึงกรณีที่มีการสั่งให้ใช้สำนวนเฉพาะ ก็เป็นปัญหาที่นิยามได้ชัดเจน หรือแทบจะถือว่าแก้ได้แล้ว
    นี่ไม่ใช่แค่ปัญหาที่มีการวิจัยกันอยู่ แต่เป็นสาขาที่เคยมีความก้าวหน้าอย่างรวดเร็วและน่าประทับใจ แล้วอยู่ ๆ ก็เหมือนถูกปิดทิ้งไป
    การเป็นเจ้าแห่งสาขานี้คือ ธุรกิจมหาศาล และเป็นงานแบบฉบับที่สตาร์ทอัพควรทำ เพราะผู้เล่นเดิมที่มีเงินหนาเข้ามาเป็นคู่แข่งได้ยาก ไม่ใช่เพราะพวกเขามองข้ามตลาดนี้ แต่เพราะพวกเขาไม่ต้องการอย่างจริงจังให้ตลาดนี้มีอยู่

    • ช่วยอธิบายเพิ่มเติมได้ไหมว่าสิ่งนี้มีประโยชน์อย่างไร? จากคำอธิบาย ดูเหมือนคำขอจำนวนมากจะเปลี่ยนผลลัพธ์ได้มากพอจนหลบการตรวจจับ LLM เฉพาะตัวได้ อีกทั้งสถานการณ์ที่ LLM รุ่นใหม่ ๆ ใช้ข้อมูลสังเคราะห์/ข้อมูลที่สร้างขึ้นจำนวนมาก ก็น่าจะเป็นตัวแปรที่ค่อนข้างใหญ่ด้วย
  • วิธีอธิบายแบบนี้ฟังดูเกือบเหมือน อัลกอริทึมสำรวจเขาวงกต เลย ในที่นี้ เวลาคำนวณเทียบได้กับ “จะลองเดินตามเส้นทางหนึ่งลึกแค่ไหนเพื่อทดสอบว่าเป็นคำตอบที่เป็นไปได้หรือไม่”
    สงสัยว่าจะมีความคล้ายคลึงอื่น ๆ อีกไหม เช่น มีอัลกอริทึมแก้เขาวงกตที่นำมาใช้กับ LLM ได้หรือเปล่า?

    • การสุ่มตัวอย่างแบบต่อเนื่องเพื่อหาลำดับทั้งหมดที่มีความน่าจะเป็นร่วมสูงที่สุดนั้นเป็น ปัญหาการค้นหา อย่างชัดเจน นั่นจึงเป็นเหตุผลที่อัลกอริทึมอย่าง beam search ถูกใช้บ่อยในการสุ่มตัวอย่าง
    • คำถามเรื่องการมองการถอดรหัสของ LLM ในมุมการนำทาง แม้จะคนละมุมกัน ถูกตั้งไว้ในโพสต์ Reddit นี้ด้วย: https://www.reddit.com/r/MachineLearning/comments/1dw2pqo/d_...
    • ใช่ ดูเป็นพื้นที่ที่ยังมีช่องให้วิจัยต่อ
      พูดตรง ๆ คือมันไปคนละทางกับ Bitter Lesson(http://www.incompleteideas.net/IncIdeas/BitterLesson.html) บทเรียนนั้นส่วนหนึ่งก็มาจากการจัดการการสำรวจเขาวงกตในหมากรุกอย่างละเอียดเกินไปด้วย แต่ในสเกลของ LLM ตอนนี้ การปรับปรุงแบบนี้อาจมีคุณค่าก็ได้
  • ทุกครั้งที่อ่านเรื่องการปรับให้เหมาะสมเชิงศักยภาพแบบนี้ ก็ยากจะเข้าใจว่าผู้คนเชื่อใจและใช้ LLM กันได้อย่างไรโดยมีการกำกับดูแลเพียงเล็กน้อย
    พวกเขาเชื่อจริง ๆ หรือว่า ผลิตภัณฑ์ “AI” ที่ใช้ LLM มีความสามารถพอที่จะควบคุมคอมพิวเตอร์หรือเขียนโค้ดที่ถูกต้องได้? โดยการออกแบบแล้ว ทุกอย่าง ไม่ใช่ “ภาพหลอน” หรือการเดาหรือ? มันเอาชนะเรื่องนั้นได้จริงหรือ?

    • ผมเคยใช้หรือกำกับ ChatGPT กับ Python ให้เขียนโปรแกรมหลายตัวที่ใช้ในระบบทดสอบการผลิตของบริษัท
      เป็นโปรแกรมที่ส่งการทำงานไปยังเครื่องจักร, ดึงผลลัพธ์/ข้อผิดพลาด/เอาต์พุต, บันทึกเป็น .csv แล้วแปลงเป็นไฟล์ Excel ที่จัดรูปแบบให้อ่านง่าย นอกจากนี้ยังมีคู่มือเริ่มต้นที่แสดงให้ช่างเทคนิคเห็นว่าต้องเชื่อมต่ออย่างไรในการทดสอบบางรายการ
      ผมไม่ใช่โปรแกรมเมอร์ และบริษัทเราก็ไม่มีโปรแกรมเมอร์ แต่โค้ดที่มันเขียนให้ทำงานได้ตรงตามที่ขอพอดี ระหว่างพัฒนาถ้าโค้ดติดปัญหา ผมก็ใส่กลับเข้าไปใน ChatGPT ให้แก้ และสุดท้ายก็แก้ได้ทั้งหมด ใช้เวลาประมาณหนึ่งวัน ถ้าผมทำเองคงใช้หนึ่งเดือน ถ้าจ้างข้างนอกคงต้องใช้ 10,000 ดอลลาร์กับเวลาหนึ่งสัปดาห์
      LLM อาจไม่ดีสำหรับโปรเจกต์เขียนโปรแกรมระดับสูงค่าตอบแทนสูง แต่สำหรับคนที่ต้องทำอะไรบางอย่างด้วยคอมพิวเตอร์ แต่ข้าม กำแพงภาษา ของการบอกคอมพิวเตอร์ว่าต้องทำอะไรไม่ได้ มันคือพรจากฟ้า
    • แล้วมนุษย์เอาชนะเรื่องนั้นได้อย่างไร? ถ้าคิดให้ดี ๆ ก็จะได้ข้อสรุปว่า LLM ใช้กับงานสารพัดอย่างได้ ตัวอย่างเช่น มนุษย์ก็ไม่ได้เขียนโค้ดแล้วผลักเข้า production ทันทีเหมือนกัน
    • แน่นอนว่าเชื่อ นี่ไม่ใช่คำถามสมมติ โค้ดของผมแทบทั้งหมดเขียนโดย Claude 3.5 Sonnet
      มันทนทานและถูกต้องกว่าโค้ดที่ผมเขียนตามปกติมาก ผมเขียนโปรแกรมมา 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 มาก
      ในสาขาการประเมินความไม่แน่นอน มีความสนใจอย่างมากในการพัฒนาวิธีวัดปริมาณความไม่แน่นอนประเภทต่าง ๆ เหล่านี้ และแต่ละวิธีอาจไวต่อประเภทใดประเภทหนึ่งมากกว่า
    • ดูเกี่ยวข้องอย่างลึกซึ้งกับกรณีการใช้งานของผมที่ใช้ LLM เพื่อจัดโครงสร้างข้อมูล ผมต้องการ ตัวชี้วัดความไม่แน่นอน ที่ดีสำหรับข้อมูลแต่ละชิ้นอย่างแม่นยำ
    • พวกนั้นก็เป็นความไม่แน่นอนคนละประเภทกันไม่ใช่หรือ?