จาก Model-Centric สู่ Data-Centric AI – ทำไม Data ที่ดีจึงสำคัญ

ต่อไปนี้อย่าเรียกว่างาน Clean data ให้เรียกสิ่งนี้ว่ากำลังทำ Data-centric AI

เมื่อสองปีก่อน (2021) อาจารย์ Andrew Ng หนึ่งในผู้นำของวงการ AI ได้ออกมาพูดถึงการพัฒนา AI system ว่า การทำพัฒนา Machine learning/AI ที่ดีนั้น ต้องประกอบไปด้วย 2 ส่วน ส่วนแรกคือ Machine learning/AI model ที่เราชอบพูดถึงกันเป็นประจำ และส่วนที่สองคือ Data ที่เรามี

หากประเมินเป็นเวลาในการพัฒนาแล้ว จากรูปข้างล่างจะเห็นว่า 80% ของเวลาทั้งหมด เราจะใช้เวลาไปกับการเตรียม Data เพื่อให้มีคุณภาพที่ดีที่สุด และอีก 20% นั้น เราถึงจะเอาไปใช้พัฒนา Machine learning/AI model

แต่หากเราไปดูจำนวนงานวิจัยจะเห็นว่า แม้ว่าเวลาส่วนใหญ่เรามักจะเอาไปใช้เตรียม Data แต่ถึงอย่างนั้น งานวิจัยที่พูดถึงเรื่องนี้กลับมีเพียงแค่ 1% จากจำนวนงานวิจัยทางด้าน AI ทั้งหมด และในทางกลับกันก็พบว่า งานวิจัยกว่า 99% นั้นดันไปมุ่งพัฒนาในส่วนที่ความเป็นจริงเราใช้เวลาอยู่กับมันเพียง 20% เท่านั้น

เราเรียกงานวิจัยแบบแรก ที่มุ่งเน้นไปทางด้านการเตรียม Data ว่าเป็นการพัฒนา AI system แบบ Data-centric และเราเรียกงานวิจัยแบบที่สอง ที่มุ่งเน้นไปทางด้านการพัฒนา Machine learning/AI model แบบใหม่ ๆ ว่า Model-centric

แต่เอ๊ะ..! แล้ว 2 อย่างนี้มันคืออะไร ต่างกันยังไง และทำไมอาจารย์ Andrew Ng ถึงได้พูดถึงวิธีการพัฒนา AI system ทั้ง 2 แบบกันนะ บทความนี้มีคำตอบ

อะไรคือ Model-centric AI?

Model-centric AI หรือการพัฒนา AI โดยมี Machine learning/AI model เป็นศูนย์กลาง (ต่อไปนี้ขอเขียนคำว่า Machine learning/AI model สั้น ๆ และสลับไปสลับมาเป็นคำว่า ML/AI model หรือ โมเดล) พูดแล้วฟังดูเข้าใจยาก อธิบายให้ง่ายที่สุด มันก็คือเวลาที่เราเจอว่าผลลัพธ์ของโมเดลมันแย่ คำถามที่เรามักจะถามตัวเองอยู่เสมอมักจะเป็นคำถามประเภทว่า

  • เราทำโมเดลผิดตรงไหนกันนะ?
  • โมเดลนี้แย่จัง มีโมเดลอื่นให้ลองอีกมั้ย?

สิ่งนี้เราเรียกว่าเป็นการพัฒนาโมเดลแบบ Model-centric ซึ่งฟังดูเท่ ดูเก๋ ไปพูดที่ไหนก็สามารถยืดอกพูดได้เต็มปากว่าเราเป็นคนทำโมเดลเอง เป็นต้นว่า

“เฮ้เพื่อน…งานตอนนี้เป็นไงบ้างวะ กูลองใช้โมเดล xxx อยู่ เป็น State of the art ตัวใหม่เลยนะเว้ย..!”

เฮ้อ… พูดแล้วดูเท่ชิบหาย…

ไม่ใช่เรื่องผิด และไม่ใช่เรื่องแปลก มันก็ไม่ได้เกิดขึ้นเฉพาะกับพวกเราเท่านั้น เพราะอย่างที่เกริ่นไปก่อนหน้า ในวงการวิจัยเองก็เน้นงานวิจัยที่มุ่งพัฒนาไปทางด้านนี้เยอะพอสมควรเหมือนกัน

แล้ว… Data-centric AI มันคืออะไร?

