Llama Cpp
Локальный инференс GGUF через llama.cpp + поиск моделей на Hugging Face 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
Ниже приведено полное описание навыка, которое VibeOS загружает при его активации. Агент видит эти инструкции, когда навык активен.
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
- Считайте сниппет локального приложения источником истины, если он виден:
- скопируйте точную команду
llama-serverилиllama-cli - сообщите рекомендуемый квантизатор в точности так, как его показывает Hugging Face
- скопируйте точную команду
- Прочитайте ту же страницу
?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только как запасной вариант для человека
- Если сниппет локального приложения не виден как текст, восстановите команду из репозитория и выбранного квантизатора:
- сокращённый выбор квантизатора:
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 показывает нестандартные имена файлов или точный сниппет Hugging Face отсутствует.
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": "Напишите лимерик об исключениях в Python"}
]
}'
Привязки 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 для выгрузки всего
n_threads=8,
)
out = llm("Что такое машинное обучение?", 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", # или "chatml", "mistral" и т.д.
)
resp = llm.create_chat_completion(
messages=[
{"role": "system", "content": "Вы — полезный ассистент."},
{"role": "user", "content": "Что такое Python?"},
],
max_tokens=256,
)
print(resp["choices"][0]["message"]["content"])
# Стриминг
for chunk in llm("Объясните квантовые вычисления:", 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("Это тестовое предложение.")
print(f"Размерность эмбеддинга: {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, затем — общие эвристики.
- Отдавайте предпочтение точному квантизатору, который Hugging Face помечает как совместимый с профилем оборудования пользователя.
- Для обычного чата начинайте с
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, страница локального приложения может показывать чипы квантизаторов, такие как 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>
Рекомендуемый квантизатор от HF: <label> (<size>)
llama-server: <command>
Другие GGUF:
- <filename> - <size>
- <filename> - <size>
URL-источники:
- <URL локального приложения>
- <URL tree API>
Ссылки
hub-discovery.md— URL-ориентированные процессы работы с Hugging Face, шаблоны поиска, извлечение GGUF и восстановление командadvanced-usage.md— спекулятивное декодирование, пакетный инференс, грамматически ограниченная генерация, LoRA, multi-GPU, пользовательские сборки, скрипты бенчмарковquantization.md— компромиссы качества квантизации, когда использовать Q4/Q5/Q6/IQ, масштабирование размера модели, imatrixserver.md— запуск сервера напрямую с Hub, конечные точки API OpenAI, развёртывание в Docker, балансировка нагрузки NGINX, мониторингoptimization.md— многопоточность CPU, BLAS, эвристики выгрузки на GPU, настройка пакетов, бенчмаркиtroubleshooting.md— проблемы установки/конвертации/квантизации/инференса/сервера, Apple Silicon, отладка
Ресурсы
- GitHub: https://github.com/ggml-org/llama.cpp
- Документация Hugging Face GGUF + llama.cpp: https://huggingface.co/docs/hub/gguf-llamacpp
- Документация Hugging Face Local Apps: https://huggingface.co/docs/hub/main/local-apps
- Документация Hugging Face Local Agents: https://huggingface.co/docs/hub/agents-local
- Пример страницы локального приложения: 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