14 октября 2026 г. · Анатолий Крылов, редактор Тераферма
Как сэкономить на аренде GPU: без оплаты простоя, с чекпоинтами и поминутной оплатой
Чтобы сэкономить на аренде GPU, достаточно перестать платить за часы, когда карта ничего не считает. Забытый на ночь сервер с A100 съедает 12 часов по 97 ₽, то есть 1 164 ₽ за пустоту, а с H100 — 4 068–5 004 ₽. Поминутная оплата, сигнал о простое, чекпоинты во внешнем хранилище и привычка останавливать машину сразу после задачи обычно срезают 20–40% счёта без потери скорости работы.
Где теряются деньги при аренде GPU
Простой бывает трёх видов, и у каждого своя причина.
Простой до работы. Сервер запущен, а вы ещё качаете датасет, ставите зависимости, правите код. Карта стоит без нагрузки, оплата идёт. Типичная потеря составляет 15–40 минут на каждый запуск.
Простой во время работы. Обучение идёт, но видеокарта загружена на 30–50%: данные не успевают подгружаться с диска или процессор не справляется с аугментацией. Вы платите за всю карту, а используете половину.
Простой после работы. Самый дорогой. Задача закончилась в 3 часа ночи, а сервер работал до утра. Или эксперимент завершился с ошибкой через 10 минут, а заметили это через 5 часов.
Посчитаем, сколько это стоит на типичной неделе, если раз в день запускать задачу и терять 30 минут на подготовку, а дважды за неделю оставлять сервер на ночь на 8 часов:
| Карта | ₽/час | Подготовка, 7 × 30 мин | Две ночи по 8 часов | Потери за неделю |
|---|---|---|---|---|
| RTX 3090 | 26 | 91 ₽ | 416 ₽ | 507 ₽ |
| RTX 4090 | 48 | 168 ₽ | 768 ₽ | 936 ₽ |
| A100 80 ГБ | 97 | 340 ₽ | 1 552 ₽ | 1 892 ₽ |
| H100 | 339–417 | 1 187–1 460 ₽ | 5 424–6 672 ₽ | 6 611–8 132 ₽ |
На дорогих картах одна забытая ночь стоит дороже, чем вся полезная работа за день.
Поминутная оплата: что она даёт и чего не решает
На Тераферме тариф указан за час, но списание идёт поминутно. Стоимость минуты равна тарифу, делённому на 60, неполная минута округляется вверх. Работали 25 минут — платите за 25, а не за час.
Ещё два правила, которые важно знать:
- Запуск не оплачивается. Пока система подбирает машину и разворачивает окружение (обычно 1–7 минут), деньги не списываются. Оплата начинается, когда сервер готов и Jupyter открывается.
- Неудачный запуск бесплатен. Если подходящую машину не удалось запустить, заказ отменяется без списания.
Поминутная оплата убирает переплату за неполные часы, но не защищает от забытого сервера. Если машина работает, минуты идут, даже если на ней ничего не происходит. Подробнее о том, как устроена почасовая аренда сервера с GPU, читайте на отдельной странице.
Что есть в кабинете Тераферма
Честный список того, что работает сейчас.
Уведомление о простое. Если сервер запущен больше 2 часов, в Jupyter давно нет активности, а видеокарта загружена меньше чем на 5%, система присылает подсказку: сколько часов сервер простаивает и сколько стоит час. Она приходит в кабинет, в чат поддержки, в Telegram, если вы его привязали, и на почту, если вы не на сайте. Остановить сервер можно прямо из подсказки. Повторное напоминание по тому же серверу приходит не чаще раза в 6 часов.
Система учитывает и Jupyter, и загрузку карты, поэтому обучение, запущенное по SSH через nohup или tmux, не считается простоем: карта занята — уведомления нет.
Предупреждение о балансе. Когда денег остаётся меньше чем на час работы всех ваших серверов, приходит сообщение с оценкой, на сколько минут хватит остатка.
Остановка при нулевом балансе. Когда баланс заканчивается, сервер останавливается автоматически, и дальше деньги не списываются.
Кнопка «Остановить». В разделе «Мои серверы» достаточно одного нажатия, списание прекращается сразу.
Чего в кабинете пока нет
Чтобы не было неожиданностей:
- Автоостановки по таймеру или по простою нет. Уведомление о простое приходит, но сервер продолжает работать, пока вы его не остановите или не закончится баланс.
- Паузы с сохранением диска нет. Остановка удаляет данные на сервере. Следующий запуск даёт новую чистую машину.
- Постоянного хранилища, которое переживает остановку, нет. Модели, датасеты и результаты нужно хранить снаружи.
Отсюда главное правило: всё, что вам нужно после остановки, должно быть сохранено вне сервера до того, как вы нажмёте кнопку. Ниже разберём, как организовать работу с учётом этих ограничений.
Чекпоинты: как не бояться остановки
Чекпоинт хранит состояние обучения: веса модели, состояние оптимизатора, номер шага. С ним задачу можно продолжить с того же места на другой машине.
Практические правила:
- Сохраняйте чекпоинт каждые 20–30 минут. В Hugging Face Trainer это
save_steps, в PyTorch Lightning —ModelCheckpointсevery_n_train_steps. Чем дороже карта, тем чаще. - Сразу отправляйте его наружу. На Hugging Face Hub (
push_to_hub=Trueиhub_strategy="checkpoint"), в S3-совместимое хранилище черезrcloneилиaws s3 cp, на свой сервер черезrsync. - Храните только последние 2–3 чекпоинта (
save_total_limit). Чекпоинт модели 8B с оптимизатором весит десятки гигабайт, выгрузка всех подряд съест время и канал. - Проверьте возобновление до долгого запуска. Запустите обучение на 5 минут, остановите, продолжите с чекпоинта на новой машине. Если не работает, лучше узнать это сейчас, а не после 10 часов.
Сколько весят чекпоинты и сколько длится дообучение моделей разного размера, разобрано в статье про LoRA и QLoRA на арендованной GPU.
С чекпоинтами остановка перестаёт быть страшной. Можно смело останавливать сервер на ночь и продолжать утром, можно уйти с дорогой карты на дешёвую, если выяснилось, что памяти хватает.
Автоостановка своими силами
Раз автоостановки по таймеру в кабинете пока нет, есть два рабочих приёма.
Лимит баланса как предохранитель. Сервер останавливается сам, когда баланс доходит до нуля. Если пополнить счёт ровно на объём задачи с небольшим запасом, это работает как жёсткий потолок расходов: например, на 10 часов RTX 4090 нужно 480 ₽, пополните на эту сумму плюс 10–15%. Обратная сторона в том, что при остановке данные удаляются, поэтому приём годится только вместе с автоматической выгрузкой результатов и чекпоинтов. Пополнить можно криптовалютой от 500 ₽, оплата картой появится позже.
Скрипт-обёртка с уведомлением. Запускайте обучение так, чтобы по завершении результат сразу уходил наружу, а вам приходило сообщение:
python train.py && rclone copy ./output remote:project/run-01 \
&& curl -s "https://api.telegram.org/bot<TOKEN>/sendMessage" \
-d chat_id=<CHAT_ID> -d text="Обучение закончено, результаты выгружены"
Получили сообщение — открыли кабинет и остановили сервер. Это занимает минуту и защищает от сценария «закончилось ночью, остановил утром».
Подготовка до запуска: минус 30 минут на каждом сеансе
Проще всего сократить простой до работы, делая всё, что не требует видеокарты, до аренды:
- Отладьте код на маленьком примере локально или на самой дешёвой карте. Ошибка в импорте на A100 за 97 ₽ в час стоит в разы дороже, чем на RTX 3060 за 12 ₽.
- Держите зависимости в
requirements.txtили готовом Docker-образе. Установка из файла занимает 2–3 минуты, а не полчаса поиска версий. - Подготовьте датасет заранее и храните его там, откуда он быстро скачается: Hugging Face, S3, свой сервер с хорошим каналом.
- Используйте готовые шаблоны. В кабинете есть окружения с PyTorch и Jupyter, ComfyUI и vLLM, базовая настройка там уже сделана.
Загрузка карты во время работы
Если nvidia-smi показывает загрузку 30–50%, вы платите за всю карту, а используете половину. Частые причины:
- Медленная подгрузка данных. Увеличьте
num_workersв DataLoader, включитеpin_memory=True, держите датасет на локальном диске машины, а не читайте по сети. - Маленький батч. Если память позволяет, увеличьте батч или используйте накопление градиентов.
- Нет смешанной точности. BF16 или FP16 ускоряет обучение на современных картах в 1,5–2 раза.
- Карта слишком мощная для задачи. Модель 1B на H100 будет недогружена. Дешевле взять RTX 4090 и ждать немного дольше.
Последний пункт встречается часто и обходится дорого. Правило простое: берите самую дешёвую карту, в которую помещается задача и которая укладывается в ваш срок. Тарифы всех моделей собраны на странице цен на аренду GPU.
Чек-лист экономии
| Что сделать | Когда | Сколько экономит |
|---|---|---|
| Отладить код и собрать датасет до запуска | перед каждым сеансом | 15–40 минут на запуск |
| Сохранять чекпоинты наружу каждые 20–30 минут | при обучении дольше часа | можно останавливать сервер без потерь |
| Привязать Telegram в кабинете | один раз | быстрее узнаёте о простое |
| Пополнять баланс под объём задачи | для длинных задач без присмотра | потолок расходов |
| Уведомление из скрипта по окончании | для ночных запусков | часы простоя после задачи |
Проверять загрузку карты в nvidia-smi |
первые 10 минут работы | до половины стоимости |
| Брать карту под задачу, а не с запасом | при выборе | в 2–5 раз на неподходящей карте |
Пример: сколько экономит дисциплина за месяц
Возьмём небольшую ML-команду, которая каждый будний день дообучает модели на A100 по 4 часа и раз в неделю запускает ночной прогон на 10 часов. Сравним два режима работы.
Без дисциплины. Подготовка на сервере — 40 минут каждый день. Ночные прогоны заканчиваются в 4 утра, а сервер останавливают в 10 — плюс 6 часов. Пару раз в месяц машину забывают на выходные после пятничного эксперимента — ещё около 20 часов. Карта загружена на 50% из-за медленной подгрузки данных, и задачи идут в 1,5 раза дольше.
С дисциплиной. Датасет и зависимости готовы заранее — подготовка 5 минут. Скрипт выгружает результаты и присылает сообщение — остановка через 10–20 минут после окончания. Забытых выходных нет: уведомление о простое приходит через пару часов. DataLoader настроен, загрузка карты 90%.
| Статья расходов за месяц | Без дисциплины | С дисциплиной |
|---|---|---|
| Полезная работа, часов | 120 | 80 |
| Подготовка на сервере, часов | 15 | 2 |
| Простой после ночных прогонов, часов | 24 | 1 |
| Забытые выходные, часов | 40 | 0 |
| Итого часов A100 | 199 | 83 |
| Стоимость | 19 303 ₽ | 8 051 ₽ |
Объём сделанной работы одинаковый, а счёт отличается больше чем вдвое. Цифры условные, но порядок потерь типичный: основные деньги уходят не на подготовку, а на часы после окончания задачи и на недогруженную карту.
Почасовая аренда или выделенный сервер
Если после всех оптимизаций карта всё равно нужна почти круглосуточно, имеет смысл сравнить почасовую аренду с выделенным сервером. Точка безубыточности считается просто: месячная цена выделенного сервера, делённая на цену часа. Подробный расчёт с примерами — в статье почасовая аренда или выделенный сервер. Для большинства задач с нерегулярной нагрузкой поминутная оплата выигрывает, но только если вы не платите за простой.
Поминутная оплата сама по себе не экономит деньги — она лишь даёт возможность не платить за лишнее. Экономию приносят привычки: готовить всё до запуска, сохранять чекпоинты наружу, останавливать сервер сразу после задачи и не брать карту с запасом. Уведомление о простое в кабинете подстрахует, но остановить сервер нужно самому.
Привяжите Telegram в кабинете, настройте выгрузку чекпоинтов и запустите следующую задачу на почасовой аренде сервера с GPU с поминутным списанием.