21 июня 2026

Из дневника разработки, 21 июня 2026: убили собственную идею на второй день

Двадцать первого июня я убил собственную идею, записанную накануне как ключевую особенность продукта. Сутки она прожила.

Замысел был красивый: маленькая быстрая модель угадывает продолжение, большая только проверяет её догадки. Выигрыш должен быть кратный, в статьях всё сходится, люди строят на этом системы.

У меня на стенде получилось наоборот. Обе модели вместе — сорок четыре токена в секунду. Одна большая — сто семьдесят. Вчетверо медленнее, при том что черновик угадывал верно в шести случаях из десяти. Я сначала не поверил и полез искать ошибку в замере. Ошибки не было. Позже перепроверил перебором тридцати четырёх разных настроек — лучшая дала чуть больше половины исходной скорости.

Вечером того же дня я замерил вторую общепринятую вещь — частичную выгрузку модели на видеокарту. Тут я тоже был уверен в результате заранее: кладёшь на карту сколько влезет, остальное считает процессор, выигрыш пропорциональный. Логично же.

Он не пропорциональный совсем. Из тридцати шести слоёв: половина на карте — девятнадцать токенов в секунду, три четверти — тридцать семь, всё целиком — сто семьдесят. Три четверти модели дают пятую часть выигрыша, а последняя четверть — больше, чем всё остальное вместе. Кривая не просто нелинейная, она издевательская.

Отсюда правило, на котором стоят все наши продукты: либо модель помещается целиком, либо браться не стоит. Мы бьёмся за размер не ради экономии диска. «Почти помещается» не работает вообще, и это надо знать до того, как купишь железо под проект.

И второй вывод, менее приятный лично для меня. Свою идею дешевле всего убивать на второй день. На десятый это стоит в десять раз дороже, а на сотый её уже защищают — не потому что она хороша, а потому что жалко потраченного. Я видел, как на этом гибнут целые команды, и стараюсь ловить себя первым.

Андрей Рощупкин