Открытые модели или платный API: как посчитать, что дешевле в вашем случае
Готовый сервис вырезания фона стоит около 20 центов за изображение. Пользователь загружает в гардероб порядка пятидесяти вещей. Умножаем. Получается примерно десять долларов на человека только за подготовку картинок, при годовом доходе с пользователя в районе двух сотен рублей.
Расчёт занял пятнадцать минут и закрыл вопрос. Дальше про то, как считать такие вещи до разработки, а не после первого счёта.
Считать надо расход на пользователя, а не цену операции
Цена за вызов сама по себе не говорит ничего, пока не умножена на поведение человека. Одна и та же операция по двадцать центов бывает копеечной и разорительной, разница только в том, сколько раз её вызывает один пользователь за месяц. Поэтому расчёт всегда сводится к двум числам в одинаковых единицах: сколько вы получаете с активного пользователя за период и сколько тратите на него за тот же период. Если второе больше первого, рост числа пользователей увеличивает убыток, и никакие оптимизации кода этого не меняют. Продукт при этом может выглядеть отлично и собирать хорошие отзывы, просто каждый новый человек делает вам хуже.
Что дала открытая модель на своём сервере
Вырезание фона у нас делает BiRefNet под лицензией MIT, распознавание атрибутов вещи marqo-fashionSigLIP под Apache 2.0. Обе открытые, обе подняты на своём сервере. Экономика после этого меняется принципиально. Вместо оплаты за каждое изображение появляется фиксированная аренда порядка шести тысяч рублей в месяц, а стоимость одной операции падает до долей копейки. Чем больше пользователей, тем ниже себестоимость операции, то есть расход перестаёт расти линейно вместе с аудиторией. Обратная сторона честная: аренда платится и тогда, когда пользователей мало, и на старте это дороже поштучной оплаты.
Чего мы сознательно не делали
Не обучали свою модель. Вырезание фона и распознавание атрибутов это решённые задачи, своя модель заняла бы месяцы ради того же качества. Своим имеет смысл делать то, чего нет ни у кого, в нашем случае алгоритм сопоставления образа с конкретным гардеробом. Не брали и зарубежный облачный бэкенд. Через систему проходят персональные данные граждан России, а закон требует, чтобы их запись и хранение шли в базах на территории России. У популярных зарубежных платформ российских регионов нет, поэтому вопрос решился размещением на российском облаке ещё до того, как начался выбор моделей.
Не оставляли дорогие операции бесплатными. Это отдельный принцип: дешёвая операция может быть безлимитной, дорогая становится валютой продукта. Если генерация изображения стоит рубли, а обработка загруженной фотографии копейки, то безлимитной делается вторая. Иначе самые активные пользователи оказываются самыми убыточными, и продукт наказывает вас за успех.
Три вопроса до выбора
Сколько операций приходится на одного активного пользователя в месяц? Без этого числа сравнивать нечего.
Есть ли ограничения по данным. Персональные данные, врачебная или банковская тайна, пункт в договоре с клиентом, всё это может закрыть внешний сервис независимо от цены, и узнавать об этом лучше до архитектуры. Третий вопрос про людей: кто будет обслуживать сервер. Открытая модель это не только лицензия, но и обновления, мониторинг и дежурство. Если такого человека нет, фиксированная аренда превращается в скрытый долг, который однажды придётся отдать в самый неподходящий момент.
С чего начать на практике
Начинать стоит с платного API, пока пользователей мало. Вы платите только за то, что используется, и быстрее проверяете саму идею. Переплата на этом этапе измеряется десятками долларов, то есть ничем.
Параллельно считайте точку, в которой поштучная оплата становится дороже аренды, и договоритесь заранее, что переезд делается при её достижении, а не после первого счёта, который вас расстроит. Чтобы переезд вообще был возможен, работа с моделью изолируется за своим интерфейсом с первого дня: код продукта вызывает вашу функцию обработки, а не сервис напрямую. Это несколько часов работы на старте и недели экономии потом.
Чего я не знаю
Мы не мерили качество открытых моделей против платных на большой выборке. Сравнение шло глазами на нескольких десятках изображений, и для нашей задачи разницы видно не было. Аккуратным замером это не назовёшь.
Тут обычно возражают: «а если открытая модель окажется хуже на реальных данных?» Справедливо. Проверяется это до переезда на выборке из ваших же файлов, и если разница заметна, платный сервис остаётся, только теперь вы знаете, за что платите. Какое у вас соотношение операций на пользователя и дохода с него? Напишите, посчитаем точку переезда вместе.
Частые вопросы
Когда платный API выгоднее своего сервера
Когда операций мало и они редкие, когда качество платной модели заметно выше открытой, и когда у вас нет человека, готового обслуживать сервер. Фиксированная аренда выгодна только при постоянной нагрузке, на низком объёме она проигрывает поштучной оплате.
Нужно ли обучать свою модель
Почти никогда. Вырезание фона и распознавание атрибутов это решённые задачи, обучение заняло бы месяцы ради того же качества. Своим имеет смысл делать только то, чего нет в готовом виде: как правило, это логика поверх моделей, а не сами модели.
Что с персональными данными при использовании внешнего API
Если через сервис проходят персональные данные граждан России, законодательство требует, чтобы их запись и хранение шли в базах на территории России. У популярных зарубежных платформ российских регионов нет, и это ограничение решается размещением, а не выбором модели.
Как считать себестоимость правильно
В тех же единицах, что и доход: на одного активного пользователя за период. Цена за операцию сама по себе ничего не говорит, пока не умножена на число операций, которое пользователь совершает за месяц или за год.
Продуктовая стратегия, коммуникация с клиентами, управление проектами
[Telegram →]