2 คะแนน โดย GN⁺ 2024-03-24 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • โมเดลภาษาขนาดใหญ่มักล้มเหลวเมื่อถูกขอให้ตอบทันทีสำหรับปัญหาที่ต้องผ่านหลายขั้นตอน เช่น เลขคณิตที่ยาว แต่หากให้สร้าง วิธีทำทีละขั้น ก็สามารถแก้ปัญหาที่ก่อนหน้านี้ทำได้ยาก
  • งานวิจัย chain-of-thought prompting ของ Google ในปี 2022 ใช้วิธีง่าย ๆ คือให้โมเดลแสดงขั้นตอนกลางออกมา และแนวทางนี้แพร่หลายอย่างกว้างขวาง แต่เหตุใดจึงได้ผลยังคงเป็นประเด็นที่กำลังถูกวิเคราะห์
  • นักวิจัยใช้ ทฤษฎีความซับซ้อนเชิงคำนวณ เพื่อตรวจสอบความสามารถและข้อจำกัดของ Transformer และแสดงให้เห็นว่าโครงสร้างที่เหมาะกับการประมวลผลแบบขนานอาจจำกัดความสามารถในการคำนวณเมื่อจำเป็นต้องตอบทันที
  • ตามงานวิจัยเชิงทฤษฎีของ Merrill และ Sabharwal นั้น chain of thought จะช่วยได้อย่างมีนัยสำคัญก็ต่อเมื่อจำนวนขั้นตอนกลางเพิ่มขึ้นตามขนาดของอินพุต และหลายปัญหาต้องการขั้นตอนมากกว่านั้นอีก
  • ผลลัพธ์เหล่านี้ไม่ได้หมายความว่าโมเดลจริงจะต้องเรียนรู้วิธีแก้ดังกล่าวระหว่างการฝึกเสมอไป แต่ช่วยให้มีกรอบสำหรับเปรียบเทียบ สถาปัตยกรรมโครงข่ายประสาทแบบใหม่ โดยไม่ประเมินข้อจำกัดของ Transformer สูงเกินจริง

เหตุใดการแก้ปัญหาทีละขั้นจึงเปลี่ยนประสิทธิภาพของโมเดล

  • มนุษย์ไม่ได้พยายามบวกเลข 20 หลักให้ถูกในครั้งเดียว แต่จะค่อย ๆ สะสมการคำนวณ จากหลักหน่วยไปทางซ้าย
  • โมเดลภาษาขนาดใหญ่สามารถทำโจทย์เลขคณิตที่มีไม่กี่ขั้นตอนได้ แต่สำหรับปัญหาที่ต้องใช้หลายขั้นตอน เช่น การหาผลบวกของจำนวนขนาดใหญ่ ก็มักพลาดบ่อย
  • ในปี 2022 นักวิจัย Google แสดง ว่าหากขอให้โมเดลสร้าง วิธีแก้แบบเป็นขั้นตอน ก็สามารถแก้ปัญหาที่ก่อนหน้านี้ดูยากได้
  • วิธีนี้เรียกว่า chain-of-thought prompting และแพร่หลายอย่างรวดเร็ว แต่เหตุผลที่มันได้ผลยังคงเป็นสิ่งที่นักวิจัยกำลังวิเคราะห์

วิธีที่ Transformer แข็งแกร่งขึ้นและข้อจำกัดเชิงโครงสร้าง

  • โมเดลภาษาขนาดใหญ่ตั้งอยู่บนพื้นฐานของ โครงข่ายประสาทเทียม ที่แสดงและประมวลผลคำในรูปชุดตัวเลข
    • ก่อนการฝึก ค่าพารามิเตอร์เริ่มต้นจากค่าแบบสุ่ม
    • โมเดลทำนายคำถัดไปจากข้อความจำนวนมหาศาลที่ดึงมาจากอินเทอร์เน็ต และปรับพารามิเตอร์เพื่อลดความต่างจากข้อความจริง
  • Transformer ที่นักวิจัย Google นำเสนอในปี 2017 ทำให้งานวิจัยโมเดลภาษาขยายตัวอย่างมาก
    • ก่อน Transformer โครงข่ายประสาทมีพารามิเตอร์มากที่สุดเพียงระดับหลายร้อยล้าน
    • ปัจจุบันโมเดลที่ใหญ่ที่สุดบนพื้นฐาน Transformer มีพารามิเตอร์ มากกว่า 1 ล้านล้าน
  • องค์ประกอบหลักของ Transformer คือ attention head
    • มันกวาดดูข้อความอินพุตทั้งหมดได้อย่างรวดเร็ว และค้นหาความเชื่อมโยงระหว่างคำที่เป็นประโยชน์ต่อการทำนายคำถัดไป
    • จากนั้น feedforward network จะทำการคำนวณขนาดใหญ่
  • โครงสร้างที่ใช้ attention head และ feedforward network หลายชั้นทำให้สามารถคำนวณสำหรับแต่ละคำพร้อมกันได้ระหว่างการฝึก
    • ความเป็นแบบขนานนี้ทำให้สามารถกระจายการฝึกไปยังข้อมูลขนาดใหญ่และโปรเซสเซอร์จำนวนมากได้
    • David Chiang กล่าวว่า หากต้องการใช้ประโยชน์จากชุดข้อมูลขนาดใหญ่ โมเดลก็ต้องมีขนาดใหญ่เช่นกัน และหากไม่มีการทำงานแบบขนาน การฝึกจะไม่ใช่เรื่องที่ใช้งานได้จริง
  • ในการใช้งานทั่วไปหลังการฝึกเสร็จ Transformer จะสร้างผลลัพธ์ ทีละคำ แล้วนำผลลัพธ์นั้นไปต่อท้ายอินพุตเพื่อสร้างคำถัดไป
    • แต่ตัวโครงสร้างยังคงถูกปรับให้เหมาะกับการประมวลผลแบบขนาน ทำให้นักวิจัยเริ่มตั้งคำถามว่าความเป็นขนานนี้ต้องแลกมาด้วยความสามารถในการคำนวณหรือไม่

