Attention Sinks: กลไกที่ซ่อนอยู่ซึ่งป้องกันไม่ให้โมเดลภาษาพังทลาย

ทีมชุมชน BigGo
Attention Sinks: กลไกที่ซ่อนอยู่ซึ่งป้องกันไม่ให้โมเดลภาษาพังทลาย

โมเดลภาษามีจุดอ่อนที่น่าประหลาดใจซึ่งนักวิจัยเพิ่งค้นพบเมื่อไม่นานมานี้ เมื่อระบบ AI เหล่านี้พยายามจัดการกับการสนทนาที่ยาวกว่าข้อมูลที่ใช้ในการฝึกสอน พวกมันไม่เพียงแต่ทำงานได้ไม่ดี แต่ยังพังทลายไปโดยสิ้นเชิง สร้างเนื้อหาที่ไร้สาระอย่างสมบูรณ์ ตัวการคืออะไร? กลไกสำคัญที่เรียกว่า attention sinks ซึ่งคนส่วนใหญ่ไม่เคยได้ยินมาก่อนจนถึงตอนนี้

การค้นพบนี้เกิดขึ้นจากการศึกษาว่าทำไมโมเดลอย่าง GPT และ Llama จึงล้มเหลวอย่างหายนะเมื่อประมวลผลการสนทนาที่ยาว นักวิจัยพบว่าโมเดลเหล่านี้แอบทิ้ง attention จำนวนมหาศาลลงบน token สองสามตัวแรกในลำดับใดๆ โดยไม่คำนึงว่า token เหล่านั้นจะมีข้อมูลที่มีความหมายหรือไม่ attention sinks เหล่านี้ทำหน้าที่เหมือนถังขยะเชิงคำนวณ ดูดซับ attention ส่วนเกินที่โมเดลไม่รู้ว่าจะส่งไปที่ไหน

ลักษณะของ Attention Sink

  • ตำแหน่ง: โทเค็นแรกๆ ในลำดับ (โดยทั่วไปต้องใช้ 4 โทเค็น)
  • เนื้อหา: มักไม่มีความหมายทางความหมาย (โทเค็นเริ่มต้น, "the", "a")
  • หน้าที่: ดูดซับความสนใจส่วนเกินเนื่องจากข้อจำกัดของ softmax (น้ำหนักต้องรวมเป็น 1.0)
  • ผลจากการลบออก: โมเดลพังทันทีและสร้างข้อความไร้สาระ
  • ข้ามสถาปัตยกรรม: พบใน BERT , vision transformers , GANs , U-Nets

คณิตศาสตร์เบื้องหลังปัญหา

สาเหตุหลักอยู่ที่วิธีที่โมเดล transformer คำนวณ attention ฟังก์ชัน softmax บังคับให้ attention weights ทั้งหมดรวมกันได้เท่ากับ 1.0 พอดี สร้างสิ่งที่นักวิจัยคนหนึ่งอธิบายว่าเป็นประชาธิปไตยการเรียนรู้ที่ attention กระจายออกไป เมื่อโมเดลหาข้อมูลที่เกี่ยวข้องเพื่อโฟกัสไม่ได้ มันยังคงต้องส่ง attention ไปที่ไหนสักแห่ง token สองสามตัวแรกจึงกลายเป็นที่ทิ้งเริ่มต้น

นี่ไม่ใช่แค่ความแปลก แต่เป็นสิ่งสำคัญสำหรับความเสถียร เมื่อนักวิจัยพยายามลบ token เริ่มต้นเหล่านี้เพื่อประหยัดหน่วยความจำ โมเดลจะเริ่มสร้างเนื้อหาไร้สาระทันที พวกเขาได้ทำลายระบบวาล์วปลดแรงดันของโมเดลโดยไม่รู้ตัว

วิธีแก้ไขง่ายๆ ที่เปลี่ยนทุกอย่าง

วิธีแก้ไขกลับกลายเป็นเรื่องง่ายอย่างน่าทึ่ง แทนที่จะทิ้ง token เก่าในแนวทาง sliding window , StreamingLLM จะรักษา sink token สองสามตัวแรกไว้ในขณะที่ยังคงรักษา sliding window สำหรับส่วนอื่นๆ ทั้งหมด สิ่งนี้ทำให้โมเดลสามารถประมวลผลลำดับที่ยาวกว่าบริบทการฝึกสอนเดิมได้หลายเท่า

ผลลัพธ์ที่ได้น่าทึ่งมาก โมเดลที่เคยพังทลายหลังจาก token สองสามพันตัวสามารถรักษาประสิทธิภาพที่เสถียรได้ตลอด token หลายล้านตัวอย่างกะทันหัน การแก้ไขนี้ไม่ต้องการการฝึกสอนใหม่ เพียงแค่เคารพรูปแบบ attention ที่มีอยู่ของโมเดล

