vllm-mlx: высокопроизводительный сервер для языковых моделей на Mac
vllm-mlx — высокопроизводительный сервер для вывода LLM, совместимый с OpenAI и Anthropic, оптимизированный для Apple Silicon.
Проект нацелен на разработчиков, которые хотят использовать возможности крупных языковых моделей на Mac с чипами Apple. Он выделяется поддержкой непрерывной пакетной обработки, кэширования и контакта с несколькими моделями в одном процессе, что может значительно улучшить производительность по сравнению с альтернативами вроде Ollama или mlx-lm. Здесь ты получаешь полное окружение для работы с текстом, изображениями и аудио без сложных преобразований.
Реализовано на Python 3.10 и выше, запуск начинается с команды pip для установки пакета, а затем запускаешь сервер командой с параметрами для модели. Однако учти, что этот проект может требовать значительных ресурсов, и все еще находится на стадии активной разработки.
Что такое vllm-mlx?
vllm-mlx — это сервер для инференса моделей, разработанный специально для Mac'ов с Apple Silicon. Он объединяет несколько функций, таких как непрерывная пакетная обработка, управление кэшированием и API для работы с моделями OpenAI и Anthropic в одном процессе. Это позволяет запускать языковые модели, модели компьютерного зрения и обработки аудио с использованием Metal и единой памяти без необходимости в конвертации данных.
Как установить и запустить
Для установки vllm-mlx используй следующую команду:
python -m pip install 'vllm-mlx==0.4.1'
После установки сервера его можно запустить с помощью команды:
vllm-mlx serve mlx-community/Llama-3.2-3B-Instruct-4bit --host 127.0.0.1 --port 8000
Для пользователей OpenAI SDK требуется установить библиотеку openai в своем окружении Python, так как она не устанавливается автоматически с сервером. Затем можно использовать код для выполнения запросов к серверу:
from openai import OpenAI
client = OpenAI(base_url="http://localhost:8000/v1", api_key="not-needed")
r = client.chat.completions.create(model="mlx-community/Llama-3.2-3B-Instruct-4bit", messages=[{"role": "user", "content": "Hi!"}])
print(r.choices[0].message.content)
Возможности и особенности
Сервер vllm-mlx поддерживает различные API, включая совместимые с OpenAI и Anthropic. Он имеет:
- Поддержку текстовых, визуальных и аудио моделей в одном сервере.
- Непрерывную пакетную обработку для повышения пропускной способности.
- Эффективное управление памятью с использованием кэширования данных на SSD.
- Поддержку аудио ввода и вывода с помощью встроенных TTS (Text-to-Speech) и STT (Speech-to-Text) функций.
- Метрики Prometheus для наблюдаемости и мониторинга работы сервера.
Ограничения
vllm-mlx работает только на устройствах с Apple Silicon (M1, M2, M3 и т.д.), так как использует Metal для ускорения вычислений. Этот сервер также требует специфичной конфигурации для некоторых сопутствующих функций, таких как устройства для TTS. Поэтому важно учитывать требования к оборудованию перед использованием vllm-mlx.
Документация и поддержка
Полную документацию проекта можно найти на сайте vllm-mlx.is-a.dev. Там доступны разделы по началу работы, установке, API и другим функциям. Если возникнут вопросы или проблемы, можно обратиться к разделу о внесении вклада, так как проект открыт для участия.
Открыть на GitHub: waybarrios/vllm-mlx →
RepoRadar