Квантизация и бързо извеждане на собствен хардуер
Как да поберете по-големи модели на по-малки GPU и да ги обслужвате бързо.
Първата реакция на много инженери, когато разглеждат изискванията за хардуер за модел с голям езиков модел от последно поколение, е шок от цената. Модел с 70 милиарда параметра в нативния си FP32 формат ще изисква около 280 GB GPU памет — повече, отколкото повечето организации имат в единичен сървър и много повече, отколкото искат да осигурят само за отговаряне на запитвания на служители. Квантизацията е техниката, правеща тези числа управляеми, и разбирането й е от съществено значение за всеки, проектиращ on-premise AI стек.
Какво всъщност прави квантизацията
Невронна мрежа е в крайна сметка много голяма колекция от числа — теглата, научени по времe на обучението. По подразбиране тези тегла се съхраняват като 32-битови числа с плаваща запетая (FP32), всяко заемащо 4 байта памет. Квантизацията замества числата с висока точност с представяния с по-ниска точност: 16-битови числа с плаваща запетая (FP16 или BF16), 8-битови цели числа (INT8) или дори 4-битови цели числа (INT4). Отпечатъкът в паметта намалява пропорционално и на хардуер с родна поддръжка за аритметика с по-ниска точност, извеждането също се ускорява.
- FP16 / BF16 — числа с плаваща запетая с половин точност. Практически без загуби за повечето задачи; предпочитан избор за производствени разгръщания, при които точността е критична. Икономия на памет: 2x спрямо FP32.
- INT8 — 8-битови цели числа, обикновено произведени от методи за квантизация след обучение (PTQ) като GPTQ или llm.int8(). Умерена деградация на качеството при сложно разсъждение; незначителна при повечето практически задачи. Икономия на памет: 4x спрямо FP32.
- INT4 — 4-битови цели числа, фронтирът на агресивна квантизация. Инструменти като GGUF Q4_K_M и AWQ доставят изненадващо добро качество за своя размер. Икономия на памет: 8x спрямо FP32 с приемлива деградация за натоварвания за чат и обобщаване.
Компромисът между качество и размер
Квантизацията не е безплатна. Всеки бит, отстранен, е отхвърлена информация и в даден момент това се появява като влошен изход — халюцинации, грешки в разсъждението или загуба на нюанс. Практическото заключение от разгръщанията на Privonis е, че компромисът е изненадващо благоприятен за повечето корпоративни задачи. Модел 70B, квантизиран до INT4, обикновено превъзхожда модел 13B при FP16, дори и двата да се побират в подобна GPU памет. При съмнение, използвайте най-големия модел, побиращ се при най-висока точност, поддържана от вашия хардуер.
Изборът на правилна квантизация е по-малко за броя на битовете и повече за съчетаването на капацитета на модела с задачата: добре избран INT4 70B превъзхожда небрежен FP16 13B всеки път.
Сървъри за извеждане: откъде идва пропускателната способност
Изпълнението на квантизиран модел е само половината от историята. Ефективното му обслужване при едновременно натоварване изисква сървър за извеждане, разбиращ структурата на трансформерното внимание. Доминиращата опция с отворен код днес е vLLM, въвел PagedAttention — техника за управление на паметта, заимствана от виртуалната памет на операционни системи, позволяваща на сървъра да пресплита много запитвания едновременно без разхищаване на GPU памет в предварително разпределени KV-кеш блокове. Практическият ефект е 10–30x подобрение на пропускателната способност спрямо наивен единичен цикъл на запитване.
Други забележителни опции включват llama.cpp (приятен за CPU, отличен за по-малки модели на обикновен хардуер), Ollama (удобен за разработчик обвивател около llama.cpp), TGI от Hugging Face (силна поддръжка за формати на модели от Hugging Face) и TensorRT-LLM от NVIDIA (най-висока пропускателна способност на хардуер на NVIDIA, при по-сложен тръбопровод за компилация). Privonis оценява и сравнява всички тях за всяка клиентска конфигурация.
Партидиране и пропускателна способност
GPU-тата постигат пикова ефективност при обработка на много операции едновременно — за това са проектирани. Непрекъснатото партидиране (известно още като динамично партидиране или планиране на ниво итерация) позволява на сървъра за извеждане да групира токени от множество едновременни запитвания в едно единично извикване на GPU ядро, драматично подобрявайки използването. Без партидиране едно потребителско запитване може да използва 5% от GPU капацитета; с непрекъснато партидиране можете да натискате използването до 70–80% при реални модели на трафик. За предприятие с десетки едновременни потребители, разликата между сървър, съобразен с партидирането и наивен, може да означава разликата между нужда от един GPU сървър или четири.
Избор на правилна квантизация за вашия GPU
Дървото за решения е по-просто, отколкото изглежда. Започнете с вашия бюджет за GPU памет, извадете пространство за OS и сървъра за извеждане (обикновено 4–8 GB), след което намерете най-големия модел, побиращ се при най-высокото ниво на точност. Няколко практически референтни точки:
- 24 GB VRAM (напр. RTX 4090, A5000) — удобно изпълнява модел 13B при FP16 или модел 34B при INT4.
- 48 GB VRAM (напр. RTX 6000 Ada, A6000) — изпълнява модел 34B при FP16 или модел 70B при INT4.
- 2 × 80 GB (напр. двойка A100 чрез NVLink) — изпълнява модел 70B при FP16 или модел 140B при INT4 с тензорен паралелизъм.
- Само CPU (без GPU) — llama.cpp с Q4_K_M модел 7B или 13B е приложим за инструментация на разработчика с ниска едновременност; очаквайте 5–15 токена/сек.
Обединяване с Privonis
Изборът на формат на квантизация и сървър за извеждане е инженерна работа, изискваща профилиране на конкретния ви хардуер с конкретното ви натоварване. Privonis управлява това бенчмаркиране като част от всяко разгръщане: изпълняваме тестове за пропускателна способност, измерваме качеството на изхода върху представителна извадка от вашите реални промпти и доставяме конфигурация, максимизираща производителността в рамките на вашия хардуерен бюджет. Резултатът е производствен стек за извеждане, управляем от вашия екип без специалист ML инженер на повикване. Ако сте готови да изследвате какво отговаря на вашата среда, нашият екип с удоволствие ще направи числата заедно с вас.
Нека поговорим за вашия AI проект
Запазете разговор