1 คะแนน โดย GN⁺ 2024-12-15 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • Byte Latent Transformer (BLT) คือสถาปัตยกรรมใหม่ของโมเดลภาษาขนาดใหญ่ (LLM) ระดับไบต์ ซึ่ง ให้ประสิทธิภาพเทียบเท่ากับโมเดลที่อาศัย tokenization แต่ปรับปรุงทั้งประสิทธิภาพในการอนุมานและความทนทานได้อย่างมาก
  • เข้ารหัสไบต์เป็น patch ขนาดไดนามิก โดยให้ patch ทำหน้าที่เป็นหน่วยหลักของการคำนวณ
    • การแบ่ง patch แบบไดนามิก: จัดสรรทรัพยากรการคำนวณมากขึ้นให้กับข้อมูลที่มีความซับซ้อนสูง โดยอิงจากเอนโทรปีของไบต์ถัดไป
  • งานวิจัยการสเกลแบบควบคุม FLOP ครั้งแรกของโมเดลที่อิงกับไบต์:
    • สเกลได้ถึง พารามิเตอร์ 8B (8 พันล้าน) และ ไบต์สำหรับการฝึก 4 ล้านล้าน (4T)
    • ยืนยันความเป็นไปได้ในการฝึกโมเดลด้วย raw byte โดยไม่ต้องใช้คำศัพท์คงที่ (fixed vocabulary)

ผลลัพธ์สำคัญ

  1. การฝึกและการอนุมานที่มีประสิทธิภาพ:
    • เลือกใช้ patch ที่ยาวขึ้น เมื่อข้อมูลคาดเดาได้ เพื่อลดปริมาณการคำนวณ
    • โมเดล ปรับ patch แบบไดนามิกตามความซับซ้อน เพื่อเพิ่มประสิทธิภาพการใช้ทรัพยากร
  2. การสเกลที่ดีขึ้น:
    • ให้ประสิทธิภาพที่ดีกว่าโมเดลแบบ tokenization ภายใต้ ต้นทุนการอนุมานคงที่
    • ทำให้เกิดประสิทธิภาพในการสเกลโดยเพิ่มทั้งขนาด patch และขนาดโมเดลพร้อมกัน
  3. การปรับปรุงเชิงคุณภาพของประสิทธิภาพ:
    • ความสามารถด้านการให้เหตุผลและการทั่วไปดีขึ้น: มีการปรับปรุงเชิงคุณภาพในการให้เหตุผลและการจัดการข้อมูลเบาบาง (long-tail)
    • ก้าวข้ามข้อจำกัดของแนวทางที่อิงกับคำศัพท์คงที่

ความสำคัญ

  • BLT ประมวลผล raw byte ได้โดยไม่ต้องทำ tokenization พร้อมทั้ง พิสูจน์ประสิทธิภาพของการฝึกด้วยข้อมูลและโมเดลขนาดใหญ่
  • ให้ประสิทธิภาพที่ดีกว่าเมื่อเทียบกับต้นทุนการอนุมาน และ บ่งชี้ถึงศักยภาพของ LLM ระดับไบต์ยุคถัดไป
  • โดยเฉพาะเมื่อจัดการกับข้อมูลที่ซับซ้อน วิธีแบบ dynamic patch อาจกลายเป็น มาตรฐานใหม่ของการทำโมเดลแบบปรับตัวได้

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

 
GN⁺ 2024-12-15
ความคิดเห็นจาก Hacker News
  • ตอนที่ BERT เปิดตัวในช่วงฤดูร้อน ผมทำงานอยู่ที่สตาร์ตอัปแห่งหนึ่งที่ใช้โมเดล CNN แบบอิงตัวอักษรสำหรับงานจัดประเภท ทีมสนใจ word vector แต่คิดว่าคำที่อยู่นอกพจนานุกรมมีเยอะเกินไปจนมีโอกาสล้มเหลว

    • แม้แต่ใน "foundation model" ปัญหาคำที่อยู่นอกพจนานุกรมก็ยังมีอยู่
    • โมเดลแบบอิงตัวอักษรให้ผลลัพธ์ค่อนข้างดี แต่ก็มีความเห็นว่าการเก็บ "พจนานุกรม" ไว้ในโครงข่ายประสาทนั้นไม่มีประสิทธิภาพ
    • ตอนนั้นมั่นใจว่าวิธีแบบ Word2Vec จะล้มเหลว จึงออกจากโปรเจ็กต์ก่อนหน้า
    • เมื่อมีการนำ byte pair encoding มาใช้ ผมบอกว่านี่เป็นวิธี tokenization แบบแรกที่พอจะสนับสนุนได้
    • อยากให้สามารถทำงานด้วย label ระดับตัวอักษรได้ มีอคติต่อต้าน tokenizer อยู่
  • โครงสร้างแบบลำดับชั้นน่าสนใจ แต่เสียดายที่มีแค่สองชั้น การซ้อนชั้นให้มากกว่านี้อาจเป็นทิศทางของงานวิจัย

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

    • ตัวอย่าง: อักขระถัดไปอาจเป็น 'a' ด้วยความน่าจะเป็น 100% หรืออาจเป็น 'a' และ 'b' อย่างละ 10%
    • จากนั้นนำค่าประมาณของอักขระมาจับรวมกันเป็น patch (หรือ token)
  • การ sampling เป็นจุดยากของ LLM แต่ก็ทำให้เกิดการใช้งานที่น่าสนใจได้ เช่น บังคับให้แสดงผลเป็น JSON ที่ถูกต้องเสมอ หรือปรับ temperature เพื่อให้ได้การกระจายที่หลากหลาย

    • ใน BLT อาจนึกถึงวิธีป้อนข้อมูลเพิ่มเติมให้ decoder ว่า byte ใดอนุญาต/ห้าม และทำ decoding ซ้ำจนกว่าจะได้ผลลัพธ์ที่ถูกต้อง
  • มีคำถามว่า AI จะ pretrain กับไฟล์ไบนารีได้หรือไม่

  • มีคำถามว่าจะทำให้ tokenization เป็นแบบแฝง แล้วป้อนให้โมเดลเห็นแค่ byte (หรือตัวอักษร) ได้หรือไม่

  • คำพูดที่เกี่ยวข้องของ Karpathy: tokenization คือศูนย์กลางของความแปลกประหลาดมากมายใน LLM

    • ที่ LLM สะกดคำไม่ได้ก็เพราะ tokenization
    • ที่ LLM ทำงานประมวลผลสตริงง่าย ๆ ไม่ได้ก็เพราะ tokenization
    • ที่ LLM อ่อนด้านภาษาที่ไม่ใช่อังกฤษก็เพราะ tokenization
    • ที่ LLM อ่อนด้านเลขคณิตง่าย ๆ ก็เพราะ tokenization
    • ที่ GPT-2 เจอความยากลำบากเกินจำเป็นกับการเขียนโค้ด Python ก็เพราะ tokenization
    • ที่ LLM เห็นสตริง "<|endoftext|>" แล้วหยุดกะทันหันก็เพราะ tokenization
    • ที่มีคำเตือน "trailing whitespace" โผล่มาก็เพราะ tokenization
    • ที่พอถามเรื่อง "SolidGoldMagikarp" แล้ว LLM พังก็เพราะ tokenization
    • ที่ควรเลือก YAML มากกว่า JSON ใน LLM ก็เพราะ tokenization
    • ที่จริง ๆ แล้ว LLM ไม่ได้ทำ end-to-end language modeling ก็เพราะ tokenization
    • รากที่แท้จริงของความเจ็บปวดคือ tokenization
  • เป็นโมเดลที่ประกอบด้วย 3 องค์ประกอบ

    • encoder: รับกลุ่มของ byte แล้วส่งออก hidden state/encoding ที่เรียกว่า patch
    • transformer: ประมวลผล encoding ของ patch แบบอัตถดถอยอัตโนมัติ
    • decoder: แปลง encoding ที่ transformer ประมวลผลแล้วออกมาเป็น byte
    • loss อิงกับ cross-entropy ระหว่าง byte (การทำนาย byte ถัดไป)
  • วิธีจัดกลุ่ม byte

    • ใช้ค่า entropy threshold: ถ้า entropy ของลำดับ byte ต่ำกว่าค่าขีดจำกัดก็จัดกลุ่มเข้าด้วยกัน
    • เป็นโมเดลที่เรียนรู้จากข้อมูล
  • มีข้อได้เปรียบเหนือ byte pair tokenization ของ LLM ปัจจุบัน

    • encoder/decoder ทำงานเป็นวิธี tokenization ที่ "เรียนรู้ได้"
    • การแลกเปลี่ยนด้านประสิทธิภาพดีกว่า (ในกรณีของลำดับ byte ที่คาดเดาได้ encoder สามารถ "offload" ภาระการคำนวณจาก transformer หลักได้)
    • อย่างที่ประวัติศาสตร์แสดงให้เห็น ระบบที่เรียนรู้แบบ end-to-end มักเหนือกว่ากลไกที่มนุษย์ออกแบบ
  • ผมคิดว่าเราควรเข้าสู่ช่วงชะงักงัน