Мы перестали искать причины сбоев — и это опаснее самих сбоев
The Normalization of Inexplicable Failures
Автор размышляет о том, как LLM-разработка приучает нас к «необъяснимым» отказам. На примере AI-модели Jev от TypeSafe AI, которая возвращает типизированные значения с оценками уверенности, он показывает: разработчики и пользователи всё чаще не проверяют, что стоит за ошибкой. Confidence scores используются как карго-культ или как оправдание, а фраза «иногда просто всё работает плохо» становится финальным выводом расследования. Автор опасается, что это приведёт к нормализации необъяснимости, хотя автоматизированные проверки могли бы решить многие проблемы.
Трагедия современной разработки ПО в том, что мы активно проектируем системы, где ни пользователь, ни создатель, кажется, не заинтересованы в том, чтобы проверить, есть ли за дверью тело. Мы просто пожимаем плечами и заключаем: stupid thing sucks.
- pmarreck
Я большой сторонник воспроизводимости (фанат nix) и детерминизма (для меня падающие тесты — это сигнал тревоги, ситуация «все на уши») и корректности.
Я также большой сторонник тестирования (правильных вещей). И девяти девяток (большой фанат Elixir).
И... я также большой сторонник разработки с помощью агентов. А для этого нужно практически всё, что есть в арсенале проверок, чтобы оставаться продуктивным. И меня это устраивает. Я видел баги, которые сам бы не сделал. И я также видел, как исправляли мои собственные баги. Все они были исправлены в кратчайшие сроки. Не вижу, почему это проблема.
Поднимите свои личные стандарты.
Дело в том, что ситуация с ненадёжным ПО была уже невыносимой до того, как агенты (в плохих руках) сделали её ещё хуже.
- adamddev1
Отличный пост. Люди всегда защищают агентную/LLM-разработку, говоря: «Ну, этого достаточно» или «Это работает в большинстве случаев».
Это может быть терпимо для какого-нибудь пользовательского приложения. Но что, если мы начнём нормализовать сбои в библиотеках, инфраструктуре и компиляторах? Всё погрузится в хаос ненадёжности, и это замедлит ВСЁ и ВСЕХ.
- theamk
> Когда на сайте ломается кнопка, у меня есть модель того, что должно было произойти. Где-то нарушился контракт. [...] У меня может не быть доступа к отладке просто HTTP-статуса 500, но я ожидаю, что есть кто-то, чья работа — понимать, почему эндпоинт отдаёт 500. Ответственность чётко определена, хоть и непрозрачна³.
> Однако для многих пользователей реальный опыт сводится примерно к «тупая штука отстой». ПО уже кажется капризным; больше сбоев просто меняет частоту разочарований.
Держу пари, автор нечасто пользуется облачными сервисами. Это не только «пользователи», но и разработчики. Github возвращает 5xx? Сервис AWS не работает? Ваше письмо не доставили? Мы (разработчики) ничего не можем сделать, «тупая штука отстой».
- layer8
> Это ведёт к нормализации необъяснимости.
Это также тесно связано с нормализацией отсутствия ответственности.
> Это не «завести FTP-аккаунт, смонтировать его локально через curlftpfs, а затем использовать SVN или CVS на смонтированной файловой системе» — вам всё ещё нужно сделать сложную часть.
Вероятно, это уже теряет молодую часть аудитории. ;)
- WorldMaker
«Оценки уверенности» всегда подразумевали антропоцентричное значение, которого не существует. У алгоритма нет «уверенности» в том смысле, в каком уверен человек, но как только вы кладёте что-то с таким названием перед бизнесменом, он предполагает, что число всегда означает осмысленную «кривую оценок» или «универсальный процент». Я до сих пор убеждён, что старая цитата «есть ложь, наглая ложь и статистика» остаётся ключом к пониманию того, почему ML приводит к глупым результатам вопреки хайпу. Люди не понимают статистику, поэтому машины, которые производят исключительно статистику, особенно сбивают людей с толку. (Думаю, это применимо и к LLM.)
- teraflop
«Нормализация необъяснимости» действительно бесит. Это всегда было плохо в компьютерном ПО и всё больше проникает в другие потребительские продукты, зависящие от встроенного ПО.
Недавно я купил новый электромобиль. В основном я им вполне доволен. Вскоре после покупки он начал выдавать предупреждение «проверьте систему EV» при каждом запуске. К тому времени, как я привёз его в дилерский центр, предупреждение исчезло, и техник сказал мне что-то вроде: «Ну, наверное, иногда так бывает, дайте знать, если повторится». Аппаратная неисправность? Баг в ПО? Кто знает?
Как и большинство современных машин, он имеет подключение и Google Maps, встроенные в информационно-развлекательную систему. В подавляющем большинстве случаев всё работает нормально. Иногда он говорит, что нет подключения (а значит, нет данных о пробках и маршруты неоптимальны) на протяжении всей поездки, даже в местах с сильным сигналом сотовой связи, где обычно всё работает. Иногда машина говорит, что подключение есть, но Google Maps всё равно считает, что она офлайн. Иногда Maps действительно загружается и отображает маршрут, но кнопка «начать навигацию» крутится вечно, будто всё ещё чего-то ждёт. Это связанные проблемы? Есть ли общая причина, которую можно исправить? Кто знает?
(Удобно, что гарантия специально не покрывает любые отказы ПО или прошивки работать корректно.)
- benjaminsky2
Я проверил оценку уверенности Jev. Точность линейно масштабируется с уверенностью для 3 сценариев, которые я тестировал. >.9 — совпадала с оценкой человека-разметчика. Я сразу обнаружил неожиданное поведение пользователей примерно за $3. Теперь я могу смягчать его в реальном времени благодаря низкой стоимости и задержке. Это может оказать серьёзное положительное финансовое влияние на всех наших клиентов.
Не уверен, зачем кому-то понадобилось бы поливать эту штуку грязью, не показав реальный пример сбоя.
- hyperhello
Если вы проводите с продуктом больше времени, вы с большей вероятностью выберете его снова, даже если это из-за сбоя или раздражения. Вы как-то это оправдаете (теперь у меня есть преимущество или что-то такое). Это на самом деле применимо и к рассматриванию вещей; ярко окрашенная коробка на полке супермаркета просто с большей вероятностью будет выбрана, потому что вы смотрите на неё первой и дольше.
Тратить ваше время и ресурсы — это знак власти, но заставлять вас тратить собственное время и собственные ресурсы — это гегемония.