ข้ามไปยังเนื้อหา
Tayakorn

คู่มือ Transformer — ลบทุกอย่าง เหลือแค่กราฟ

LEVEL 2 · ระดับกลาง

คอขวดที่ทำให้โลกต้องคิดกลไกใหม่

เปิดฝาดูข้างในแล้ว และเราจะไม่เริ่มจากคำตอบ เพราะการเห็นคำตอบก่อนเห็นปัญหาทำให้จำได้แต่ไม่เข้าใจ เราจะเริ่มจากปัญหาที่คนยุคนั้นเจอจริง ๆ แล้วคุณจะพบว่ากลไกที่ดูซับซ้อนในบทถัดไป เป็นสิ่งที่คุณคิดออกเองได้

7.1 ยุคที่ทุกสาขาแยกกันคนละโลก

ก่อนราวปี 2012 งานด้านภาพ เสียง และภาษา แยกออกจากกันโดยสิ้นเชิง แต่ละสาขามีเครื่องมือเฉพาะทางของตัวเองที่มนุษย์ออกแบบมาด้วยมือ — คนทำงานด้านภาพมีตัวอธิบายลักษณะของภาพที่คิดขึ้นมาเป็นสิบปี คนทำเสียงมีของอีกชุดที่ใช้ข้ามสาขาไม่ได้เลย ย้ายคนจากสาขาหนึ่งไปอีกสาขาแล้วความรู้แทบทั้งหมดใช้ไม่ได้

จำแถวที่สองในตารางบทที่ 1 ไหม — จังหวะที่ตัวอธิบายลักษณะทำมือถูกลบออก แล้วให้เครือข่ายหาลักษณะเอง นั่นคือจุดที่กำแพงระหว่างสาขาเริ่มบางลง แต่ยังไม่หายไป เพราะแต่ละสาขายังใช้โครงของโมเดลคนละแบบ

7.2 ปี 2014 — บีบทั้งประโยคลงถังใบเดียว

งานแปลภาษาในยุคนั้นใช้โครงที่ชื่อว่า encoder-decoder โดยมีหน่วยความจำแบบ LSTM เป็นแกน วิธีทำงานคือ อ่านประโยคต้นทางทีละคำ สะสมความเข้าใจไว้ แล้วเมื่ออ่านจบก็ได้ เวกเตอร์ตัวเดียวขนาดคงที่ ที่ควรบรรจุความหมายของทั้งประโยคไว้ จากนั้นฝ่ายถอดรหัสก็เอาเวกเตอร์นั้นไปคลี่ออกเป็นประโยคปลายทาง

ประโยคต้นทางคำที่ 1คำที่ 2คำที่ 3คำที่ 4คำที่ 5เวกเตอร์เดียวขนาดคงที่ตลอดฝ่ายถอดรหัสเห็นแค่กล่องกลางนี้ประโยคยาวขึ้น แต่กล่องกลางไม่โตตามส่วนที่ล้น คือส่วนที่หายไป
FIG 7.1 ข้อจำกัดตัวจริงไม่ใช่ขนาดของกล่องกลาง แต่คือการที่ฝ่ายถอดรหัสห้ามย้อนกลับไปดูต้นทางเลย — เห็นได้แค่สิ่งที่รอดผ่านคอขวดมา

ปัญหาปรากฏชัดทันทีเมื่อประโยคยาวขึ้น เพราะเวกเตอร์มีขนาดเท่าเดิมตลอด ไม่ว่าประโยคจะยาวห้าคำหรือห้าสิบคำ ข้อมูลจึงต้องหล่นหายไปไหนสักที่ นี่คือสิ่งที่เรียกว่า คอขวดของฝ่ายเข้ารหัส (encoder bottleneck)

💡 อุปมาที่ตรงกับกลไกจริง — เหมือนสั่งให้คนอ่านรายงานยาวยี่สิบหน้า แล้วห้ามจดอะไรเลยนอกจากกระดาษโพสต์อิตแผ่นเดียว จากนั้นให้เขียนสรุปเป็นภาษาอื่นจากโพสต์อิตแผ่นนั้นอย่างเดียว ห้ามเปิดกลับไปดูรายงานเลย — รายงานสั้นยังรอด รายงานยาวคือหายนะ และจุดสำคัญคือคำว่า "ห้ามเปิดกลับไปดู" นั่นคือข้อจำกัดตัวจริง ไม่ใช่ขนาดของโพสต์อิต

ถ้าอุปมานั้นชัด คุณก็คิดวิธีแก้ออกแล้ว: ก็ให้เปิดกลับไปดูได้สิ

7.3 ปี 2014–2015 — ให้ย้อนกลับไปมองได้

นั่นคือสิ่งที่ Dzmitry Bahdanau ทำร่วมกับ Kyunghyun Cho และ Yoshua Bengio ในงานที่ตีพิมพ์ปี 2014 แทนที่จะบังคับให้ฝ่ายถอดรหัสใช้เวกเตอร์สรุปตัวเดียว พวกเขาให้มันสามารถย้อนกลับไปมองสถานะของทุกตำแหน่งในประโยคต้นทางได้โดยตรง และเลือกน้ำหนักเองว่าตอนกำลังผลิตคำนี้ ควรให้ความสำคัญกับตำแหน่งไหนมากที่สุด

พวกเขาเรียกกลไกนี้ว่าการ ค้นแบบนุ่มนวล (soft search) และเรียกโมเดลว่า RNNsearch เพราะฝ่ายถอดรหัส "ค้น" ในประโยคต้นทางทุกครั้งที่ผลิตคำใหม่

ที่น่าสังเกตคือ คำว่า attention แทบไม่ปรากฏในงานต้นฉบับ — คำที่ใช้เป็นหลักทั้งฉบับคือ alignment หรือการจับคู่ตำแหน่ง ส่วนชื่อ attention ที่ทั้งโลกใช้กันวันนี้มาติดทีหลัง Karpathy เล่าไว้ในการบรรยายว่าเป็น Yoshua Bengio ที่เสนอคำนี้ขึ้นมา — จุดนี้เป็นคำบอกเล่าจากการบรรยาย เล่มนี้จึงบอกไว้ตามนั้น ไม่ยกเป็นข้อเท็จจริงที่ยืนยันแล้ว ส่วนที่ตรวจกับงานต้นฉบับได้แน่นอนคือ ชื่อที่งานนั้นใช้เองคือ alignment กับ RNNsearch

ประเด็นที่ต้องจับให้ได้จากบทนี้: ปี 2014 กลไกการมองหากันนี้เป็นเพียงของเสริม ที่ถูกแปะเข้ากับ LSTM เพื่ออุดคอขวด แกนหลักยังเป็นการไล่ลำดับทีละคำอยู่ อีกสามปีถัดมาจะมีคนถามคำถามที่ทำให้ทุกอย่างพลิก

อ่านแบบเต็มเล่ม