1 คะแนน โดย GN⁺ 2024-05-13 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • โทเคนค่านอร์มสูง ใน feature map ของ ViT มักปรากฏในบริเวณพื้นหลังที่มีข้อมูลน้อย และตีความได้ว่าเป็นปรากฏการณ์ที่ patch token ถูกนำกลับมาใช้ซ้ำเสมือนพื้นที่เก็บข้อมูลสำหรับการคำนวณภายใน
  • วิธีแก้คือเพิ่ม register token ที่แยกจาก image patch เข้าไปในลำดับอินพุต เพื่อแยกบทบาทการคำนวณภายในออกไปอยู่ในโทเคนเฉพาะ
  • ทั้งใน ViT ที่เรียนรู้แบบมีผู้สอนและแบบเรียนรู้ด้วยตนเอง อาร์ติแฟกต์ลดลง และ feature map กับ attention map เรียบลื่นขึ้น จึงเป็นประโยชน์ต่องานด้านภาพ downstream
  • มีรายงานว่าช่วยปรับปรุง object discovery และ dense prediction แต่ใน OpenCLIP ประสิทธิภาพด้าน object localization ลดลงเล็กน้อย จึงมีการแก้ไขถ้อยคำที่ว่า “ดีขึ้นในทุกโมเดล”
  • การใส่ register token 4~16 ตัวทำให้เกิด ภาระการคำนวณเพิ่ม 2~6% และการเพิ่มจำนวนโทเคนไม่ได้ทำให้ประสิทธิภาพของ dense task ดีขึ้นเสมอไป

อาร์ติแฟกต์ที่ปรากฏใน feature map ของ ViT

  • Vision Transformer ถูกใช้อย่างแพร่หลายเป็นเครื่องมือทรงพลังสำหรับการเรียนรู้ตัวแทนเชิงภาพ แต่พบ อาร์ติแฟกต์ ใน feature map ของทั้ง ViT แบบมีผู้สอนและแบบเรียนรู้ด้วยตนเอง
  • อาร์ติแฟกต์นี้สังเกตได้จาก โทเคนค่านอร์มสูง ที่ปรากฏระหว่างการอนุมาน
    • มักเกิดในบริเวณพื้นหลังของภาพที่มีข้อมูลน้อย
    • ดูเสมือนว่าเครือข่ายนำโทเคนเหล่านี้กลับมาใช้ซ้ำสำหรับการคำนวณภายใน
  • โทเคนเหล่านี้มาจาก background patch ที่คล้ายกับ patch รอบข้าง และถูกประเมินว่ามีข้อมูล patch เชิงพื้นที่น้อย แต่บรรจุข้อมูลภาพระดับรวมมากกว่า
  • ใน DINOv2 และ ViT อื่น ๆ การลดลงของความละเอียดเชิงพื้นที่และความแม่นยำของ attention map อาจส่งผลต่อประสิทธิภาพของ downstream object discovery และ localization

แนวทาง register token

  • วิธีแก้ที่เสนอคือเพิ่ม register token ที่แยกจาก image patch เข้าไปในลำดับอินพุตของ Vision Transformer
  • register ถูกจัดให้อยู่แยกจาก image patch token คล้าย CLS token แต่เป็นโทเคนที่ไม่ถูกใช้โดยตรงในการคำนวณ loss
  • เป้าหมายคือป้องกันไม่ให้ patch token เดิมถูกใช้เหมือน “พื้นที่เก็บข้อมูล” สำหรับการคำนวณภายใน โดยย้ายบทบาทนั้นไปให้ โทเคนเฉพาะ รับผิดชอบ
  • วิธีนี้เกี่ยวข้องกับ Memory Transformer ที่มีอยู่เดิม แต่แนวทางการวิเคราะห์อาร์ติแฟกต์ของ feature แล้วเพิ่มโทเคนใหม่เพื่อแก้ปัญหานั้นเป็นจุดเฉพาะของงานวิจัยนี้

