โมเดลภาษาบรรจุแนวคิดนับพันล้านไว้ใน 12,000 มิติได้อย่างไร
(nickyoder.com)- ใน พื้นที่ฝังตัวมิติสูง สามารถแทนแนวคิดจำนวนมหาศาลได้โดยอาศัย กึ่งตั้งฉาก (quasi-orthogonality) แทนความตั้งฉากสมบูรณ์
- บทตั้งเสริม Johnson-Lindenstrauss รับประกันว่าสามารถฉายข้อมูลมิติสูงตามอำเภอใจลงสู่มิติที่ต่ำกว่าได้โดยแทบไม่สูญเสียข้อมูล
- ในกระบวนการหาค่าเหมาะที่สุด การออกแบบ ฟังก์ชันความสูญเสีย มีความสำคัญมาก เพราะฟังก์ชันความสูญเสียพื้นฐานอาจทำให้เกิดการจัดวางเวกเตอร์ที่ไม่มีประสิทธิภาพหรือมีอคติ
- ผลการทดลอง แสดงให้เห็นว่าความจุจริงของพื้นที่ฝังตัวนั้นใหญ่กว่าที่คาดกันในทางทฤษฎีมาก และสามารถรองรับแนวคิดตั้งแต่หลายล้านไปจนถึงหลายพันล้านรายการให้อยู่ร่วมกันได้อย่างเป็นธรรมชาติ
- การค้นพบนี้มีนัยเชิงปฏิบัติอย่างมากต่อ งานแมชชีนเลิร์นนิง เช่น การแทนข้อมูลและการลดมิติในการประมวลผลภาษาธรรมชาติและการออกแบบ embedding
บทนำ: คำถามเรื่องความจุของพื้นที่ embedding ในโมเดลภาษา
ในซีรีส์วิดีโอเกี่ยวกับโมเดลทรานส์ฟอร์เมอร์ของ 3Blue1Brown เมื่อไม่นานมานี้ Grant Sanderson ได้ตั้งคำถามที่น่าสนใจว่า พื้นที่ embedding 12,288 มิติของ GPT-3 จะบรรจุแนวคิดจากโลกจริงได้หลายล้านแนวคิดอย่างไร
ข้อสงสัยนี้เชื่อมโยงกับผลลัพธ์ทางคณิตศาสตร์อย่าง เรขาคณิตมิติสูง และ บทตั้งเสริม Johnson-Lindenstrauss (JL)
ระหว่างการสำรวจประเด็นนี้ ได้เกิดความเข้าใจใหม่เกี่ยวกับคุณสมบัติพื้นฐานของปริภูมิเวกเตอร์และการหาค่าเหมาะที่สุด และยังนำไปสู่การร่วมงานกับ Grant อีกด้วย
ความเป็นกึ่งตั้งฉากของเวกเตอร์และความจุของพื้นที่ embedding
- ในปริภูมิ N มิติ จะมีเวกเตอร์ที่ตั้งฉากกันอย่างสมบูรณ์ได้เพียง N ตัว
- แต่ในทางปฏิบัติ หากยอมให้มีความสัมพันธ์แบบ กึ่งตั้งฉาก (quasi-orthogonal) ที่เบี่ยงจาก 90 องศาเล็กน้อย (เช่น มุม 85~95 องศา) จำนวนเวกเตอร์ที่แทนได้ในปริภูมิเดียวกันจะเพิ่มขึ้นแบบทวีคูณ
- ในวิดีโอของ Grant มีการแสดงภาพว่าเวกเตอร์หน่วย 10,000 ตัวสามารถจัดวางในปริภูมิ 100 มิติให้เกือบตั้งฉากกันได้
- อย่างไรก็ตาม ระหว่างการทำซ้ำการทดลองเดียวกัน กลับพบกับกับดักเล็ก ๆ ในการออกแบบ ฟังก์ชันความสูญเสียสำหรับการหาค่าเหมาะที่สุด
ปัญหาและรูปแบบของฟังก์ชันความสูญเสีย
- ฟังก์ชันความสูญเสียพื้นฐาน:
loss = (dot_products.abs()).relu().sum() - บนยูนิตสเฟียร์จริง ๆ ฟังก์ชันความสูญเสียนี้ก่อให้เกิดปัญหาสองประการ
- Gradient Trap: เมื่อมุมของเวกเตอร์เข้าใกล้ 90 องศา กราดิเอนต์จะทำงานแรง แต่เมื่อเข้าใกล้ 0 องศาหรือ 180 องศา กราดิเอนต์จะเกือบเป็นศูนย์ ทำให้การปรับปรุงหยุดชะงัก
- ทางออกแบบ 99%: วิธีหาค่าเหมาะที่สุดจะลดความสูญเสียรวมด้วยการจัดวางที่เวกเตอร์แต่ละตัวตั้งฉากได้ดีต่อ 9,900 ตัวจาก 10,000 ตัว แต่เกือบขนานกับอีก 99 ตัว (กล่าวคือเป็นสำเนาของเวกเตอร์อ้างอิง)
- เมื่อมองภาพรวม วิธีแก้นี้ต่างจากสิ่งที่คาดหวังโดยพื้นฐาน จึงจำเป็นต้องใช้ฟังก์ชันความสูญเสียที่ประณีตกว่า
- จึงเปลี่ยนไปใช้ฟังก์ชันความสูญเสียที่มีการลงโทษแบบเอ็กซ์โปเนนเชียล: loss = exp(20*dot_products.abs()**2).sum()
- วิธีนี้ให้ผลที่ใกล้กับการกระจายตัวที่ต้องการมากกว่า (มุมคู่สูงสุดประมาณ 76.5 องศา)
บทตั้งเสริม Johnson-Lindenstrauss (JL): หลักประกันเชิงเรขาคณิต
- บทตั้งเสริม JL รับประกันว่าแม้จะฉายชุดจุดข้อมูลมิติสูงตามอำเภอใจลงสู่มิติที่ต่ำกว่าแบบสุ่ม ระยะทางแบบยูคลิดก็ยังคงถูกเก็บรักษาไว้เกือบเดิม
- สำหรับจุดจำนวน 1~N จุด ค่าคลาดเคลื่อน ε และมิติฉาย k
(1-ε)||u-v||² ≤ ||f(u)-f(v)||² ≤ (1+ε)||u-v||² - มิติต่ำสุดที่ต้องการคือ:
k ≥ (C/ε²) * log(N)
โดย C เป็นค่าคงที่ที่ใช้ปรับความน่าจะเป็นของความสำเร็จ - โดยทั่วไปมักตั้งค่า C แบบอนุรักษนิยมไว้ที่ 4~8 แต่ในวิธีฉายแบบพิเศษบางแบบ (เช่น Hadamard matrix หรือวิธีหาค่าเหมาะที่สุด) อาจทำให้ได้ C ที่เล็กกว่านี้
ด้านการประยุกต์ใช้งานจริง
- การลดมิติ:
- ตัวอย่าง) แปลงความชอบของลูกค้าอีคอมเมิร์ซจากมิติระดับจำนวนสินค้าหลายหมื่นรายการให้เหลือเพียงหลักพันได้อย่างมีประสิทธิภาพ
- นำไปใช้กับการวิเคราะห์ข้อมูลมิติสูงแบบเรียลไทม์และระบบแนะนำได้
- การวิเคราะห์ขีดจำกัดความจุของพื้นที่ embedding:
- แทนที่จะยึดกับความตั้งฉากสมบูรณ์ ก็สามารถแสดง สเปกตรัมของความเหมือน/ความต่างระหว่างแนวคิด ได้อย่างเป็นธรรมชาติภายในปริภูมิ
- ตัวอย่างคำจริง เช่น "archery", "fire", "gelatinous", "green" ซึ่งมีทั้งความหมายเชิงกายภาพและเชิงนามธรรมซ้อนทับกันในปริภูมิมิติสูง
การวิเคราะห์เชิงทดลองของความจุ embedding
- จากการหาค่าเหมาะที่สุดด้วยการแปลง Hadamard matrix เป็นต้น พบว่าค่า C อยู่ที่ 2.5~4 และในการหาค่าเหมาะที่สุดบน GPU อาจลดลงได้มากกว่านั้นอีก
- วิธีทดลอง: ฉาย standard basis vector จำนวน N ตัวเข้าสู่ปริภูมิ k มิติทีละลำดับ แล้วทำการหาค่าเหมาะที่สุดซ้ำ 50,000 ครั้ง
- ผลการสังเกต:
- ค่า C จะเพิ่มขึ้นจนถึงค่าสูงสุด (~0.9) เมื่อ N เพิ่มขึ้น แล้วจึงค่อย ๆ ลดลง
- เมื่ออัตราส่วน N/k สูงขึ้น C จะลดลงต่ำกว่า 0.2
- สิ่งนี้เกิดจากประสิทธิภาพของ sphere packing ในปริภูมิมิติสูง
- นั่นชี้ว่าความสามารถในการแทนแนวคิดจริง ๆ อาจมากกว่าขอบบนทางทฤษฎีเสียอีก
ความหมายเชิงปฏิบัติของ embedding ในโมเดลภาษา
- จำนวนแนวคิดที่บรรจุได้ขึ้นอยู่กับมิติ embedding k มุมตั้งฉากโดยประมาณ F (90°-มุมจริง) และค่า C โดยคำนวณได้เป็น
Vectors ≈ 10^(k * F² / 1500)
- k=12,288, F=1(89°) → 10^8
- F=2(88°) → 10^32
- F=3(87°) → 10^73
- F=5(85°) → เก็บเวกเตอร์ได้มากกว่า 10^200
- เพียง 86° ก็มีจำนวนมากกว่าจำนวนอะตอมในเอกภพที่สังเกตได้ (10^80)
- กล่าวคือ โมเดลภาษาจริงสามารถคงความหมายจำนวนหลายล้านรายการไว้ได้อย่างอุดมสมบูรณ์แม้มีจำนวนมิติไม่มากนักเมื่อเทียบกัน
การประยุกต์ใช้ในงานจริงและทิศทางในอนาคต
- การลดมิติอย่างมีประสิทธิภาพ:
- ผ่านวิธีการฉายแบบสุ่มที่ผสาน Hadamard transform, BCH coding เป็นต้น จึงสามารถลดมิติของข้อมูลขนาดใหญ่และคำนวณได้รวดเร็วโดยไม่ต้องทำ optimization ที่ซับซ้อน
- การออกแบบพื้นที่ embedding:
- ความเข้าใจเรื่องความจุของปริภูมิช่วยอธิบายได้ว่าโมเดลภาษาขนาดใหญ่อย่างทรานส์ฟอร์เมอร์สามารถเก็บรักษาความสัมพันธ์เชิงความหมายของแนวคิดละเอียดอ่อนอย่าง "Canadian" หรือ "Muppet-like" ไปพร้อมกันได้
- โดยสรุป มาตรฐาน embedding ปัจจุบัน (1,000~20,000 มิติ) เพียงพอสำหรับการแทนองค์ความรู้ของมนุษย์ และหัวใจสำคัญคือการ เรียนรู้การจัดวางที่เหมาะสมที่สุด ภายในปริภูมินั้น
บทสรุป
- จุดเริ่มต้นจากการสำรวจปัญหาการหาค่าเหมาะที่สุดเล็ก ๆ ในฟังก์ชันความสูญเสีย ได้นำไปสู่ความเข้าใจเชิงลึกต่อเรขาคณิตมิติสูงและโครงสร้างพื้นฐานของแมชชีนเลิร์นนิง
- บทตั้งเสริม JL ที่ตีพิมพ์ในปี 1984 กำลังทำหน้าที่เป็นแกนหลักของหลักการ embedding ในแมชชีนเลิร์นนิง การแทนข้อมูล และการลดมิติในปัจจุบัน
- พร้อมทั้งขอบคุณ Grant Sanderson, ช่อง 3Blue1Brown และ Suman Dev สำหรับความร่วมมือ และแบ่งปันความยินดีจากประสบการณ์วิจัยและการเขียนครั้งนี้
อ่านเพิ่มเติม
- Sphere Packings, Lattices and Groups – Conway & Sloane
- Database-friendly random projections: Johnson-Lindenstrauss with binary coins – Achlioptas
- Hadamard Matrices, Sequences, and Block Designs – Seberry & Yamada
ยังไม่มีความคิดเห็น