ครบรอบ 10 ปี XKCD 1425 (Tasks)
(simonwillison.net)- XKCD 1425 “Tasks” เป็นการ์ตูนที่พูดถึง เซนส์ของการพัฒนาซอฟต์แวร์ ว่าแม้บางอย่างจะดูง่ายจากภายนอก แต่ความยากจริงอาจต่างกันโดยสิ้นเชิง และเมื่อวันที่ 24 กันยายน 2024 ก็ครบรอบ 10 ปี
- “การตรวจสอบว่าภาพถ่ายเป็นนกหรือไม่” ในการ์ตูนเคยเป็น โจทย์ระดับปริญญาเอก ในตอนนั้น แต่ปัจจุบันกลายเป็นงานที่แก้ได้ง่ายด้วย vision LLM, CLIP, ResNet+ImageNet และเทคโนโลยีอื่น ๆ
- ตัวอย่างเฉพาะนี้เปลี่ยนไปตามความก้าวหน้าทางเทคโนโลยี แต่การตัดสินว่าโจทย์ใดง่ายหรือยากยังคงต้องอาศัย ประสบการณ์เชิงลึก
- LLM มีด้านที่อ่อน เช่น คณิตศาสตร์หรือการค้นข้อเท็จจริง ทำให้ยิ่งยากขึ้นในการตัดสินด้วยสัญชาตญาณว่างานใดสามารถมอบหมายให้ทำได้อย่างเสถียร
- ในการเขียนโปรแกรมแบบมี AI ช่วย เช่น ข้อจำกัดด้านการวิเคราะห์ภาพของ Claude Artifact จำเป็นต้องเข้าใจไม่เพียงความสามารถของโมเดล แต่รวมถึงข้อจำกัดด้านความปลอดภัยเว็บอย่าง CSP header ด้วย
คำถามที่ XKCD 1425 ทิ้งไว้แม้ผ่านไป 10 ปี
- XKCD 1425 “Tasks” เป็นการ์ตูนที่แสดงให้เห็นว่า ในการพัฒนาซอฟต์แวร์ หากไม่มีประสบการณ์ก็ยากที่จะตัดสินว่างานใดง่ายและงานใดยาก
- ตัวอย่างเด่นของการ์ตูนอย่าง “การตรวจสอบว่าภาพถ่ายเป็นนกหรือไม่” เคยเป็น ปัญหาระดับปริญญาเอก ในอดีต แต่ปัจจุบันสามารถแก้ได้ง่ายด้วยเทคโนโลยีคอมพิวเตอร์วิทัศน์หลายแบบ
- แม้ตัวอย่างนั้นจะเปลี่ยนไปตามความก้าวหน้าทางเทคโนโลยี แต่ ความสามารถในการแยกแยะปัญหาง่ายกับปัญหายาก ยังคงต้องอาศัยประสบการณ์จำนวนมาก
ความยากใหม่ที่ LLM และการเขียนโปรแกรมแบบมี AI ช่วยสร้างขึ้น
- การตัดสินว่า LLM สามารถแก้งานใดได้อย่างเสถียรนั้น ไม่เป็นธรรมชาติต่อสัญชาตญาณ
- LLM เป็นระบบคอมพิวเตอร์ แต่ไม่ถนัดคณิตศาสตร์
- การค้นข้อเท็จจริงก็ยังทำได้ไม่เสถียร
- เมื่อเครื่องมือเขียนโปรแกรมแบบมี AI ช่วยแพร่หลายขึ้น ผู้คนจำนวนมากขึ้นเริ่มสร้างซอฟต์แวร์แบบกำหนดเองของตนเอง
- โปรแกรมเมอร์มือใหม่ที่มี AI ช่วย ซึ่งเพิ่งเกิดขึ้นมาใหม่ กำลังอยู่ในสถานการณ์ที่ต้องเรียนรู้ความแตกต่างระหว่างงานง่ายกับงานยากอย่างรวดเร็ว
- มีกรณีที่ Claude เองสามารถวิเคราะห์ภาพได้ แต่ไม่สามารถสร้างเครื่องมือวิเคราะห์ภาพใน Claude Artifact ได้
- การจะเข้าใจเรื่องนี้จำเป็นต้องรู้ว่า CSP header ที่ใช้เมื่อให้บริการ Artifacts จะบล็อกการเรียก LLM API ภายนอกจากโค้ดที่ถูกสร้างขึ้น
1 ความคิดเห็น
ความเห็นจาก Hacker News
น่าทึ่งที่มาตรฐานที่ใช้ตัดสินว่าสิ่งใดน่าประทับใจใน AI/ML ขยับเปลี่ยนไปมากแค่ไหน
ตอนที่บทความ GAN ออกมาเมื่อ 10 ปีก่อน ทุกคนตื่นเต้นกันมากเพราะคิดว่าคุณภาพภาพที่สร้างได้นั้นสุดยอดมาก: https://arxiv.org/abs/1406.2661
ปริมาณความก้าวหน้าที่เกิดขึ้นตั้งแต่นั้นมานั้นแทบไม่น่าเชื่อจริงๆ
ตัวอย่างเช่น เด็กทำเลขคณิตพื้นฐานได้ และคอมพิวเตอร์ก็ทำเลขคณิตพื้นฐานได้ ดังนั้นถ้าเด็กพูดได้ ผู้คนก็จะคิดว่าคอมพิวเตอร์ก็น่าจะพูดได้เหมือนกัน
แต่ความสามารถของคอมพิวเตอร์นั้นเป็นผลลัพธ์ที่ไปถึงมาด้วยวิธีที่ต่างออกไปโดยสิ้นเชิง ที่น่าสนใจคือ LLM ทำให้โครงร่างของความสามารถดูใกล้มนุษย์มากขึ้น แต่หนทางที่ไปถึงผลลัพธ์ก็ยังต่างกันโดยสิ้นเชิงอยู่ดี
ตัวอย่างที่โหดที่สุดคือมีสูตรอาหารที่ผู้ใช้สร้างขึ้นเองราว 180,000 รายการ ซึ่งลูกค้าต้องการให้นำมาทำ normalization
เราต้องดึงปริมาณ หน่วย วัตถุดิบ ขั้นตอน ฯลฯ ออกมา เพื่อใช้กับการปรับสัดส่วนและคำนวณข้อมูลโภชนาการ
มันต้องใช้ทั้งกอง regex สำหรับ preprocessing และ toolchain ที่ให้อินเทิร์นมานั่ง normalize ทีละรายการ แถมยังเสียเวลาไปอีกมากกับการตามแก้ความยุ่งเหยิงที่อินเทิร์นทำไว้
ถ้ามี LLM งานนั้นคงจบได้แทบจะทันที ในงานอีกมากมายที่ต้องเปลี่ยนกองขยะสมบูรณ์แบบให้กลายเป็นข้อมูลที่ใช้งานได้ LLM ก็น่าจะทำได้เฉยๆ เลย
ความเจ็บปวดในยุคนั้นบรรเทาลงได้นิดหน่อยจากการได้เห็นกระแสนี้ แล้วคิดว่าตอนนั้นอย่างน้อยก็ซื้อ NVDA เก็บไว้
เมื่อก่อน โมเดล machine learning ใหม่ๆ ถูกพูดถึงโดยผู้ปฏิบัติงานที่มีพื้นฐานความรู้ จึงเข้าใจได้ว่าทำไมการปรับปรุงเล็กน้อยที่เห็นภายนอกจึงยิ่งใหญ่ และเข้าใจความคาดหวังที่สมเหตุสมผล
ตอนนี้โมเดล machine learning ใหม่ หรือไม่สิ “AI” ใหม่ ถูกประเมินโดยคนทั่วไปที่ไม่มีพื้นฐานเทคนิค แต่รู้จักคำโฆษณาเกินจริงทางการตลาด ต่อให้ยื่นโมเดลภาษาที่ยอดเยี่ยมซึ่งถล่ม benchmark ด้านภาษาให้ดู ความคาดหวังก็ยังเพี้ยนเกินไป จึงลงเอยด้วยความผิดหวังเสมอ
ฉันยังคงทึ่งอยู่เมื่อโมเดลภาษาสามารถทำเรื่องที่ค่อนข้าง “ง่าย” ในเชิงไวยากรณ์และวากยสัมพันธ์ได้ เช่น เข้าใจว่าสรรพนามกำลังอ้างถึงอะไร แต่คนส่วนใหญ่ไม่เคยคิดถึงภาษาหรือคอมพิวเตอร์จากมุมนี้ จึงไม่เห็นว่านี่เป็นเรื่องยากและน่าประทับใจเพียงใด
การ์ตูนนี้ให้ความรู้สึกแปลกๆ กับฉันมาตลอด มนุษย์ใช้เวลาหลายพันปีในการแก้ปัญหาการนำทาง
การ์ตูนนี้มีอยู่ในช่วงเวลาสั้นๆ ที่งานหนึ่งเพิ่งถูก “แก้ได้” ในที่สุด ส่วนอีกงานหนึ่งเพิ่งเริ่มต้น
ถ้าคิดว่าการฝึกโมเดลใช้พลังงานมาก ก็ควรลองนึกถึงการต้องยิงจรวดขึ้นไปเป็นกองเรือเพื่อคงสภาพกลุ่มดาวเทียมเทียมไว้ด้วย
ตลอดอาชีพที่ผ่านมา มีหลายครั้งที่ requirement สดๆ ที่โผล่มาในที่ประชุมเพียงข้อเดียว ทำให้การประเมินเวลาโครงการเปลี่ยนไปเป็นหลายเดือน
ตัวอย่างเช่น ระบบค้นหาร้านของเว็บไซต์หรือแอปค้าปลีกมักคำนวณแค่ระยะทางเส้นตรงระหว่างตำแหน่งปัจจุบันกับร้าน แล้วแสดงร้านในระยะที่กำหนดเรียงตามระยะทาง
สิ่งนี้กลายเป็นปัญหาในที่อย่าง Kingston ใกล้ Seattle ซึ่งอยู่ฝั่งตะวันตกของ Puget Sound ระบบค้นหาร้านของ Walgreens แสดง 10 สาขาเมื่อค้นหาใกล้ Kingston แต่ในนั้น 9 สาขาอยู่ฝั่ง Seattle ข้าม Puget Sound ไป หากขับรถไปต้องขึ้นเรือเฟอร์รี่เที่ยวละประมาณ 20 ดอลลาร์ ใช้เวลา 30 นาที
สาขาที่แสดงทางฝั่งตะวันตกมีแห่งเดียวคือบน Bainbridge Island ซึ่งไม่ใช่ที่ที่คน Kingston จะไปกัน จริงๆ แล้วสาขา Silverdale ใกล้กว่าหากวัดตามระยะทางถนน แต่ไกลกว่าเล็กน้อยถ้าวัดเป็นเส้นตรง
Silverdale, Bremerton 3 แห่ง และ Port Orchard 1 แห่ง ใกล้ Kingston มากกว่าสาขาฝั่ง Seattle มาก หากวัดตามเวลาและค่าเดินทาง แต่จะไม่โผล่บนแผนที่จนกว่าจะกดปุ่ม “load more”
ฟังก์ชันเช็กสต็อกในพื้นที่ก็คล้ายกัน คือขึ้นว่าสินค้าอยู่ “ใกล้ๆ” แต่จริงๆ มีแค่ที่สาขาฝั่งตรงข้าม Puget Sound
ในทางกลับกัน งานที่ดูง่ายกว่าบนผิวเผินกลับอาจกินเวลาหลายปี เพราะยังไม่ได้ถูกแก้จนง่ายและเปิดให้ใช้ผ่าน API แน่นอนว่าตอนนี้มันทำได้แล้ว
หมายความว่าคนที่ไม่ใช่นักพัฒนาเข้าใจได้ยากว่าเทคโนโลยีปัจจุบันทำให้งานบางอย่างกลายเป็นเรื่องเล็กน้อย แต่ยังแก้งานบางอย่างไม่ได้ เมื่อเวลาผ่านไป การกระจายของสองหมวดนี้ก็เปลี่ยนไป แต่การที่คนทั่วไปดูออกได้ยากนั้นยังคงเดิม
ทุกอย่างที่เราทำอยู่ในวันนี้ก็ยากอย่างยิ่งหากต้องสร้างขึ้นใหม่ทั้งหมดตั้งแต่ศูนย์ แต่ในความเป็นจริงเราไม่จำเป็นต้องสร้างใหม่ตั้งแต่ต้น จึงไม่ได้เป็นงานที่ทำยากในทางปฏิบัติ
อาจจะพูดได้ว่า “มันไม่ได้เก่าอย่างสง่างาม” แต่ผมคิดว่าประเด็นสำคัญจริง ๆ อย่าง “มันยากที่จะอธิบายความแตกต่างระหว่างเรื่องง่ายกับเรื่องที่แทบเป็นไปไม่ได้เลย” กลับยิ่งชัดขึ้นกว่าเดิม
เกือบจะน่าขันที่ งานยากกับงานง่าย สลับที่กันไปแล้ว ใครจะไปคาดไว้เมื่อ 10 ปีก่อน
https://en.wikipedia.org/wiki/DeepFace
ถ้าจำไม่ผิด ไม่กี่สัปดาห์หรือไม่กี่เดือนหลังจากนั้นก็มีงานวิจัยจากฝั่ง Yahoo/Flickr เกี่ยวกับปัญหานี้ คือการระบุนก แล้วหลังจากนั้นทุกอย่างก็ดูเหมือนระเบิดขึ้นชั่วข้ามคืน แน่นอนผมรู้ว่าจริง ๆ ไม่ได้เป็นแบบนั้น แต่สำหรับผมมันให้ความรู้สึกอย่างนั้น
การเข้าใจว่างานแบบไหนที่ LLM แก้ได้อย่างเสถียร และงานแบบไหนที่ยังทำไม่ได้ ยังเป็นเรื่องยากมากและไม่ตรงกับสัญชาตญาณ
ไม่นานมานี้ลูกสาวผมกำลังเตรียมงานพรีเซนต์แล้วถามว่า “พ่อ ช่วยหารูปที่ใช้ผักทำเป็นคำว่า HELLO ให้หน่อยได้ไหม?”
ผมคิดว่า “ได้อยู่แล้ว เรื่องแค่นี้งานของ ChatGPT ชัด ๆ” แต่กลายเป็นว่า ChatGPT สร้างภาพแมวใส่ชุดอวกาศดื่มมาร์ตินีได้ แต่กลับทำภาพคำว่า HELLO จากผักแบบชัวร์ ๆ ไม่ได้
สุดท้ายเลยให้มันสร้างภาพตัวอักษรแต่ละตัวจากผักแยกกัน แล้วลูกสาวก็นำไปประกอบเป็นคำที่จะใช้ในสไลด์เอง
มันเป็นเหตุผลเดียวกับที่มันนับสะกดคำ STRAWBERRY ให้ถูกไม่ได้เป๊ะ ๆ ไม่ใช่เพราะมันไม่รู้จักแนวคิดเรื่องผลไม้หรือผัก และก็ไม่ใช่เพราะมันไม่เข้าใจแนวคิดซับซ้อนอย่างอุปมาหรือมีม
โมเดลไม่ได้มอง “hello” เป็นคำที่ประกอบจากตัวอักษรทีละตัว แต่มองเป็นโทเค็นเดียว ซึ่งใน gpt-4o คือโทเค็น ID 24912 มันรู้ความหมายของโทเค็นนี้และความสัมพันธ์กับโทเค็นอื่น แต่โดยพื้นฐานแล้วมันไม่รู้จักตัวอักษรที่ประกอบเป็นคำนั้นเลย ยกเว้นกรณีพิเศษที่มันถูกฝึกมาแยกต่างหาก หรืออาศัยความสัมพันธ์เพิ่มเติมที่บังเอิญมีอยู่ในข้อมูลฝึก
นี่คือผลจากการใช้ flux-pro บน Replicate แล้วใส่ “vegetables spelling out the word "HELLO"”: https://ibb.co/1RVKmdk
https://ideogram.ai/assets/image/lossless/response/v_LgyXI1Q...
https://ideogram.ai/assets/image/lossless/response/V4RRDJZJS...
แครอตในภาพแรกดูฮาดี
โบนัส Hacker News: https://ideogram.ai/assets/image/lossless/response/SW0B7y4jR...
https://i.imgur.com/mvnusFd.jpeg
พรอมป์คัดลอกมาจากคอมเมนต์ด้านบนตรง ๆ: https://chatgpt.com/share/66f530b0-3fb8-800a-8af9-8a3e48a31a...
ก็แค่ปล่อยของโดยตรวจว่ามี สีของนกที่พบบ่อย อยู่ในรูปหรือไม่พอ จากนั้นค่อยทุบคู่แข่งให้เละ แล้วค่อยกลับมาแก้ทีหลัง
ผมทำซีรีส์บทเรียนนี้เพื่อปูบริบทและพื้นฐานของ deep learning แล้วบทเรียนแรกก็เป็นการสร้าง ตัวแยกแยะนก จากการ์ตูนนี้เลย
มันง่ายและสนุกมาก และทั้งคอร์สก็ยอดเยี่ยมมาก แนะนำอย่างแรงสำหรับคนที่มีพื้นฐานการเขียนโปรแกรมและอยากเริ่มต้น deep learning แบบแน่น ๆ
https://course.fast.ai/
ไม่มีใครพูดถึง แต่ LLM พัฒนาในส่วนแรกของคำขอพอ ๆ กับส่วนที่สองเหมือนกัน
ChatGPT เขียนฟังก์ชัน
is_point_in_national_parkให้และบอก shapefile ที่เกี่ยวข้องได้ในเวลาราว 30 วินาที เร็วกว่าที่การ์ตูนบอกว่า “หลายชั่วโมง” อยู่หลายร้อยเท่าvision LLM น่าทึ่งจริง ๆ
ผมมีโปรเจกต์หนึ่งที่ต้องบรรยายและจัดรายการภาพมากกว่า 20,000 ภาพ
ถ้าใช้วิธีดั้งเดิมที่ให้คนทำ คงต้องใช้เวลาหลายเดือนและมีค่าใช้จ่ายมหาศาล แถมคำบรรยายยังต้องมีคุณภาพที่ลูกค้าอ่านได้จริง
Vision API ของ OpenAI จัดการได้ในราคาภาพละไม่กี่เซนต์ และรวมทั้งหมดคงไม่ถึง 200 ดอลลาร์
สงสัยว่าสักวันหนึ่ง ความรู้เท่าทันทางเทคโนโลยี จะไปถึงจุดวิกฤตที่ทำให้ความเข้าใจผิดแบบนี้แทบหายไปได้ไหม
ถ้าเป็นเมื่อ 10 ปีก่อนคงตอบว่าใช่ แต่ตอนนี้กลับมองว่าพัฒนาการของ UX/UI และการที่ทุกอย่างกลายเป็นแอป ได้ปิดกั้นไม่ให้คนทั่วไปเข้าถึงรายละเอียดต่างๆ
ในมุมของผลิตภัณฑ์แต่ละตัวมันเป็นเรื่องดี แต่ในภาพรวมอาจก่อให้เกิดความคาดหวังที่ไม่สมจริง เคยได้ยินคนหนุ่มสาวถามว่า “ทำไม x ไม่ทำ y ไปเลยล่ะ” ซึ่งเมื่อก่อนคิดว่าเป็นคำถามที่น่าจะได้ยินจากพ่อแม่รุ่นที่ไม่ค่อยเข้าใจเทคโนโลยีมากกว่า
ในยุค 80 คอมพิวเตอร์แทบจะเหมือนเวทมนตร์สำหรับหลายคน แต่คนส่วนใหญ่ก็แทบไม่จำเป็นต้องมีปฏิสัมพันธ์กับคอมพิวเตอร์จริงๆ
ความคาดหวังของผู้คนที่มีต่อคอมพิวเตอร์จึงแทบไม่มีผลอะไรต่างจากความคาดหวังของฉันต่อสิ่งมีชีวิตนอกโลก
แต่ก็กลัวว่า การคิดแบบมองเทคโนโลยีเป็นเวทมนตร์ จะก่อผลลัพธ์ที่ใหญ่กว่าทั้งในระดับปัจเจกและระดับสังคม
@simonw ถ้าบังเอิญได้อ่านข้อความนี้ ขอเรื่องเล็กๆ ได้ไหม
การ ไลฟ์สตรีม งานเขียนโค้ดที่สามารถแชร์ต่อสาธารณะได้ จะเป็นการขอที่มากเกินไปไหม?
โดยเฉพาะในระบบนิเวศปัจจุบันอย่าง Python, ข้อมูล SQLite และแวดวง JavaScript น่าจะมีอะไรให้เรียนรู้อีกมากจริงๆ