Развертывание модели 27B на внутреннем сервере и оптимизация затрат на токены
Из-за требований безопасности мы не можем использовать внешние API, поэтому необходимо развернуть модель 27B на собственной инфраструктуре. Бюджета на покупку дорогих карт H100 недостаточно, а ежемесячные расходы на токены стремительно растут. В этой статье рассматриваются конкретные практические методы сокращения бюджета на аппаратное обеспечение в локальной среде более чем на 40% и предотвращения расточительного расхода токенов на бесконечные циклы.
Конфигурация с несколькими GPU для снижения затрат на железо
Чтобы запустить модель 27B без ошибок OOM (Out of Memory), необходимо точно рассчитать требования к VRAM. Вместо покупки одной дорогой NVIDIA H100 80GB объедините две видеокарты RTX 4090 24GB, чтобы получить общую VRAM объемом 48GB. Такой подход позволяет снизить первоначальные затраты на аппаратное обеспечение более чем в два раза.
- Сложите размер весов модели (около 28GB в формате FP8) и кэша KV (1GB при контексте 8K), чтобы убедиться, что общая требуемая VRAM не превышает 30GB.
- В окружении без NVLink при запуске vLLM укажите опцию
--tensor-parallel-size 2 для распределения вычислений в пределах пропускной способности PCIe.
- Чтобы выдерживать пиковую потребляемую мощность более 1000W от двух карт RTX 4090, используйте блок питания с сертификатом 80 Plus Titanium и предотвращайте троттлинг с помощью фронтальных вентиляторов вдува.
Нет необходимости зацикливаться на дорогом монолитном оборудовании. Связка более дешевых видеокарт в параллель — реалистичная альтернатива для инфраструктурной команды, стесненной в бюджете.
Настройка движка для предотвращения бесконечных циклов генерации токенов
Современные модели 27B при обработке сложной логики часто не могут выдать токен завершения (stop token) и уходят в бесконечный цикл вплоть до достижения максимального числа токенов. В коммерческих API эта проблема сама по себе приводит к астрономическим ежемесячным расходам. Простая корректировка параметров в локальном движке сервинга позволяет надежно устранить этот перерасход.
- Установите параметры сервинга
repeat_penalty 1.15 и presence_penalty 0.1, чтобы подавить появление повторяющихся предложений.
- Добавьте
<|im_end|>, <|eot_id|> и \nUser: в массив stop конфигурационного файла, чтобы принудительно остановить модель от диалога с самой собой.
- Примените
temperature 0.2 и min_p 0.05, чтобы модель не задействовала токены с низкой вероятностью.
Применение этих настроек сокращает среднее количество выходных токенов с 4000 до 800. С учетом затрат на электроэнергию и амортизацию оборудования ежемесячные эксплуатационные расходы на устройство можно удерживать на уровне около 290 долларов.
Развертывание весов и управление пайплайном в среде air-gapped
В изолированной от внешнего интернета среде (air-gapped) критически важен надежный пайплайн для управления весами и их сервинга. Используя vLLM, можно открыть API-эндпоинт во внутренней сети компании со скоростью, не уступающей коммерческим сервисам.
- Загрузите веса с помощью
huggingface-cli на хосте с доступом в интернет, используя опцию --local-dir-use-symlinks False для сохранения структуры в виде единого файла.
- При запуске vLLM примените параметры
--enable-prefix-caching и --gpu-memory-utilization 0.92 для повышения эффективности повторного использования контекста RAG и предотвращения фрагментации VRAM.
- Постоянно мониторьте эндпоинт Prometheus (
/metrics), и если показатель vllm:gpu_cache_usage_factor превышает 90%, немедленно снижайте значение --max-model-len с 16384 до 8192.
Единственный способ соблюсти корпоративную политику безопасности и одновременно контролировать расходы — это самостоятельное развертывание и постоянный мониторинг метрик.