vllm-mlx: высокопроизводительный сервер для языковых моделей на Mac

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 →

Что нового на GitHub — короткие обзоры на русском Новые обзоры приходят в Telegram. Без спама, по делу.
Подписаться

Похожие статьи

Популярные темы на сайте