DeepSeek в продакшене: от QLoRA до vLLM

МЕНЮ


Главная страница

ТЕМЫ


Новости ИИРазработка ИИВнедрение ИИРабота разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика

Авторизация



После дообучения DeepSeek может лучше разбирать тикеты, но дольше отвечать и чаще упираться в лимит токенов. Узнать об этом лучше на нагрузочном тесте, пока модель ещё не обслуживает пользователей. Разберём один маршрут от датасета до API на примере DeepSeek R1 Distill.

Поводом для гайда стал курс Packt про дообучение, оптимизацию и развёртывание DeepSeek. Как выбрать модель и собрать контрольную выборку

Для пилота возьмём DeepSeek-R1-Distill-Qwen-7B. Это отдельная модель на базе Qwen, обученная на примерах, полученных с помощью DeepSeek-R1. Скачиваемый чекпойнт позволяет обучить свой адаптер и запускать его на собственном сервере. Карточка модели DeepSeek.

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

На отложенных данных считайте macro-F1 по категориям, полноту для критических инцидентов и долю ответов, прошедших проверку JSON Schema. Если ломается только JSON, отдельно проверьте генерацию по схеме. Если ошибку вызывает устаревший регламент, подайте актуальный документ через поиск по базе знаний и замерьте эффект отдельно.

Дообучение DeepSeek через LoRA и QLoRA

LoRA замораживает основные веса и обучает небольшие низкоранговые добавки к выбранным слоям. В QLoRA базовые веса при обучении хранятся в 4-битном виде, а обновляются параметры адаптера. Для первого прогона можно взять NF4 и ранг 16. Расход памяти зависит также от длины последовательности, размера батча и активаций. Замерьте пик на реальных примерах, прежде чем запускать полное обучение.

Соберите примеры в формате диалога и примените шаблон токенизатора выбранной модели. Проверьте на нескольких батчах, что обучающая функция считает ошибку на нужных токенах ответа и что длинные примеры не теряют целевой JSON при обрезке. Зафиксируйте ревизию модели, токенизатор, версию датасета и настройки обучения. Документация Hugging Face PEFT по QLoRA.

Квантизация и замеры инференса

Четыре бита во время обучения не определяют формат весов в продакшене. Сначала сравните базовую модель и адаптер при одинаковых настройках генерации. Затем на тех же примерах сравните адаптер с выбранным вариантом квантизации. Это покажет, на каком шаге упало качество, если после сборки появились ошибки.

Нагрузку гоняйте с короткими и длинными запросами и с несколькими уровнями параллельности. Запишите p95 времени до первого токена, p95 полной задержки, долю таймаутов и пиковое потребление VRAM. Длинные ответы занимают слоты дольше, а длинный контекст увеличивает расход памяти на KV-кэш. Как устроен инференс LLM.

Как развернуть DeepSeek и LoRA в vLLM

Ниже пример локального запуска базовых весов и адаптера ранга 16. В каталоге ./adapter должны лежать файлы сохранённого PEFT-адаптера, обученного для этого чекпойнта. Лимит 8192 включает вход и выход. Уменьшите его, если он не помещается на вашей GPU, и проверьте, хватает ли длины для реальных запросов.

vllm serve deepseek-ai/DeepSeek-R1-Distill-Qwen-7B    --host 127.0.0.1 --port 8000 --max-model-len 8192    --enable-lora --max-lora-rank 16    --lora-modules tickets=./adapter

В запросе к /v1/chat/completions передайте tickets в поле model. Для продакшена версионируйте модель, адаптер и шаблон запроса вместе. Направьте небольшую долю трафика на новую версию и держите предыдущую конфигурацию готовой к откату. Документация vLLM по LoRA-адаптерам.

Когда дообучение окупается

Посчитайте стоимость тысячи ответов, которые прошли проверку и решили задачу. В числитель войдут расходы на GPU и повторы, в знаменатель попадут только успешные ответы. Тогда более дешёвый запуск с большим числом ошибок сразу станет виден. Для маршрутизации тикетов я бы выпускал адаптер только после проверки трёх вещей: критические обращения распознаются, формат стабилен, а p95 укладывается в бюджет задержки.


Телеграм: t.me/ainewsline

Источник: uproger.com

Комментарии: