หลังจากความสำเร็จของโมเดล Transformer ในการแก้ปัญหางาน NLP สถาปัตยกรรมเดียวกันหรือคล้ายกันก็ถูกนำมาใช้กับงานด้านคอมพิวเตอร์วิทัศน์ (Computer Vision) มีความสนใจเพิ่มขึ้นในการสร้างโมเดลที่สามารถ รวม ความสามารถด้านภาพและภาษาธรรมชาติ หนึ่งในความพยายามดังกล่าวคือโมเดล CLIP และ DALL.E ที่พัฒนาโดย OpenAI
แนวคิดหลักของ CLIP คือการเปรียบเทียบข้อความ (text prompts) กับภาพ และประเมินว่าภาพนั้นสอดคล้องกับข้อความมากน้อยเพียงใด
ภาพจาก บทความนี้
โมเดลนี้ถูกฝึกด้วยภาพที่ได้จากอินเทอร์เน็ตและคำบรรยายภาพ สำหรับแต่ละชุดข้อมูล เราจะนำคู่ (ภาพ, ข้อความ) จำนวน N คู่ และแปลงเป็นเวกเตอร์ตัวแทน I และ T เวกเตอร์เหล่านี้จะถูกจับคู่กัน ฟังก์ชันการสูญเสีย (loss function) ถูกกำหนดให้เพิ่มความคล้ายคลึงของโคไซน์ (cosine similarity) ระหว่างเวกเตอร์ที่เป็นคู่เดียวกัน (เช่น I และ T) และลดความคล้ายคลึงของโคไซน์ระหว่างคู่ที่เหลือทั้งหมด นี่คือเหตุผลที่วิธีการนี้เรียกว่า contrastive
ไลบรารี CLIP สามารถใช้งานได้จาก GitHub ของ OpenAI วิธีการนี้อธิบายไว้ใน บทความนี้ และในรายละเอียดเพิ่มเติมใน เอกสารนี้
เมื่อโมเดลนี้ถูกฝึกเสร็จแล้ว เราสามารถให้ชุดภาพและข้อความแก่โมเดล และโมเดลจะคืนค่าเป็นเทนเซอร์ที่มีความน่าจะเป็น CLIP สามารถใช้ในหลายงาน เช่น:
การจำแนกภาพ (Image Classification)
สมมติว่าเราต้องการจำแนกภาพระหว่างแมว สุนัข และมนุษย์ ในกรณีนี้ เราสามารถให้โมเดลรับภาพและข้อความ เช่น "ภาพของแมว", "ภาพของสุนัข", "ภาพของมนุษย์" ในเวกเตอร์ผลลัพธ์ที่มีความน่าจะเป็น 3 ค่า เราเพียงแค่เลือกดัชนีที่มีค่ามากที่สุด
ภาพจาก บทความนี้
การค้นหาภาพด้วยข้อความ (Text-Based Image Search)
เรายังสามารถทำในทางกลับกันได้ หากเรามีชุดภาพ เราสามารถส่งชุดภาพนี้ไปยังโมเดลพร้อมข้อความ และโมเดลจะคืนค่าภาพที่คล้ายกับข้อความมากที่สุด
✍️ ตัวอย่าง: การใช้ CLIP สำหรับการจำแนกภาพและการค้นหาภาพ
เปิดโน้ตบุ๊ก Clip.ipynb เพื่อดูการทำงานของ CLIP
CLIP ยังสามารถใช้สำหรับ การสร้างภาพ จากข้อความได้อีกด้วย ในการทำเช่นนี้ เราจำเป็นต้องมี โมเดลตัวสร้าง (generator model) ที่สามารถสร้างภาพจากเวกเตอร์อินพุตได้ หนึ่งในโมเดลดังกล่าวคือ VQGAN (Vector-Quantized GAN)
แนวคิดหลักของ VQGAN ที่แตกต่างจาก GAN ทั่วไปคือ:
- ใช้สถาปัตยกรรม Transformer แบบ autoregressive เพื่อสร้างลำดับของส่วนภาพที่มีบริบทซึ่งประกอบกันเป็นภาพ ส่วนภาพเหล่านี้ถูกเรียนรู้โดย CNN
- ใช้ตัวแยกแยะภาพย่อย (sub-image discriminator) เพื่อตรวจจับว่าส่วนของภาพเป็น "จริง" หรือ "ปลอม" (แทนที่จะใช้วิธี "ทั้งหมดหรือไม่มีเลย" ใน GAN ทั่วไป)
เรียนรู้เพิ่มเติมเกี่ยวกับ VQGAN ได้ที่เว็บไซต์ Taming Transformers
ความแตกต่างสำคัญระหว่าง VQGAN และ GAN ทั่วไปคือ GAN สามารถสร้างภาพที่ดีจากเวกเตอร์อินพุตใด ๆ ได้ แต่ VQGAN อาจสร้างภาพที่ไม่สอดคล้องกัน ดังนั้นเราจำเป็นต้องมีการชี้นำเพิ่มเติมในกระบวนการสร้างภาพ ซึ่งสามารถทำได้โดยใช้ CLIP
ในการสร้างภาพที่สอดคล้องกับข้อความ เราเริ่มต้นด้วยเวกเตอร์การเข้ารหัสแบบสุ่มที่ถูกส่งผ่าน VQGAN เพื่อสร้างภาพ จากนั้นใช้ CLIP เพื่อสร้างฟังก์ชันการสูญเสียที่แสดงว่าภาพสอดคล้องกับข้อความมากน้อยเพียงใด เป้าหมายคือการลดค่าฟังก์ชันการสูญเสียนี้โดยใช้การถ่ายทอดย้อนกลับ (back propagation) เพื่อปรับพารามิเตอร์ของเวกเตอร์อินพุต
ไลบรารีที่ยอดเยี่ยมที่นำ VQGAN+CLIP มาใช้งานคือ Pixray
ภาพจากคอลเลกชัน Artificial Teachers โดย Dmitry Soshnikov
DALL-E เป็นเวอร์ชันของ GPT-3 ที่ถูกฝึกให้สร้างภาพจากข้อความ มีพารามิเตอร์ 12 พันล้านตัว
แตกต่างจาก CLIP ตรงที่ DALL-E รับทั้งข้อความและภาพเป็นสตรีมเดียวของโทเค็นสำหรับทั้งภาพและข้อความ ดังนั้นจากข้อความหลาย ๆ ข้อความ คุณสามารถสร้างภาพตามข้อความได้
ความแตกต่างหลักระหว่าง DALL-E 1 และ 2 คือ DALL-E 2 สามารถสร้างภาพและงานศิลปะที่สมจริงมากขึ้น
ตัวอย่างการสร้างภาพด้วย DALL-E:
- เอกสาร VQGAN: Taming Transformers for High-Resolution Image Synthesis
- เอกสาร CLIP: Learning Transferable Visual Models From Natural Language Supervision
ข้อจำกัดความรับผิดชอบ:
เอกสารนี้ได้รับการแปลโดยใช้บริการแปลภาษา AI Co-op Translator แม้ว่าเราจะพยายามให้การแปลมีความถูกต้อง แต่โปรดทราบว่าการแปลอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่แม่นยำ เอกสารต้นฉบับในภาษาดั้งเดิมควรถือเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ แนะนำให้ใช้บริการแปลภาษาจากผู้เชี่ยวชาญ เราจะไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความที่ผิดพลาดซึ่งเกิดจากการใช้การแปลนี้








