{/ Эта страница автоматически передается из навыков SKILL.md с помощью сайта/scripts/generate-skill-docs.py. Редактируйте исходный SKILL.md, а не эту страницу. /}

Лама Cpp

llama.cpp локальный GGUF-вывод + поиск моделей на HF Hub.

Метаданные навыки

Источник Встроенный (устанавливается по умолчанию)
Путь skills/mlops/inference/llama-cpp
Версия 2.1.2
Автор Исследование оркестра
Лицензия Массачусетский технологический институт
Зависимости 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 GPU, NVIDIA, URL-first

Справочник: полный SKILL.md:::информация

Ниже приведено полное описание навыка, который Hermes загружает при активации этого навыка. Это то, что агент видит в качестве инструкций, когда навыки активны.

llama.cpp + GGUF

Используйте этот навык для локального GGUF-вывода, выбрав квантизацию или найдя репозитория Hugging Face для llama.cpp.

Когда использовать

Рабочий процесс поиска моделей

Предпочитайте URL-рабочие процессы перед запросами hf, Python или клиентских скриптов.

  1. Поиск кандидатов в репозиториях на Hub:
  2. Базовый: https://huggingface.co/models?apps=llama.cpp&sort=trending
  3. Добавьте search=<term> для поддерживаемых моделей.
  4. Добавьте num_parameters=min:0,max:24B или таблицу, если у пользователя есть ограничения по размеру.
  5. Откройте репозиторий с представлением локального приложения llama.cpp:
  6. https://huggingface.co/<repo>?local-app=llama.cpp
  7. Прочитайте фрагмент local-app, когда он увидел:
  8. скопируйте точную команду llama-server или llama-cli
  9. объявляет рекомендуемую квантизацию именно так, как показывает HF
  10. Прочитайте тот же URL ?local-app=llama.cpp как текст страницы или HTML и извлеките раздел под названием Аппаратная совместимость:
  11. предпочитайте его точные метки квантования и размеры по общим таблицам
  12. сохраняйте специальные метки для репозитория, такие как UD-Q4_K_M или IQ4_NL_XL
  13. если этот раздел не виден в загруженном исходном коде страницы, сообщите об этом и вернитесь к API дерева плюс общие рекомендации по квантизации.
  14. Запросите API дерева, чтобы проверить, что действительно существует:
  15. https://huggingface.co/api/models/<repo>/tree/main?recursive=true
  16. обратите внимание, где type равен file и path заканчивается на .gguf
  17. «путь» и «размер» как источник истины для файлов и размеров в байтах.
  18. отделите квантованные контрольные точки из файлов проекта mmproj-*.gguf и шардовых файлов BF16/
  19. воспользуйтесь https://huggingface.co/<repo>/tree/main только как запасной вариант для человека
  20. Если фрагмент local-app не виден как текст, выполните команду репозитория плюс выбранную квантизацию:
  21. сокращённый выбор квантизации: llama-server -hf <repo>:<QUANT>
  22. запасной вариант с лучшим файлом: llama-server --hf-repo <repo> --hf-file <filename.gguf>
  23. Предлагайте конвертацию из весов 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

Используйте это, когда дерево API показывает пользовательские имена файлов или фрагмент HF 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": "Напишите лимерик об исключениях в 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, затем общие эвристики.

Извлечение доступного GGUF из репозитория

Когда пользователь спрашивает, какие GGUF существуют, возвращайте:

Игнорируйте, если не запрошено:

Используйте для этого API дерева шагов:

Для репозитория типа unsloth/Qwen3.6-35B-A3B-GGUF страница local-app может показывать чипы квантизации, такие как UD-Q4_K_M, UD-Q5_K_M, UD-Q6_K и Q8_0, в то время как API дерева обеспечивает точные пути к файлам, такие как Qwen3.6-35B-A3B-UD-Q4_K_M.gguf и Qwen3.6-35B-A3B-Q8_0.gguf с размерами в байтах. Используйте 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:
- <local-app URL>
- <tree API URL>

Ссылки

Ресурсы