Разговор повторяется примерно раз в месяц, с небольшими вариациями.
— Мы за API платим уже прилично. Может, купим карту и будем гонять у себя? — Может. Сколько токенов в месяц жжете? — Ну… много.
Вот на этом месте всегда наступает пауза. Потому что «много» никто не считал, а без этой цифры весь разговор превращается в обмен ощущениями.
Я работаю CTO в ML-команде, у нас в проектах живут и локальные модели на своих картах, и облачные API, иногда в одном контуре. Считать, что дешевле, приходится регулярно, и я устал пересчитывать одно и то же. Поэтому сел и разложил все один раз целиком: цену часа собственной карты в рублях, пропускную способность по замерам, точку безубыточности против семи разных сервисов и полную смету года владения.
Первый же результат меня озадачил. Цена миллиона токенов на одной и той же RTX 5090 гуляет от 1 ₽ до 20 726 ₽. Карта одна. Модель одна. Счет за электричество один. Разница в 20 тысяч раз берется вообще не оттуда, откуда все смотрят.
Все числа ниже на 31 июля 2026 года, доллар по курсу ЦБ на эту дату, 79,86 рубля. Рынок памяти сейчас лихорадит, через квартал половину цифр придется переписать. Формулы переживут, за ними и следите.
Считается это на салфетке
Мне нужны всего две формулы. Первая говорит, во что обходится мой собственный токен:
Цена 1M своих токенов = (Капекс/Часы_жизни + Мощность_кВт × Тариф) / (Токены_в_секунду × 3600) × 1 000 000
Сверху стоимость часа железа, снизу то, сколько токенов это железо за час выдает. Вторая формула говорит, с какого объема своя карта начинает выигрывать у API:
Точка безубыточности (токенов в месяц) = Месячная стоимость железа / Цена токена в API
Смысл простой. Карта стоит мне фиксированную сумму каждый месяц, прошел через нее миллион токенов или ни одного. API стоит ровно столько, сколько я через него пропустил. Где-то они пересекаются, и весь спор сводится к тому, по какую сторону от пересечения живет проект.
Обе формулы дают полную чушь, если ошибиться в одном месте. Промахиваются там все, включая меня в первый заход, и это не числитель.
Час моей карты
Начну с 5090 на 32 гигабайта, потому что ее чаще всего и предлагают купить. Верхняя игровая карта, продается в рознице, влезает в обычный корпус.
Живой прайс Регарда на сегодня: 429 990 ₽ за Palit GameRock, он же самый дешевый вариант в наличии. Верх линейки, ASUS ROG Astral BTF, стоит 737 220 ₽ и сейчас под заказ. Беру нижнюю границу.
Тут стоит на секунду отвлечься на то, что творится с ценами, потому что это влияет на расчет сильнее, чем кажется. Официальный MSRP самой 5090 так и остался 1 999 долларов, но 13 мая Nvidia подняла отпускные партнерам примерно на триста долларов, и виноват тут не чип. Виновата память: ИИ-датацентры выкупили производство GDDR7 и HBM на годы вперед, SK Hynix еще весной отчиталась, что весь ее выпуск HBM на 2026 год распродан, а контрактные цены на обычную DRAM во втором квартале выросли на 58–63% за квартал. Профессиональная RTX PRO 6000 на 96 ГБ за шестнадцать месяцев подорожала с 8 565 до 13 250 долларов. Плюс 55%. В июле прилетел еще один раунд подорожания по всей линейке GeForce.
То есть карта, купленная год назад, сегодня стоит дороже, чем стоила при покупке. Для бухгалтерии это дичь, а для расчета амортизации значит, что привычное «списываем в ноль за три года» здесь врет. Остаточная стоимость высокая, беру осторожные 50% через три года.
К карте нужен компьютер: платформа, блок питания хотя бы на 1200 Вт, 128 гигабайт оперативки (иначе будете ждать загрузку весов и материться), нормальный NVMe. Еще примерно 150 тысяч.
Со светом все считается легко. У карты TDP 575 Вт, система целиком под нагрузкой ест около 750. Московский тариф для населения в домах с газовыми плитами с 1 января по 30 сентября составляет 8,00 ₽ за кВт·ч, ночью по двухзонному счетчику 4,15 ₽. С октября обе цифры подрастают до 8,90 и 4,85. Для юрлица в офисе тариф нерегулируемый и выше, к этому вернусь в смете.
|
Срок службы |
Остаточная стоимость |
Амортизация, ₽/ч |
Свет, ₽/ч |
Итого, ₽/ч |
Месяц 24/7, ₽ |
|---|---|---|---|---|---|
|
2 года |
0% |
33,1 |
6,0 |
39,1 |
28 546 |
|
2 года |
50% |
16,6 |
6,0 |
22,6 |
16 463 |
|
3 года |
0% |
22,1 |
6,0 |
28,1 |
20 491 |
|
3 года |
50% |
11,0 |
6,0 |
17,0 |
12 435 |
|
5 лет |
50% |
6,6 |
6,0 |
12,6 |
9 213 |
Дальше везде работаю с жирной строкой: 17 рублей в час, 12 435 в месяц.
Забавно, что про счет за электричество спрашивают первым делом, а он тут дает от силы треть. Сама строка при этом не зависит от того, работала карта или простояла всю неделю выключенной. Амортизация капает всегда.
Почему я обычно отговариваю от 5090
Инференс упирается в объем и скорость видеопамяти куда сильнее, чем в вычислительную мощность чипа. Поэтому сравнивать карты правильнее по цене за гигабайт VRAM, а не по названию поколения. Российская розница на сегодня:
|
Карта |
Цена, ₽ |
₽ за ГБ VRAM |
С обвязкой, ₽ |
₽/час |
₽/мес при 24/7 |
|---|---|---|---|---|---|
|
RTX 3090 24 ГБ |
92 000 |
3 833 |
242 000 |
9,0 |
6 573 |
|
RTX PRO 6000 96 ГБ |
1 050 000 |
10 938 |
1 200 000 |
29,2 |
21 339 |
|
RTX 4090 48 ГБ, моддинг |
549 930 |
11 457 |
700 000 |
18,9 |
13 809 |
|
RTX 5090 32 ГБ |
429 990 |
13 437 |
580 000 |
17,0 |
12 435 |
Отсортировал по цене гигабайта, и порядок получился обратный тому, что подсказывает интуиция.
Самая новая и быстрая карта оказалась самой дорогой по памяти. Гигабайт на 5090 стоит в 3,5 раза дороже, чем на 3090, которая для инференса до сих пор отрабатывает вполне достойно. Девяносто две тысячи — это, кстати, цена новой карты в магазине с гарантией; на вторичке 3090 уходят заметно дешевле, но там уже лотерея с майнингом в анамнезе. Если задача звучит как «поднять модель побольше», две 3090 дадут 48 гигабайт за 184 тысячи против 430 за одну 5090 с ее тридцатью двумя.
Отдельная история RTX 4090 на 48 гигабайт. Это не заводская карта, а перепаянный китайскими мастерскими вариант с удвоенной памятью, изначально под серверные корпуса. За 549 930 ₽ получаете на 50% больше памяти, чем у 5090, доплатив 28%. Цена июльская, и она живет до конца партии: пока я сводил эту статью, конкретно та карта, на которую я смотрел у Регарда, из наличия ушла, а на ее месте оказалась обычная 4090 на 24 гигабайта. Гарантию на такие дает магазин, а не Nvidia, и если карта идет в прод, про это стоит подумать заранее, а не когда она умрет.
Наверху линейки стоит RTX PRO 6000 на 96 ГБ, у самой Nvidia за 13 250 долларов, в российской рознице от 1 049 800. Дорого, зато 96 гигабайт на одной карте снимают всю головную боль с распределением модели между устройствами.
Правило, к которому я пришел: до 24 гигабайт берите 3090 и не переплачивайте, от 24 до 48 смотрите на моддинговые 4090, выше 48 идите в профессиональную линейку или в облако. Гнаться за свежим поколением ради инференса смысла немного, оно нужно для обучения, где работает чип, а не память.
«А давайте соберем четыре штуки»
Ход напрашивается сам собой: раз гигабайт на 3090 дешевле почти втрое, поставим четыре карты и получим 96 гигабайт за 368 тысяч вместо миллиона.
Арифметика верная. Инженерия нет.
Модель, разложенная между картами, требует, чтобы карты постоянно общались. При тензорном параллелизме обмен идет на каждом слое и упирается в шину PCIe, которая на порядок медленнее внутренней памяти карты. На потребительских платформах у процессора всего 24–28 линий PCIe, из них шестнадцать штатно уходят на графику, а бифуркацию x16 в четыре по x4 умеет далеко не каждая плата. В итоге четыре карты в лучшем случае получат по восемь линий, а обычно по четыре, причем часть еще и через чипсет. NVLink, который эту боль лечил, у 3090 еще был, у более новых игровых карт его уже нет.
Потом начинается физика. Четыре карты это полтора-два киловатта под нагрузкой, блок питания на 2000 Вт, корпус, куда все это влезет, и продуманное охлаждение, потому что в четырехслотовой сборке карты душат друг друга. Розетка на 16 ампер такую машину еще вытянет. Вместе с чайником уже нет.
Поэтому в замерах cloudrift одна PRO 6000 на моделях покрупнее обходит сборку из четырех 5090, хотя по сырым характеристикам должна проигрывать вчистую. Девяносто шесть гигабайт на одной карте это девяносто шесть гигабайт без единого межкартового обмена.
Многокарточная сборка имеет смысл, когда модель в одну карту физически не лезет. Как способ сэкономить на гигабайте она не работает почти никогда.
Вот тут и зарыт весь разброс
Теперь возвращаюсь к тому месту, где ошибаются все.
Сколько токенов в секунду дает 5090? Ответ звучит как «от 61 до 4570», и оба конца диапазона правда.
Вот замеры в llama.cpp, квантизация Q4_K_XL, контекст 4K, один поток. То есть ровно то, что видит человек, поставивший себе Ollama и задающий вопросы руками:
|
Модель |
VRAM, ГБ |
Генерация, ток/с |
Обработка промпта, ток/с |
|---|---|---|---|
|
Qwen3 8B |
4,78 |
185,9 |
10 406 |
|
Qwen3 14B |
8,53 |
123,8 |
6 498 |
|
Qwen3 MoE 30B (A3B) |
16,47 |
234,3 |
6 630 |
|
Qwen3 32B (dense) |
18,64 |
61,4 |
2 931 |
Первое, за что цепляется глаз: MoE-модель на тридцать миллиардов параметров генерирует вчетверо быстрее, чем dense на тридцать два, при том что на диске они почти одинаковые. Работают активные параметры: в mixture of experts на каждом токене задействована только часть весов, у Qwen3 MoE это три миллиарда из тридцати. По весам это в десять раз меньше чтения из памяти, а прирост выходит вчетверо, потому что кроме экспертов на каждом токене все равно читаются общие слои, внимание и KV-кэш. Но генерация упирается именно в память, и разница видна сразу.
Так что если вы выбираете модель под свою карту по размеру файла, вы выбираете вслепую.
Второе: промпт обрабатывается в 28–56 раз быстрее, чем генерируется ответ. Для RAG, где на входе 10к токенов, а на выходе абзац, это подарок. Для генерации длинных текстов наоборот.
А теперь то же самое железо, но под нормальным серверным движком. На vLLM с непрерывным батчингом одна 5090 на Qwen3-Coder-30B в AWQ выдает около 4 570 токенов в секунду суммарно по всем запросам. У этого замера открыт код и выложены сырые логи прогонов, что для бенчмарков редкость, поэтому ему можно верить чуть больше обычного.
Карта никуда не разогналась. Просто вместо одного запроса она держит сотни параллельно, и веса, прочитанные из памяти один раз, обслуживают сразу весь батч.
Прежде чем считать деньги, проверим эту цифру физикой.
Генерация в один поток упирается в память: на каждый токен надо прочитать все активные веса. У Qwen3-Coder-30B активных 3 миллиарда, в 4 битах это полтора гигабайта, а память 5090 отдает 1792 ГБ/с. Делим, получаем теоретический предел 1195 токенов в секунду. Реальный движок на MoE выбирает от него процентов 20, то есть около 239. Замер в таблице выше говорит 234. Сходится.
Когда запросов много, веса читаются один раз на весь батч, и упирается уже не память, а вычисления. Тут считать надо по тензорным ядрам, а не по шейдерам: у 5090 105 терафлопс FP32, но батчевый инференс в AWQ идет по пути W4A16 и живет на FP16-тензорных ядрах, а там пик 209,5 терафлопс. При 6 гигафлопсах на токен это 35 тысяч токенов в секунду на бумаге. Замеренные 4 570 дают 27,4 эффективных терафлопса, то есть 13% утилизации тензорных ядер.
13 процентов выглядят издевательством, но для MoE это нормально. Модель на каждом токене раскидывает батч по 128 экспертам, каждому достается матрица размером с носовой платок, и тензорные ядра большую часть времени ждут, пока им подвезут данные. Крупный dense-трансформер выжал бы из той же карты в разы больше. Так что 4 570 это не рекорд железа, а обычный рабочий режим движка, и цифре можно верить.
Батч покупается отзывчивостью. В том прогоне карта держала 400 параллельных запросов, и цифры на пользователя из сырого лога выглядят так: выходных токенов 5,7 в секунду на брата, полный ответ на тысячу токенов приезжает за 2.5 минуты, а первый токен ждать в среднем 109 секунд. Не миллисекунд.
Вот это и есть настоящая цена агрегата в 4 570 токенов. Ни один живой пользователь столько не ждет. Батч такого размера имеет смысл только там, где на другом конце не человек, а очередь заданий, которой все равно, вернется ответ через секунду или через три минуты.
А второе, чего не пишут в бенчмарках, гораздо хуже.
400 клиентов в 32 гигабайта не влезают
Тот замер сделан на коротких запросах: тысяча токенов на входе, тысяча на выходе. Как только у клиентов появляется настоящий контекст, вся конструкция рассыпается, потому что каждому нужна память.
Модель, обрабатывая контекст, хранит для каждого токена ключи и значения по всем слоям внимания. Этот KV-кэш растет линейно и с длиной контекста, и с числом одновременных запросов:
KV-кэш (байт) ≈ 2 × слои × размерность_kv × длина_контекста × число_клиентов × байт_на_число
Подставим Qwen3-30B: 48 слоев, размерность KV 512 после группировки голов, 2 байта на число. Выходит 96 килобайт на каждый токен контекста. Проверить легко: та же модель на 147к токенов занимает 31 ГБ против 16,47 ГБ голых весов, то есть кэш съел 14,5 ГБ, и это ровно 97 килобайт на токен. Формула сходится.
Теперь считаем бюджет памяти. В карте 32 гигабайта, веса в 4 битах занимают 16,5, еще полтора уходят на активации и служебное. Под KV-кэш остается 14 гигабайт, то есть около 142 тысяч токенов контекста суммарно на всех клиентов сразу.
|
Контекст на клиента, ток. |
Клиентов влезает, чел. |
Он же с кэшем в FP8, чел. |
|---|---|---|
|
1 000 (короткий чат) |
142 |
285 |
|
4 000 (короткий RAG) |
36 |
71 |
|
8 000 (обычный RAG) |
18 |
36 |
|
16 000 (документы посерьезнее) |
9 |
18 |
|
32 000 (длинный контекст) |
4 |
9 |
|
64 000 (агент с историей) |
2 |
4 |
400 параллельных клиентов на одной 5090 возможны ровно при одном условии: у каждого контекст меньше 360 токенов. Полстранички. Как только клиенты приносят по 8к токенов, их влезает 18. При 32к остается 4 клиента.
Причем удар двойной. Мало того, что клиентов влезает мало, так еще и генерация на длинном контексте сама по себе замедляется: у той же модели скорость падает с 234 токенов в секунду на 4к контекста до 52 на 147к. Внимание считается по всему контексту, и чем он длиннее, тем дороже каждый следующий токен.
Складываем оба эффекта, и картина получается такая:
|
Что за нагрузка |
Клиентов, чел. |
Агрегат, ток/с |
Токенов в месяц, млн |
Цена 1M, ₽ |
|---|---|---|---|---|
|
Синтетика из бенчмарка, 1K |
142 |
4 570 |
12 010 |
1,0 |
|
Короткий RAG, 4K |
36 |
3 411 |
8 963 |
1,4 |
|
Обычный RAG, 8K |
18 |
1 521 |
3 997 |
3,1 |
|
Документы, 16K |
9 |
904 |
2 377 |
5,2 |
|
Длинный контекст, 32K |
4 |
359 |
942 |
13,2 |
|
Агент с историей, 64K |
2 |
213 |
560 |
22,2 |
Только не стройте на этой таблице бизнес-план: это верхняя теоретическая граница, а не то, что вы получите. Число клиентов посчитано по памяти, а агрегат по степенной модели, подогнанной к двум точкам замера, так что колонка «токенов в месяц» знает свою погрешность в разы. Каждая строка предполагает, что карта пашет круглосуточно без единой паузы, все клиенты приходят ровным потоком, контексты одинаковой длины, никто не отваливается по таймауту и очередь никогда не простаивает. В жизни такого не бывает. Днем пик, ночью тишина, в понедельник вдвое больше, чем в субботу. Живой сервис держит хорошо если треть от этих цифр, и я бы закладывал треть.
1 ₽ за миллион существует только в синтетике на игрушечных контекстах. На обычном RAG с восемью тысячами токенов это уже 3 рубля, а на агентной нагрузке с длинной историей 22 рубля. 22 рубля за миллион при идеальной круглосуточной загрузке.
Запомните эту цифру до раздела с прайсами.
Ну и про одиночного пользователя, раз уж считаем. Один человек дает батч из одного запроса и упирается в 234 токена в секунду на MoE или 61 на плотной модели. 12 миллиардов токенов в месяц ему недоступны в принципе, его потолок 616 миллионов, и то если он не спит. А домашний сценарий обычно выглядит так: задал вопрос, карта тридцать секунд молотила, потом ты 3 минуты читаешь ответ и думаешь. Загрузка процента два.
|
Что происходит на карте |
Токенов в месяц, млн |
Цена 1M, ₽ |
|---|---|---|
|
Один человек, dense 32B, работает 2% времени |
3,2 |
3 855 |
|
Один человек, dense 32B, гоняет 30% времени |
48,4 |
257 |
|
Один человек, MoE 30B, гоняет 30% времени |
184,7 |
67 |
20 726 ₽ из заголовка живут еще на строчку ниже. Личный ассистент, которым человек пользуется как ассистентом, а не как генератором датасета, выдает от силы 600к выходных токенов в месяц. Делим 12 435 ₽ на эти 600к и получаем 20 726 ₽ за миллион. Та же карта, та же модель, тот же счет за свет.
Между 20 726 ₽ у домашнего пользователя и 1 ₽ в идеальной синтетике лежат четыре сомножителя: плотная модель против MoE, батч, длина контекста и доля времени под нагрузкой. Ни один из них не про то, какая видеокарта у вас в корпусе.
Отсюда, кстати, и ответ на любимое «у меня своя карта, инференс бесплатный». На уровне кассы верно: денег в этом месяце не списали. На уровне экономики нет: карта не бесплатная, она предоплаченная, и каждый час простоя жжет уже уплаченное.
Дешевый API дешев вовсе не потому, что у провайдера какая-то особая скидка на железо. У него то же железо загружено круглосуточно за счет батчинга запросов от тысяч клиентов, а у вас оно загружено на два процента. Соревнование идет не в цене карты, а в утилизации, и одиночный пользователь тут проигрывает по построению.
Меня удивляет, что этого соображения почти нет в статьях про локальные LLM. Оно же определяет весь расчет.
Каким движком это гонять
Раз утилизация решает все, выбор движка перестает быть делом вкуса.
Ollama прекрасна для одного единственного сценария: вы сами, руками, задаете вопросы своей модели. Ставится одной командой, модели качает сама, работает из коробки. Как только пользователей становится больше одного, она превращается в тормоз, потому что запросы обрабатывает по очереди. Порядок разрыва виден на любом железе: в сопоставлении на A100 при восьми одновременных пользователях на Llama 3 8B vLLM дает 187 токенов в секунду против 82 у Ollama, и чем больше параллельных запросов, тем сильнее расходятся. На 5090 абсолютные числа будут другими, а пропорция та же.
vLLM это то, на чем считается вся правая часть моих таблиц. Непрерывный батчинг, PagedAttention, префиксное кэширование. Взамен требует, чтобы вы разобрались с параметрами: сколько памяти отдать под кэш, какой максимальный контекст разрешить, сколько запросов держать одновременно. Поставить и забыть не выйдет, но именно он превращает карту из игрушки в сервер.
llama.cpp живет посередине и хорош там, где железо слабое или разношерстное: умеет выгружать часть слоев в оперативку, работает на процессоре, запускается везде. Замеры одиночного потока выше сделаны как раз на нем.
Если вы посчитали окупаемость по таблице с батчингом, а потом поставили Ollama, ваша экономика будет отличаться от расчетной в десятки раз. И не в лучшую сторону.
Чем платим за то, что модель влезла
Все цифры выше посчитаны для четырехбитной квантизации, и это не случайность. В полной точности FP16 тридцатимиллиардная модель весит под 60 гигабайт и ни в одну потребительскую карту не помещается. В Q4 она весит 16–19 и помещается свободно. Вся домашняя история с локальными LLM держится вот на этом сжатии.
Что при этом ломается?
Начну с официальной таблицы llama.cpp, потому что дальше цифры разъезжаются по вторичным блогам и мутируют. LLaMA-7B, базовая перплексия 5,9066: Q8_0 добавляет 0,0004 пункта, Q6_K — 0,0044, Q5_K_M — 0,0142, Q4_K_M — 0,0535, а старый Q4_0 сразу 0,25. То есть Q8 от FP16 отличается на четыре десятитысячных, это шум. Разрыв между Q4_K_M и Q8 в 53 тысячных на глаз в диалоге не ловится.
В процентах по разным моделям Q4_K_M роняет перплексию на 1–3%: рецензируемый замер на Llama-3.1-8B дает 7,32 против 7,56 на WikiText-2, это 3,3%, на семерке из таблицы выше меньше процента. По памяти выигрыш стабильный и большой: 13,0 ГБ в F16 против 3,8 ГБ в Q4_K_M, то есть меньше трети. Скорость растет вдвое-втрое, и это тоже воспроизводится на замерах.
Из этих процентов следует три вещи, и они полезнее самих процентов.
Большая модель в низком кванте почти всегда лучше маленькой в высоком. Разрыв между 70B и 8B на MMLU порядка восемнадцати пунктов, а потери от Q4_K_M измеряются единицами процентов, так что никакое сжатие эту дистанцию не закрывает. Выбор «влезет 8B без потерь или 70B со сжатием» решается в пользу второго.
Для агентов и вызова инструментов ниже Q4 лезть не стоит. Там, где модель обязана выдать валидный JSON и не перепутать имя функции, потери от сжатия вылезают заметно раньше, чем в свободном тексте. И вылезают они сломанным форматом, а не слегка корявой фразой, которую можно пережить. Отраслевая рекомендация тут даже строже моей: для structured extraction и tool calls советуют держать Q6 и выше, а KV-кэш не опускать ниже Q8.
А третье самое неприятное. Качество Q4 меряют на общих бенчмарках, а ломается оно на вашей конкретной задаче, и заранее вы этого не увидите. Проверяется только одним способом: прогнать свои примеры через оба варианта и сравнить глазами. Час работы, который иногда экономит покупку лишней карты.
Прайсы, с которыми сравниваем
В рублях за миллион токенов, по курсу 79,86:
|
Сервис |
Вход, ₽/1M |
Выход, ₽/1M |
Комментарий |
|---|---|---|---|
|
DeepSeek V4-Flash |
11,2 |
22,4 |
прайс, 0,14/0,28 доллара |
|
DeepSeek V4-Pro |
34,7 |
69,5 |
0,435/0,87 доллара |
|
GigaChat-2 Lite |
65 |
65 |
0,065 ₽ за 1000, ставка единая, с НДС |
|
YandexGPT 5.1 Lite |
200 |
200 |
0,20 ₽ за 1000, ставка единая, с НДС |
|
Claude Opus 5 |
399 |
1 997 |
5/25 долларов |
|
YandexGPT 5.1 Pro |
800 |
800 |
0,80 ₽ за 1000, ставка единая, с НДС |
|
GPT-5.6 Sol |
399 |
2 396 |
5/30 долларов |
Долларовые позиции пересчитаны по курсу и указаны без НДС, российские с ним. К этому вернусь через абзац, потому что поправка получается не косметическая.
Между крайними позициями по выходным токенам больше ста раз. Вот вам и причина, по которой универсального ответа на вопрос «свое или API» не существует в природе: ответ целиком определяется тем, какую строку вы поставите в знаменатель.
Две оговорки к российским строкам, обе в пользу российских строк. У Сбера есть минимальный месячный платеж 600 рублей, так что на совсем мелких объемах экономия упирается в него. А у Яндекса рядом с синхронным режимом лежит асинхронный, вдвое дешевле: 0,41 ₽ за тысячу у Pro и 0,10 у Lite. Для пакетной обработки, где ответ нужен не сейчас, а к утру, это меняет весь счет, и дальше в таблицах я это отдельно отмечу.
У русских моделей другая математика
На эту таблицу регулярно смотрят и делают вывод, что отечественные сервисы обнаглели: YandexGPT Pro за восемьсот рублей против Opus за четыреста, при том что по качеству они, мягко говоря, в разных весовых категориях. Вывод напрашивается сам, но если довести расчет до конца, он разваливается на трех поправках.
Первая: у Яндекса единая ставка за токен, вход и выход по 800 рублей за миллион, то есть сквозной запрос с ответом стоит 1 600. У западных вендоров выход дороже входа впятеро. Сравнивать по одной колонке бессмысленно, все решает профиль нагрузки.
Вторая: российский прайс указан с НДС, а долларовый нет. С 1 января 2026 года ставка 22%, и при оплате зарубежного сервиса ее придется начислить сверху как налоговому агенту по статье 161 НК. Opus по 399 рублей за входной миллион превращается в 487, выход с 1 997 в 2 436.
Третья, про которую забывают вообще все: западные токенизаторы плохо переваривают кириллицу. Замер восьми токенизаторов на одном и том же русском тексте дает перерасход от 1,07 у XLM-RoBERTa до 2,49 у старого cl100k; современный o200k, на котором считает GPT-4o, укладывается в 1,27. Сам Яндекс в карточке модели пишет прямо: «32k токенов нашей модели в среднем соответствует 48k токенам Qwen-2.5», то есть полтора раза в свою пользу. Считать надо цену не тысячи токенов, а тысячи ваших символов.
Складываем все три и смотрим, что получается на одинаковом объеме русского текста. Для кириллицы беру коэффициент 1,3, он лежит близко к измеренному для o200k:
|
Профиль нагрузки, млн ток. |
Opus 5 как в прайсе, ₽ |
Он же с НДС и кириллицей, ₽ |
YandexGPT 5.1 Pro, ₽ |
|---|---|---|---|
|
RAG: вход 48, выход 4,8 |
28 749 |
45 595 |
42 240 |
|
Чат: вход 45, выход 15 |
47 914 |
75 992 |
48 000 |
|
Генерация: вход 100, выход 200 |
439 215 |
696 595 |
240 000 |
|
Кодинг-агенты: вход 450, выход 15 |
209 625 |
332 466 |
372 000 |
Из четырех профилей Яндекс выигрывает три. Держится Opus только там, где на вход подается гигантский контекст, а генерации мало, то есть на агентном коде.
Одна дырка в этой таблице есть, и назову ее сам, пока не назвали в комментариях. Агентский НДС на общей системе принимается к вычету, как и НДС внутри цены Яндекса. Для плательщика НДС на ОСНО обе колонки надо сравнивать нетто, и тогда разрывы съеживаются. 22 процента становятся настоящими деньгами для тех, кто НДС не вычитает: упрощенка, освобожденные, и все, кто платит зарубежному сервису через посредника.
Получается, «наши обнаглели» на поверку означает «наши тарифицированы по-другому», и на русскоязычной нагрузке с генерацией они выходят дешевле флагманов. Что никак не отменяет разницы в качестве самой модели, но решение о закупке принимают по смете, а не по бенчмаркам.
Насчет разницы в качестве. Модели в таблице разного класса, и притворяться, будто Qwen3-30B на вашей карте заменяет Opus 5, я не собираюсь. Про это отдельно и ниже.
Точка, ради которой все затевалось
Карта стоит 12 435 ₽ в месяц. Сколько выходных токенов надо через нее прогнать, чтобы обойти каждый сервис?
Проценты от абстрактного «потолка карты» я тут писать не буду, они только путают. Вместо этого перевожу объем в то, что карта должна физически делать: сколько токенов в секунду выдавать в среднем, круглосуточно, без пауз.
|
Против чего |
Токенов в месяц, млн |
Ток/с в среднем 24/7 |
Что это значит для карты |
|---|---|---|---|
|
GPT-5.6 Sol |
5,2 |
2 |
dense-модель, 3% времени |
|
Claude Opus 5 |
6,2 |
2 |
dense, 4% времени |
|
YandexGPT 5.1 Pro |
15,5 |
6 |
dense, 10% времени |
|
YandexGPT 5.1 Lite |
62,2 |
24 |
dense, 39% времени |
|
DeepSeek V4-Pro |
179 |
68 |
MoE в один поток, 29% времени |
|
GigaChat-2 Lite |
191 |
73 |
MoE в один поток, 31% времени |
|
DeepSeek V4-Flash |
556 |
212 |
MoE в один поток, 90% времени |
Против дорогих моделей карта отбивается на объемах, которые сжигает один активный человек. 5 миллионов выходных токенов в месяц это 170 тысяч в день, сотня-другая нормальных ответов, и карте для этого надо просыпаться на пару минут в час. Трое сотрудников, всерьез работающих через GPT или Opus, уже окупают железо.
Дальше начинается неприятное. GigaChat Lite стоит 65 рублей за миллион при единой ставке, и чтобы его обойти, карта должна выдавать 73 токена в секунду в среднем за сутки. На плотной 32B это физически невозможно, там потолок 61. Нужна MoE, нужен непрерывный поток задач, и нужно, чтобы этот поток шел ночью тоже.
На прайсе Сбера стоит остановиться отдельно, потому что вторичные обзоры пересказывают его неверно и цифры оттуда разошлись по рунету. Раздельных ставок за вход и выход у GigaChat нет вообще: в официальных тарифах одна колонка на все, 0,065 рубля за тысячу токенов с НДС. Западная логика «выход впятеро дороже входа» на российских вендоров не переносится, и если применить ее по привычке, точка безубыточности уедет на порядок.
А нижняя строка отрезвляет окончательно. Чтобы обойти DeepSeek V4-Flash по деньгам, карта должна выдавать 212 токенов в секунду в среднем за сутки. Не в пике, а в среднем: с учетом ночи, выходных и обеда. На MoE-модели это 90% максимальной скорости одиночного потока. Технически достижимо, практически означает, что карта пашет почти без остановок, а вы к ней приставили конвейер, который не прерывается.
Достать эту цифру можно батчингом, и на коротких запросах она берется без напряжения. А вот на длинных начинается то, о чем был раздел про KV-кэш. Помните 22 рубля за миллион на агентной нагрузке с историей в 64к токенов? У DeepSeek V4-Flash выходной миллион стоит 22,40.
Это ноль. Разница меньше, чем недельное колебание курса: за несколько дней доллар прошел от 78 до 79,86, и вместе с ним эти две цифры успели поменяться местами.
Только сравнивать эти две цифры в лоб нельзя. Слева стоит вся стоимость карты, и обработка 64к токенов контекста в нее уже включена. Справа только выходной миллион. А на агентной нагрузке вход больше выхода на порядок, потому что те же 64к едут в каждый запрос. Досчитайте вход по 11,2 рубля, и API уезжает в разы. Включите у провайдера кэширование префикса, и он возвращается обратно.
То есть на самой тяжелой и самой реалистичной для агентов нагрузке своя карта и дешевый API сходятся в ноль, а куда качнется итог, решают уже не цены, а настройки кэша и профиль запросов. Разница в деньгах там, где ее ищут, отсутствует.
Чем короче ваши запросы, тем больше выигрыш своего железа. Чем длиннее контекст, тем быстрее выигрыш испаряется. Эта зависимость, по-моему, полезнее всех таблиц в этой статье, и я нигде не видел, чтобы ее проговаривали вслух.
Найдите себя в таблице
Миллионы токенов плохо ложатся на голову, поэтому вот шесть живых сценариев. Во второй колонке объем, по которому вы найдете свой случай, дальше счет в рублях за месяц.
Если своих цифр под рукой нет, прикинуть можно за минуту. Для русского текста один токен это примерно 2–3 символа, страница А4 весит около тысячи. Дальше перемножаете запросы в день, средний контекст, средний ответ, умножаете на тридцать. Ошибетесь в полтора раза, но порядок будет верный, а для выбора порядка достаточно.
|
Нагрузка |
Токенов в месяц, вход → выход, млн |
DeepSeek Flash, ₽ |
GigaChat Lite, ₽ |
Claude Opus 5, ₽ |
YandexGPT Pro, ₽ |
|---|---|---|---|---|---|
|
Личный ассистент, один человек |
3 → 0,6 |
47 |
600 |
2 396 |
2 880 |
|
RAG по документам, 200 запросов/день |
48 → 4,8 |
644 |
3 432 |
28 749 |
42 240 |
|
Чат-бот поддержки, 1000 диалогов/день |
45 → 15 |
839 |
3 900 |
47 914 |
48 000 |
|
Кодинг-агенты, команда из пяти человек |
450 → 15 |
5 366 |
30 225 |
209 625 |
372 000 |
|
Разметка, 500 тыс. документов в месяц |
250 → 100 |
5 031 |
22 750 |
299 465 |
280 000 |
|
Генерация описаний, 1 млн товаров |
100 → 200 |
5 590 |
19 500 |
439 215 |
240 000 |
|
Своя 5090: железо и свет |
сколько влезет |
12 435 |
12 435 |
12 435 |
12 435 |
|
Она же с инженером |
сколько влезет |
32 435 |
32 435 |
32 435 |
32 435 |
Две последние строки не опечатка. Карте безразлично, какая из этих нагрузок через нее идет, лишь бы физически влезала. Разница между ними — двадцать тысяч в месяц на человека, который эту карту обслуживает; почему эта строка обязана быть в таблице, разберу отдельно ниже.
Влезает ли, проверим тем же способом: переведем месячный объем в средние токены в секунду. Личный ассистент требует от карты 0,2 токена в секунду, RAG около двух, чат-бот и кодинг-агенты примерно по 6, разметка 38, а миллион товарных описаний уже 76.
Сопоставьте с потолками: плотная 32B выдает 61 токен в секунду, MoE-модель 234. Значит первые 4 сценария карту не напрягают, разметка занимает ее на две трети, а вот описания в плотную модель уже не помещаются, там нужна либо MoE, либо батчинг, либо вторая карта.
Про кодинг-агентов скажу отдельно, потому что это сейчас самая быстрорастущая строка расходов у всех знакомых команд. По данным Anthropic разработчик на Claude Code обходится в 150–250 долларов в месяц, около 13 за активный день, а у 90% пользователей выходит меньше 30 долларов в день. Пятеро это уже 750–1250 долларов, то есть 60–100 тысяч рублей ежемесячно, и на таком фоне карта за 430 тысяч отбивается за полгода.
Арифметически отбивается. Практически нет, потому что тридцатимиллиардная модель в роли кодинг-агента ведет себя ощутимо иначе, и команда заметит это на первой же неделе. И скажет вам это не тактично.
Осталась неудобная часть таблицы. Против дешевого API карта не выигрывает ни в одном из шести сценариев: даже на миллионе описаний свой токен стоит 62 ₽ против 28 ₽ у DeepSeek. А если в строку своей карты добавить инженера, то ее обходит и GigaChat, причем тоже во всех шести: самый тяжелый сценарий стоит у Сбера 30 225 рублей против 32 435 у карты. Против дорогих моделей карта по-прежнему выигрывает, и чем дороже сервис, тем раньше.
А если просто арендовать?
Этот вариант почему-то регулярно выпадает из обсуждения, хотя отвечает на вопрос об окупаемости точнее всех остальных. Аренда в российских дата-центрах, ставки на конец июля:
|
Карта |
Дешево, ₽/час |
Дорого, ₽/час |
Кто |
|---|---|---|---|
|
RTX 4090 24 ГБ |
34,3 |
82,8 |
ML Cloud внизу, Immers вверху |
|
RTX 5090 32 ГБ |
46,6 |
130,8 |
ML Cloud внизу, Immers вверху |
|
H100 80 ГБ |
242 |
352 |
Selectel 336, Intelion 352 |
Разброс между провайдерами кратный, и это первое, что стоит из таблицы вынести: цифры из обзоров обычно берут одного-двух дорогих, а рынок вдвое ниже. Сравнивать покупку надо с той ставкой, которую вы сами найдете на рынке, а не с верхней границей.
Купленная карта с обвязкой стоит 580 тысяч и ест 6 ₽ электричества в час. Арендованная не стоит ничего, пока выключена, и стоит свою ставку, пока работает. Значит каждый час работы своей карты экономит разницу, и капекс отбивается тогда, когда разница накопится до 580 тысяч.
|
Против чего |
Экономия часа, ₽ |
Часов до окупаемости |
При 8 ч/сутки |
|---|---|---|---|
|
5090, дешевая аренда |
40,6 |
14 293 |
59 месяцев |
|
5090, дорогая аренда |
124,8 |
4 649 |
19 месяцев |
|
4090, дешевая аренда |
28,2 |
20 531 |
84 месяца |
|
H100 80 ГБ |
329,6 |
1 760 |
7 месяцев |
Строку про H100 читайте аккуратно, там сравнивается карта на 32 гигабайта с картой на 80. Она скорее про дороговизну аренды топового железа, чем про выгодность покупки игрового.
А первые три строки говорят вещь, которую хорошо бы принять до похода в магазин. При загрузке восемь часов в сутки своя 5090 отбивает себя против аренды за срок от полутора до пяти лет. За полтора выйдет следующее поколение, за пять ваша станет музейным экспонатом. Смысл появляется только при загрузке, близкой к круглосуточной: там окупаемость падает до 194–595 суток.
И это все еще без человека. Инженер за 240 тысяч в год при восьмичасовой загрузке добавляет 82 рубля к каждому часу работы своей карты. Против дешевой аренды 5090 или 4090 экономия при этом уходит в минус, то есть окупаемости нет вообще: дешевле снимать. Держится только сравнение с самыми дорогими провайдерами и с H100.
Поэтому заказчику на этом месте я задаю ровно один вопрос: чем карта будет занята ночью. Если внятного ответа нет, покупать нечего, берите почасовую аренду и через три месяца посмотрите на статистику загрузки.
Смета, в которой все врут
Выше я считал только железо и свет. Теперь полная версия, одна карта в офисе:
|
Статья |
Сумма, ₽ |
Тип |
|---|---|---|
|
RTX 5090 32 ГБ |
429 990 |
разово |
|
Платформа, БП 1200 Вт, 128 ГБ RAM, NVMe |
150 000 |
разово |
|
ИБП на 1,5 кВт |
45 000 |
разово |
|
Электричество, 24/7 при 0,75 кВт |
52 560 |
в год |
|
Кондиционер под 750 Вт тепла |
18 000 |
в год |
|
Инженер, 4 часа в месяц по 5 000 ₽ |
240 000 |
в год |
|
Первый год |
935 550 |
77 962 ₽/мес |
Электричество тут посчитано по московскому тарифу для населения, 8 рублей за киловатт-час. Юрлицо в офисе покупает по нерегулируемой цене, и она выше, так что вся строка «первый год» это нижняя граница, а не оценка.
ИБП в этом списке выглядит лишним ровно до первой просадки напряжения. Карта, тянущая под 600 ватт в пике, гасит машину прямо посреди генерации, и если это прод, о случившемся вам сообщит клиент.
С кондиционером похожая история, только противнее. Все 750 ватт, которые ест система, уходят в тепло. Летом в закрытой комнате это ощущается физически, а карта при перегреве сбрасывает частоты, и расчетная производительность просаживается. Дома лечится открытым окном, в офисе становится строчкой сметы.
Но самая тяжелая строка в таблице последняя. Инженер, который поднимает vLLM, чинит все после обновления драйвера, разбирается, почему модель вдруг стала отвечать медленнее, и следит, чтобы диск не забился логами, съедает 26% первого года. Причем 4 часа в месяц это я еще пожадничал, взял нижнюю границу.
А на втором году, когда капекс уже потрачен, остается один опекс: 310 560 ₽ за год, из них 240 000 человек. 77 процентов стоимости вашего локального инференса на втором году это зарплата того, кто его обслуживает. Не карта, не свет и не память.
У API такой статьи расходов нет. Обновление модели, война с драйверами и мониторинг железа лежат на провайдере. Расчеты в духе «карта окупится за полгода» почти всегда сделаны без человека в смете, поэтому и не сбываются. Мою собственную таблицу «найдите себя» это тоже касается, потому там и стоят две строки.
Куда уходят эти двести сорок тысяч
Строчка «4 часа в месяц» выглядит абстрактно, поэтому конкретнее.
Больше всего времени съедают драйверы, причем самым обидным способом. При тестировании 5090 на vLLM выяснилось, что на драйвере 570.86.15 карта показывает уровень 4090, а после обновления до 575.57.08 выдает заметно больше во всех тестах. Ошибки при этом нет, ничего не падает, в логах чисто. Вы просто месяцами платите за железо, которое работает вполсилы, и узнаете об этом случайно. Если вообще узнаете.
Дальше память кончается не тогда, когда вы этого ждете. Модель загрузилась, тесты прошли, все прекрасно. Через неделю в прод заходит человек с документом на сто тысяч токенов, KV-кэш распухает, процесс падает по OOM. Падает целиком, вместе со всеми запросами, которые в этот момент обрабатывались. Лечится ограничением контекста и параллельности на уровне движка, но додуматься до этого надо заранее, а не после первого разбора полетов.
Отдельная беда в том, что карта деградирует молча. Греется под нагрузкой, сбрасывает частоты, производительность сползает плавно и без единого алерта. 4к токенов в секунду постепенно превращаются в 3.5к, расчет окупаемости из этой статьи постпенно съезжает, а в мониторинге все зеленое.
Потом выходит новая версия Qwen, которая лучше на ваших задачах, и надо качать двадцать гигабайт весов, конвертировать, прогонять свои примеры, переключать прод. У пользователя API это одна строка в конфиге, а иногда вообще ничего.
И самое банальное: одна карта это единая точка отказа. Умер блок питания, полетел кулер, обновление сломало окружение. Пока чините, инференса нет. Резервирование стоит второй карты, то есть удваивает капекс и рушит всю экономику, которую мы так старательно считали. Компромисс, который я обычно и предлагаю, выглядит как ключ на API в качестве горячего резерва: падение железа тогда означает временный рост счета, а не остановку продукта.
Кэш, который ломает весь расчет
До сих пор я считал в основном по выходным токенам, и для генеративных задач это правильно. Но у большинства систем картина обратная: входных токенов на порядок больше, потому что в каждый запрос уезжает контекст, инструкции и куски документов.
И вот здесь у API есть механизм, которого в локальном сетапе нет.
Если один и тот же префикс запроса повторяется, провайдер не считает его заново, а достает из кэша. У DeepSeek попадание в кэш стоит 0,0028 доллара за миллион входных токенов против 0,14 при промахе. В пятьдесят раз дешевле. По курсу это 22 копейки против 11,2 рубля.
На нашем RAG-сценарии это работает так. Двести запросов в день, 48 миллионов входных токенов в месяц, и значительная их часть это одна и та же системная инструкция плюс одни и те же куски базы знаний. При хорошем попадании входная часть счета падает почти в ноль, и вся экономика API улучшается еще в несколько раз относительно таблицы выше.
Локально такой механизм тоже есть: в vLLM это automatic prefix caching, работает по тому же принципу. Разница в том, что у провайдера он включен и настроен, а у вас его надо осознанно поднять, выделить память и убедиться, что он срабатывает на вашем паттерне запросов. Еще одна задачка тому самому инженеру из сметы.
Так что если у вас RAG или агент с длинными повторяющимися инструкциями, посчитайте счет с учетом кэша, прежде чем идти в магазин. Мне попадались расчеты, где грамотный переход на кэшируемые префиксы экономил больше, чем вся затея с локальным железом. Без единого рубля капекса.
Веса открытые, а памяти нет
Возвращаюсь к оговорке, которую оставил в разделе с прайсами.
Лучшие открытые модели середины 2026 года это Kimi K3, GLM-5.2 и DeepSeek V4. Веса лежат открыто, качай кто хочет. С лицензиями чуть сложнее, чем принято думать: у DeepSeek V4 и GLM-5.2 обычный MIT, а Kimi K3 выложена под собственной лицензией Moonshot, где для компаний с выручкой выше двадцати миллионов долларов, продающих модель как сервис, требуется отдельное соглашение. Для российского юрлица это, скорее всего, неважно, но прочитать перед проливом в прод стоит.
Смотрим на размеры. DeepSeek V4-Pro это 1,6 триллиона параметров, 49 миллиардов из которых активны. Даже в четырех битах порядка 800 гигабайт весов. Двадцать пять карт по 32 гигабайта, и это только чтобы модель загрузилась, без KV-кэша. Двадцать пять игровых карт в одну машину все равно не ставятся, а разнесете по нескольким, скорость съедят межкартовые обмены. Kimi K3 еще толще: 2,8 триллиона параметров, полтора терабайта файлов на Hugging Face.
Чтобы не смешивать сущности: дешевый V4-Flash, по которому я считал все деньги выше, это не та же модель, у него 284 миллиарда параметров и 13 активных. 22 рубля за выходной миллион берут не за фронтир на полтора триллиона, а за модель поменьше.
В вашу 5090 влезает Qwen3-30B, GPT-OSS 20B, Qwen3 32B в Q4. Хорошие рабочие модели, я их регулярно ставлю в прод под конкретные задачи. Но это не Opus 5 и не DeepSeek V4-Pro, и разница видна на первой же сложной задаче.
Без этой поправки вся арифметика выше превращается во вранье. Сравнивая карту с API, вы сравниваете разные товары, а не один и тот же по разной цене. Правильно вопрос звучит так: хватит ли мне модели, которая влезает в карту, и сколько я сэкономлю, если хватит.
На классификации, извлечении сущностей, суммаризации, поиске по документам, разметке, генерации по шаблону тридцати миллиардов хватает с запасом. Там своя карта имеет смысл. На задачах, где нужен фронтир, локальная модель не заменяет API, она просто другая.
Откуда берется сама эта пропасть в классе моделей и почему обучить свою с нуля выйдет не дешевле, я разбирал в прошлой статье про экономику претрейна: там та же логика ярусов, только про обучение, и там же видно, почему модель уровня DeepSeek V4 не появляется у вас в подвале ни за какие деньги.
Что не покупается за токены
Если бы все упиралось в деньги, статью можно было закончить строчкой «берите дешевый API, считайте только против дорогих». Но за своим железом идут не за экономией, и вот тут расчет разворачивается.
Первое, за чем идут: чтобы данные не покидали контур. С 30 мая 2025 года в России действуют штрафы за утечку персональных данных, и устроены они двухступенчато. За первую утечку юрлицу выпишут фиксированные 3–15 миллионов в зависимости от масштаба, а за повторную включается оборотный штраф: от 1% до 3% годовой выручки, не меньше 20 миллионов и не больше 500. Плюс обязанность уведомить Роскомнадзор за 24 часа. С 1 января 2026 года дела по статье 13.11 КоАП вернулись к мировым судьям. Отправка персональных данных клиентов в зарубежный API это отдельный долгий разговор с юристами, и в ряде отраслей он заканчивается однозначно. Для медицины, банков и всего, что попадает под КИИ, локальный инференс часто и не про экономию вовсе, а единственный проходящий вариант.
Второе: отсутствие внешнего рубильника. Двенадцатого июня Министерство торговли США закрыло доступ к двум моделям Anthropic, Fable 5 и Mythos 5, причем не России отдельно, а всем иностранцам без экспортной лицензии BIS, включая собственных сотрудников компании с иностранными паспортами. Тридцатого июня ограничение сняли.
Восемнадцать дней. Ничего не рухнуло, история почти забылась.
Но за эти восемнадцать дней вопрос «а не купить ли нам свою карту» в инженерных чатах задали чаще, чем за весь предыдущий год, и я эти сообщения видел своими глазами. Плюс OpenAI закрыла доступ из России еще в июне 2024 года и с тех пор его не вернула: в официальном списке поддерживаемых стран России нет. Еврокомиссия 22 января 2026 года обновила разъяснения к статье 5n санкционного регламента, и хостинг ИИ-моделей вместе с доступом к GPU-вычислениям попал в запрещенные к поставке услуги отдельной категорией. Если продукт построен на чужом API, выключатель от него лежит в чужих руках. Карта под столом этим свойством не обладает.
Третье всплывает реже, но иногда решает: своя задержка. Локальная модель отвечает через локальную сеть, минуя интернет и очередь провайдера.
Ни один из трех пунктов деньгами напрямую не меряется, но чаще всего перевешивают как раз они. Мой опыт такой: проекты, где локальное железо оказалось верным решением, почти никогда не выбирали его ради экономии. Выбирали, чтобы данные остались внутри периметра или чтобы систему не могли выключить снаружи. Экономия шла бонусом, да и то не всегда.
Как это выглядит в реальности
Чистых вариантов в живых проектах почти не бывает, и правильный ответ обычно звучит как «и то, и другое».
Нагрузка делится на два потока по стоимости ошибки. Массовое, однотипное и терпимое к качеству едет на свою карту: классификация обращений, извлечение полей из документов, первичная суммаризация, нормализация текста, эмбеддинги для поиска. Сложное, редкое и дорогое в случае промаха уходит в API: финальные ответы клиенту, рассуждения, код, юридические формулировки.
Считается это той же формулой, только по каждому потоку отдельно, и выходит почти всегда лучше любого из чистых вариантов. Массовый поток занимает карту круглосуточно, поднимая утилизацию туда, где она наконец начинает выигрывать. Дорогой остается в API, где вы платите за фактическое число сложных запросов и не пытаетесь заменить фронтир 30 миллиардами параметров.
Приятный побочный эффект: маршрутизатор между потоками легко превращается в аварийный переключатель. Карта упала, трафик ушел в API, счет вырос, продукт работает.
И еще про эмбеддинги, их постоянно забывают. Модель для векторизации текста на порядок меньше генеративной, отлично живет на любой карте, включая ту же 3090, а на RAG-нагрузке через нее проходит основной объем работы. Свое железо под эмбеддинги окупается почти всегда, даже когда генерация целиком остается в облаке.
А теперь неудобный вопрос
Уже дописывая этот раздел, я сообразил, что все сравнения выше построены на подмене. Я весь текст сравнивал Qwen3-30B на своей карте с Opus, GPT и YandexGPT, то есть свою скромную модель с чужими флагманами. А правильное сравнение выглядит совсем иначе: ту же самую Qwen можно просто взять по API.
Qwen3-Coder-30B-A3B, ровно та модель, на которой построены все замеры выше, стоит 0,07 доллара за миллион входных токенов и 0,27 за миллион выходных. По курсу это 5,6 и 21,6 рубля. Это международный прайс, и тут есть нюанс, который надо назвать сразу: OpenRouter закрыл доступ из России в конце июня, а Novita и SiliconFlow работают, но платить у них надо иностранной картой. Рубли и счет с НДС на юрлицо дают российские агрегаторы, и там дороже: у RouterAI та же модель стоит 7 и 27 рублей за миллион, у AITunnel 12 и 50. Дальше считаю по обоим маршрутам.
|
Нагрузка |
Qwen по междунар. прайсу, ₽/мес |
Он же за рубли на юрлицо, ₽/мес |
Своя 5090, ₽/мес |
Разница с рублевым |
|---|---|---|---|---|
|
Личный ассистент |
30 |
37 |
12 435 |
API дешевле в 334 раза |
|
RAG, 200 запросов/день |
372 |
466 |
12 435 |
в 27 раз |
|
Чат-бот, 1000 диалогов/день |
575 |
720 |
12 435 |
в 17 раз |
|
Кодинг-агенты, 5 человек |
2 839 |
3 555 |
12 435 |
в 3,5 раза |
|
Разметка, 500 тыс. документов |
3 554 |
4 450 |
12 435 |
в 2,8 раза |
|
Генерация 1 млн описаний |
4 871 |
6 100 |
12 435 |
в 2 раза |
Шесть из шести, по любому маршруту оплаты. Одна и та же модель, одинаковые ответы, и облако дешевле везде. Если добавить в строку своей карты инженера, множители надо умножать еще примерно на два с половиной.
Причина та же, с которой начиналась статья. У провайдера ваши запросы стоят в общей очереди с запросами тысяч других клиентов, карта крутится с полным батчем круглосуточно, и вам продают долю от прекрасно утилизированного железа. Вы же покупаете железо целиком, а утилизируете на два процента.
Российский рынок эту логику подтверждает с другой стороны. Тот же Яндекс, у которого собственный флагман стоит 800 рублей за миллион, чужие открытые модели отдает по 100–300: gpt-oss-20b идет за 0,1 рубля за тысячу, Qwen3.6 35B за 0,2 на входе. Cloud.ru продает инференс открытых моделей за рубли на юрлицо по своему прайсу. Даже DeepSeek V4-Flash, ту самую, которая напрямую стоит 22 рубля за выходной миллион, Яндекс перепродает за 500. Вот это и есть настоящая цена вопроса для компании, которой китайский прямой доступ не подходит по контуру.
Своя карта обходит API той же модели в единственном режиме: круглосуточная загрузка короткими запросами. Теоретический потолок дает 1 ₽ за миллион против 21,6 ₽, то есть выигрыш в 20 раз на бумаге. Вспоминаем рваную нагрузку, длинные контексты и 240 тысяч в год на инженера, и от этих 20 раз не остается ничего.
Так что если вы дочитали до сюда, чтобы посчитать экономию, вот короткий ответ: экономии, скорее всего, нет. Возьмите ту же открытую модель по API и не тратьте полмиллиона на железо.
А если вы читали статью потому, что данные нельзя выпускать из контура или вас не устраивает чужой рубильник, все написанное выше остается в силе. Только это расчет не экономии, а цены независимости. Теперь вы знаете, сколько она стоит.
Посчитайте свое за десять минут
Все сказанное сворачивается в шесть шагов.
Возьмите свой объем в токенах за месяц. Выгрузку из биллинга или логов, отдельно вход и выход, а не прикидку по памяти. У всех, кто делает это впервые, реальность отличается от ощущения в разы, обычно в большую сторону за счет контекста.
Умножьте на цену своего API. Это текущий счет и одновременно верхняя граница выгоды от перехода на свое.
Посчитайте, влезает ли нужная модель в карту вместе с KV-кэшем на вашей длине контекста и вашей параллельности. Размер файла с весами тут не решает ничего, решает сумма с кэшем.
Дальше место, где ломается большинство расчетов: оцените загрузку без самообмана. Сколько часов в сутки карта будет считать, а не ждать. Если меньше восьми, дальше можно не считать, берите аренду.
Добавьте в смету человека. Хотя бы 4 часа в месяц. Если в команде нет того, кто эти часы возьмет, локальное железо превратится в ящик в углу, а нагрузка все равно уедет в API, только теперь еще и с потраченным капексом.
И поверх всего решите, нужен ли вам локальный инференс по причинам, не связанным с деньгами. Если данные нельзя выпускать наружу или не устраивает чужой рубильник, экономику можно вообще не считать. Вопрос решен, остается выбрать конфигурацию.
Оговорка по статье
Любой расчет стоит столько, сколько стоят его допущения, поэтому выкладываю свои. Если у вас другие входные, цифры уедут, и это нормально.
Амортизацию я взял за три года с остаточной стоимостью 50%. Оптимистично: остаточная держится высокой, пока стоит дефицит памяти. Наладят производство GDDR7, и вторичка просядет вместе с моими одиннадцатью рублями в час. Поставьте ноль вместо пятидесяти процентов, и час подорожает до 28 рублей.
Электричество считал по московскому тарифу для населения в доме с газовой плитой. Юрлицу дороже, в регионах разброс кратный, берите свою ставку из счета.
Цены на железо и на аренду живут неделями. Та 4090 на 48 гигабайт ушла из наличия еще при мне, а нижняя граница аренды 5090 у одного провайдера успела подрасти на два процента. Порядок величин устоит, конкретные строки перепроверяйте на дату чтения.
Пропускную способность я брал из чужих замеров, а не мерил сам, и брал лучшие опубликованные значения. Правдоподобность 4 570 токенов в секунду я перепроверил через пропускную способность памяти и тензорные терафлопсы карты, сходится, но это все равно верхняя граница на удобной синтетике: короткие запросы, ровный поток, никаких длинных контекстов. На вашей модели, вашем контексте и вашем паттерне запросов будет меньше, и заметно. Насколько именно, не скажет никто, это меряется только на вашей нагрузке.
Расчет числа клиентов по KV-кэшу я привел по формуле, а не по замеру, и на конкретной модели с конкретными настройками движка результат будет плавать: FP8-кэш, sliding window, страничная организация памяти в vLLM и вытеснение неактивных сессий двигают это число в обе стороны. Агрегатную пропускную способность в той же таблице я смоделировал степенной зависимостью по двум точкам, так что погрешность там кратная.
Коэффициент кириллицы 1,3 взят из чужого замера токенизаторов и относится к семейству o200k, а не к токенизатору Anthropic напрямую. Если поставить 1,5, Opus проиграет Яндексу и на четвертом профиле тоже.
Четыре инженерных часа в месяц это моя оценка, а не измеренная величина. Где локальным инференсом занимаются всерьез, уходит больше. Где на него забили, меньше, но там оно и работает соответственно.
Цены API живут своей жизнью и меняются чаще, чем выходят статьи. За последний год они в основном падали, и если тренд сохранится, все точки безубыточности уедут в сторону аренды и облака.
Ну и главное упрощение всей статьи: я считал стоимость токена так, будто токены одинаковые. Они не одинаковые. Токен Opus 5 и токен Qwen3-30B стоят по-разному совершенно не просто так.
Что я делаю сам
Команде, которая приходит с «хотим свою LLM», первым делом задаю вопрос про данные. Если персональных данных в контуре нет и никто не запрещает отправлять текст наружу, разговор про железо на этом обычно и заканчивается: берем открытую модель по API, платим три копейки, живем спокойно.
Если данные выпускать нельзя, начинается настоящий выбор, и он тоже не сразу про покупку. Сначала аренда по часам: капекса ноль, карта подбирается под задачу, обслуживания нет. Через три месяца на руках статистика загрузки, и вот тогда покупку можно считать по взрослому, а не на глаз.
Покупаю железо я в двух случаях. Первый: нагрузка постоянная и круглосуточная, разметка или обработка потока документов, где карта не простаивает, и при этом данные чувствительные. Второй: заказчик прямым текстом говорит, что внешний рубильник для него неприемлем, и готов за это платить. В обоих случаях решение принимается не по таблице с ценой токена.
А в интерактивных сценариях с людьми в цикле, где нагрузка рваная, а качество ответа дороже его цены, экономить не пытаюсь и беру API. Разница в счете там съедается первым же месяцем работы инженера, который поддерживает локальную установку.
Если из всей статьи запоминать одно, то вот это: цена вашего токена определяется не тем, что написано на коробке видеокарты, а тем, какую долю суток эта карта занята. Одна и та же 5090 дает и 1 ₽ за миллион, и 20 726 ₽. Провайдер API занимает свои карты круглосуточно, а вы свою почти наверняка не займете, и это единственная причина, по которой он дешевле.
Такие разборы, где считают деньги, а не пересказывают релизы, мы с командой пишем в телеграм-канале morana.log: что почем в ИИ-проектах, где они ломаются и на чем на них разоряются. Если жанр по душе, заходите.
ссылка на оригинал статьи https://habr.com/ru/articles/1066424/