Оптимизация использования GPU для языковых моделей и снижение затрат

Источник
Оптимизация использования GPU для языковых моделей и снижение затрат

Недавние исследования показывают, что при работе с большими языковыми моделями (LLM) существует значительная разница в требованиях к вычислительным ресурсам на этапах предзаполнения и декодирования. В процессе предзаполнения, когда модель считывает весь ввод параллельно и заполняет кэш, используется до 92% вычислительных мощностей GPU. Однако, спустя 10 миллисекунд, на этапе декодирования, производительность падает до 28%, что приводит к неэффективному использованию ресурсов.

В ходе работы с крупной корпоративной системой для реального времени, где использовались 64 GPU H100, выяснили, что только 20 из них действительно выполняли полезную работу в течение 90% времени обработки запроса. Это создает проблемы для финансовых команд, так как затраты на GPU выглядят как при обучении модели, хотя на самом деле происходит только обслуживание.

Разделение этапов предзаполнения и декодирования на разные аппаратные ресурсы может значительно снизить затраты. Это подход был предложен в статье DistServe из UC San Diego и уже успешно применяется такими компаниями, как Meta и LinkedIn. Использование специализированных GPU для каждого этапа позволяет избежать перерасхода ресурсов и повысить общую эффективность.

Стандартная практика объединения обоих этапов на одном пуле GPU приводит к низкой эффективности. Например, GPU, оптимизированный для предзаполнения, становится чрезмерно мощным для декодирования, в то время как GPU, подходящий для декодирования, не справляется с предзаполнением. Это создает ситуацию, когда вы платите за худший случай в обоих направлениях.

Согласно техническому анализу, проведенному InfoQ, предзаполнение достигает 90-95% использования, в то время как декодирование падает до 20-40%. Это подтверждает необходимость разделения нагрузки между специализированными аппаратными ресурсами для каждого этапа, что может привести к значительной экономии.

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