ความสนใจแบบแฟลช
Flash Attention เป็นวิธีที่ชาญฉลาดในการคำนวณขั้นตอนความสนใจภายใน Transformers โดยไม่ต้องเขียนเมทริกซ์ความสนใจขนาดยักษ์เพื่อทำให้หน่วยความจำช้าลง
ภาพรวม
It makes long-context models far faster and more memory-efficient without changing their math.
เจาะลึก
ความสนใจมาตรฐานจะเปรียบเทียบทุกโทเค็นกับโทเค็นอื่นๆ โดยสร้างเมทริกซ์คะแนน N-by-N ที่ขยายแบบกำลังสองตามความยาวของลำดับ พูดง่ายๆ ก็คือ เมทริกซ์นั้นถูกเขียนและอ่านกลับจากหน่วยความจำแบนด์วิธสูงของ GPU (HBM) และการเปลี่ยนแปลงนั้น — ไม่ใช่การคูณ — คือปัญหาคอขวดที่แท้จริง Flash Attention ซึ่งเปิดตัวโดย Tri Dao และเพื่อนร่วมงานในปี 2022 ได้จัดระเบียบการคำนวณใหม่ เพื่อไม่ให้เมทริกซ์ถูกจัดเก็บไว้อย่างสมบูรณ์ โดยจะประมวลผลคำค้นหา คีย์ และค่าในรูปแบบไทล์ขนาดเล็กที่พอดีกับ SRAM บนชิปที่รวดเร็ว คำนวณผลลัพธ์บางส่วน และรวมเข้าด้วยกันโดยใช้เคล็ดลับ Running-softmax แบบออนไลน์ เอาต์พุตจะเหมือนกันทางคณิตศาสตร์กับความสนใจทั่วไป แต่ใช้หน่วยความจำเชิงเส้นและทำงานเร็วขึ้นหลายเท่า โดยเฉพาะในลำดับที่ยาว
ข้อมูลเชิงลึกทางเทคนิค
เคล็ดลับสำคัญคือการปูกระเบื้องบวกกับซอฟต์แม็กซ์ออนไลน์ โดยปกติ Softmax ต้องใช้คะแนนทั้งแถวเพื่อคำนวณตัวหาร แต่ Flash Attention จะคงค่าสูงสุดและผลรวมรันไว้ในขณะที่สตรีมแต่ละไทล์ โดยปรับขนาดเอาต์พุตบางส่วนก่อนหน้านี้ใหม่ เพื่อให้ผลลัพธ์สุดท้ายถูกต้องแม่นยำ เนื่องจากคะแนนระดับกลางยังคงอยู่ใน SRAM (ลำดับความสำคัญเร็วกว่า HBM) อัลกอริธึมจึงรับรู้ถึง IO: โดยจะลดการอ่านและเขียนหน่วยความจำให้เหลือน้อยที่สุด แทนที่จะดำเนินการทางคณิตศาสตร์แบบดิบ
ผลกระทบเชิงกลยุทธ์
ต้นทุนและงบประมาณ
การตัดสินใจด้านสถาปัตยกรรมขับเคลื่อนประสิทธิภาพและต้นทุนการดำเนินงานเป็นเวลาหลายปี
การตัดสินใจที่ชัดเจนยิ่งขึ้น
การศึกษาด้านเทคนิคช่วยให้ทีมเลือกกลุ่มที่เหมาะสม ไม่ใช่แค่กลุ่มใหม่ล่าสุด
การควบคุมคุณภาพ
ตัวเลือกทางวิศวกรรมที่ดีกว่าจะช่วยลดเหตุการณ์ด้านความน่าเชื่อถือในการผลิต
อนาคตของความสนใจแบบแฟลช
Flash Attention กลายเป็นองค์ประกอบหลักเริ่มต้น โดย FlashAttention-2 และ FlashAttention-3 บีบปริมาณงานมากขึ้นจาก GPU รุ่นใหม่ เช่น H100 โดยการปรับปรุงการแบ่งพาร์ติชันงานและใช้ประโยชน์จากเส้นทาง FP8 ที่มีความแม่นยำต่ำ คาดว่าจะมีการออกแบบร่วมกับฮาร์ดแวร์อย่างต่อเนื่อง การผสานรวมที่เข้มงวดมากขึ้นในเฟรมเวิร์กการฝึกอบรมและการอนุมาน และตัวแปรต่างๆ ที่ปรับให้เหมาะกับการใส่ใจในบริบทแบบเบาบาง หน้าต่างแบบเลื่อน และบริบทที่ยาวมาก เนื่องจากหน้าต่างบริบทขยายไปสู่โทเค็นนับล้าน เคอร์เนลที่รับรู้ IO เช่นนี้ยังคงมีความสำคัญต่อการรักษาหน่วยความจำและความเร็วในทางปฏิบัติ
การใช้งานจริงในโลกแห่งความเป็นจริง
การฝึกอบรมโมเดลภาษาขนาดใหญ่ เช่น Llama และระบบคลาส GPT ด้วยหน้าต่างบริบทที่ยาวขึ้นโดยมีต้นทุนหน่วยความจำต่ำกว่า
ให้บริการผู้ช่วยแชทเร็วขึ้นโดยเร่งขั้นตอนการกรอกข้อมูลล่วงหน้าซึ่งข้อความแจ้งที่ยาวจะถูกอ่านครั้งแรก
เปิดใช้งานเครื่องมือวิเคราะห์เอกสารที่นำเข้าหนังสือทั้งหมดหรือโค้ดเบสโดยทำให้ความสนใจในลำดับยาวเป็นไปได้บน GPU ตัวเดียว
ขับเคลื่อน Transformers ด้านการมองเห็นและเสียงโดยที่อินพุตความละเอียดสูงสร้างลำดับโทเค็นที่ยาวมาก
ความเสี่ยงและรั้ว
การเพิ่มประสิทธิภาพเกณฑ์มาตรฐานหนึ่งรายการสามารถซ่อนจุดอ่อนของระบบในวงกว้างได้
ต้นทุนโครงสร้างพื้นฐานและการบำรุงรักษามักถูกประเมินต่ำไป
ช่องว่างด้านความปลอดภัยและความสามารถในการสังเกตสามารถเพิ่มขึ้นได้เมื่อระบบมีความซับซ้อนมากขึ้น
แผนงานการดำเนินงาน
กำหนดเป้าหมายเวลาแฝง คุณภาพ และต้นทุนก่อนนำไปใช้งาน
เกณฑ์มาตรฐานภายใต้สภาวะโหลดและข้อมูลจริง
การตรวจสอบเครื่องมือเพื่อหาข้อผิดพลาด การเบี่ยงเบน และผลกระทบต่อผู้ใช้
เตรียมเส้นทางการย้อนกลับและการตอบสนองต่อเหตุการณ์ก่อนปรับขนาด
สำรวจต่อไป
Free newsletter
Get the daily AI briefing
Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.
One email each weekday. Unsubscribe in one click. We never sell or share your address.
Test yourself
Take the Flash Attention quiz
Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.
Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation
คำแนะนำต่อไป
ความสนใจในการเปิดตัวและการตัดแต่งกิ่ง
คำถามที่พบบ่อย
What is Flash Attention?
Flash Attention เป็นวิธีที่ชาญฉลาดในการคำนวณขั้นตอนความสนใจภายใน Transformers โดยไม่ต้องเขียนเมทริกซ์ความสนใจขนาดยักษ์เพื่อทำให้หน่วยความจำช้าลง ทำให้โมเดลบริบทแบบยาวเร็วขึ้นและมีประสิทธิภาพหน่วยความจำมากขึ้นโดยไม่ต้องเปลี่ยนคณิตศาสตร์
ปัญหาคอขวดหลักที่ Flash Attention กำหนดเป้าหมายคืออะไร
Flash Attention รับรู้ถึง IO: โดยจะลดการรับส่งข้อมูลระหว่าง SRAM บนชิปที่รวดเร็วและหน่วยความจำแบนด์วิธสูงที่ช้า ซึ่งเป็นคอขวดที่แท้จริงแทนที่จะเป็นตัวเลขคณิต
Flash Attention หลีกเลี่ยงการจัดเก็บเมทริกซ์ความสนใจแบบ N-by-N แบบเต็มได้อย่างไร
โดยแยกการคำนวณเพื่อให้แต่ละบล็อกพอดีกับ SRAM ที่รวดเร็ว คำนวณและสะสมเอาต์พุตบางส่วนโดยไม่ต้องสร้างเมทริกซ์ทั้งหมดใน HBM
เทคนิคใดที่ทำให้ Flash Attention คำนวณ softmax ได้อย่างถูกต้องโดยไม่ต้องดูทั้งแถวในคราวเดียว
ซอฟต์แม็กซ์ออนไลน์จะรักษาค่าสูงสุดและตัวหารรันขณะสตรีมไทล์ โดยปรับขนาดเอาต์พุตบางส่วนก่อนหน้านี้เพื่อให้การทำให้เป็นมาตรฐานขั้นสุดท้ายถูกต้องแม่นยำ
เหตุใด Flash Attention จึงช่วยได้มากที่สุดกับลำดับที่ยาว
เมทริกซ์ความสนใจแบบไร้เดียงสาจะปรับขนาดเป็น N-squared ในหน่วยความจำ ดังนั้นการหลีกเลี่ยงพื้นที่จัดเก็บเต็มรูปแบบจะช่วยประหยัดได้มากที่สุดเมื่อลำดับมีความยาว
การออกแบบ 'IO-aware' ของ Flash Attention จัดลำดับความสำคัญในการลดขนาดให้เหลือน้อยที่สุดอย่างไร
IO-aware หมายถึงอัลกอริธึมได้รับการออกแบบโดยคำนึงถึงต้นทุนในการย้ายข้อมูลในลำดับชั้นหน่วยความจำ ช่วยลดการรับส่งข้อมูล HBM แทนที่จะดำเนินการทางคณิตศาสตร์