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

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

LEVEL 0 · ปูพื้นจากศูนย์

Software 2.0 — ข้อมูลเขียนโปรแกรมแทนเรา

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

นี่คือ Software 2.0 คำที่ Karpathy เสนอไว้ตั้งแต่ปี 2017 มนุษย์เลิกเขียนตัวโปรแกรม แล้วย้ายไปทำสองอย่างแทน: สะสมชุดข้อมูลกับกำหนดโครงของโมเดล ส่วนตัว "โค้ด" จริง ๆ คือค่าน้ำหนักหลายล้านตัวที่ได้จากการเทรน ซึ่งไม่มีมนุษย์คนไหนเขียนหรืออ่านมันเลย

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

3.1 กงล้อที่หมุนเองได้ — data engine

จุดที่ทำให้ Software 2.0 ทรงพลังไม่ใช่การเทรนครั้งเดียว แต่คือการทำให้มันเป็นวงจรที่หมุนกลับมาปรับปรุงตัวเองได้ ซึ่ง Karpathy เรียกว่า data engine และเป็นสิ่งที่เขาสร้างจริงตอนทำระบบขับขี่อัตโนมัติที่ Tesla

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

วงจรเดินอย่างนี้: รวบรวมข้อมูล → เทรนโมเดล → ปล่อยใช้งานจริง → ดักจับเคสที่โมเดลพลาด → ติดป้ายกำกับเคสเหล่านั้นเพิ่ม → ป้อนกลับเข้าชุดข้อมูล → เทรนใหม่ แล้ววนอีกรอบ

หัวใจอยู่ที่ขั้นที่สี่ ไม่ใช่ขั้นที่สอง คนมักคิดว่างานหลักคือการเทรน ความจริงคืองานหลักคือการหาว่าโมเดลพลาดตรงไหน เพราะข้อมูลที่มีค่าที่สุดไม่ใช่ข้อมูลที่เยอะที่สุด แต่คือข้อมูลในจุดที่โมเดลยังไม่รู้เรื่อง ถ่ายรูปถนนโล่งเพิ่มอีกล้านรูปแล้วโมเดลไม่เก่งขึ้น แต่รูปถนนตอนฝนตกกลางคืนที่มีเงาสะท้อนไฟหน้ารถอีกพันรูปเปลี่ยนผลลัพธ์ได้จริง

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

💡 ใครเป็นคนบอกว่าอะไรถูก — คำถามนี้ตอบยากกว่าที่คิด และมีคำตอบที่เป็นรูปธรรมมาก ตอนวงการเอา ImageNet มาวัดว่าเครื่องเก่งเท่ามนุษย์หรือยัง ตัวเลข "ความแม่นของมนุษย์" ที่ถูกอ้างกันต่อมา ไม่ได้มาจากการสำรวจคนหมู่มาก — มันมาจาก Karpathy นั่งจำแนกภาพแข่งกับโมเดลด้วยตัวเอง แล้วได้ค่าความผิดพลาด 5.1% ซึ่งเขาเขียนไว้เองว่าที่ผิดส่วนใหญ่คือจำพันธุ์สุนัขไม่ได้ ไม่ใช่มองภาพไม่ออก เกร็ดนี้บอกอะไรที่สำคัญกับทั้งบท: เพดานของ Software 2.0 ไม่ได้อยู่ที่โมเดล แต่อยู่ที่คุณภาพของคนที่ชี้ว่าอะไรถูก

3.2 สิ่งที่เราจ่ายไปเพื่อแลกมา

การลบอัลกอริทึมออกไม่ได้ฟรี ราคาที่จ่ายคือคุณสมบัติที่เคยเป็นจุดแข็งของยุคก่อน: อ่านน้ำหนักหลายล้านตัวแล้วไม่มีทางรู้ว่ามันจะตอบอะไร และเมื่อมันผิด ไม่มี "บรรทัดที่ผิด" ให้ชี้ วิธีแก้บั๊กเปลี่ยนจากการแก้โค้ดเป็นการเติมข้อมูล ซึ่งเป็นทักษะคนละชุดกันโดยสิ้นเชิง

เก็บข้อสังเกตนี้ไว้ เพราะในบทที่ 4 เราจะลบอะไรออกอีกชั้น แล้วจะเห็นว่าราคาที่จ่ายเป็นแบบเดียวกันเป๊ะ

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