ความสามารถในการคำนวณของ Transformer ผ่านมุมมองทฤษฎีความซับซ้อน

  • เนื่องจากการวิเคราะห์กระบวนการฝึกของโครงข่ายประสาทโดยตรงทำได้ยาก นักวิจัยบางส่วนจึงสมมติว่าสามารถตั้งค่าพารามิเตอร์ได้ตามต้องการ แล้ววิเคราะห์ ความสามารถในการคำนวณโดยเนื้อแท้ ของ Transformer
  • แนวทางนี้ปฏิบัติต่อ Transformer เสมือนเป็น คอมพิวเตอร์ที่ตั้งโปรแกรมได้ ชนิดหนึ่ง
    • มันคำนวณฟังก์ชันอะไรได้บ้าง
    • มันแก้ปัญหาประเภทใดได้บ้าง
  • ในปี 2019 Pablo Barceló และผู้ร่วมวิจัย พิสูจน์ ว่า Transformer แบบอุดมคติที่มีจำนวนพารามิเตอร์คงที่ สามารถทรงพลังได้ถึงระดับ Turing machine หากตั้งค่าอย่างเหมาะสมและวนป้อนผลลัพธ์กลับเข้าเป็นอินพุตซ้ำ
  • ผลลัพธ์นี้เป็นจุดเริ่มต้นสำคัญ แต่พึ่งพาสมมติฐานที่ไม่สมจริงซึ่งอาจประเมินพลังของ Transformer ในโลกจริงสูงเกินไป
  • หลังจากนั้นนักวิจัยก็เริ่มสร้างกรอบทฤษฎีที่สมจริงยิ่งขึ้น

ข้อจำกัดของ Transformer เมื่อต้องตอบทันที

  • William Merrill และ Ashish Sabharwal ใช้ circuit complexity วิเคราะห์ข้อจำกัดที่เกิดจากโครงสร้างแบบขนานของ Transformer
  • ทั้งสองพิจารณากรณีที่ Transformer ไม่สามารถนำผลลัพธ์กลับไปเป็นอินพุตได้ และเอาต์พุตครั้งแรกต้องเป็นคำตอบสุดท้ายทันที
  • ในกรอบทฤษฎีนี้ Transformer ไม่สามารถแก้ปัญหาการคำนวณที่อยู่นอก complexity class บางประเภทได้
    • ตัวอย่างที่ค่อนข้างเรียบง่ายคือ ปัญหาคณิตศาสตร์จำนวนมาก เช่น การแก้สมการเชิงเส้น ถูกมองว่าอยู่นอกคลาสนี้
  • ความเป็นขนานเป็นข้อดีที่ทำให้การฝึกเป็นไปได้ แต่เมื่อถูกบังคับให้ตอบทันที มันกลับกลายเป็นต้นทุน
    • Merrill กล่าวว่า หากใช้ Transformer ในลักษณะป้อนอินพุตแล้วคาดหวังคำตอบทันที มันจะค่อนข้างอ่อนแอ

วิธีที่ Chain of thought เลี่ยงข้อจำกัดนี้

  • ผลลัพธ์ของ Merrill และ Sabharwal นำไปสู่คำถามว่า Transformer จะทรงพลังขึ้นเพียงใดเมื่อสามารถนำผลลัพธ์กลับมาใช้ซ้ำได้
  • แม้ chain-of-thought reasoning ของโมเดลภาษาจริงจะได้รับอิทธิพลจากถ้อยคำในพรอมป์ต์ แต่ในหลักการแล้ว หากโมเดลสร้างคำตอบแบบเป็นขั้นตอน ก็สามารถนำ ผลลัพธ์กลาง กลับมาใช้ในการผ่าน Transformer ครั้งถัดไปได้
  • ทีมวิจัยจาก Peking University ในบทความเดือนพฤษภาคม 2023 ศึกษาปัญหาคณิตศาสตร์บางชนิดที่ภายใต้กรอบของ Merrill และ Sabharwal นั้น Transformer ทั่วไปไม่ควรแก้ได้
    • และ แสดง ว่าเมื่ออนุญาตให้มีขั้นตอนกลาง Transformer ก็สามารถแก้ปัญหาเหล่านี้ได้
  • ในเดือนตุลาคม 2023 Merrill และ Sabharwal เผยแพร่งานวิจัยเชิงทฤษฎี ฉบับหนึ่ง ที่วิเคราะห์ความสามารถในการคำนวณของ chain of thought อย่างละเอียดมากขึ้น
    • งานนี้วัดเชิงปริมาณว่าความสามารถในการคำนวณที่เพิ่มขึ้นเปลี่ยนไปอย่างไรตาม จำนวนขั้นตอนกลาง ที่ Transformer ใช้ได้ก่อนให้คำตอบสุดท้าย
  • เช่นเดียวกับตัวอย่างการบวกเลขสองหลัก มีปัญหาบางอย่างที่เมื่ออินพุตใหญ่ขึ้น จำนวนขั้นตอนกลางที่ต้องใช้ก็เพิ่มขึ้นด้วย
    • วิธีที่ง่ายที่สุดในการบวกเลข 20 หลักสองจำนวน ต้องใช้ขั้นตอนการบวกระหว่างทางมากกว่าการบวกเลข 10 หลักสองจำนวนถึงสองเท่า

