Добавление NVMe SSD для включения и ускорения настройки модели Fine-tuning на 100 миллиардов параметров на одном графическом процессоре.
Adding NVMe SSDs to Enable and Accelerate 100B Model Fine-tuning on a Single GPU
March 11, 2024
Авторы: Changyue Liao, Mo Sun, Zihan Yang, Kaiqi Chen, Binhang Yuan, Fei Wu, Zeke Wang
cs.AI
Аннотация
Недавние достижения в области крупных языковых моделей принесли огромную ценность миру благодаря своим выдающимся возможностям, обусловленным огромным количеством параметров, которые они используют. Однако даже графические процессоры с самыми большими объемами памяти, в настоящее время достигающими 80 ГБ, далеко не достаточны для размещения этих огромных параметров и связанных с ними состояний оптимизатора при проведении оптимизации на основе стохастического градиентного спуска. Один из подходов к размещению таких огромных моделей - объединение памяти устройства из нескольких графических процессоров. Однако этот подход вводит запретительные издержки для большинства академических исследователей, у которых всегда ограниченный бюджет на множество серверов с высокопроизводительными графическими процессорами. В данной статье мы сосредоточимся на тонкой настройке огромной модели на одном, даже недорогом, графическом процессоре в сервере стандартной конфигурации, доступном большинству исследователей в области искусственного интеллекта. В таком сценарии передовая работа ZeRO-Infinity сталкивается с двумя серьезными проблемами при работе на сервере стандартной конфигурации: 1) низкое использование графического процессора из-за неэффективного обмена данными и 2) ограниченный размер обучаемой модели из-за объема оперативной памяти центрального процессора. Причиной этого является то, что ZeRO-Infinity оптимизирован для работы на серверах с высокопроизводительными графическими процессорами. В этой связи мы представляем Fuyou - недорогую обучающую среду, которая позволяет эффективно настраивать огромные модели объемом 100 миллиардов параметров на сервере стандартной конфигурации с недорогим графическим процессором и ограниченным объемом оперативной памяти центрального процессора. Основная идея заключается в добавлении обмена данными между твердотельным накопителем и центральным процессором как измерения оптимизации и тщательной совместной оптимизации вычислений и обмена данных с систематического подхода для максимизации использования графического процессора. Экспериментальные результаты показывают, что 1) Fuyou способен тонко настраивать модель GPT-3 объемом 175 миллиардов параметров на потребительском графическом процессоре RTX 4090 с высоким использованием графического процессора, в то время как ZeRO-Infinity не справляется с этой задачей; и 2) при обучении небольшой модели GPT-3 объемом 13 миллиардов параметров Fuyou достигает производительности 156 триллионов операций с плавающей запятой в секунду на графическом процессоре RTX 4090, в то время как ZeRO-Infinity достигает только 45 триллионов операций в секунду.
English
Recent advances in large language models have brought immense value to the
world, with their superior capabilities stemming from the massive number of
parameters they utilize. However, even the GPUs with the highest memory
capacities, currently peaking at 80GB, are far from sufficient to accommodate
these vast parameters and their associated optimizer states when conducting
stochastic gradient descent-based optimization. One approach to hosting such
huge models is to aggregate device memory from many GPUs. However, this
approach introduces prohibitive costs for most academic researchers, who always
have a limited budget for many high-end GPU servers. In this paper, we focus on
huge model fine-tuning on a single, even low-end, GPU in a commodity server,
which is accessible to most AI researchers. In such a scenario, the
state-of-the-art work ZeRO-Infinity suffers from two severe issues when running
in a commodity server: 1) low GPU utilization due to inefficient swapping, and
2) limited trainable model size due to CPU memory capacity. The underlying
reason is that ZeRO-Infinity is optimized for running on high-end GPU servers.
To this end, we present Fuyou, a low-cost training framework that enables
efficient 100B huge model fine-tuning on a low-end server with a low-end GPU
and limited CPU memory capacity. The key idea is to add the SSD-CPU
communication as an optimization dimension and thus carefully co-optimize
computation and data swapping from a systematic approach to maximize GPU
utilization. The experimental results show that 1) Fuyou is able to fine-tune
175B GPT-3 on a consumer GPU RTX 4090 with high GPU utilization, while
ZeRO-Infinity fails to fine-tune; and 2) when training a small GPT-3 13B model,
Fuyou achieves 156 TFLOPS on an RTX 4090 GPU while ZeRO-Infinity only achieves
45 TFLOPS.Summary
AI-Generated Summary