การเปลี่ยนแปลงของ feature map และงาน downstream

  • มีรายงานว่าการเพิ่ม register ช่วยลบอาร์ติแฟกต์นี้ออกได้ทั้งในโมเดลแบบมีผู้สอนและแบบเรียนรู้ด้วยตนเอง
  • feature map และ attention map เรียบลื่นขึ้น ทำให้เหมาะกับ downstream visual processing มากขึ้น
  • สรุปว่าได้สร้าง state of the art ใหม่ใน dense visual prediction task ของโมเดลภาพแบบเรียนรู้ด้วยตนเอง
  • ทำให้สามารถใช้วิธี object discovery กับโมเดลขนาดใหญ่ขึ้นได้
  • ใน DINOv2 และ DeiT-III ประสิทธิภาพของ object discovery สูงขึ้น ขณะที่ประสิทธิภาพในงานระดับภาพโดยรวมส่วนใหญ่ยังคงเดิม

ข้อยกเว้นรายโมเดลและการวิเคราะห์เพิ่มเติม

  • ใน OpenCLIP แม้จะเพิ่ม register แล้ว ผลของ object localization ก็ไม่ได้ดีขึ้น และจากค่าตัวเลขในตารางพบว่าประสิทธิภาพลดลงเล็กน้อย
    • ผู้เขียนยอมรับว่าถ้อยคำที่ว่า “ประสิทธิภาพ object discovery ดีขึ้นในทุกโมเดล” ไม่ได้รับการสนับสนุนจากตัวเลข
    • เนื้อหาส่วนนี้ถูกแก้ไขใน Section 3.3
  • ใน OpenCLIP แม้ Figure 7 จะแสดงการลดลงของ norm แต่มีการอภิปรายถึงความไม่สอดคล้องที่ไม่ได้นำไปสู่การปรับปรุง object localization ใน Table 3
    • ในการประเมิน LOST จะเลือก embedding ที่ให้ผลดีที่สุดในแต่ละโมเดลจาก keys, queries และ values
    • สำหรับ CLIP นั้น values ให้ผลดีที่สุด และอาร์ติแฟกต์ปรากฏใน keys หรือ queries แต่ไม่ปรากฏใน values จึงสอดคล้องกับ Table 3 และการวิเคราะห์เชิงคุณภาพ
  • ใน MAE ดูเหมือนจะไม่ปรากฏ “outlier patches” แบบเดียวกัน
    • อาจเป็นเพราะ MAE ฝึกด้วย local loss เท่านั้น จึงไม่จำเป็นต้องรวบรวมข้อมูลระดับรวมมากนักหรือแทบไม่ต้องเลย
    • ความแม่นยำในการจำแนก ImageNet แบบ linear probing ของ MAE-ViT-Large อยู่ที่ 75% ซึ่งต่ำกว่าวิธี SSL อื่น ๆ

ประสิทธิภาพ ต้นทุน และข้อจำกัด

  • register เป็นวิธีที่เรียบง่าย แต่เพิ่มภาระการคำนวณเพราะมีโทเคนเพิ่ม
    • มีรายงานว่าการเพิ่ม register token 4~16 ตัวทำให้ภาระการคำนวณเพิ่ม 2~6%
  • การเพิ่มจำนวน register ไม่ได้นำไปสู่การปรับปรุง dense task เสมอไป
    • เมื่อเพิ่มจาก 0 เป็น 1 register อาร์ติแฟกต์หายไป และ segmentation กับ depth prediction ดีขึ้น
    • หลังจาก 1 ตัวแล้ว แม้จะเพิ่ม register อีก feature map ก็สะอาดอยู่แล้ว ทำให้ประสิทธิภาพของ segmentation และ depth prediction ไม่ได้เพิ่มขึ้นมากนัก
    • ประสิทธิภาพการจำแนกมีแนวโน้มดีขึ้นเพิ่มเติมเมื่อมี register มากขึ้น แต่ยังไม่มีคำอธิบายเชิงสัญชาตญาณที่ชัดเจนว่าทำไมจึงเป็นเช่นนั้น
  • ในชุดข้อมูล NYU depth เมื่อเพิ่มจาก register 8 ตัวเป็น 16 ตัว ค่า RMSE เพิ่มขึ้นเล็กน้อย
    • ความยาวลำดับที่เพิ่มขึ้นอาจทำให้ hyperparameter ที่เหมาะสมเปลี่ยนไป
    • ความต่างของ RMSE 0.03 ระหว่าง 8 ตัวกับ 16 ตัวนั้นเล็กกว่าความต่าง 0.1 ระหว่าง 0 ตัวกับ 1 ตัวมาก จึงอาจเป็นเพียงสัญญาณรบกวน

