Какво е VRAM и защо е важно за LLM?

VRAM (Video Random Access Memory) е специализираната памет на вашата графична карта, използвана за съхранение на данни за GPU изчисления. При локално изпълнение на Large Language Models (LLM), всички тегла на модела трябва да се поместят в VRAM за ефективно заключаване. За разлика от системната RAM, VRAM осигурява високата честотна лента, необходима за паралелните изчисления, които правят LLM функционални.

Изчерпването на VRAM принуждава системата да обменя данни между GPU памет и системна RAM, което драматично забавя генерирането на текст. В много случаи, ако модел не се поместя в VRAM, той просто няма да работи. Това прави изчисляването на VRAM изискванията съществено преди изтегляне или опит за изпълнение на всеки локален LLM.

Как се изчислява VRAM за LLM?

VRAM използването за LLM се състои от три основни компонента:

  1. Тегла на модела: Основните параметри на невронната мрежа. Модел с 7B параметра при FP16 (16-bit) използва приблизително 14 GB, докато същия модел квантизиран до 4-bit използва само ~4 GB.

  2. KV Cache: По време на генериране на текст, моделът съхранява двойки ключ-стойност от предишни токени. Този cache расте с дължината на контекста и може да консумира няколко гигабайта за дълги разговори.

  3. Допълнителни разходи: CUDA ядра, активационни тензори и framework разходи обикновено добавят 10-15% към базовите изисквания.

Формулата за размер на модела е: (Параметри × Битове на тегло) ÷ 8 = Размер в байтове

Описание на инструмента

Този калкулатор оценява VRAM, необходимия за локално изпълнение на Large Language Model на вашия GPU. Въведете броя параметри на вашия модел, изберете формат на квантизация и посочете наличния VRAM, за да видите незабавно дали моделът ще се поместя и каква дължина на контекста можете да поддържате.

Инструментът поддържа всички често използвани формати на квантизация от llama.cpp, включително GGUF Q2 до Q8 варианти, както и стандартна FP16 и FP32 прецизност. Той също така изчислява максималната дължина на контекста, която вашия GPU може да обработи, дадена неговата VRAM капацитет.

Функции

  • 20+ формати на квантизация: Пълна поддръжка за GGUF типове квантизация (Q2_K до Q8_0), i-quants (IQ2-IQ4) и стандартни прецизности (FP16, FP32, BF16)
  • Предварително зададени популярни модели: Бързо избиране за често използвани размери на модели от 1B до 405B параметра, включително Llama 3, Mistral, Qwen и Phi модели
  • Предварително зададени GPU: Предконфигурирани VRAM количества за популярни потребителски и професионални GPU от GTX 1650 до H100

Поддържани формати на квантизация

Формат Битове/Тегло Най-добро за
FP32 32.0 Максимална прецизност, изследвания
FP16/BF16 16.0 Обучение, висококачествено заключаване
Q8_0 8.5 Почти безстратегийно качество
Q6_K 6.56 Високо качество с добра компресия
Q5_K_M 5.69 Балансирано качество и размер
Q4_K_M 4.85 Популярен избор за потребителски GPU
Q4_0 4.5 Добра компресия, лека загуба на качество
Q3_K_M 3.65 Агресивна компресия
Q2_K 2.63 Максимална компресия, забележима загуба
IQ4_XS 4.25 Оптимизиран 4-bit с тегла на важност
IQ3_XXS 3.06 Експериментален ултра-нисък бит
IQ2_XXS 2.06 Екстремна компресия

Как работи

Калкулаторът използва тези формули:

Размер на модела (GB) = (Параметри в милиарди × 10⁹ × битове на тегло) ÷ 8 ÷ 10⁹

KV Cache (GB) ≈ (Параметри × Дължина на контекста ÷ 1000 × 0.5) ÷ 1000

Общо VRAM = Размер на модела + KV Cache + 10% разходи

Формулата за KV cache е опростено приближение. Действителният размер на KV cache зависи от архитектурата на модела (брой слоеве, глави на внимание и размери на главите), но тази оценка работи добре за повечето трансформер-базирани LLM.

Съвети

  • Започнете с Q4_K_M: Тази квантизация предлага най-добрия баланс на качество и размер за повечето случаи на употреба
  • Оставете място: Целете 1-2 GB свободна VRAM, за да избегнете грешки при недостатък на памет по време на по-дълги генерирания
  • Помислете за нужди на контекста: Ако имате нужда от дълъг контекст (8K+), може да трябва да използвате по-агресивна квантизация
  • Множество GPU: За мултипроцесорни GPU конфигурации, често можете да разделите модели между карти, но този калкулатор предполага еднопроцесорна употреба

Ограничения

  • Оценките на KV cache са приближения, базирани на типични трансформер архитектури
  • Действителното VRAM използване варира в зависимост от framework за заключаване (llama.cpp, vLLM, TensorRT-LLM)
  • Не отчита разходи на пакетно заключаване или спекулативно декодиране
  • Flash Attention и други оптимизации могат да намалят действителните изисквания
  • Някои модели имат нестандартни архитектури, които могат да използват повече или по-малко памет

Често задавани въпроси

В: Защо моят модел използва повече VRAM, отколкото е изчислено? О: Калкулаторът предоставя базови оценки. Framework за заключаване добавят свои собствени разходи, и някои операции изискват временни буфери, които увеличават пиковото използване.

В: Мога ли да изпълня модели, по-големи от моя VRAM, използвайки CPU разтоварване? О: Да, инструменти като llama.cpp поддържат частично GPU разтоварване, но производителността пада значително. Този калкулатор се фокусира на пълно GPU заключаване.

В: Коя квантизация трябва да използвам? О: За повечето потребители, Q4_K_M предлага отлично качество с ~4.85 битове на тегло. Ако имате VRAM за резерва, Q5_K_M или Q6_K осигуряват маргинално по-добро качество. Използвайте Q2/Q3 формати само ако е абсолютно необходимо.

В: Колко точни са тези оценки? О: В рамките на 10-20% за повечето често използвани модели. Действителното използване зависи от специфичната архитектура на модела, backend за заключаване и настройки на времето на изпълнение.