← คู่มือ Transformer — ลบทุกอย่าง เหลือแค่กราฟ
LEVEL 0 · ปูพื้นจากศูนย์
Software 2.0 — ข้อมูลเขียนโปรแกรมแทนเรา
ทางออกของกำแพงในบทที่แล้วคือการเปลี่ยนคำถาม จากเดิมถามว่า "จะเขียนวิธีจำแนกแมวยังไง" เปลี่ยนเป็น "จะหาชุดตัวเลขที่ทำให้ผลลัพธ์ตรงกับตัวอย่างที่เรามีได้ยังไง" สองคำถามนี้ต่างกันคนละโลก เพราะคำถามที่สองไม่ต้องการให้มนุษย์รู้วิธีเลย ขอแค่มนุษย์ชี้ถูกได้ว่าอะไรถูก
นี่คือ Software 2.0 คำที่ Karpathy เสนอไว้ตั้งแต่ปี 2017 มนุษย์เลิกเขียนตัวโปรแกรม แล้วย้ายไปทำสองอย่างแทน: สะสมชุดข้อมูลกับกำหนดโครงของโมเดล ส่วนตัว "โค้ด" จริง ๆ คือค่าน้ำหนักหลายล้านตัวที่ได้จากการเทรน ซึ่งไม่มีมนุษย์คนไหนเขียนหรืออ่านมันเลย
💡 น้ำหนัก (weights) — ตัวเลขในโมเดลที่ถูกปรับระหว่างเทรน มองเป็น "โค้ดที่ถูกเขียนโดยกระบวนการหาค่าที่เหมาะสม" ได้ตรงตัว มันคือโปรแกรมจริง ๆ ที่ทำงาน เพียงแต่อยู่ในรูปที่มนุษย์อ่านไม่ออก
3.1 กงล้อที่หมุนเองได้ — data engine
จุดที่ทำให้ Software 2.0 ทรงพลังไม่ใช่การเทรนครั้งเดียว แต่คือการทำให้มันเป็นวงจรที่หมุนกลับมาปรับปรุงตัวเองได้ ซึ่ง Karpathy เรียกว่า data engine และเป็นสิ่งที่เขาสร้างจริงตอนทำระบบขับขี่อัตโนมัติที่ Tesla
วงจรเดินอย่างนี้: รวบรวมข้อมูล → เทรนโมเดล → ปล่อยใช้งานจริง → ดักจับเคสที่โมเดลพลาด → ติดป้ายกำกับเคสเหล่านั้นเพิ่ม → ป้อนกลับเข้าชุดข้อมูล → เทรนใหม่ แล้ววนอีกรอบ
หัวใจอยู่ที่ขั้นที่สี่ ไม่ใช่ขั้นที่สอง คนมักคิดว่างานหลักคือการเทรน ความจริงคืองานหลักคือการหาว่าโมเดลพลาดตรงไหน เพราะข้อมูลที่มีค่าที่สุดไม่ใช่ข้อมูลที่เยอะที่สุด แต่คือข้อมูลในจุดที่โมเดลยังไม่รู้เรื่อง ถ่ายรูปถนนโล่งเพิ่มอีกล้านรูปแล้วโมเดลไม่เก่งขึ้น แต่รูปถนนตอนฝนตกกลางคืนที่มีเงาสะท้อนไฟหน้ารถอีกพันรูปเปลี่ยนผลลัพธ์ได้จริง
💡 อุปมาที่ใช้ได้และจุดที่มันพัง — data engine เหมือนครูที่ออกข้อสอบใหม่จากข้อที่นักเรียนทำผิด ดีตรงที่สื่อว่าความผิดพลาดคือวัตถุดิบ แต่พังตรงที่ ครูรู้ว่านักเรียนคิดผิดเพราะอะไร ส่วนเราไม่รู้ว่าโมเดลคิดผิดเพราะอะไรเลย เรารู้แค่ว่ามันตอบผิด แล้วเติมตัวอย่างเข้าไปให้มันปรับเอง
💡 ใครเป็นคนบอกว่าอะไรถูก — คำถามนี้ตอบยากกว่าที่คิด และมีคำตอบที่เป็นรูปธรรมมาก ตอนวงการเอา ImageNet มาวัดว่าเครื่องเก่งเท่ามนุษย์หรือยัง ตัวเลข "ความแม่นของมนุษย์" ที่ถูกอ้างกันต่อมา ไม่ได้มาจากการสำรวจคนหมู่มาก — มันมาจาก Karpathy นั่งจำแนกภาพแข่งกับโมเดลด้วยตัวเอง แล้วได้ค่าความผิดพลาด 5.1% ซึ่งเขาเขียนไว้เองว่าที่ผิดส่วนใหญ่คือจำพันธุ์สุนัขไม่ได้ ไม่ใช่มองภาพไม่ออก เกร็ดนี้บอกอะไรที่สำคัญกับทั้งบท: เพดานของ Software 2.0 ไม่ได้อยู่ที่โมเดล แต่อยู่ที่คุณภาพของคนที่ชี้ว่าอะไรถูก
3.2 สิ่งที่เราจ่ายไปเพื่อแลกมา
การลบอัลกอริทึมออกไม่ได้ฟรี ราคาที่จ่ายคือคุณสมบัติที่เคยเป็นจุดแข็งของยุคก่อน: อ่านน้ำหนักหลายล้านตัวแล้วไม่มีทางรู้ว่ามันจะตอบอะไร และเมื่อมันผิด ไม่มี "บรรทัดที่ผิด" ให้ชี้ วิธีแก้บั๊กเปลี่ยนจากการแก้โค้ดเป็นการเติมข้อมูล ซึ่งเป็นทักษะคนละชุดกันโดยสิ้นเชิง
เก็บข้อสังเกตนี้ไว้ เพราะในบทที่ 4 เราจะลบอะไรออกอีกชั้น แล้วจะเห็นว่าราคาที่จ่ายเป็นแบบเดียวกันเป๊ะ