Meta เปิดซอร์ส DINOv2 วิธีเทรนโมเดลภาพ Vision แบบ Self-Supervised ที่แม่นยำสูง

by mk
20 April 2023 - 15:24

Meta เปิดซอร์สโค้ด DINOv2 วิธีการเทรนโมเดลปัญญาประดิษฐ์ด้านภาพ (computer vision models) แบบ self-supervision ที่มีประสิทธิภาพสูง ทำงานได้โดยไม่ต้องปรับจูน (fine-tuning) สำหรับงานเฉพาะทาง มีความยืดหยุ่นสูงนำไปใช้ต่อกับงานได้หลากหลายรูปแบบ

DINOv2 ออกแบบมาแก้ข้อจำกัดของโมเดลด้านภาพ ที่ใช้เทคนิค image-text pretraining การเทรนข้อมูลภาพแบบมีป้ายกำกับ (captions/labels) ซึ่งมีจุดอ่อนคือข้อความในป้ายกำกับอาจไม่ครอบคลุมรายละเอียดทั้งหมดในภาพ, ภาพบางประเภทไม่สามารถทำป้ายกำกับได้ (เช่น ภาพถ่ายเซลล์สิ่งมีชีวิต) และหากภาพมีจำนวนมากขึ้นเรื่อยๆ มนุษย์ก็ไม่สามารถสร้างป้ายกำกับได้ครบถ้วนอยู่ดี เรียกได้ว่าคอขวดของการพัฒนากลับไปอยู่ที่มนุษย์ซะเอง

Meta ยังอธิบายว่าวงการปัญญาประดิษฐ์ด้านภาพก็เริ่มถึงข้อจำกัดแล้ว หากเอาเบนช์มาร์คจากความแม่นยำของโมเดลในการทายภาพจากฐานข้อมูล ImageNet ในช่วงปี 2019-2021 สามารถเพิ่มความแม่นยำได้ 10% แต่หลังปี 2021 เป็นต้นมา ความแม่นยำเพิ่มเพียง 1% เท่านั้น โลก AI จึงต้องมองหาแนวทางใหม่ๆ แทน

ทางออกของ DINOv2 คือเทรนแต่ภาพล้วนๆ ไม่ต้องมีป้ายกำกับ (self-supervised) เพื่อทำลายข้อจำกัดของการเทรนแบบเดิม แก้ปัญหาเรื่องการสเกล แล้วเพิ่มด้วยเทคนิคอีกหลายอย่าง ช่วยให้ประสิทธิภาพของโมเดลดีขึ้น

  • ฐานข้อมูลภาพขนาดใหญ่ 142 ล้านภาพ ใช้ที่มาจากหลายแหล่ง และมีเทคนิคการเลือกภาพตั้งต้น (seed images) แล้วคัดเลือกภาพคล้ายๆ กัน เพื่อให้ได้ภาพที่หลากหลาย ครอบคลุมภาพหลายรูปแบบจริงๆ
  • ใช้เทคนิค regularization เพื่อให้อัลกอริทึมเสถียร และเทคนิค mixed-precision กับ distributed training ของ PyTorch 2 ที่เพิ่งออกใหม่ เพื่อให้เทรนโมเดลขนาดใหญ่ได้เร็วและมีประสิทธิภาพดีขึ้น ผลคือโค้ดรันเร็วขึ้น 2 เท่า ใช้หน่วยความจำเพียง 1/3 บนฮาร์ดแวร์เดิม
  • ใช้เทคนิค model distillation บีบอัดโมเดลให้มีขนาดเล็กลงมาก แต่ความแม่นยำลดลงไม่มาก อยู่ในระดับที่พอรับได้

ผลที่ได้คือ DINOv2 สามารถทำคะแนน ImageNet ได้ดีเกือบเท่าโมเดลอื่นๆ ที่ปรับจูนมาแล้ว แต่ DINOv2 ไม่ต้องปรับจูนเพิ่มเติมเลย ตัวอย่างการใช้งาน DINOv2 คือนำไปวิเคราะห์ภาพถ่ายดาวเทียม เพื่อดูว่าต้นไม้แต่ละต้นมีความสูงของพุ่มยอดไม้ (canopy height) เท่าไรบ้าง ซึ่งช่วยให้การประเมินผลกระทบของการชดเชยการปล่อยคาร์บอนทำได้แม่นยำขึ้นมาก

Meta ยังมีตัวอย่างสาธิตการใช้งาน DINOv2 อีกหลายอย่าง เช่น วัดระยะลึกของวัตถุในภาพ (depth estimaton), การแยกแยะส่วนต่างๆ ในภาพออกจากกัน (semantic segmentation) ผู้สนใจสามารถลองเล่นได้จาก หน้ารวมเดโม

Meta บอกว่าทีมงานเตรียมนำ DINOv2 ไปใช้งานร่วมกับระบบ AI อื่นๆ เช่น โมเดลด้านภาษาขนาดใหญ่ (LLM) เพื่อสร้างระบบ AI ที่ซับซ้อนมากขึ้น และเข้าใจความหมายของภาพได้ด้วยตัวเอง โดยไม่ต้องพึ่งข้อความกำกับ ซึ่งเป็นข้อจำกัดของโมเดลภาษาตระกูล LLM ในปัจจุบัน

ตัวซอร์สโค้ดเผยแพร่บน GitHub

ที่มา - Meta AI Blog

Blognone Jobs Premium