این روش برای طول متنهای کوتاه خوبه، اما برای متون بلند میتونه پرهزینه باشه، چون خوندن کش هزینه داره و بایستی همه بردارها رو در حافظه با پهنای باند بالا GPU ذخیره تا هنگام نیاز به هسته های تنسور بارگذاری کنیم.
اگر هر توکن نیاز داشته باشه که کل متن گذشته خودش رو بدونه، به این معناست که برای هر توکنی که تولید میکنیم، باید کل کش KV گذشته را ازکارت گرافیک بخونیم.
این کار به ویژه در متنهای بالای چند هزار توکن میتونه مشکل ساز شه و نیاز به روشهایی برای کاهش اندازه کش KV را ضروری میسازه.
محاسبه مقدار حافظه مورد نیاز برای کش KV از طریق ضرب مقادیر زیر بدست میاد:
number of layers*batch size*number of attention heads*attention head size*sequence length
به عنوان مثال در GPT3 با 175 میلیارد پارامتر اندازه کش KV با batch size 1 و sequence length
10,000 توکن حافظه مورد نیاز برابر با 43GB هست!
توضیحات بیشتر در ویدیو زیر:
https://www.youtube.com/watch?v=80bIUggRJf4
ادامه دارد...
Post #3862
2.8K
Tensorflow(@CVision) ابتدا با یه توضیح مختصر در مورد اینکه KV cache چیه، شروع کنیم. هنگامی که یه مدل زبانی برای تولید متوالی توکن ها در زمان استنتاج استفاده میشه، باید متن(context) همه توکن های قبلی رو هنگام تصمیم گیری در مورد اینکه کدوم توکن رو بعدا در خروجی تولید کنه، ببینه.…YouTube The KV Cache: Memory Usage in Transformers Try Voice Writer - speak your thoughts and let AI handle the grammar: https://voicewriter.io The KV cache is what takes up the bulk of the GPU memory during inference for large language models like GPT-4. Learn about how the KV cache works in this video!…
- ❤ 7
- 👍 3