การเปรียบเทียบประสิทธิภาพของ StreamingLLM

  • หน้าต่างเลื่อนแบบดั้งเดิม: โมเดลจะล่มสลายหลังจากโทเค็นเพียงไม่กี่พันตัว และสร้างข้อความที่ไร้ความหมาย
  • StreamingLLM พร้อม attention sinks: ประสิทธิภาพที่เสถียรตลอดการประมวลผลมากกว่า 2 ล้านโทเค็น
  • ประสิทธิภาพด้านหน่วยความจำ: เก็บรักษาเพียง 4 โทเค็นแรก + หน้าต่างเลื่อน เทียบกับการจัดเก็บบริบทแบบเต็มรูปแบบ
  • การใช้งาน: ไม่จำเป็นต้องฝึกโมเดลใหม่ สามารถใช้งานได้กับโมเดลที่มีอยู่แล้วเช่น Llama-2
แผนภาพแสดงวิธีการ StreamingLLM ที่แสดงให้เห็นว่า attention sinks ช่วยเพิ่มประสิทธิภาพการประมวลผลลำดับในโมเดลภาษาอย่างไร
แผนภาพแสดงวิธีการ StreamingLLM ที่แสดงให้เห็นว่า attention sinks ช่วยเพิ่มประสิทธิภาพการประมวลผลลำดับในโมเดลภาษาอย่างไร

เกินกว่าแค่โมเดลภาษา

การสนทนาในชุมชนเผยให้เห็นว่าปรากฏการณ์นี้ขยายไปไกลกว่าโมเดลภาษา พฤติกรรม attention sink ที่คล้ายกันได้รับการสังเกตใน vision transformers ที่โมเดลใช้ background patches ที่ไม่มีข้อมูลเป็น computational scratchpads แม้แต่สถาปัตยกรรมเก่าอย่าง GANs และ U-Nets ก็แสดงรูปแบบที่เปรียบเทียบได้

singular defects (หรือ high-norm tokens) อาจเกี่ยวข้องกับ attention sinks น่าสนใจที่ทิศทางของ high-norm tokens ทั้งหมดมีทิศทางเดียวกัน

นักวิจัยบางคนเสนอว่านี่อาจอธิบายได้ว่าทำไมกลยุทธ์การ prompting บางอย่างจึงทำงานได้ดีกว่าอย่างอื่น การเริ่มต้น prompts ด้วยคำสุภาพอย่าง Hello หรือ Please อาจปรับปรุงประสิทธิภาพได้จริงโดยให้ attention sinks ที่ดีกว่าแก่โมเดลในการทำงาน

สถานะการนำไปใช้ในอุตสาหกรรม

  • OpenAI: ได้รวมเข้าไปใน GPT-3.5-turbo-1106 และ GPT-4-turbo-1106 แล้ว
  • HuggingFace: เพิ่มการสนับสนุนเฟรมเวิร์กสำหรับต้นทุน attention แล้ว
  • llama.cpp: รองรับอย่างเต็มรูปแบบแล้ว (PR 15157)
  • NVIDIA TensorRT-LLM: รวมกลไกนี้เข้าไปแล้ว
  • ไทม์ไลน์: งานวิจัยได้รับการเผยแพร่ในปี 2023 และมีการนำไปใช้ในระดับการผลิตในช่วงปลายปี 2023
การแสดงภาพของรูปแบบการ attention ในโมเดล transformer ที่แสดงให้เห็นว่า head ต่างๆ ประมวลผล input token อย่างไร
การแสดงภาพของรูปแบบการ attention ในโมเดล transformer ที่แสดงให้เห็นว่า head ต่างๆ ประมวลผล input token อย่างไร

การนำไปใช้ในอุตสาหกรรมและผลกระทบในอนาคต

บริษัท AI ชั้นนำได้นำข้อมูลเชิงลึกเหล่านี้ไปใช้อย่างรวดเร็ว OpenAI ได้รวมกลไก attention sink เข้าไปในโมเดล GPT-3.5-turbo และ GPT-4-turbo ของพวกเขา ในขณะที่ frameworks อย่าง HuggingFace และ libraries อย่าง llama.cpp ได้เพิ่มการสนับสนุนอย่างเต็มรูปแบบ เทคนิคนี้ยังเปิดทางให้กับทิศทางการวิจัยใหม่ใน model quantization และการเพิ่มประสิทธิภาพ

การค้นพบนี้เน้นย้ำว่าเรายังไม่เข้าใจระบบ AI ที่เราใช้ในชีวิตประจำวันมากเพียงใด สิ่งที่เริ่มต้นเป็นปัญหาการจัดการหน่วยความจำกลับเผยให้เห็นแง่มุมพื้นฐานของสถาปัตยกรรม transformer ที่ซ่อนตัวอยู่ต่อหน้าต่อตา เมื่อโมเดลมีความซับซ้อนมากขึ้น การเข้าใจกลไกที่ซ่อนอยู่เหล่านี้จึงมีความสำคัญมากขึ้นสำหรับการสร้างระบบ AI ที่เชื่อถือได้

อ้างอิง: How Attention Sinks Keep Language Models Stable

การเปรียบเทียบเส้นโค้ง pre-training loss สำหรับโมเดลที่มีและไม่มี sink tokens เพื่อเน้นประสิทธิผลของกลไก attention sink
การเปรียบเทียบเส้นโค้ง pre-training loss สำหรับโมเดลที่มีและไม่มี sink tokens เพื่อเน้นประสิทธิผลของกลไก attention sink