روش دومی که قبلا در موردش صحبت کردیم Grouped-Query Attention هست.
در معماری Multi-Head Attention، تعداد بردارهای K و V منحصر به فرد برابر با تعداد head بود و در معماری Multi-Query Attention، تعداد بردارهای K و V منحصر به فرد برابر با ۱ بود.
در معماری GQA، تعداد بردارهای K و V منحصر به فرد برابر با یک ابرپارامتر G است که تعداد گروهها ست.
به عنوان مثال، اگر تعداد head ۴ باشه و Gیا گروه ها برابر با 2 باشه، دو مجموعه منحصر به فرد از بردارهای K و V وجود خواهد داشت که هر کدام توسط دو head استفاده میشن.
https://arxiv.org/abs/2305.13245
این روش در مقایسه با روش قبلی، بهبود جزئی در عملکرد ارائه میده اما در واقع، هنگام کار در یک محیط چند GPU با موازی سازی تنسور، میتونیم اساسا دستاورد عملکردی رو به صورت رایگان با تنظیم G برابر با تعداد GPUها به دست بیاریم همچنین مشکل کارایی پایین MQA در خلاصه سازی متون رو برطرف میکنه.
در این روش با توجه به مقدار قبل و فرض داشتن 8 گروه مقدار حافظه مورد نیاز در GPT3 برابر با 3.6GB میشه.
ادامه دارد....
در معماری Multi-Head Attention، تعداد بردارهای K و V منحصر به فرد برابر با تعداد head بود و در معماری Multi-Query Attention، تعداد بردارهای K و V منحصر به فرد برابر با ۱ بود.
در معماری GQA، تعداد بردارهای K و V منحصر به فرد برابر با یک ابرپارامتر G است که تعداد گروهها ست.
به عنوان مثال، اگر تعداد head ۴ باشه و Gیا گروه ها برابر با 2 باشه، دو مجموعه منحصر به فرد از بردارهای K و V وجود خواهد داشت که هر کدام توسط دو head استفاده میشن.
https://arxiv.org/abs/2305.13245
این روش در مقایسه با روش قبلی، بهبود جزئی در عملکرد ارائه میده اما در واقع، هنگام کار در یک محیط چند GPU با موازی سازی تنسور، میتونیم اساسا دستاورد عملکردی رو به صورت رایگان با تنظیم G برابر با تعداد GPUها به دست بیاریم همچنین مشکل کارایی پایین MQA در خلاصه سازی متون رو برطرف میکنه.
در این روش با توجه به مقدار قبل و فرض داشتن 8 گروه مقدار حافظه مورد نیاز در GPT3 برابر با 3.6GB میشه.
ادامه دارد....