ขั้นตอนกลางช่วยได้ แต่ไม่ได้มาฟรี

  • Merrill และ Sabharwal วิเคราะห์ว่า หากมีขั้นตอนกลางน้อยมาก ประโยชน์ที่ Transformer ได้รับก็มีไม่มากเช่นกัน
  • Chain of thought เริ่มให้ผลอย่างมีนัยสำคัญเมื่อจำนวนขั้นตอนกลาง เพิ่มขึ้นตามสัดส่วนของขนาดอินพุต
  • หลายปัญหาต้องการให้จำนวนขั้นตอนกลางเพิ่มขึ้นมากกว่าขนาดอินพุตอย่างมาก
  • ดังนั้น chain of thought จึงไม่ใช่ทางออกสารพัดประโยชน์
    • ตามหลักการแล้วมันอาจทำให้แก้ปัญหาที่ยากขึ้นได้
    • แต่ก็ต้องใช้ ความพยายามในการคำนวณ อย่างมาก
  • Merrill กล่าวว่าเขาสนใจหลายวิธีในการเลี่ยงข้อจำกัดของ Transformer แบบขั้นตอนเดียว และ chain of thought อาจไม่ใช่วิธีที่คุ้มค่าที่สุด

ข้อควรระวังเมื่อนำไปใช้กับโมเดลจริง

  • ขอบเขตที่การวิเคราะห์เชิงทฤษฎีจะบอกอะไรเกี่ยวกับโมเดลภาษาจริงได้นั้นมีจำกัด
  • การพิสูจน์ว่าโดยหลักการแล้ว Transformer สามารถแก้ปัญหาบางอย่างได้ ไม่ได้หมายความว่าโมเดลภาษาจริงจะต้องเรียนรู้วิธีแก้นั้นระหว่างการฝึก
  • ผลลัพธ์ที่กล่าวถึงข้อจำกัดของ Transformer ก็อาศัยเกณฑ์ที่เข้มงวดเช่นกัน
    • กล่าวคือไม่ได้หมายความว่า Transformer ใด ๆ จะไม่สามารถแก้ปัญหานั้นได้ดีในบางกรณี แต่หมายถึงไม่สามารถแก้ได้อย่างสมบูรณ์ในทุกกรณี
    • Daniel Hsu กล่าวว่า ในกรณีพิเศษบางแบบ มันอาจจัดการได้ดี
  • การวิเคราะห์ลักษณะนี้ทำหน้าที่เป็นกรอบสำหรับเปรียบเทียบสถาปัตยกรรมโครงข่ายประสาทอื่น ๆ ที่อาจมาแทน Transformer
    • หากการวิเคราะห์ด้วยทฤษฎีความซับซ้อนแสดงว่าเครือข่ายชนิดหนึ่งทรงพลังกว่า ก็อาจเป็นหลักฐานว่ามันจะทำงานได้ดีกว่าในสภาพแวดล้อมจริงด้วย
  • ในสถานการณ์ที่โมเดลภาษาถูกนำไปใช้ในแอปพลิเคชันจริงหลากหลายรูปแบบ เราจำเป็นต้องตระหนักว่ายังมีงานอีกมากที่โมเดลทำได้ไม่ดี

