بهزاد حسین عباسی
محقق و پژهشگر مستقل و بنیانگذار اپراتوری هوش مصنوعی و اپراتوری ابرهوش
63 یادداشت منتشر شدهتوجه فلش: چگونه هوش مصنوعی مولد متن های بلند را بدون خفگی حافظه می خواند
وقتی یک مدل زبانی بزرگ متنی بلند می خواند، مشکل اصلی همیشه محاسبه نیست؛ جابه جایی داده است. در سازوکار توجه ترنسفورمر، هر توکن با همه توکن های دیگر مقایسه می شود و ماتریس امتیاز توجه با طول دنباله به صورت درجه دو رشد می کند. در پیاده سازی استاندارد، این ماتریس بزرگ بارها میان حافظه پرسرعت روی تراشه و حافظه پهن باند گرافیکی رفت و برگشت می کند و همین رفت و برگشت، پیش از آنکه محاسبه به سقف برسد، سرعت را محدود می کند.
پردازنده گرافیکی دو سطح حافظه با سرعت بسیار متفاوت دارد: حافظه استاتیک روی تراشه که بسیار سریع ولی کوچک است و حافظه پهن باند که بزرگ تر ولی کندتر است. توجه استاندارد ماتریس کامل امتیازها و خروجی میانی سافت مکس را در حافظه پهن باند می نویسد و دوباره می خواند. با بلندتر شدن متن، این حجم به سرعت سرسام آور می شود و واحدهای محاسباتی بخش زیادی از زمان را در انتظار داده می مانند.
فلش اتنشن که تری دائو و همکارانش در سال ۲۰۲۲ معرفی کردند، خروجی توجه را دقیق حساب می کند، نه تقریبی. سه ایده آن را می سازد: نخست، آگاهی از ورودی و خروجی؛ یعنی الگوریتم با توجه به سلسله مراتب حافظه طراحی شده است. دوم، بلوک بندی یا تایلینگ؛ پرسش ها، کلیدها و مقدارها به بلوک های کوچک تقسیم می شوند، هر بلوک به حافظه روی تراشه می آید و توجه همان بلوک همان جا حساب می شود. سوم، سافت مکس برخط؛ بیشینه در حال اجرا و مجموع نمایی به صورت تدریجی به روز می شود تا نتیجه نهایی با حالت استاندارد برابر بماند. در گذر عقب نیز به جای نگه داشتن ماتریس کامل، تنها عامل نرمال سازی ذخیره می شود و توجه در صورت نیاز روی تراشه بازمحاسبه می گردد. نتیجه این است که مصرف حافظه توجه از مرتبه درجه دو به مرتبه خطی نسبت به طول دنباله می رسد و در مقاله گزارش شد که محاسبه توجه در مدل جی پی تی ۲ تا ۷ و ۶ دهم برابر سریع تر می شود.
فلش اتنشن نسخه ۲ که در ژوئیه ۲۰۲۳ منتشر شد، تقسیم کار میان بلوک های ریسه را بهبود داد، محاسبه را حتی برای یک سر توجه در طول دنباله موازی کرد و به حدود دو برابر سرعت نسخه اول رسید و در آزمایش های گزارش شده روی تراشه ای صد به ۵۰ تا ۷۳ درصد سقف نظری توان عملیاتی رسید. فلش اتنشن نسخه ۳ که در ژوئیه ۲۰۲۴ برای تراشه های هاپر انویدیا ارائه شد، محاسبه و جابه جایی داده را با تخصصی شدن دسته های ریسه هم پوشان کرد و با کوانتیزاسیون بلوکی و دقت پایین اف پی هشت، روی تراشه اچ صد به ۱ و ۵ دهم تا ۲ برابر سرعت نسخه دوم رسید و در دقت اف پی شانزده تا ۷۴۰ ترافلاپ بر ثانیه گزارش شد.
فلش اتنشن جادو نمی کند. پیچیدگی محاسباتی توجه همچنان درجه دو است؛ این روش هزینه جابه جایی حافظه را کم می کند، نه تعداد ضرب های ذاتی مقایسه همه جفت ها را. همچنین حافظه نهان کلید و مقدار در استنتاج همچنان با طول دنباله رشد می کند و برای متن های بسیار بلند، هنوز به روش های مکمل مانند توجه پراکنده و فشرده سازی نهان نیاز است. با این همه، دقیق بودن خروجی نقطه قوت تعیین کننده آن است: مدل همان پاسخی را می دهد که توجه استاندارد می داد، فقط سریع تر و با حافظه کمتر.
توجه فلش یادآوری می کند که در هوش مصنوعی مولد، گاهی بزرگ ترین پیشرفت از معماری تازه نمی آید، بلکه از احترام به واقعیت سخت افزار می آید. وقتی الگوریتم بداند داده کجاست و چه زمانی باید جابه جا شود، همان مدل قدیمی می تواند متن های بلندتر را بخواند، سریع تر آموزش ببیند و با هزینه کمتر به دست کاربر برسد.
بهزاد حسین عباسی، بنیانگذار اپراتوری هوش مصنوعی و اپراتوری ابرهوش