Магия или мошенничество? Почему Llama 3.1 70B стоит дешевле чашки кофе
Открываете прайс-лист нового AI-провайдера. Llama 3.1 70B - $0.0001 за 1K токенов. GPT-4o - $0.005. Разница в 50 раз. Первая мысль: "Это ошибка". Вторая: "Как они вообще зарабатывают?".
Ответ простой и сложный одновременно. Они не зарабатывают. Вернее, не так. Они зарабатывают на вас, но не так, как вы думаете.
Если цена выглядит слишком хорошей, чтобы быть правдой - скорее всего, так и есть. Но не в смысле обмана, а в смысле компромиссов, о которых вам не расскажут на главной странице.
GPU как такси: почему ваш запрос ждёт в очереди
Представьте GPU как такси. Дорогой провайдер (OpenAI, Anthropic) даёт вам личное такси. Вы платите за всё время поездки, даже если сидите в пробке.
Дешёвый провайдер работает как Uber Pool. Ваш запрос - это ещё один пассажир в уже едущей машине. GPU никогда не простаивает. Пока одна модель думает над ответом, другая уже загружает свои веса в память.
Вот как это выглядит в коде реального инференс-сервера (vLLM):
# Обычный батчинг - ждём всех
batch = wait_for_requests(max_batch_size=32)
results = process_batch(batch)
send_all_results(results)
# Continuous batching - отправляем по готовности
while True:
if has_ready_requests():
request = get_ready_request()
result = process_single(request)
send_result_immediately(result)
load_next_request_to_gpu()
Квантование: когда 8 бит лучше 16 (но не всегда)
Llama 3.1 70B в полной версии весит ~140GB. В квантованной до 4 бит - 35GB. Разница в 4 раза. А производительность падает на... 1-3% для большинства задач.
Звучит как магия? Это и есть магия. Но с ограничениями.
| Точность | Размер модели 70B | Качество | Стоимость инференса |
|---|---|---|---|
| FP16 (полная) | 140 GB | 100% | $1.00 |
| INT8 | 70 GB | 99.5% | $0.50 |
| INT4 | 35 GB | 98% | $0.25 |
| GPTQ (3 бита) | 26 GB | 96% | $0.18 |
Проблема в том, что квантование работает не для всех задач одинаково. Кодогенерация? Почти без потерь. Сложные reasoning-задачи? Может упасть на 10-15%. А вы об этом узнаете только когда ваше продакшн-приложение начнёт генерировать бред.
1 Как проверить, не жертвуют ли вашим качеством
Создайте бенчмарк из 100 разнообразных запросов. Запустите его на дорогом провайдере (FP16) и на дешёвом. Сравните не только точность, но и:
- Консистентность ответов (один и тот же запрос = один и тот же ответ)
- Креативность в открытых задачах
- Скорость генерации длинных текстов
- Стабильность JSON-ответов
Спотовые инстансы: игра в русскую рулетку с AWS
Spot instances на AWS стоят на 70-90% дешевле обычных. Но их могут отозвать в любой момент. Представьте: ваш AI-агент ведёт диалог с клиентом, и вдруг... GPU исчезает. Диалог прерывается. Клиент злится.
Дешёвые провайдеры играют в эту игру. Они запускают модели на спотовых инстансах, а когда AWS требует их обратно - мигрируют на другие. В теории это работает. На практике...
# Типичная архитектура дешёвого провайдера
instances = []
for _ in range(10):
instance = launch_spot_instance()
instances.append(instance)
# Мониторим прерывания
while True:
for instance in instances:
if instance.about_to_be_terminated():
# Срочно мигрируем модели
migrate_models_to_new_instance()
terminate(instance)
# Запускаем новый спотовый инстанс
new_instance = launch_spot_instance()
instances.append(new_instance)
Проблема в latency. Миграция модели 70B занимает 2-3 минуты. За это время запросы либо падают, либо ждут. Некоторые провайдеры просто ретраят запросы - пользователь получает ответ через 30 секунд вместо 2.
Шеринг памяти: когда ваши данные видят соседи
Один GPU A100 80GB. Одна модель Llama 70B в 4-битном квантовании занимает 35GB. Математика простая: 80 / 35 = 2.28. Можно запустить две модели на одном GPU!
Так и делают. Но есть нюанс: memory sharing. Модели делят не только вычислительные ресурсы, но и память. И иногда - очень творчески.
В худшем случае (который я видел у одного провайдера из Восточной Европы) модели разных клиентов работали в одном процессе. Технически возможен доступ к промптам других пользователей. Не говорите, что вас не предупреждали.
2 Как проверить изоляцию ваших данных
- Спросите у провайдера: "Используете ли вы multi-tenancy на GPU?"
- Если да: "Как обеспечена изоляция? Docker, VM, bare-metal?"
- Запросите pentest-отчёт (если работаете с sensitive data)
- Напишите тест, который пытается прочитать соседнюю память (это сложно, но возможно через timing attacks)
Экономика масштаба: почему маленькие провайдеры обречены
Закупить 1000 GPU у NVIDIA со скидкой 40%. Получить тариф на электроэнергию $0.03 за кВт·ч вместо $0.12. Наножить 10 инженеров на 1000 GPU вместо 2 на 10.
Экономика масштаба снижает стоимость в 3-4 раза. Но есть обратная сторона: маленькие провайдеры не могут конкурировать по цене. Значит, они либо уходят с рынка, либо...
Либо идут на рискованные оптимизации. Запускают больше моделей на GPU, чем физически возможно. Используют устаревшее железо. Экономят на охлаждении. Вы видели, что происходит с GPU при температуре 95°C вместо 80°C? Он работает. Но через 3 месяца выходит из строя. А провайдер уже собрал деньги за год вперёд.
Кстати, о бунте против дата-центров - это не только про экологию. Это про то, что AI-бум поднимает цены на электричество для всех. А дешёвые провайдеры часто сидят в регионах с дешёвой, но "грязной" энергией.
Оптимизации, о которых не пишут в блогах
- Dynamic precision switching: для простых запросов - 4 бита, для сложных - 8 бит. Пользователь не замечает, а экономия 30%.
- Predictive loading: система предсказывает, какую модель вы запросите следующей, и заранее загружает её в память. Хитро, но если предсказание ошибается - latency взлетает.
- Request coalescing: несколько похожих запросов от разных пользователей объединяются в один батч. Работает для чат-ботов, но нарушает изоляцию.
- Model pruning on the fly: удаление "лишних" слоёв модели для ускорения. Иногда удаляют слишком много.
Когда дешёвый инференс - хороший выбор
Не всё так плохо. Есть сценарии, где экономия в 10 раз перевешивает риски:
- Development и prototyping: тестируете идею, бюджет ограничен. Даже если сервис упадёт - не страшно.
- Background tasks: генерация контента, суммаризация, translation. Задержка в 5 секунд вместо 2 - не критично.
- Не-sensitive данные: работаете с публичными текстами, не с персональными данными.
- High batch, low concurrency: обрабатываете миллион запросов в день, но не одновременно.
Для production с SLA 99.9%, sensitive data и low latency - лучше платить больше. Как в той поговорке: "Скупой платит дважды". Только в AI-инференсе он платит не деньгами, а репутацией, когда его сервис падает в самый неподходящий момент.
Что будет через год? Предсказание от того, кто видел изнутри
Рынок консолидируется. Об этом я писал в консолидации AI-рынка. Маленькие дешёвые провайдеры либо купят, либо они закроются.
Причина простая: margin. Когда все оптимизировали GPU-utilization до 80%, это давало преимущество. Сейчас все умеют. Когда все используют квантование - это не преимущество, а стандарт.
Остаются две ниши:
- Ультра-дешёвые: для emerging markets, где цена - главный фактор. Качество ниже, но за $0.00001 за 1K токенов.
- Специализированные: только для code generation, только для медицинских текстов, только для юридических документов. Свои оптимизации под конкретную задачу.
Мой совет: если вы выбираете провайдера сегодня, смотрите не только на цену. Спросите:
- Какие GPU и сколько их?
- Какой uptime в SLA (и есть ли он вообще)?
- Где физически расположены данные?
- Можно ли получить dedicated GPU за доплату?
- Как происходит disaster recovery?
И последнее: всегда имейте fallback. Два провайдера, даже если один в 10 раз дороже. Когда дешёвый упадёт (а он упадёт), вы переключитесь на дорогого. Клиенты не заметят. Ваш бизнес продолжит работать.
Потому что в AI-инференсе, как и в жизни, дешёвое редко бывает бесплатным. Просто плата иногда приходит не в денежной форме.