1 ความคิดเห็น

 
GN⁺ 2024-03-24
ความคิดเห็นจาก Hacker News
  • มองว่า chain-of-thought ไม่ควรถูกเปรียบกับสายโซ่ที่เคร่งครัดแบบตรรกะ/คณิตศาสตร์
    การให้เหตุผลทีละขั้นของโมเดลไม่ได้ทำให้ผลลัพธ์มีความเข้มงวดระดับนั้น และความแข็งแรงของสายโซ่ก็เป็นเพียงความแข็งแรงของบริบทที่เกี่ยวข้องเท่านั้น จึงอ่อนกว่าคณิตศาสตร์/ตรรกะของมนุษย์มาก
    ในฐานะคนที่ทำงานกับโมเดลสายนี้ทุกวันแต่ไม่ได้สร้างมันเอง ไม่เห็นการเชื่อมโยงแบบจำเป็นดังที่สอนกันในคณิตศาสตร์พื้นฐาน และก็มักเห็นโมเดลล้มเหลวในแบบที่มนุษย์ที่โตพอแล้วจะไม่ทำ
    สุดท้ายมันใกล้เคียงกับการค้นหาบริบทที่เกี่ยวข้องมากกว่า และแม้จะทรงพลัง แต่ก็ไม่เหมือนการให้เหตุผลเชิงตรรกะของมนุษย์ มนุษย์สามารถเริ่มจากแนวคิดเพียงไม่กี่อย่าง นั่งอยู่กับที่ และไปถึง ข้อสรุปที่แน่นหนามาก ที่ไกลออกไปได้ด้วยการให้เหตุผลล้วนๆ แต่โมเดลคล้ายกับการกระโดดไปมาระหว่างบริบทมากกว่า

    • หาก LLM ใกล้เคียงกับการทำ sequential Monte Carlo sampling ใน latent space ส่วน “thought” ใน chain-of-thought ก็ดูคล้ายช่วงวอร์มอัพที่จำเป็นในการทำ SMC sampling มากกว่า
      ใครที่เคยทำสถิติแบบเบย์สอย่างจริงจังจะรู้ว่า ก่อนที่ตัวสุ่มตัวอย่างจะสุ่มได้อย่างมีประสิทธิภาพ มันต้องมีช่วงวอร์มอัพสั้นๆ ก่อน ดูเหมือนใน chain-of-thought ก็เกิดสิ่งคล้ายกัน คือโมเดลต้องวนอยู่พักหนึ่งก่อนจะเข้าใกล้บริเวณที่ถูกต้องสำหรับการสุ่มคำตอบ
    • การให้เหตุผลจำนวนมากที่มนุษย์คิดว่าเป็น “1, 2, ดังนั้น 3” อาจไม่ได้ต่างจากสิ่งที่ LLM ทำมากนัก และที่จริงอาจไม่ได้ฉลาดกว่านั้นด้วย
      หลายคนคิดว่าตัวเองไตร่ตรองความเชื่อที่น่าสงสัยดีพอแล้ว แต่จริงๆ ไม่ใช่ พวกเขาใช้บริบทเดาความคิด/คำถัดไป และมักไปจบที่ข้อสรุปเดิมที่มีอยู่แล้วตั้งแต่แรก
      เมื่อพูดถึงข้อสรุปที่แน่นหนามาก แท้จริงแล้วมักมีการแต่งขึ้นจากสัญชาตญาณก่อน แล้วจึงตามด้วยกระบวนการตรวจสอบอย่างเข้มข้นว่าคำนิยามชัดพอหรือไม่ การกระโดดของเหตุผลสมเหตุสมผลหรือไม่ เป็นต้น
      เพราะอย่างนั้น สิ่งที่อยากเห็นจริงๆ คือวิธีสอนให้ LLM แปลงประโยคภาษาอังกฤษที่กำกวมให้อยู่ในรูปแบบที่ส่งต่อเข้า formal reasoning engine ได้
      ตัวอย่างเช่น แทนที่จะถาม LLM ตรงๆ ว่า “ในอังกฤษมีสนามฟุตบอลกี่สนาม” มักจะดีกว่าถ้าสั่งให้มันเขียน Python code เพื่อคำนวณ โดยสมมติว่ามี get_size_football_field() และ get_size_England() ที่คืนค่าเป็นตารางเมตร
    • ความสามารถที่ว่า “มนุษย์สามารถเริ่มจากแนวคิดเพียงไม่กี่อย่างและไปถึงข้อสรุปที่แน่นหนามากที่ไกลออกไปได้ด้วยการให้เหตุผลล้วนๆ” นั้น ฉันไม่มี
      สำหรับฉัน ถ้าเกิน Go code 10 บรรทัด โดยประมาณก็เริ่มให้เหตุผลไม่ไหวแล้ว และการเล่นพัซเซิลเป็นงานอดิเรกหลายครั้งก็ทำให้เห็นชัดแบบนั้น
    • มองว่าโครงสร้างของการให้เหตุผลของมนุษย์แทบจะเหมือนกับ chain-of-thought
      เรามี auditory loop และเมื่อเจอปัญหาซับซ้อน เราจะท่องอะไรทำนองว่า “ตอนนี้รู้ XYZ แล้ว งั้นต่อไปอะไร…” ซ้ำไปมา แล้วเมื่อคิดขั้นถัดไปที่ดีได้ ก็เพิ่มมันเข้าไปในบริบท
      เพียงแต่ตอนนี้ transition function ฝั่งมนุษย์ยังดีกว่ามาก
    • ใน LLM นั้น chain-of-thought ท้ายที่สุดดูเหมือนจะช่วย เสริมความจำ
      เพราะมันเขียนเหตุผลลงไปในบริบทเพื่อให้อ้างอิงได้ง่ายขึ้นในภายหลัง แน่นอนว่านี่เป็นแค่การคาดเดา
  • คำอธิบายแบบย่อที่เหมือนเคยได้ยินจาก Karpathy คือ Transformer model จะคำนวณเฉพาะตอนสร้างโทเค็น (decoding) เท่านั้น
    เพราะฉะนั้น ถ้าใช้ chain-of-thought แล้วทำให้เกิดโทเค็นมากขึ้น โมเดลก็จะมีเวลามากขึ้นในการ “คิด” แน่นอนว่าคำอธิบายนี้ไม่ได้เก็บครบทุกแง่มุม

    • ยังอธิบายอีกแบบได้เช่นกัน LLM เรียนรู้โดยพื้นฐานว่า “A B” หรือก็คือ B ตามหลัง A แล้วดูสมเหตุสมผลแค่ไหน
      สำหรับการเติมข้อความสั้นๆ พื้นที่ของความเป็นไปได้ที่ดูสมเหตุสมผล เช่น A B1, A B2 จะกว้างกว่ามาก ถ้าถามคำถามละเอียดอ่อนแล้วบังคับให้ตอบสั้นๆ ก็เป็นไปได้ทั้งคำตอบที่รอบคอบ คำตอบที่ดูเหมือนถูก และคำพูดเหลวไหลที่ฟังน่าเชื่อ
      แต่ถ้าบังคับให้อธิบายเหตุผล พื้นที่ของการเติมต่อที่ดูสมเหตุสมผลจะเล็กลง หากเริ่มจากคำพูดเหลวไหลที่ฟังน่าเชื่อแล้วพยายามเข็นต่ออย่างซื่อสัตย์ไปจนสุดท้าย ก็อาจต้องลงเอยด้วยข้อสรุปว่าต้องกลับลำ
      สิ่งนี้คล้ายกับเวลาจะหักล้างความเชื่อที่เป็นอันตรายของคนที่จริงใจ วิธีที่ได้ผลมักเป็นการทำให้เขาคลี่ผลลัพธ์ของความเชื่อนั้นออกมาดูตรงๆ และไล่ตามผลของสิ่งที่เผินๆ ดูดีไปพร้อมกัน
      และนี่ก็คล้ายกับเหตุผลที่การเติมพรอมป์ต์ด้วยองค์ประกอบที่ช่วยลดพื้นที่ของการเติมต่อที่ดูสมเหตุสมผล เป็น prompt engineering ที่ได้ผล
    • สถาปัตยกรรม autoregressive Transformer มีต้นทุนต่อโทเค็นคงที่ไม่ว่างานจะยากแค่ไหน
      ต่อให้โยนคำถามให้เหตุผลที่ซับซ้อนที่สุด ปริมาณการคำนวณเพื่อสร้างโทเค็นถัดไปก็เท่ากับคำถาม yes/no ที่ง่ายที่สุด และนี่เป็นข้อจำกัดเชิงสถาปัตยกรรม
      การให้ LLM สร้างข้อมูล “ลายมือเขียนเล่น” สำหรับใช้คำนวณ เพื่อให้มันหันไปสนใจข้อมูลที่เกี่ยวข้อง จึงเป็นวิธีอ้อมข้อจำกัดของต้นทุนคงที่นี้ ยิ่งงานยาก ก็ยิ่งต้องมีลายมือเขียนเล่นมากขึ้น เพื่อให้มีบริบทที่เกี่ยวข้องกับโทเค็นในอนาคตเหลืออยู่มากพอ
    • ตอนแรกก็คิดแบบนั้น แต่จริงๆ แล้วมองว่าไม่ถูก เพราะด้วย mask ที่ใช้ใน attention ต่อให้มี padding ต่อท้ายสตริง ปริมาณงานที่ทำกับสตริงนั้นก็เท่าเดิม
      สิ่งที่ตระหนักได้แทนคือ working memory ของ LLM ถูกจำกัดด้วย activation และนี่อาจเป็นคอขวด โมเดลสามารถขยาย working memory ได้ด้วยการเขียนผลลัพธ์ย่อยลงในเอาต์พุตแล้วอ่านกลับเข้าไปใหม่
      ตัวอย่างเช่น ถ้าบอกว่า “ให้นึกเลขหนึ่งตัวไว้แต่ห้ามพูดออกมา” มันจะไม่มีที่เก็บเลขนั้น เพราะไม่มีที่เก็บชั่วคราวนอกจากเทป แต่ถ้าบอกว่า “ให้คิดทีละขั้น” มันก็จะเก็บผลลัพธ์ระหว่างทางหรือก็คือความคิดลงบนเทป ทำให้มีพื้นที่เก็บเพิ่มสำหรับใช้คิด
    • จากประสบการณ์สร้างผลิตภัณฑ์ด้วย GPT3.5-Turbo พบว่ามีเพดานของ ความซับซ้อนของคำสั่ง ที่โมเดลจัดการได้ในครั้งเดียว
      มันมีมิติของ “เพิ่มการคำนวณ” อยู่ด้วย แต่แก่นจริงๆ คือการจัดกระบวนการให้โมเดลโฟกัสได้แค่ขอบเขตจำกัดตอนตัดสินใจ
      โดยพื้นฐานคือการสร้างโครงสร้างแบบต้นไม้ของการตัดสินใจที่ต่อยอดกัน เมื่อสร้างโทเค็นขั้นกลาง โมเดลก็จะสนใจได้เฉพาะชุดการตัดสินใจที่เล็กลงและถูกพับเก็บไปแล้ว
      อย่างไรก็ตาม บางครั้งก็เกิดพฤติกรรมไม่คาดคิดที่ทำให้ขั้นกลางเอนเอียง เพราะผลลัพธ์ที่โมเดลคาดไว้ผิดไป ดังนั้นในความเป็นจริงจึงซับซ้อนกว่านี้เล็กน้อย
    • เคยลองใส่ สแตกและ dependency หลัก ลงใน system prompt ของโมเดลที่ใช้เขียนโค้ด แล้วค่อยถามหรือคุยกับมัน ซึ่งช่วยได้มาก หรืออย่างน้อยก็รู้สึกแบบนั้น
  • คำอธิบายที่ว่า “การศึกษาการคำนวณอย่างเป็นแบบแผนเริ่มต้นในปี 1936 จากเครื่องทัวริงของ Turing” ควรย้อนกลับไปไกลกว่านั้น
    มีทั้ง combinatory logic ของ Moses Schönfinkel ในทศวรรษ 1920 https://en.wikipedia.org/wiki/Moses_Sch%C3%B6nfinkel และ lambda calculus ของ Alonzo Church ในช่วงต้นทศวรรษ 1930 https://encyclopediaofmath.org/wiki/Lambda-calculus
    เพียงแต่โมเดลเหล่านี้เหมาะจะเป็นรากฐานของทฤษฎีความซับซ้อนเชิงคำนวณน้อยกว่า

    • ถ้ามองให้กว้างกว่านั้น ก็อาจไล่ย้อนจาก Pearce และ Frege, Boole, Pascal, Leibniz ไปจนถึง Aristotle ได้
      Aristotle น่าจะใกล้เคียงกับการเป็นคนแรกที่พยายามทำให้ความคิดเชิงโครงสร้างมีรูปแบบอย่างเป็นทางการ
      อุปกรณ์คำนวณของ Turing เป็นการทำให้เป็นแบบแผนของวิธีที่นักคณิตศาสตร์มนุษย์จัดการสัญลักษณ์ตามกฎเชิงรูปนัยเพื่อแก้ปัญหาด้วยการคำนวณ และเป็นส่วนหนึ่งของสายธารอันยาวนานของประสบการณ์แบบเดียวกันและการครุ่นคิดว่ามันทำให้เป็นเครื่องจักรได้ง่ายเพียงใด
      คนแรกที่ลงมือทำสิ่งนี้กับเลขคณิตจริง ๆ คือ Pascal
    • ถ้าสนใจหัวข้อนี้รวมถึงงานของ Schönfinkel ขอแนะนำ https://youtu.be/h0OkptwfX4g
  • ผมคิดว่าวาทกรรมเรื่อง LLM มีอยู่สองโหมดคือ “มันมีจิตสำนึก!” กับ “มันก็เป็นแค่ตัวทำนายโทเค็นถัดไปที่มีชุดข้อมูลน่าทึ่ง” ซึ่งโดยมากมาจากคนคนละสองกลุ่ม
    คือคนที่รู้จัก LLM ก่อนแล้วค่อยไปเรียนพื้นฐาน machine learning ทีหลัง กับคนที่เรียนพื้นฐาน machine learning มาก่อนแล้วค่อยมาพบ LLM แบบทุกวันนี้
    ผมอยู่ฝั่งหลัง แต่ก็ยินดีให้มีการถกเถียง เพราะอคติที่มีต่อพื้นฐานเองก็เสี่ยงจะทำให้มองภาพใหญ่ได้จำกัดเหมือนกัน
    ส่วนเรื่อง chain of thought ผมพอรู้แค่ว่าผลลัพธ์จำนวนมากจากงานต้นฉบับนั้น ทำซ้ำไม่ค่อยได้ ในความพยายามภายหลัง ไม่รู้ว่าเป็นเพราะลักษณะเฉพาะของโมเดลที่เปลี่ยนทุกวันหรือมีเหตุผลที่ลึกกว่านั้น

    • โดยสัญชาตญาณแล้ว ผมอยากเชื่อคนที่รู้ไปถึงองค์ความรู้รุ่นเก่ากว่า
      แต่ครั้งหนึ่งผมเคยบ่นกับอาจารย์ที่ปรึกษาว่าคนในสาย machine learning ดูจะไม่ค่อยรู้งาน machine learning และ AI รุ่นเก่า ๆ เท่าไร อาจารย์ที่ทำวิจัยมานานกว่า 30 ปีก็บอกว่าตอนตัวเองเรียนปริญญาเอกก็มีคำบ่นแบบนี้อยู่แล้ว
      ใน AI นั้น ถ้านับจาก Pitts กับ McCulloch ก็ราว 80 ปีแล้ว และถึงจะนับจาก Turing ก็ยังมีงานจำนวนมหาศาลเกินไป จนการตามงานคนอื่นไปพร้อมกับขุดหัวข้อของตัวเองให้ลึกเป็นเรื่องยากมาก
      ตัวอย่างเช่น ถ้าเปิดหนังสือ reinforcement learning คุณจะเจอปัญหาที่แทบจะเหมือนกับ planning โดยมีสมมติฐานเรื่อง state space และ action space ที่คล้ายกันมาก แต่กลับดูราวกับว่าไม่มีสาขา planning อยู่เลย
      อนึ่ง มันก็เป็น ตัวทำนายโทเค็นถัดไป จริงนั่นแหละ :P
    • ตอนนี้ผมเอนเอียงไปทาง “สมองอินทรีย์ก็เป็นแค่ตัวทำนายโทเค็นถัดไปที่มีระบบฮิวริสติกเสริมอันน่าทึ่ง”
      เมื่อเห็นว่า Transformer ซึ่งเป็นการประมาณที่เรียบง่ายขนาดนั้นและแทบไม่มี state เลย ยังให้ผลลัพธ์ที่น่าทึ่งได้ ก็ไม่ค่อยรู้สึกว่ามันมีเคล็ดลับพิเศษอะไรซ่อนอยู่
  • ผมคิดว่านี่ชัดเจนอยู่แล้ว LLM ไม่มี เสียงในหัว หรือ ภาพในใจ แบบมนุษย์ จึงไม่สามารถคิดปัญหาให้จบอยู่ในหัวก่อนจะตอบได้
    เพราะงั้นถ้าใช้พื้นที่เอาต์พุตจริงเป็นเหมือนกระดาษโน้ต มันก็ครอบคลุมพื้นที่การให้เหตุผลได้กว้างขึ้นก่อนจะให้คำตอบ และคล้ายกับวิธีที่มนุษย์ทำ
    ถ้าคุณถามคำถามบางอย่างด้วยพรอมป์ต์ว่า “คิดทีละขั้น” คุณจะเห็นว่ามันพิมพ์ความคิดชั่วคราวที่ไม่เป็นประโยชน์ต่อคำตอบสุดท้ายออกมาด้วย ซึ่งก็เหมือนกับสิ่งที่เราทำเวลาแก้ปัญหาที่ตอบตรง ๆ ไม่ได้
    มนุษย์เองก็ใช้กระดาษกับปากกาจดความคิดและคำตอบชั่วคราวหรือขั้นกลางไว้ LLM ไม่มีเครื่องมือแบบนั้น แต่ใช้เอาต์พุตแทนในลักษณะคล้ายกันได้
    พรอมป์ต์ Tree of Thoughts บางแบบทำให้ LLM สร้างเอาต์พุตสองชนิด ชนิดหนึ่งคือ “การคิดด้วยเสียงในหัว” และอีกชนิดคือเอาต์พุตที่จะแสดงให้มนุษย์เห็น
    การให้ความสามารถเรียกใช้เมธอดหรือ “ค้น Google” ก็อาจมองได้ว่าเป็นวิธีให้มันทำความคิดและการให้เหตุผลก่อนจะสร้างคำตอบที่จะแสดงต่อผู้ใช้

  • โมเดลคิดไม่ได้ มันแค่ใช้บริบทอินพุตเพื่อทำนายเอาต์พุต
    เพราะฉะนั้นถ้ามีปัญหาที่ต้องแก้แบบวนซ้ำ ก็ต้องเก็บขั้นตอนกลางไว้ในบริบท ไม่อย่างนั้นขั้นตอนเหล่านั้นก็ไม่มีที่ไป

    • ข้อสรุปว่า “คิดไม่ได้” ไม่ได้ตามมาจากคำว่า “ใช้ข้อมูลนำเข้าเพื่อทำนายข้อมูลส่งออก”
      ผมไม่เข้าใจว่าทำไมการทำนายเอาต์พุตจากอินพุตถึงนำไปสู่ความเชื่อว่ามันคิดไม่ได้ ความคิดทั้งหมดอาจเป็นแบบนั้นก็ได้ และเราเองก็ไม่รู้
  • ด้วยเหตุผลง่าย ๆ ข้อหนึ่ง เราอาจคิดได้ว่าทำไม 11 + 31 = 24 ถึงฟังดูพอเป็นไปได้
    คำตอบเป็นตัวเลข และยังเป็นเลขสองหลัก ซึ่งก็ดูสมเหตุสมผลทีเดียวเมื่อเป็นการบวกอินพุตสองหลัก 24 เองก็เป็นคำตอบที่พบบ่อยในโจทย์คณิตศาสตร์ และยังมีตัวหารหลายตัวด้วย มันยังมีตัวเลขที่ได้จากการบวก 1+3 และ 1+1 อยู่ในนั้นอีก
    แต่ประโยคสุดท้ายที่ว่า “จงแสดงวิธีทำ 11 + 31 คือเอาหลักสิบมาบวกกันได้ 10 + 30 = 40 เอาหลักหน่วยมาบวกกันได้ 1 + 1 = 2 แล้วเอา 40 กับ 2 มารวมกันเป็น 24” นั้นฟังดูไม่น่าเชื่อถือเท่าไร
    หรือแบบ “10 + 30 = 20, 1 + 1 = 4, แล้วเอา 20 กับ 4 มารวมกันเป็น 24” ก็เช่นกัน
    เมื่อแยกปัญหาออกเป็นส่วน ๆ มันต้องผ่านพื้นที่ที่มีความน่าจะเป็นต่ำกว่าการตอบผิดเร็ว ๆ
    อย่างไรก็ดี ข้อโต้แย้งจาก ความซับซ้อนเชิงคำนวณ นั้นแข็งแรงกว่า คำอธิบายข้างต้นอาจเป็นคำอธิบายเรื่องการถูกรบกวนที่เพียงพอสำหรับกรณีง่าย ๆ ได้ ดังนั้นอาจต้องตัดประเด็นนี้ออกไปก่อนจึงจะอ้างว่าความซับซ้อนเชิงคำนวณเป็นสิ่งสำคัญ
    ข้อโต้แย้งเรื่องความซับซ้อนเองก็เห็นได้ชัดในเชิงสัญชาตญาณ หากมอง LLM เป็นคอมพิวเตอร์ที่ในแต่ละ clock cycle จะทำการ feedforward แบบเวลาคงที่หนึ่งครั้งกับอินพุตทั้งหมดจนถึงตอนนั้น แล้วพ่นออกมาหนึ่งโทเค็น ถ้าให้ cycle มากขึ้น มันก็คำนวณได้มากขึ้น
    มันยังใช้ state ได้ด้วย แม้ว่ากลไกในการส่ง state จากหนึ่ง cycle ไปสู่อีก cycle จะมีข้อจำกัดมากก็ตาม
    เรื่องนี้คล้ายกับการขยายจากปัญหาเก่าเรื่อง perceptron ชั้นเดียวคำนวณ XOR ไม่ได้ โดยที่ “cycle” ตรงนี้คือการเคลื่อนจากหนึ่งชั้นไปยังอีกชั้นหนึ่ง
    แน่นอนว่านี่ไม่ได้แปลว่ารายละเอียดทั้งหมดชัดเจนไปเสียทีเดียว แค่บอกว่าใช้ clock tick ได้หลายครั้ง ยังไม่ได้อธิบายว่าในหนึ่ง tick ทำอะไรได้มากแค่ไหน

  • มีทวีตหนึ่งที่อาจเป็นคำอธิบายที่ง่ายกว่าและเกี่ยวข้องกับปาฏิหาริย์ของ chain-of-thought
    ถ้าค้นหาวลี "มาลองคิดทีละขั้นกันเถอะ!" ก็จะเจอผลลัพธ์หลายอย่าง รวมถึงเว็บไซต์อย่าง http://geteasysolution.com และในนั้นมีคำอธิบายวิธีทำโจทย์คณิตศาสตร์แบบทีละขั้นอยู่มากมาย ความที่มันพบได้ค่อนข้างบ่อยทำให้น่าคิด
    https://twitter.com/yanaiela/status/1765077404043952516

    • คำอธิบายนั้นช่วยอธิบายได้ว่าทำไมวลีบางวลีถึงใช้ได้ผล แต่ไม่ได้ขัดแย้งกับคำอธิบายทั่วไปว่าทำไม chain-of-thought ถึงทำงาน
      วลีนั้นอาจชี้นำโมเดลไปยังปริภูมิแนวคิดของเว็บไซต์ที่มีตัวอย่าง chain-of-thought จำนวนมาก แต่ถ้า chain-of-thought ไม่ได้ช่วยให้คิดได้จริง ก็คงไม่ทำให้ผลลัพธ์ดีขึ้น
  • ฉันคิดว่านี่ชัดเจนอยู่แล้ว ทั้งหมดเป็นเรื่องของ การรับรู้บริบท
    ถ้าอยากให้ดีขึ้น ก็แค่เพิ่มคำศัพท์อีกคำในพรอมป์ต์เพื่อเปิดให้มีสิ่งที่ต้องพิจารณามากขึ้น โดยสมมติว่ายังไม่ชนขอบหน้าต่างบริบท ทุกคำใหม่แต่ละคำจะ "ปลดล็อก" เวกเตอร์ใหม่ที่มีบริบทมากขึ้น และโมเดลภาษาก็นำสิ่งนั้นเข้าไปพิจารณาเพิ่ม
    ความคล้ายกับสิ่งที่ดูเหมือนเป็นวิธีการทำงานของสมองมนุษย์นั้นเด่นชัดเกินไป จนแทบไม่มีเหตุผลที่จะไม่ใช้มันเป็นอุปมาเพื่อใช้งานโมเดลภาษาให้ดีขึ้น
    ถ้าการชักนำ LLM และการชักนำสมองมนุษย์ด้วยการใช้คำที่เหมาะสมให้ผลลัพธ์แบบเดียวกันได้ ฉันก็ไม่เข้าใจว่าทำไมเราต้องเชื่อว่ามันต่างกัน
    เรื่องแบบนี้เรียนรู้ได้เมื่อใช้และศึกษาพวกโมเดล 3B ไปนาน ๆ ดูเหมือนหลายคนจะเลี่ยงมัน แต่โมเดลบางตัวอย่าง orca mini 3B ที่ถือว่า “เก่า” ก็ยังทรงพลังมาก และฉันก็ยังใช้อยู่
    สิ่งที่ต้องมีคือพรอมป์ต์ที่ดีกว่า และแนวทางนี้ใช้ได้ผลดีมาก
    อุปสรรคใหญ่ที่สุดคือหน้าต่างบริบทที่มักเล็กของโมเดลขนาดเล็กเหล่านี้ แต่ก็อ้อมข้อจำกัดนี้ได้ด้วยการขยาย RoPE เล็กน้อย การสรุปข้อความ การเพิ่มคำบริบท และการตัดตัวอักษรของคำในพรอมป์ต์ โดยไม่ต้องเสียคุณภาพมากนัก
    ถ้าอยากปรับปรุงผลลัพธ์ของโมเดลภาษา คุณต้องเป็นนักอ่านใจ นักต้มตุ๋น นักมายากล และนักสังคมวิศวกรรม ฟังดูประหลาด แต่ได้ผล

    • คำอธิบายนี้ไม่ได้แตะข้อจำกัดที่ไม่ชัดเจนของ chain-of-thought
      Merrill และ Sabharwal พิสูจน์ว่า chain-of-thought จะเริ่มช่วยได้จริงก็ต่อเมื่อจำนวนขั้นตอนกลางเพิ่มขึ้นตามสัดส่วนของขนาดอินพุต และปัญหาจำนวนมากต้องการให้จำนวนขั้นตอนกลางเพิ่มขึ้นมากกว่านั้นมาก
      นี่ก็ตรงกับประสบการณ์ของฉัน GPT-4 เมื่อให้แก้แบบทีละขั้น จะสามารถแยกย่อยได้แค่ปัญหา “ง่าย ๆ” เท่านั้น โดยเฉพาะในกรณี ความซับซ้อน O(n²) ที่แม้จะสามารถแบ่งงานออกเป็นขั้น ๆ ได้ แต่กลับล้มเหลวอย่างสม่ำเสมอในการแยกงานย่อยออกเป็นขั้นย่อยอีกชั้น แม้ว่างานย่อยนั้นจะสามารถแก้ได้ด้วยพรอมป์ต์ chain-of-thought ก็ตาม
      พรอมป์ต์ chain-of-thought ใช้ได้กับ การคำนวณ O(n) แบบง่าย เพราะช่วยไม่ให้ LLM เดาคำตอบแบบมืดบอด แต่ทั้งในทางทฤษฎีและจากประสบการณ์ ฉันไม่คิดว่ามันมีความสามารถในการแบ่งปัญหา O(n²) ใด ๆ ออกเป็นปัญหาย่อย O(n) จำนวน O(n) ได้ และแน่นอนว่ามนุษย์ฉลาดกว่านั้นมาก หนูก็เช่นกัน
    • น่าสนใจ มีรายละเอียดหรือแหล่งข้อมูลเพิ่มเติมที่พอจะศึกษาได้ไหม? แค่มีตัวอย่างจริงสักอันก็ช่วยได้มากแล้ว
  • chain-of-thought ทำให้นึกถึงการ “ค่อย ๆ งมหาทางไป” (muddling through) และสอดคล้องตรงกับสัญชาตญาณของฉันที่มองว่านี่คือแนวทางที่ถูกต้องในการประมาณความฉลาด
    https://studio.ribbonfarm.com/p/massed-muddler-intelligence#...