llama.cpp — проєкт з відкритим вихідним кодом для швидкого та ефективного запуску великих мовних моделей (LLM), написаний на чистому C/C++ без використання зовнішніх залежностей. Головною метою проєкту є досягнення найвищої продуктивності запуску моделей з мінімальними налаштуваннями на широкому спектрі апаратного забезпечення — як локально, так і у хмарному середовищі. Проєкт започаткував розробник Георгі Герганов у березні 2023 року..

Збірка та встановлення llama.cpp можна встановити за допомогою готових бінарних файлів, через Docker-контейнери, менеджери пакетів (brew, nix, winget) або зібрати з вихідного коду. Основним інструментом збірки виступає CMake.

GGUF і квантування llama.cpp переважно використовує моделі у форматі GGUF — двійковому форматі, у якому зберігаються тензори моделі разом із метаданими.

Важливою можливістю є квантування — подання ваг моделі числами меншої точності. Наприклад, замість 16 бітів на вагу можуть використовуватися приблизно 8, 6, 5 або 4 біти. Таким чином, зменшується розмір файлу й потреба в пам’яті, часто ціною певного зниження точності відповідей. Завдяки цьому деякі моделі, які в початковому вигляді не поміщаються в пам’ять звичайного комп’ютера, стають придатними для локального запуску.

Екосистема та інструменти Разом із основною бібліотекою постачається декілька пов'язаних інструментів:

llama-cli — утиліта командного рядка для експериментів з моделями. Підтримує режим діалогу, роботу з кастомними шаблонами та генерацію тексту із суворими обмеженнями формату за допомогою граматик (наприклад, генерація чистого JSON). llama-server — легкий HTTP-сервер, сумісний з OpenAI API та Anthropic Messages API. Сервер має багатокористувацьку підтримку, здійснює паралельне декодування, безперервне пакетування (continuous batching), спекулятивне декодування та містить вбудований вебінтерфейс (Web UI). Також підтримується виклик зовнішніх інструментів (function calling / tool use). llama-bench — інструмент для бенчмаркінгу — вимірювання продуктивності моделі за різних параметрів. llama-perplexity — утиліта для оцінки якості згенерованого тексту та моделі, що вимірює перплексію і дивергенцію Кульбака-Лейблера (KL divergence).

Примітки