Hugging Face запустила co-located vLLM в TRL: как это повышает эффективность GPU

Hugging Face объявила о поддержке co-located vLLM в библиотеке TRL (Transformer Reinforcement Learning), что позволяет одновременно выполнять обучение и инференс больших языковых моделей на одном наборе GPU. Это устраняет простои ресурсов, которые ранее возникали при разделении задач на разные класт

Hugging Face запустила co-located vLLM в TRL: как это повышает эффективность GPU

Hugging Face объявила о поддержке co-located vLLM в библиотеке TRL (Transformer Reinforcement Learning), что позволяет одновременно выполнять обучение и инференс больших языковых моделей на одном наборе GPU. Это устраняет простои ресурсов, которые ранее возникали при разделении задач на разные кластеры. Нововведение особенно актуально для компаний, арендующих GPU в облаке, и исследователей, работающих с ограниченным оборудованием.

Как работает co-located vLLM

Раньше для обучения с подкреплением (RL) требовалось два отдельных пула GPU: один для обучения модели, другой для инференса (генерации ответов). Такая архитектура приводила к недоиспользованию дорогостоящего оборудования — пока одна часть GPU занята обучением, другая простаивает. Co-located подход объединяет обе задачи на одних GPU, динамически распределяя память и вычислительные ресурсы между процессом обучения (TRL) и инференс-движком (vLLM).

Технически co-located vLLM работает как планировщик, который в реальном времени переключает ресурсы между задачами. Когда модель обучается, большая часть GPU-памяти выделяется под градиенты и веса. В моменты инференса планировщик освобождает часть памяти для генерации токенов. Это напоминает работу операционной системы, которая распределяет оперативную память между запущенными приложениями, но на уровне GPU.

Почему это важно для RLHF и тонкой настройки

Обучение с подкреплением на основе человеческой обратной связи (RLHF) — один из ключевых методов улучшения качества языковых моделей. Однако RLHF требует многократных циклов: модель генерирует ответы, затем оценивается, и на основе оценки обновляются веса. Каждый цикл включает как инференс (генерация), так и обучение (обновление). При раздельной архитектуре GPU для инференса простаивают во время обучения, и наоборот. Co-located vLLM устраняет этот недостаток, позволяя использовать одни и те же GPU для обеих фаз.

В блоге Hugging Face приведены тесты на 8 GPU A100: эффективность использования памяти выросла на 30%, а время выполнения полного RL-цикла сократилось на 20% по сравнению с раздельной конфигурацией. Поддерживаются модели размером до 70B параметров, что покрывает большинство современных открытых LLM.

Какие модели и сценарии выиграют больше всего?

Нововведение особенно полезно для команд, которые экспериментируют с большими моделями на ограниченном числе GPU. Например, если у вас есть доступ только к 4–8 GPU, co-located vLLM позволяет запускать RLHF для модели размером 30–70B параметров без необходимости арендовать дополнительные ресурсы. Это снижает порог входа для исследований и ускоряет итерации.

Кроме того, co-located подход упрощает настройку инфраструктуры: не нужно управлять двумя отдельными кластерами, синхронизировать их и следить за передачей данных. Всё работает в рамках одного процесса, что уменьшает сложность кода и вероятность ошибок.

Что пока остаётся за кадром

Несмотря на очевидные преимущества, Hugging Face не раскрыла точные алгоритмы распределения памяти и детали совместимости с другими фреймворками, такими как DeepSpeed или Megatron-LM. Также нет информации о поддержке AMD GPU или других ускорителей. Пока co-located vLLM оптимизирован для NVIDIA A100 и H100, что ограничивает его применение в гетерогенных средах.

Ещё один важный вопрос — поведение при пиковых нагрузках. Если обучение требует внезапно много памяти (например, при обработке длинных последовательностей), может ли планировщик корректно перераспределить ресурсы без сбоев? В блоге упоминается, что тесты проводились на стандартных сценариях, но экстремальные случаи не описаны.

Как начать использовать co-located vLLM

Для работы с co-located vLLM необходимо установить последнюю версию библиотеки TRL и vLLM. Hugging Face предоставляет примеры кода и конфигурации в своём блоге. Рекомендуется начать с небольших моделей (например, 7B параметров), чтобы оценить прирост производительности на своём оборудовании. Затем можно масштабировать до 70B, следя за использованием памяти.

Важно отметить, что co-located vLLM не является серебряной пулей. Если ваш рабочий процесс требует постоянного инференса без пауз (например, в продакшн-системах), раздельная архитектура может быть предпочтительнее. Но для исследовательских циклов и тонкой настройки новый подход даёт значительную экономию.

Заключение

Co-located vLLM от Hugging Face — это шаг к более эффективному использованию GPU в задачах RL. Объединяя обучение и инференс на одном оборудовании, он снижает затраты и упрощает инфраструктуру. Хотя остаются вопросы по совместимости и деталям реализации, для многих команд это уже сейчас рабочий инструмент. Если вы занимаетесь RLHF или другими методами обучения с подкреплением, стоит протестировать новую возможность.