Data-centric AI หรือการพัฒนา AI โดยมี Data เป็นศูนย์กลาง ฟังดูเข้าใจยากอีกแล้ว เอาเป็นว่ามาลองต่อบทสนทนาจากข้างบนกันดีกว่า ในเมื่อเพื่อนถามสารทุกข์สุกดิบมา เราก็ควรจะตอบกลับไปตามมารยาท…

“อ๋อ… ตอนนี้กำลังนั่ง Clean data อยู่เลย แถม Label ที่ได้มาก็ผิดด้วย น่าจะต้องแก้อีกพักนึง…”

ฟังดูหดหู่ไม่เบา…

ความรู้สึกมันช่างแตกต่าง ไม่รู้ว่าโชคชะตาเล่นตลกอะไรอยู่

แต่นี่ก็คือการพัฒนา AI โดยมี Data เป็นศูนย์กลางหรือ Data-centric AI โดยเราจะทำการแก้ไขหรือทำให้ Data quality นั้นดียิ่งขึ้นไม่ว่าจะด้วยวิธีใดก็ตาม ซึ่งเป็นสิ่งที่เกิดขึ้นจริง ๆ ในการทำงาน และเป็นสิ่งจำเป็นมาก หากเราจะทำให้ AI system ของเรานั้นได้ผลลัพธ์เป็นที่น่าพอใจ คำพูดที่ว่า Garbage in, garbage out ไม่ได้อยู่ไกลตัวเราเลย

(คำนี้หมายความว่า หากเราเอา Data แย่ ๆ เข้าไปให้ ML/AI model มันเรียนรู้ การทำนายผลลัพธ์ที่ได้ออกมาจาก ML/AI model นี้มันก็จะแย่ไปด้วย)

ทำไมต้อง Data-centric AI?

หนึ่งในปัญหาที่อาจารย์ Andrew Ng ได้นำเสนอนั้น คือปัญหาเรื่อง Inconsistency label หรือก็คือ Label ของ Data ที่เราได้มานั้นมันไม่มีมาตรฐานในการทำ Label เอาซะเลย ผิดบ้างถูกบ้างก็แล้วแต่บุญแต่กรรม

สำหรับสาเหตุนั้นก็มีหลากหลาย ไม่ว่าจะเป็นเรื่องของ Human error ก็ดี หรือจะเป็นเรื่องของความไม่ชัดในกฎเกณฑ์ในการ Label ก็ดี ก็ล้วนทำให้เกิดปัญหากับ AI system ทั้งสิ้น

อาจารย์ยังเสริมต่ออีกว่า เรื่อง Inconsistency label นั้น หากเรามี Data อยู่น้อย (น้อยในที่นี้ ก็คือมี Data อยู่น้อยกว่า 10,000 samples) จะยิ่งแย่เข้าไปใหญ่ ซึ่งอาจารย์ก็ได้ยกตัวอย่างข้างล่างนี้มาให้

ข้อมูลที่เราเห็นกันอยู่นี้ คือข้อมูลแสดงความสัมพันธ์ระหว่างแรงดันไฟฟ้า (Voltage) ในแกน X กับความเร็วในการหมุนของมอเตอร์ (RPM) ที่อยู่ในแกน Y

ส่วนกากบาทสีแดงคือข้อมูลที่เรามี และเส้นสีน้ำเงินที่ถูกลากนี้ ก็คือเส้นแสดงความสัมพันธ์ของข้อมูลที่เราสนใจ

หากไล่ดูทีละรูป ไล่จากซ้ายไปขวา จะอธิบายได้ดังนี้

  • รูปซ้าย จะเห็นว่า จำนวน Data ของเรามีค่อนข้างน้อย แถมยัง Noisy (มีความไม่ถูกต้องอยู่บ้าง) กรณีนี้หากเราต้องการลากเส้นสีน้ำเงินขึ้นมา ความเป็นไปได้จะมีหลายแบบ ไม่รู้ว่าจะเอาแบบไหนดี
  • รูปกลาง จะเห็นว่า จำนวน Data ของเรามีมากที่สุด ถึงแม้จะมีความ Noisy แต่ Data ที่มีมันก็มากพอที่จะบอกเราว่าควรจะลากเส้นสีน้ำเงินยังไงดี
  • รูปขวา จะเห็นว่า จำนวน Data ของเรามีน้อยเช่นกัน ดูดี ๆ คือมีเท่ากับรูปซ้ายเลย เพียงแต่ว่า Data ก้อนนี้ถูก Clean เอาไว้เป็นอย่างดี มองกี่ทีก็สบายตา จะเห็นว่าเส้นสีน้ำเงินนั้นสามารถลากทับไปได้อย่างง่ายดาย

