Itinai.com compare offices of it companies blur details image ded90168 62a3 4093 b542 0c63f5590941 0

Нано-vLLM: Легковесная Имплементация vLLM от DeepSeek

Itinai.com compare offices of it companies blur details image ded90168 62a3 4093 b542 0c63f5590941 0

DeepSeek Researchers представляют ‘nano-vLLM’: легковесная реализация vLLM

Новая разработка от команды DeepSeek, проект под названием ‘nano-vLLM’, представляет собой минималистичную и эффективную реализацию vLLM (виртуальная большая языковая модель). Этот инструмент создан для тех, кто ценит простоту, скорость и прозрачность. Написанный с нуля на Python, nano-vLLM удачно сочетает производительность и элегантность кода, состоящего всего из примерно 1200 строк. Несмотря на небольшие размеры, он демонстрирует сопоставимую скорость вывода с оригинальным движком vLLM в большинстве оффлайн-сценариев.

Ключевые особенности nano-vLLM

  • Быстрый оффлайн вывод: Nano-vLLM обеспечивает скорость вывода, близкую к vLLM, что делает его идеальным для исследовательских экспериментов, небольших развертываний или образовательных целей.
  • Чистый и читаемый код: Реализация в 1200 строк Python-кода без скрытых абстракций и лишних слоев зависимостей делает его отличным инструментом для изучения систем вывода LLM.
  • Набор оптимизаций:
    • Кэширование префиксов: Переиспользует состояния кэша ключ-значение при повторении подсказок, уменьшая избыточные вычисления.
    • Тензорный параллелизм: Распределяет слои модели по нескольким GPU для масштабирования вывода на аппаратном уровне.
    • Компиляция в Torch: Использует torch.compile() для слияния операций и снижения накладных расходов Python.
    • Графы CUDA: Предварительно захватывает и переиспользует графы выполнения GPU, минимизируя задержки запуска.

Архитектура nano-vLLM

Архитектура nano-vLLM интуитивно понятна:

  • Управление токенизацией и вводом: Обрабатывает разбор подсказок и преобразование идентификаторов токенов с использованием токенизаторов Hugging Face.
  • Обертка модели: Загружает LLM на основе трансформеров с использованием PyTorch, применяя обертки для тензорного параллелизма.
  • Управление кэшем KV: Обрабатывает динамическое выделение и извлечение кэша с поддержкой переиспользования префиксов.
  • Двигатель выборки: Реализует выборку top-k/top-p, масштабирование температуры и другие стратегии декодирования.

Сценарии использования и ограничения

Nano-vLLM лучше всего подходит для:

  • Исследователей, создающих пользовательские приложения LLM.
  • Разработчиков, изучающих оптимизации на уровне вывода.
  • Преподавателей, обучающих инфраструктуре глубокого обучения.
  • Инженеров, развертывающих вывод на системах с низкими ресурсами.

Однако, как минималистская реализация, она не включает многие продвинутые функции, доступные в полноценной системе:

  • Нет динамической пакетной обработки или планирования запросов.
  • Нет потоковой генерации токен за токеном для реального времени.
  • Ограниченная поддержка для нескольких одновременных пользователей.

Заключение

Nano-vLLM представляет собой продуманный баланс между простотой и производительностью. Хотя он не предназначен для замены полнофункциональных двигателей вывода на производстве, он служит быстрым, понятным и модульным альтернативным решением. Для практиков, стремящихся понять основы современного вывода LLM или создать свои собственные варианты с чистого листа, nano-vLLM предлагает надежную отправную точку.

Доступна поддержка основных оптимизаций и четкая структура дизайна, что делает его потенциально любимым инструментом для образовательного использования и легковесных развертываний LLM. Узнайте больше на странице GitHub проекта. Все кредиты за эту разработку принадлежат исследователям данного проекта.

Следите за нами в Twitter и не забудьте присоединиться к нашему сообществу более 100 тысяч подписчиков на ML SubReddit и подписаться на нашу рассылку.

Новости в сфере искусственного интеллекта