Модель салмақтары өзгермесе де, миллион токендік контекст серверге қойылатын талаптарды өзгертеді. Жадта оқылған мәтіннің күйі сақталады, ал алғашқы жауапқа дейін бүкіл кірісті өңдеу қажет. KV-кэш бюджетін және жүктемені тексеруді бөлек қарастырайық. Мұнда миллион — 1 000 000 токен. Бұл оқу мысалы, кез келген модельдің расталған шегі емес.
Контекст қанша жад алады?
Кәдімгі full-attention KV кэшінің оқу есебі: MHA, GQA немесе MQA. Бастапқы параметрлер — каталог моделінің профилі емес, мысал.
Кіріс + жасалған токендер. Әр сұрау осындай ұзындықта; ортақ префикс ескерілмейді.
2 × қабаттар × KV бастары × өлшем × байт × токендер × сұраулар
GB = 10⁹ байт · GiB = 2³⁰ байт. FP8/INT8 кванттау метадеректерінсіз әр мәнге 1 байт есептейді; қолдау бөлек тексеріледі.
Салмақтар, активациялар, CUDA graphs, буферлер және үстеме шығындар кірмейді. MLA, сығылған, sliding-window немесе гибридті кэш есептелмейді. 1 млн токен контекстін модель мен қозғалтқыш үшін бөлек тексеру керек.
1. Нақты қолдау көрсетілетін контексті тексеріңіз
Контекст шегін нақты модельдің сипаттамасынан және іске қосу нұсқаулығынан табыңыз. Нұсқаны, токенизаторды, позициялық кодтауды және орындау ортасының талаптарын ескеріңіз. Ұзындық параметрін арттыру модель бүкіл құжатты сенімді қолданатынын дәлелдемейді. Бастапқы, ортаңғы және соңғы бөліктердегі фактілерді табуды, алыс үзінділерді байланыстыруды және жауап сапасын тексеріңіз.
Бюджетке жүйелік нұсқаулық, әңгіме тарихы, табылған құжаттар, қызметтік токендер және болашақ жауап кіреді. Файл көлемі токендердің тұрақты санына тең емес: тіл, пішім және токенизатор нәтижені өзгертеді. Алдымен жұмысқа ұқсас кірістерді токендерге бөліп, қалыпты ұзындықты, шекті көлемді және генерация қорын белгілеңіз.
2. KV көлемін салмақтардан бөлек есептеңіз
K/V өлшемдері бірдей толық attention үшін байтпен негізгі баға: 2 × қабат саны × KV-бас саны × бас өлшемі × мәнге жұмсалатын байт × белсенді тізбектер ұзындықтарының қосындысы. Екі көбейткіші кілттер мен мәндерді ескереді. Бұл салмақтар, туралау, метадеректер және жұмыс буферлері қосылмаған тензорлар көлемі.
Мысал: 80 қабат, 8 KV-бас, бас өлшемі 128 және бір мәнге 2 байт жұмсайтын BF16. Миллион сақталған токені бар бір сұрауға тек KV үшін шамамен 327,68 GB немесе 305,18 GiB керек. Кестеде өзге шарттар бірдей кезде KV-бас саны өзгереді. Ол нақты чекпойнтты сипаттамайды және миллион токенге қолдауды растамайды.
| Мысал сызбасы | KV-бас саны | 1 млн токенге KV |
|---|---|---|
| MHA | 64 | 2621,44 GB |
| GQA | 8 | 327,68 GB |
| MQA | 1 | 40,96 GB |
3. Өз архитектураңыздың формуласын қолданыңыз
MHA назар бастарына жеке кілттер мен мәндерді сақтайды. GQA сұрау бастарының топтарына ортақ KV қолданады, MQA бір ортақ KV-бас пайдаланады. Сондықтан query-heads санын KV-heads орнына автоматты түрде қоюға болмайды. Қажетті мәндерді параметрлердің жалпы санынан емес, модель конфигурациясынан алыңыз.
DeepSeek-V3 қолданатын MLA сығылған жасырын көріністі сақтайды; оның есебі кэштің іске асырылуына тәуелді. Sliding-window тек тиісті қабаттардағы тарихты шектейді, сондықтан аралас архитектура қабат бойынша есептеледі. Салмақтарды кванттау KV-ді кванттау дегенді білдірмейді. Кэш дәлдігі өзгерсе, қолдау, қосымша шығын және сапа бөлек тексеріледі.
4. Пайдаланушыларды емес, белсенді тізбектерді санаңыз
GQA мысалында миллион токеннен тұратын төрт тәуелсіз сұрау салмақтарды қоспай-ақ 1310,72 GB KV алады. Бірақ жүз тіркелген пайдаланушы осындай жүз сұрау бір мезгілде орындалады деген сөз емес: кезек пен белсенді тізбектер саны маңызды. Ұзындықтары әртүрлі болса, генерацияланған токендерді қоса нақты көлемдерді қосыңыз.
Жоспарлаушы пакетінің мөлшері мен контекстің ең үлкен ұзындығы — әртүрлі шектеулер. Chunked prefill ұзын кірісті бөліктермен өңдеп, оны ағымдағы жауаптармен бірге орындауға көмектеседі; ол сақталған KV-ді түгел жоймайды. Қолдайтын қозғалтқыш қайталанатын префиксті қайта қолдана алады, бірақ бұл үнемді тәуелсіз құжаттарға алдын ала телуге болмайды.
5. Алғашқы жауап пен жүктеме кезіндегі жұмысты өлшеңіз
Кэш бос болғанда және ортақ префикс қайталанғанда бөлек сынақ өткізіңіз. Алғашқы токенге дейінгі уақытты, жауап жалғасуының жылдамдығын, әр GPU жад шығынының шегін және ығыстыру не қайта есептеу жағдайларын тіркеңіз. Ұзын құжатпен қатар қысқа сұраулар жіберіңіз: бір құжаттың жылдам өңделуі бүкіл сервистің шапшаңдығына кепіл емес.
Жад жетпесе, кірісті қысқарту, қажетті үзінділерді іздеу, қатар орындалуды азайту және кэшті қолдау көрсетілетін тәсілмен сығу нұсқаларын салыстырыңыз. CPU RAM-ға көшіру кідіріс пен байланыс жүктемесін өзгертеді. Өз міндетіңіздің сапасы мен орындалу уақытына қарай таңдап, сынақ конфигурациясын қайталау үшін сақтаңыз.
Ұзын контекстке қолдау, жеткілікті жад және пайдалы жылдамдық бөлек тексеріледі. KV есебі бастапқы сынақ конфигурациясын таңдауға көмектеседі.
Миллион токенді тексеру алдында
Дереккөздер мен құжаттама
- Hugging Face: How caching works ↗
- GQA: original research paper ↗
- DeepSeek-V3 Technical Report: MLA ↗
- Hugging Face: Cache strategies ↗
- vLLM: Optimization and Tuning ↗
- vLLM: Automatic Prefix Caching ↗
Материалдар талаптарды дайындауға көмектеседі. Нақты конфигурация мен шарттар ұсыныста бекітіледі.