แล้วเราได้อะไรจากการดูกราฟนี้?

อาจารย์ได้ยกตัวอย่างมา 1 กรณีคือ

หากเรามี Data อยู่ 500 samples และมี Data ทั้งหมด 12% ที่ค่อนข้าง Noisy วิธีการทำให้ AI system มีผลลัพธ์ที่ดีในสถานการณ์แบบนี้ เราสามารถทำได้ 2 อย่างด้วยกัน คือ

  1. Clean up the noise: คือ Clean data ให้มีความถูกต้องมากที่สุด ในที่นี้ก็คือ Clean เพิ่มทั้งหมด 60 samples (12% ของ 500 samples) ซึ่งความจริงเราสามารถหา Data ที่มัน Noisy ได้อย่างเป็นระบบอยู่แล้ว
  2. Double the samples: คือเก็บ Data เพิ่มอีก 500 samples ถ้าเป็นในบริษัทใหญ่โต การเพิ่ม Data อีกเท่าตัวก็คงไม่เป็นไร ใช่…ถ้ามีคนช่วยทำให้ก็คงไม่เป็นไร (T-T)

ก่อนจะไปกันต่อ จะเห็นว่าคำแนะนำทั้งหมดนี้เป็นการแก้ไขปัญหาแบบ Data-centric ทั้งสิ้น เพราะมุ่งเพิ่ม Data quality เป็นหลัก หากย้อนกลับไปดูรูปกราฟทางซ้ายมือก่อนหน้านี้ หากเรามี Data ที่ทั้งน้อยและไม่ดี ไม่ว่าเราจะเปลี่ยนไปใช้ ML/AI model ตัวไหน ก็คงไม่มีอะไรพัฒนา

และหากเราต้องทำการเพิ่ม Data quality ของตัวอย่างที่ได้มา การเลือก Clean data ก็อาจจะเป็นทางเลือกที่เหนื่อยน้อยกว่าสำหรับพวกเรา

ความจริงแล้วเรื่อง Data-centric AI ยังมีในมุมอื่น ๆ อีก เช่น การทำ Data augmentation, การ Upsampling data ซึ่งทางอาจารย์ Andrew Ng เค้าจริงจังขนาดที่ว่า เค้าได้จัดการแข่งขัน Data-centric AI 2021 ขึ้นมาเลยทีเดียว

การแข่งขัน Data-centric AI 2021

การแข่งขันนี้ เป็นการแข่งขันที่เกิดขึ้นครั้งแรกในมุมของการพัฒนา AI system แบบ Data-centric เลยทีเดียว โดยโจทย์มีอยู่ว่า

ทางส่วนกลางจะมี Data ให้ทั้งหมด 1,500 samples เท่านั้น และเราสามารถทำอะไรกับ Data ตรงนี้ก็ได้ ให้ผลลัพธ์ของ ML/AI model เดิม ๆ นั้นออกมาดีที่สุด กล่าวคือ ผลลัพธ์ที่ได้ออกมา จะออกมาจาก ML/AI model ที่มี Architecture แบบเดียวกัน โดยมีสิ่งที่สามารถเปลี่ยนไปได้อย่างเดียวคือ Data ต้นทาง

และผลลัพธ์ที่ได้ก็คือ

https://https-deeplearning-ai.github.io/data-centric-comp/

คนที่ได้อันดับ 1 บน Leaderboard สามารถทำ Score ได้มากขึ้นมากกว่า 20% จาก Baseline ซึ่งก็แสดงให้เห็นเลยว่า Data ที่ดีนั้นมีค่ามหาศาล

หากใครสนใจอยากอ่านเพิ่มเติมว่าหนึ่งในทีมที่ทำ Score ได้มากกว่า Baseline นั้นได้ใช้เทคนิคอะไรบ้างกับ Data ที่มีอยู่ สามารถอ่านต่อได้ที่นี่เลย

ทางอาจารย์ยังมีพูดเรื่องอื่น ๆ อีก สำหรับใครที่สนใจเรื่อง Data-centric AI สามารถ Search หาดูใน Google ได้เลย ส่วนใครอยากดูวิดีโอที่อาจารย์พูดในสิ่งที่บทความนี้เขียนไปเพิ่มเติม ก็สามารถไปตามที่ Reference ของบทความได้เลย

อ้างอิง

--

--

PCP
ป้า ๆ ขอคุยเรื่อง Data หน่อย

Data scientist | เขียนไปบ่นไป ความในใจของคนสาย Data | My linktree https://cutt.ly/vwFqTLKu | (╯°□°)╯︵ ┻━┻