Развёртывание Open LLMs с помощью LLAMA-CPP Server: пошаговое руководство
Развертывание Open LLMs с помощью LLAMA-CPP Server: пошаговое руководство. Узнайте, как установить и настроить сервер LLAMA-CPP для обслуживания открытых языковых моделей, делая запросы через cURL, клиент OpenAI и пакет Python's requests. Оптимизируйте для локального и удаленного развертывания.
15 февраля 2025 г.

Раскройте силу открытых крупномасштабных языковых моделей (LLM) с помощью этого всеобъемлющего руководства по развертыванию сервера LLAMA-CPP. Узнайте, как эффективно обслуживать нескольких пользователей с помощью одной LLM, оптимизируя производительность и доступность для ваших приложений, работающих на базе ИИ.
Установка LLAMA-CPP
Запуск сервера LLAMA-CPP
Отправка запросов на сервер LLAMA-CPP
Настройка сервера LLAMA-CPP
Взаимодействие с сервером LLAMA-CPP с использованием различных методов
Заключение
Установка LLAMA-CPP
Установка LLAMA-CPP
Самый простой способ начать работу с LLAMA-CPP - использовать менеджер пакетов Homebrew для его установки. Это будет работать нативно как на macOS, так и на Linux-машинах. Для установки LLAMA-CPP на Windows-машине вам потребуется использовать Windows Subsystem for Linux (WSL).
Чтобы установить LLAMA-CPP с помощью Homebrew, выполните следующую команду в терминале:
brew install llama-cpp
Эта команда загрузит и установит пакет LLAMA-CPP на вашу систему. После завершения установки вы можете начать использовать команду llama-server
для запуска ваших моделей LLM.
Запуск сервера LLAMA-CPP
Запуск сервера LLAMA-CPP
Чтобы запустить сервер LLAMA-CPP, выполните следующие шаги:
-
Установите LLAMA-CPP с помощью менеджера пакетов Homebrew:
brew install llama.cpp
Эта команда установит LLAMA-CPP на ваш Mac или Linux-машину. Для пользователей Windows вам потребуется использовать WSL (Windows Subsystem for Linux) для установки LLAMA-CPP.
-
Запустите сервер LLAMA-CPP, выполнив следующую команду:
llama-server --model <hugging-face-repo-id> --model-file <quantization-file>
Замените
<hugging-face-repo-id>
на идентификатор репозитория Hugging Face для модели, которую вы хотите запустить, и<quantization-file>
на конкретный файл квантования, который вы хотите использовать (например, 4-битную квантованную версию в формате GGML). -
Сервер LLAMA-CPP будет прослушивать входящие запросы на
localhost:8080
по умолчанию. Вы можете настроить адрес хоста и порт, используя доступные параметры, такие как--host
и--port
. -
Сервер поддерживает различные параметры конфигурации, включая установку максимального размера контекстного окна, размера пакета и многое другое. Вы можете изучить эти параметры, выполнив
llama-server --help
. -
После запуска сервера вы можете взаимодействовать с ним, используя различные методы, такие как cURL, клиент OpenAI или пакет Python
requests
, как показано в предыдущих разделах.
Отправка запросов на сервер LLAMA-CPP
Отправка запросов на сервер LLAMA-CPP
Существует несколько способов взаимодействия с сервером LLAMA-CPP и отправки запросов к обслуживаемой модели:
-
Использование команды cURL:
curl -X POST -H "Content-Type: application/json" -d '{"prompt": "Hello, how are you?", "max_tokens": 50}' http://localhost:8080/v1/chat/completions
Это отправит POST-запрос к конечной точке завершения чата, работающей на локальном хосте на порту 8080.
-
Использование клиента OpenAI:
import openai openai.api_base = "http://localhost:8080/v1" openai.Model.list() response = openai.ChatCompletion.create( model="chat-gpt-3.5", messages=[ {"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": "Hello, how are you?"} ] ) print(response.choices[0].message.content)
Это использует клиент OpenAI для взаимодействия с сервером LLAMA-CPP, который совместим с API OpenAI.
-
Использование пакета Python Requests:
import requests url = "http://localhost:8080/v1/chat/completions" headers = {"Content-Type": "application/json"} data = { "prompt": "Hello, how are you?", "max_tokens": 50 } response = requests.post(url, headers=headers, json=data) print(response.json())
Это использует пакет Python Requests для отправки POST-запроса к конечной точке завершения чата.
Настройка сервера LLAMA-CPP
Настройка сервера LLAMA-CPP
LLAMA-CPP предоставляет высоко настраиваемый сервер, который позволяет вам настраивать поведение вашего развертывания LLM. Вот некоторые ключевые параметры, которые вы можете настроить:
-
Максимальное контекстное окно: Вы можете определить максимальный размер контекстного окна для LLM, который определяет максимальную длину входной последовательности, которую может обрабатывать модель.
-
Размер пакета: LLAMA-CPP поддерживает пакетную обработку запросов, позволяя вам одновременно обрабатывать несколько входных данных для повышения пропускной способности. Вы можете настроить размер пакета для оптимизации производительности.
-
Адрес хоста: По умолчанию сервер LLAMA-CPP прослушивает на
localhost
, но вы можете изменить адрес хоста, чтобы сделать сервер доступным с других машин в вашей сети. -
Порт: Сервер прослушивает на порту
8080
по умолчанию, но вы можете указать другой порт, если необходимо. -
Путь к модели: LLAMA-CPP позволяет вам настраивать путь, откуда он загружает файлы модели LLM, предоставляя вам гибкость в организации ваших модельных активов.
-
Модели встраивания: Помимо языковых моделей, LLAMA-CPP также может обслуживать модели встраивания, позволяя вам интегрировать как генерацию текста, так и возможности кодирования текста в ваши приложения.
-
Отслеживание метрик: Сервер LLAMA-CPP может отслеживать различные метрики, такие как задержка запроса и пропускная способность, чтобы помочь вам контролировать и оптимизировать производительность вашего развертывания.
Взаимодействие с сервером LLAMA-CPP с использованием различных методов
Взаимодействие с сервером LLAMA-CPP с использованием различных методов
Чтобы взаимодействовать с сервером LLAMA-CPP, мы можем использовать различные методы:
-
Использование команды cURL:
- Отправьте POST-запрос к конечной точке "завершение чата", работающей на
localhost
. - Предоставьте необходимые заголовки и объект данных, содержащий запрос и желаемое количество токенов для генерации.
- Ответ будет включать сгенерированный текст, а также информацию о процессе генерации, такую как температура, top-P, top-K и прогнозируемая скорость токенов в секунду.
- Отправьте POST-запрос к конечной точке "завершение чата", работающей на
-
Использование клиента OpenAI:
- Создайте клиент OpenAI с базовым URL-адресом, установленным на URL локального сервера LLAMA-CPP.
- Используйте клиент конечной точки завершения чата и укажите название модели (например,
chat-gpt-3.5
). - Установите системную подсказку и пользовательскую подсказку, затем отправьте запрос на сервер.
- Ответ будет возвращен в том же формате, что и API OpenAI.
-
Использование пакета Requests (Python):
- Определите URL и заголовки для POST-запроса.
- Передайте несколько разных сообщений на сервер и наблюдайте, как он обрабатывает запросы параллельно.
- Сервер будет ставить запросы в очередь и обрабатывать их по одному, не перегружаясь.
Заключение
Заключение
В этом видео мы исследовали установку и использование LlamaCPP, мощного открытого проекта для обслуживания открытых больших языковых моделей. Мы узнали, как установить LlamaCPP на нашу локальную машину, запустить сервер и взаимодействовать с ним, используя различные методы, включая cURL, клиент OpenAI и пакет Python requests.
Мы также обсудили различные параметры конфигурации, доступные в LlamaCPP, позволяющие нам настраивать сервер под наши конкретные потребности, такие как установка максимального контекстного окна, размера пакета и адреса хоста. Кроме того, мы увидели, как LlamaCPP может отслеживать метрики, что делает его подходящим выбором для производственных сред.
Наконец, мы затронули практические применения LlamaCPP, особенно в контексте развертывания больших языковых моделей для различных вариантов использования. Мы упомянули фреймворк Rasa как потенциальное применение и предоставили ссылку на соответствующий курс в описании видео.
В целом, это видео предоставило всестороннее введение в LlamaCPP и его возможности, оснастив вас знаниями, необходимыми для начала обслуживания открытых больших языковых моделей на вашей локальной машине или в производственной среде.
Часто задаваемые вопросы
Часто задаваемые вопросы

