"இந்த மாடல் 128K கான்டெக்ஸ்ட்டை ஆதரிக்கிறது" என்று கேட்க நன்றாகத் தான் இருக்கிறது – அதை இயக்க முயன்று உங்கள் நினைவகம் எல்லாம் எங்கே போனது என்று யோசிக்கும் வரை. குற்றவாளி KV கேச்: கான்டெக்ஸ்ட்டின் ஒவ்வொரு டோக்கனிலும் வளரும் LLM இன் பகுதி, பெரிய கான்டெக்ஸ்ட் விண்டோ உண்மையான ஜிகாபைட்டுகள் செலவாகக் காரணம்.
இந்த வழிகாட்டி KV கேச் என்றால் என்ன, அது ஏன் அப்படி அளவிடப்படுகிறது, உங்கள் சொந்த வன்பொருளில் ஒரு கான்டெக்ஸ்ட் விண்டோவுக்கு எவ்வளவு நினைவகம் தேவை என்பதை எவ்வாறு சரியாகக் கணக்கிடுவது என்பதை விளக்குகிறது.
KV கேச் என்றால் என்ன
ஒரு LLM ஒரு டோக்கனைச் செயலாக்கும்போது, அது நிறைய கணக்கீடுகளைச் செய்கிறது – மேலும் முக்கியமாக, பிறகு வரும் டோக்கன்களைப் புரிந்துகொள்ள முந்தைய டோக்கன்களிலிருந்து முடிவுகள் தேவை. ஒவ்வொரு டோக்கனின் கடந்த காலத்திற்கான கவனம் (attention), ஒவ்வொரு அடுக்கிலும் இரண்டு விஷயங்களிலிருந்து கணக்கிடப்படுகிறது: ஒரு key (இந்த டோக்கன் என்ன வழங்குகிறது) மற்றும் ஒரு value (அது என்ன கொண்டுள்ளது).
ஒவ்வொரு புதிய டோக்கனிலும் முந்தைய ஒவ்வொரு டோக்கனுக்கும் அந்த keys மற்றும் values ஐ மீண்டும் கணக்கிடுவதற்குப் பதிலாக – இது உருவாக்கத்தை இருபடி அளவில் மெதுவாக்கும் – மாடல் அவற்றை சேமிக்கிறது. அந்த சேமிப்பகம் தான் KV கேச். கான்டெக்ஸ்ட்டில் உள்ள ஒவ்வொரு டோக்கனும், ஒவ்வொரு அடுக்கு மற்றும் ஒவ்வொரு attention head இல், அதில் ஒரு நிலையான தொகையைச் சேர்க்கிறது.
அது கான்டெக்ஸ்டுடன் ஏன் நேர்கோட்டில் நினைவகத்தைச் சாப்பிடுகிறது
இதோ முக்கிய உண்மை: KV கேச் டோக்கன்களின் எண்ணிக்கையுடன் வளர்கிறது, மாடலின் அளவுடன் அல்ல. அதிக கான்டெக்ஸ்ட் = அதிக சேமிக்கப்பட்ட keys மற்றும் values. கான்டெக்ஸ்ட்டை இரட்டிப்பாக்கினால் KV கேச்யை ஏறத்தாழ இரட்டிப்பாக்கும்.
ஒரு dense மாடலுக்கான தோராயமான அளவு:
KV cache ≈ layers × kv_heads × head_dim × 2 × bytes_per_value × context
சரியான எண்கள் மாடல் கட்டமைப்பைப் பொறுத்தது. நடைமுறைக் கருத்து: 7B அல்லது 13B போன்ற நடுத்தர அளவிலான மாடலுக்கு, பெரிய கான்டெக்ஸ்ட்டில் (சொல்லுங்கள் 32K அல்லது 128K) KV கேச், எடைகளின் அளவோடு எளிதில் பொருந்தலாம் அல்லது அதை மீறலாம்.
உண்மையான எண்கள்
இதை நடைமுறையில் பார்க்க, LLM VRAM கால்குலேட்டர் உங்கள் சரியான மாடல், குவாண்டைசேஷன், கான்டெக்ஸ்ட்டுக்கான எடைகள் + KV கேச்யைப் பிரிக்கிறது. இரண்டு வேலை செய்த எடுத்துக்காட்டுகள்:
- Q4 உடன் 8K கான்டெக்ஸ்ட் இல் உள்ள 7B மாடல்: KV கேச் ஏறத்தாழ 1 GB – மொத்தம் ~4 GB இல் ஒரு சிறிய பகுதி.
- அதே மாடல் 32K கான்டெக்ஸ்ட் இல்: KV கேச் ~4 GB க்கு தாவுகிறது, இப்போது எடைகளுக்கு சமமாகிறது.
- 64K கான்டெக்ஸ்ட் உடன் Q4 இல் உள்ள 32B மாடல்: KV கேச் மட்டும் 8–12 GB ஆக இருக்கலாம் – பல GPU களில் இருப்பதை விட அதிகம்.
அதனால்தான் "8K கான்டெக்ஸ்ட்டில் இயங்கும்" மற்றும் "128K கான்டெக்ஸ்ட்டில் இயங்கும்" என்பவை ஒரே மாடலுக்கு கூட முற்றிலும் வித்தியாசமான வன்பொருள் தேவைகள்.
அதை எவ்வாறு குறைப்பது
KV கேச் உங்கள் நினைவகத்தைச் சாப்பிட்டால், உங்களிடம் சில நெம்புகோல்கள் உள்ளன:
- கான்டெக்ஸ்ட் விண்டோவைக் குறைக்கவும் (
-c) – மிகப்பெரிய ஒற்றை நெம்புகோல். மாடல் ஆதரிக்கும் அதிகபட்சத்தை அல்ல, உங்களுக்குத் தேவையான கான்டெக்ஸ்ட்டைப் பயன்படுத்துங்கள். - KV கேச்யை குவாண்டைஸ் செய்யவும் (
q8_0,q4_0) – keys/values ஐ 8-பிட் அல்லது 4-பிட் இல் சேமிப்பது கேச்யை ஏறத்தாழ பாதியாக அல்லது கால் பங்காக்குகிறது, பெரும்பாலான பணிகளுக்கு குறைந்தபட்ச தர இழப்புடன். - MoE அல்லது நீண்ட-கான்டெக்ஸ்ட்-உகந்த மாடல்களைப் பயன்படுத்தவும் – Ornith 35B போன்ற MoE மாடல்கள் டோக்கன்கள் முழுவதும் KV ஐப் பகிர்கின்றன, இது கேச்யை ஒரு dense மாடலின் கேச்யை விட சிறியதாக்குகிறது.
- ஆஃப்லோடு – llama.cpp KV கேச்யின் ஒரு பகுதியை சிஸ்டம் RAM இல் வைத்திருக்க முடியும், வேகத்தின் விலையில்.
எங்கள் Qwen 27B லேப் சோதனையில் q8 KV விளைவைக் காணலாம், அங்கு q8 KV 16K இல் பகுதி ஆஃப்லோடுடன் 12 GB கார்டில் (அரிதாக) பொருந்தியது.
MoE vs dense (அவை ஏன் வேறுபடுகின்றன)
ஒரு dense மாடல் ஒவ்வொரு டோக்கனையும் அதன் அனைத்து அளவுருக்கள் வழியாகச் செயலாக்குகிறது. ஒரு MoE மாடல் ஒவ்வொரு டோக்கனையும் சில "எக்ஸ்பர்ட்" அடுக்குகள் வழியாக மட்டும் வழிநடத்துகிறது – ஆனால் KV கேச் வேறு கதை. எந்த எக்ஸ்பர்ட்கள் அவற்றைக் கையாண்டாலும் கவனம் டோக்கன்கள் முழுவதும் பகிரப்படுவதால், MoE மாடல்கள் சில கட்டமைப்புகளில் ஒவ்வொரு டோக்கனுக்கும் சிறிய KV கேச்யை வைத்திருக்க முடியும். 35B MoE, 35B dense மாடல் ஒருபோதும் முடியாத 262K கான்டெக்ஸ்ட்டில் இயங்க இது ஒரு காரணம். நேரடி ஒப்பீட்டிற்கு MoE vs Dense லேப் சோதனையைப் பார்க்கவும்.
இறுதி முடிவு
KV கேச் LLM களின் மறைக்கப்பட்ட நினைவகச் செலவு, அது கான்டெக்ஸ்ட்டின் ஒவ்வொரு டோக்கனிலும் வளர்கிறது. ஒரு மாடல் "128K ஆதரிக்கிறது" என்று சொன்னால், அது ஒரு மேல் வரம்பு, பரிந்துரை அல்ல. உங்களுக்கு உண்மையில் தேவையான கான்டெக்ஸ்ட்டைப் பயன்படுத்துங்கள், KV கேச்யை குவாண்டைஸ் செய்யுங்கள், மேலும் நீங்கள் ஈடுபடுவதற்கு முன் VRAM கால்குலேட்டரைச் சரிபார்க்கவும் – உங்கள் மாடல் நினைவகத்தின் ஒரு பகுதியில் இயங்கும்.