Llama Cpp
Локальный инференс GGUF через llama.cpp с поиском моделей на HF Hub.
Метаданные навыка
| Источник | Встроенный (установлен по умолчанию) |
| Путь | skills/mlops/inference/llama-cpp |
| Версия | 2.1.2 |
| Автор | Orchestra Research |
| Лицензия | MIT |
| Зависимости | llama-cpp-python>=0.2.0 |
| Платформы | linux, macos, windows |
| Теги | llama.cpp, GGUF, Quantization, Hugging Face Hub, CPU Inference, Apple Silicon, Edge Deployment, AMD GPUs, Intel GPUs, NVIDIA, URL-first |
Справочник: полный SKILL.md
Ниже — полное определение навыка, которое Hermes Agent загружает при его активации. Именно это видит агент в качестве инструкций, когда навык включён.
llama.cpp + GGUF
Используй этот навык для локального инференса GGUF, выбора квантизации или поиска репозиториев Hugging Face для llama.cpp.
Когда использовать
- Запустить локальные модели на CPU, Apple Silicon, CUDA, ROCm или Intel GPU
- Найти подходящий GGUF для конкретного репозитория на Hugging Face
- Собрать команду
llama-serverилиllama-cliпо данным из Hub - Найти на Hub модели с поддержкой llama.cpp
- Перечислить доступные
.gguf-файлы и их размеры для репозитория - Выбрать между вариантами Q4/Q5/Q6/IQ под объём RAM или VRAM пользователя
Процесс поиска модели
Предпочитай URL-сценарии, прежде чем прибегать к hf, Python или собственным скриптам.
- Ищи кандидатов на Hub:
- Базовый:
https://huggingface.co/models?apps=llama.cpp&sort=trending - Добавь
search=<term>для конкретного семейства моделей - Добавь
num_parameters=min:0,max:24Bили аналогичный фильтр, если у пользователя есть ограничения по размеру
- Базовый:
- Открой репозиторий с видом локального приложения llama.cpp:
https://huggingface.co/<repo>?local-app=llama.cpp
- Если сниппет local-app виден — считай его источником истины:
- копируй точную команду
llama-serverилиllama-cli - передавай рекомендованный квант именно в том виде, как его показывает HF
- копируй точную команду
- Читай тот же URL
?local-app=llama.cppкак текст страницы или HTML и извлекай разделHardware compatibility:- предпочитай точные метки квантов и размеры из него, а не из обобщённых таблиц
- сохраняй специфичные для репозитория метки вроде
UD-Q4_K_MилиIQ4_NL_XL - если раздел не виден в источнике страницы — скажи об этом и переключись на tree API плюс общие рекомендации по квантам
- Запроси tree API, чтобы убедиться в наличии файлов:
https://huggingface.co/api/models/<repo>/tree/main?recursive=true- оставляй записи, где
typeравноfile, аpathзаканчивается на.gguf pathиsize— источник истины для имён файлов и размеров в байтах- разделяй квантизированные чекпоинты, файлы-проекторы
mmproj-*.ggufи шардыBF16/ https://huggingface.co/<repo>/tree/mainиспользуй только как запасной вариант для человека
- Если сниппет local-app не отображается текстом, восстанови команду из репозитория и выбранного кванта:
- сокращённый выбор кванта:
llama-server -hf <repo>:<QUANT> - запасной вариант с точным файлом:
llama-server --hf-repo <repo> --hf-file <filename.gguf>
- сокращённый выбор кванта:
- Предлагай конвертацию из весов Transformers только если в репозитории вообще нет GGUF-файлов.
Быстрый старт
Установка llama.cpp
# macOS / Linux (самый простой способ)
brew install llama.cpp
winget install llama.cpp
git clone https://github.com/ggml-org/llama.cpp
cd llama.cpp
cmake -B build
cmake --build build --config Release
Запуск прямо из Hugging Face Hub
llama-cli -hf bartowski/Llama-3.2-3B-Instruct-GGUF:Q8_0
llama-server -hf bartowski/Llama-3.2-3B-Instruct-GGUF:Q8_0
Запуск конкретного GGUF-файла из Hub
Используй этот вариант, когда tree API показывает нестандартные имена файлов или точный сниппет HF недоступен.
llama-server \
--hf-repo microsoft/Phi-3-mini-4k-instruct-gguf \
--hf-file Phi-3-mini-4k-instruct-q4.gguf \
-c 4096
Проверка OpenAI-совместимого сервера
curl http://localhost:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"messages": [
{"role": "user", "content": "Write a limerick about Python exceptions"}
]
}'
Python-биндинги (llama-cpp-python)
pip install llama-cpp-python (CUDA: CMAKE_ARGS="-DGGML_CUDA=on" pip install llama-cpp-python --force-reinstall --no-cache-dir; Metal: CMAKE_ARGS="-DGGML_METAL=on" ...).
Базовая генерация
from llama_cpp import Llama
llm = Llama(
model_path="./model-q4_k_m.gguf",
n_ctx=4096,
n_gpu_layers=35, # 0 для CPU, 99 чтобы выгрузить всё на GPU
n_threads=8,
)
out = llm("What is machine learning?", max_tokens=256, temperature=0.7)
print(out["choices"][0]["text"])
Чат и стриминг
llm = Llama(
model_path="./model-q4_k_m.gguf",
n_ctx=4096,
n_gpu_layers=35,
chat_format="llama-3", # or "chatml", "mistral", etc.
)
resp = llm.create_chat_completion(
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "What is Python?"},
],
max_tokens=256,
)
print(resp["choices"][0]["message"]["content"])
# Streaming
for chunk in llm("Explain quantum computing:", max_tokens=256, stream=True):
print(chunk["choices"][0]["text"], end="", flush=True)
Эмбеддинги
llm = Llama(model_path="./model-q4_k_m.gguf", embedding=True, n_gpu_layers=35)
vec = llm.embed("This is a test sentence.")
print(f"Embedding dimension: {len(vec)}")
GGUF можно загрузить напрямую с Hub:
llm = Llama.from_pretrained(
repo_id="bartowski/Llama-3.2-3B-Instruct-GGUF",
filename="*Q4_K_M.gguf",
n_gpu_layers=35,
)
Выбор кванта
Сначала смотри страницу Hub, потом применяй общие эвристики.
- Предпочитай квант, который HF отмечает как совместимый с железом пользователя.
- Для обычного чата начинай с
Q4_K_M. - Для кода или технических задач бери
Q5_K_MилиQ6_K, если память позволяет. - При жёстком лимите RAM рассматривай
Q3_K_M, вариантыIQилиQ2— но только если пользователь явно ставит экономию памяти выше качества. - Для мультимодальных репозиториев отдельно упоминай
mmproj-*.gguf. Проектор — не основной файл модели. - Не нормализуй метки, специфичные для репозитория. Если страница показывает
UD-Q4_K_M— так и пишиUD-Q4_K_M.
Извлечение доступных GGUF из репозитория
Когда пользователь спрашивает, какие GGUF есть, возвращай:
- имя файла
- размер файла
- метку кванта
- является ли файл основной моделью или вспомогательным проектором
Игнорируй (если не запрошено):
- README
- шарды BF16
- imatrix-блобы и артефакты калибровки
Используй tree API для этого шага:
https://huggingface.co/api/models/<repo>/tree/main?recursive=true
Для репозитория вроде unsloth/Qwen3.6-35B-A3B-GGUF страница local-app может показывать метки квантов — UD-Q4_K_M, UD-Q5_K_M, UD-Q6_K, Q8_0, — а tree API выдаёт точные пути файлов: Qwen3.6-35B-A3B-UD-Q4_K_M.gguf, Qwen3.6-35B-A3B-Q8_0.gguf с размерами в байтах. Используй tree API, чтобы по метке кванта получить точное имя файла.
Паттерны поиска
Используй эти URL напрямую:
https://huggingface.co/models?apps=llama.cpp&sort=trending
https://huggingface.co/models?search=<term>&apps=llama.cpp&sort=trending
https://huggingface.co/models?search=<term>&apps=llama.cpp&num_parameters=min:0,max:24B&sort=trending
https://huggingface.co/<repo>?local-app=llama.cpp
https://huggingface.co/api/models/<repo>/tree/main?recursive=true
https://huggingface.co/<repo>/tree/main
Формат вывода
Отвечая на запросы поиска, предпочитай компактный структурированный результат:
Repo: <repo>
Recommended quant from HF: <label> (<size>)
llama-server: <command>
Other GGUFs:
- <filename> - <size>
- <filename> - <size>
Source URLs:
- <local-app URL>
- <tree API URL>
Ссылки
- hub-discovery.md - URL-сценарии для Hugging Face, паттерны поиска, извлечение GGUF и восстановление команд
- advanced-usage.md — спекулятивное декодирование, пакетный инференс, генерация с грамматическими ограничениями, LoRA, мульти-GPU, кастомные сборки, скрипты бенчмарков
- quantization.md — компромиссы качества квантизации, когда использовать Q4/Q5/Q6/IQ, масштабирование размера модели, imatrix
- server.md — запуск сервера прямо с Hub, эндпоинты OpenAI API, развёртывание в Docker, балансировка нагрузки через NGINX, мониторинг
- optimization.md — потоки CPU, BLAS, эвристики для выгрузки на GPU, настройка батчей, бенчмарки
- troubleshooting.md — проблемы при установке, конвертации, квантизации, инференсе и работе сервера; Apple Silicon; отладка
Ресурсы
- GitHub: https://github.com/ggml-org/llama.cpp
- Hugging Face GGUF + llama.cpp docs: https://huggingface.co/docs/hub/gguf-llamacpp
- Hugging Face Local Apps docs: https://huggingface.co/docs/hub/main/local-apps
- Hugging Face Local Agents docs: https://huggingface.co/docs/hub/agents-local
- Пример страницы local-app: https://huggingface.co/unsloth/Qwen3.6-35B-A3B-GGUF?local-app=llama.cpp
- Пример tree API: https://huggingface.co/api/models/unsloth/Qwen3.6-35B-A3B-GGUF/tree/main?recursive=true
- Пример поиска llama.cpp: https://huggingface.co/models?num_parameters=min:0,max:24B&apps=llama.cpp&sort=trending
- Лицензия: MIT