การรับบทความบน OpenReview และประเด็นจากรีวิว

  • การตัดสินบน OpenReview คือ Accept (oral)
  • ในเมตารีวิว ผู้รีวิวทั้งสี่คนให้คะแนน 8 ทั้งหมด และยอมรับคุณูปการเชิงเทคนิคของงานวิจัยนี้
  • ผู้รีวิวกังวลเรื่องความไม่สอดคล้องของประสิทธิภาพ ความสัมพันธ์ระหว่าง dataset bias กับโมเดล SSL การเลือกการตั้งค่าการปรับให้เหมาะสม และผลของ gradient clipping
  • ผู้เขียนได้เพิ่มการทดลองเพิ่มเติมและการวิเคราะห์ในภาคผนวกในระหว่างกระบวนการโต้แย้ง
  • ในการอภิปรายภายหลัง ยังได้เสริมการวิเคราะห์กลไกภายใน เช่น register รับช่วงพฤติกรรมของ outlier หรือไม่, image token กลับไปมีลักษณะเชิง local มากขึ้นหรือไม่, และ norm ของ CLS token เปลี่ยนไปอย่างไร

1 ความคิดเห็น

 
GN⁺ 2024-05-13
ความคิดเห็นจาก Hacker News
  • ตามบทความวิจัย register คือโทเค็นเพิ่มเติมที่เรียนรู้ได้ ซึ่งถูกต่อท้ายเข้ากับลำดับอินพุตระหว่างการฝึกโมเดล Vision Transformer
    มันถูกเพิ่มเป็นค่าที่เรียนรู้ได้หลังชั้น patch embedding คล้ายกับโทเค็น [CLS] และเมื่อถึงปลายทางของ Vision Transformer จะทิ้ง register token แล้วใช้เฉพาะโทเค็น [CLS] กับ patch token เป็นตัวแทนของภาพ
    โทเค็นนี้ให้พื้นที่แก่โมเดลสำหรับเก็บ ประมวลผล และเรียกดูข้อมูลระดับ global ระหว่างการทำ forward pass จึงไม่ต้องฝืนใช้ patch token เพื่อจุดประสงค์นั้น
    ผลคืออาร์ติแฟกต์และ outlier token ที่มี norm สูงซึ่งปรากฏใน feature map ของ Vision Transformer ที่ฝึกแล้วหายไป feature map เรียบขึ้น และประสิทธิภาพของ dense prediction กับการค้นพบวัตถุแบบ unsupervised ก็ดีขึ้นด้วย
    ต้นทุนการ inference เพิ่มขึ้นเพียง 2% แต่ช่วยปรับปรุงประสิทธิภาพของ ViT ได้ค่อนข้างมาก จึงดูเป็นผลลัพธ์ที่เรียบง่ายและแทบเหมือนได้ของฟรี

    • กระแสที่แค่เพิ่มโทเค็นเข้าไปตรงนั้นตรงนี้แล้วทุกอย่างดีขึ้นราวกับเวทมนตร์แบบนี้ดูน่าสงสัยพอสมควร และพอผูกเข้ากับทฤษฎีความน่าจะเป็น คนสายคณิตศาสตร์ไม่ต่อเนื่องก็คงมองข้ามได้ยาก
      regex เชิงความน่าจะเป็นก็อย่างหนึ่ง แต่นี่เป็นความเสเพลทางคณิตศาสตร์คนละระดับเลย
      ถึงอย่างนั้นก็น่าทึ่งจริง ๆ ที่มันทำงานได้
    • เคยมีความพยายามเพิ่มโทเค็น [CLS] หลายตัวใน BERT ด้วย แต่ผลลัพธ์ไม่น่าประทับใจเท่า: https://arxiv.org/pdf/2210.05043
    • สงสัยว่า Transformer สำหรับข้อความทั่วไปมีอะไรให้เรียนรู้จากเรื่องนี้ไหม
      ฟังดูคล้ายกับ attention sink หรือ pause token
    • ถ้าจะใช้โทเค็นแบบนี้ ต้องแปลงผลลัพธ์ของชั้นสุดท้ายกลับมาเป็นโทเค็นก่อน แล้วค่อย embed ใหม่ใน pass ถัดไป
      สงสัยว่ามีใครศึกษาแนวทางส่งต่อ raw output ของ pass หนึ่งไปเป็นอินพุตถัดไปโดยตรงหรือยัง
  • ดูเหมือนเกี่ยวข้อง: "Let's Think Dot by Dot: Hidden Computation in Transformer Language Models" https://arxiv.org/abs/2404.15758
    งานวิจัยนี้มองว่ายังไม่ชัดเจนว่าการที่ chain-of-thought ช่วยเพิ่มประสิทธิภาพของโมเดลภาษาเป็นเพราะการแยกงานแบบมนุษย์ หรือเป็นเพราะปริมาณการคำนวณเพิ่มเติมที่โทเค็นเสริมมอบให้
    งานนี้แสดงให้เห็นว่า Transformer สามารถแก้โจทย์อัลกอริทึมยาก ๆ ที่เดิมตอบไม่ได้หากไม่มีโทเค็นกลาง ได้ด้วยโทเค็นเติมที่ไม่มีความหมาย เช่น ...... เพียงอย่างเดียว แต่บอกว่าการฝึกให้ใช้โทเค็นเติมแบบนั้นต้องมีการกำกับดูแลที่เฉพาะเจาะจงและละเอียดมาก
    ดังนั้นจึงสงสัยว่า LLM แบบข้อความจะได้ประโยชน์จากการใส่ โทเค็นคำนวณ/register แบบพิเศษหรือไม่
    อภิปรายเพิ่มเติม: https://news.ycombinator.com/item?id=40182695, https://www.reddit.com/r/LocalLLaMA/comments/1cf2w5a/transfo...

  • ในช่วงไม่กี่ปีที่ผ่านมาได้ลองบทความวิจัยและไอเดียในด้าน vision และ multimodal recognition ไปหลายสิบชิ้น อาจเกิน 100 ชิ้นด้วยซ้ำ แต่นี่เป็นกรณีที่หาได้ยากซึ่งทุกอย่างทำงานได้ดี
    ตัวอย่างเช่น โมเดลนี้ฝึกโดยใช้ register token 4 ตัว ร่วมกับ loss แบบ Matryoshka และสร้าง embedding 64 มิติ ที่เล็กมาก ซึ่งอาจมีประโยชน์สำหรับคนที่กำลังมองหาทางเลือกแทน CLIP: https://huggingface.co/unum-cloud/uform3-image-text-english-...

  • เห็นที่ ICLR แล้ว นี่เป็นหนึ่งในบทความวิจัยที่ดีที่สุดของปีนี้ และในเซสชันโปสเตอร์ก็เห็นได้ชัดว่าเป็นเช่นนั้น
    ขอแสดงความยินดีกับผู้เขียน

  • ใช้ DinoV2 มาหลายเดือนแล้ว และได้ลองโมเดลที่มี register token 4 ตัวร่วมกับ [CLS] + patch token ด้วย
    เนื่องจาก embedding token หลายตัวจากโมเดลเดิมที่ไม่มี register เป็นส่วนหนึ่งของโซลูชันอยู่แล้ว และโทเค็น [CLS] ระหว่างโมเดล 0 register กับ 4 register ไม่ได้ align กัน จึงไม่ได้ adopt โมเดล register ใหม่
    ถ้า [CLS] และ patch token ระหว่างสองโมเดล align กันได้สักทางก็คงดี

  • ดูเหมือน attention sink สำหรับโมเดล vision