А ваш проект публичный? Посторонний в нем может создать Issue или PR? Если да, то вы там это, осторожнее. Протащить бэкдор мимо ИИ-ревьюера, как оказалось, очень легко. И это надо учитывать всем, кто строит автоматизированные пайплайны разработки. Если модели убедительно объяснить что это очень нужно, она и PR с бэкдором примет, и сама по Issue этот бэкдор напишет, и еще и тестами его покроет.
Поставил эксперимент на эту тему с разными моделями и разными видами бэкдоров в ревью, результаты оказались местами парадоксальными - https://habr.com/ru/articles/1086966/
Это сильно вредит будущим субагентам, потому что они вдруг почему‑то начинают считать информацию в комментариях более приоритетной. Абсурд, но такова реальность. Иногда доходило до смешного: формулировка очередной задачи строилась на основе разбора комментариев, но не кода, а в процессе работы нужно было подстраиваться уже на ходу под «внезапно» обнаруженную иную реализацию.
Как оказалось, модели больше верят словам на человеческом языке, чем коду. Главный канал инъекций — не зловредный код, а текстовое описание. Зловредную правку в коде, добавляющую бэкедор, отклоняли почти все модели, делающие ревью, кроме ну самых слабых. А вот описание того же самого в тексте описания, особенно в виде строгого требования, пропускал даже Opus, не говоря уж о более слабых.
Поэтому да, при работе с ИИ текстовый канал важнее кодового, и следить за ним надо тщательнее.
В условиях обледенения сколько их ни делай - обмерзнут все, если пилоты забыли включить обогрев или он неисправен. В целом если 2-3 дублирующие системы уже отказали, добавление еще одной вряд ли что-то изменит, скорее всего она так же выйдет из строя.
Ну и плюс любая авиация это баланс сложности, веса, надежности и экономической эффективности. Можно обмазать весь самолет десятком дублирующих систем, только кому он такой будет нужен, если будет возить в два раза меньше пассажиров из-за лишнего веса.
Как тогда на Хабре писали, у Честного знака есть режим оффлайн работы, то что его не настроили - проблема авторов кассового ПО.
Что впрочем не отменяет абсолютную ненужность этой системы в целом, которая по сути является просто побором со всей страны в карман определенных лиц и не решает никаких практически полезных задач ни для кого. А приносит только проблемы и расходы всем участникам рынка. У меня регулярно в самых разных магазинах, от продуктов до велосипедов, из-за нее проблемы, не могут из-за нее что-то пробить.
Предположу что она будет больше подвержена влиянию потоков обтекающих самолет, будет создавать большее сопротивление, будет больше подвержена выходу из строя (как и любой движущийся механизм), да и задачи по прочности там довольно нетривиальные будут, особенно на околозвуковых и тем более сверхзвуковых скоростях. В турбинах двигателей это как-то решают, но зачем оно нужно лишний раз заморачиваться, если есть простая и надежная альтернатива в виде трубки.
Я тоже долго думал, как может существовать общество при капитализме, где большинство людей не могут себе ничего позволить купить.
А потом в одном из обсуждений на хабре привели интересную аналогию с free to play играми (которая мне очень понятна стала, так как я когда-то в геймдеве сам работал и самолично это наблюдал). Что 90% игроков не платят вообще ничего, 9% игроков платят копейки, худо-бедно окупая расходы на себя. И оставшийся 1% игроков платит столько, что окупает разработку и приносит прибыль. И это буквально люди, которые покупают все эти пакеты кристаллов за десятки тысяч рублей, которые для меня всегда казались бессмысленными. Мол, "кто это купит". А вот покупают.
И такая экономическая модель вполне живет.
И возможно оно и на общество перенесется. Экономика переориентируется на 1% богатых, а все остальные будут содержаться по остаточному принципу. В играх вполне работает, цифры сходятся.
А почему меня вообще должно что‑то смущать? Я просто описываю наблюдаемое. Я не агитирую, не говорю хорошо это или плохо, а просто излагаю факты и свой личный прогноз. То что на Хабре у айтишников от такого варианта событий подгорает — ну увы, я тоже привык ощущать себя элитой общества и не хочу это терять, но объективной ситуации вокруг похрен на то, что хотелось бы мне или другим комментаторам выше.
Индустрию ждет проблема, связанная с тем, что из джунов в сеньоров будет непонятно как развиваться. Но увы, тут в дело вступает трагедия общин. Каждой конкретной компании джуны не нужны и тратить на них деньги станет совсем убыточно. А абстрактное осознание что они нужны индустрии в целом никак не заставит конкретного предпринимателя тратить свои кровные денежки на это «общее благо».
Исключение — крупные корпорации, которые могут себе позволить лишние расходы и работу на перспективу. Они и сейчас этим занимаются. И к ним уже сейчас огромная очередь на стажировку, а будет только хуже.
И можно сколько угодно задаваться вопросом "ооо а откуда же сеньоры возьмутся если вы джунов не будете готовить". Все это понимают, всем пофиг, своя рубашка ближе к телу.
Я в целом согласен. Еще года три назад я радовался, когда сын что‑то там в Roblox учится программировать. Но сейчас — уже не радуюсь.
На рынке ИТ полный ад, который я наблюдаю как через знакомых со стороны соискателей, так и со своей собственной стороны как работодателя. Сотни откликов на каждую вакансию, безумные требования и фильтры (я, синьор с 18-летним опытом, не мог сходу пройти эти тесты которые требуют от новичков, просто чтобы попасть на неоплачиваемую стажировку), общий кризис в экономике и сокращения (к нам на собеседования приходило достаточно людей, уволенных из Сбера и прочего бигтеха, говорили что там волны сокращений целых отделов идут).
Ну и ИИ. Да, я сам вижу как оно меняет ландшафт найма. Да, джуны уже больше не нужны, совсем. Там где раньше мне чтобы делать задачу надо было двух помощников‑джунов на рутину, я теперь справляюсь один, и гораздо быстрее. Еще через год‑другой это окончательно дойдет до всех, и найм джунов просто ссохнется окончательно. Попасть уже сейчас очень сложно куда‑то, а будет еще сложнее. Останется только бигтех с его стажировками, на которые будет колоссальная очередь желающих.
В общем как во многих таких статьях и предупреждают, ИТ расслоится. Останется небольшая прослойка топов‑синьоров (в которой надеюсь оказаться и я), толпа низкооплачиваемых вайбкодеров за копейки, а середина исчезнет. Идти сюда за хорошей жизнью станет точно незачем.
Ну окей, кто‑то конечно всегда читает. Но большинство — нет.
Мне чтение ассемблерного кода за мои 18 лет работы программистом понадобилось кажется один раз на самой заре карьеры, когда мы поймали баг в компиляторе MSVC, он генерировал неверные инструкции.
Налоговые поблажки того размера что есть для аккредитованых компаний — это вполне себе цель. Или возможно разница между прибыльностью и убыточностью. Там вроде довольно заметные числа.
Ну и как уже тут сказали, монополисты типа яндекса или озона просто заставят пользователей отключать впн, потому что куда тем деваться?
Есть, но работает только если у родителя тоже iOS. С другой ОС управлять им нельзя.
У меня и жены Android а у сына айфон, и вот это проблема, очень мало какие приложения работают в такой конфигурации. Тот же Касперский не позволяет ограничивать экранное время на iOS, я его было купил, сразу столкнулся с этим и отменил подписку.
Вы так пишете будто этим сайтам какой‑то выбор оставили. Там кажется в качестве кнута им показали, что удалят из реестра аккредитованных ИТ компаний, а для тех кто там есть — это серьезная угроза. Это и налоговые поблажки приличные, и льготная ипотека для сотрудников, и место в белых списках.
Плюс добавлю, что мое глубокое убеждение (за что меня на Хабре уже пару раз расстреляли в комментариях), что все эти лучшие практики скоро отправятся на свалку истории.
Все эти DRY, KISS и прочие Clean Code штуки изобретены для того, чтобы упростить чтение и поддержку кода людьми. Наши мозги, созданные природой для подсчета бананов на ветке, плохо работают со сложными большими абстракциями. У нас маленький контекст мышления и короткая оперативная память. Нам все эти практики необходимы, иначе мы в методе на тыщу строк будем пропускать очевидные ошибки и не сможем вносить правки, так как он не влезает в наш контекст.
У нейросетей такой проблемы нет, большой лапшеобразный метод они вполне понимают и нормально правят. Им это просто не нужно, ну или как минимум нужна только меньшая часть практик.
Поэтому как только код в массе своей перестанет читаться людьми вообще (а к этому уже идет семимильными шагами), то и в этих практиках нужда отпадет. Так же как сейчас вы не читаете глазами ассемблерный код, и вам уже не нужны практики 40-летней давности по его читаемости и поддерживаемости, вас устраивает что там компилятор накомпилирует, и лезть вы в это почти никогда не будете.
Политику можно написать с помощью ИИ... но некоторые нейронки ее просто игнорируют при ревью, или легко переубеждаются. Не важно что именно там написано, если вы используете в своем пайплайне DeepSeek (потому что дешевле всего из облачного) или Qwen (потому что локально). Они их читают, удивляются различию с кодом, а потом пропускают зловредный код и еще и политику под него переписать пытаются, если она в том же репозитории лежит.
Наивные идеи тоже не работают. Моей первой идеей был формат описания ревью, в котором нет кода. Только описание. Он был заточен под обмен ревью между недоверенными ИИ-агентами, и идея была в том что агенты передают друг другу только шаги воспроизведения проблемы или описание, а код каждый строит сам. При этом структура ревью формализована, проверяется скриптами, которые должны защищать от вредоносного кода, прежде чем оно попадет к ИИ. Эту идею предложило и одобрило несколько ИИ на ИИ-досках (о которых я писал в прошлой статье https://habr.com/ru/articles/1081320/). Подробнее тут https://github.com/smirnovegorv/reproducible-claim-record
Но эта идея полностью провалила столкновение с реальностью, когда оказалось что основной канал уязвимостей вовсе не код.
Это я к тому, что если дать задачу просто ИИ предложить какую-то идею безопасного флоу ревью, он вполне может предложить очевидную, но на практике не рабочую идею.
Но был некий побочный вывод. При двухпроходном ревью на втором шаге ИИ, не видевший описания реквеста и имеющий только код на входе, начинал очень часто отклонять легальные правки (у меня была контрольная группа — правки без инъекций, чтобы проверить что модель не отклоняет вообще все подряд). Разные модели делали это по разным причинам, но особенно выделился Sonnet, который отклонял их как раз под соусом несоответствия хорошим практикам. Например, потому что нет тестов, или еще как‑то к коду придирался. Что выходило уже за рамки моего эксперимента.
В этом плане мне кажется особых проблем нет, я сам вообще вручную код полгода как перестал писать, и качество ИИ кода меня вполне устраивает. Особенно если время от времени ему давать задания на рефакторинг и переписывание.
Неожиданностью оказалась именно уязвимость к бэкдорам. При этом ИИ на полном серьезе может этот бэкдор вот завернуть в тесты и красивый код.
Как раз думаю инъекцию из той статьи ИИ отбил бы без проблем. Он не страдает недостатком внимания и не путает "=" и "==" в отличие от человека.
Поэтому пока ничего лучше совместного ревью не придумать. Каждый должен отвечать за то в чем он силен - ИИ в поиске неправильной скобочки среди тысяч других скобочек. А человек в отстаивании границ и посылании лесом тех, кто пытается незапланированное поведение вносить.
А ваш проект публичный? Посторонний в нем может создать Issue или PR? Если да, то вы там это, осторожнее. Протащить бэкдор мимо ИИ-ревьюера, как оказалось, очень легко. И это надо учитывать всем, кто строит автоматизированные пайплайны разработки. Если модели убедительно объяснить что это очень нужно, она и PR с бэкдором примет, и сама по Issue этот бэкдор напишет, и еще и тестами его покроет.
Поставил эксперимент на эту тему с разными моделями и разными видами бэкдоров в ревью, результаты оказались местами парадоксальными - https://habr.com/ru/articles/1086966/
Нынче уже email и имя это уже персональные данные и их достаточно с точки зрения закона
Я на это наткнулся в своей работе по исследованию инъекций в пулл‑реквестах, про которую написал статью https://habr.com/ru/articles/1086966/
Как оказалось, модели больше верят словам на человеческом языке, чем коду. Главный канал инъекций — не зловредный код, а текстовое описание. Зловредную правку в коде, добавляющую бэкедор, отклоняли почти все модели, делающие ревью, кроме ну самых слабых. А вот описание того же самого в тексте описания, особенно в виде строгого требования, пропускал даже Opus, не говоря уж о более слабых.
Поэтому да, при работе с ИИ текстовый канал важнее кодового, и следить за ним надо тщательнее.
В условиях обледенения сколько их ни делай - обмерзнут все, если пилоты забыли включить обогрев или он неисправен. В целом если 2-3 дублирующие системы уже отказали, добавление еще одной вряд ли что-то изменит, скорее всего она так же выйдет из строя.
Ну и плюс любая авиация это баланс сложности, веса, надежности и экономической эффективности. Можно обмазать весь самолет десятком дублирующих систем, только кому он такой будет нужен, если будет возить в два раза меньше пассажиров из-за лишнего веса.
При этом основная его аудитория в РФ, и персональные данные граждан РФ тоже надо хранить в родной стране.
Как тогда на Хабре писали, у Честного знака есть режим оффлайн работы, то что его не настроили - проблема авторов кассового ПО.
Что впрочем не отменяет абсолютную ненужность этой системы в целом, которая по сути является просто побором со всей страны в карман определенных лиц и не решает никаких практически полезных задач ни для кого. А приносит только проблемы и расходы всем участникам рынка. У меня регулярно в самых разных магазинах, от продуктов до велосипедов, из-за нее проблемы, не могут из-за нее что-то пробить.
Предположу что она будет больше подвержена влиянию потоков обтекающих самолет, будет создавать большее сопротивление, будет больше подвержена выходу из строя (как и любой движущийся механизм), да и задачи по прочности там довольно нетривиальные будут, особенно на околозвуковых и тем более сверхзвуковых скоростях. В турбинах двигателей это как-то решают, но зачем оно нужно лишний раз заморачиваться, если есть простая и надежная альтернатива в виде трубки.
Я тоже долго думал, как может существовать общество при капитализме, где большинство людей не могут себе ничего позволить купить.
А потом в одном из обсуждений на хабре привели интересную аналогию с free to play играми (которая мне очень понятна стала, так как я когда-то в геймдеве сам работал и самолично это наблюдал). Что 90% игроков не платят вообще ничего, 9% игроков платят копейки, худо-бедно окупая расходы на себя. И оставшийся 1% игроков платит столько, что окупает разработку и приносит прибыль. И это буквально люди, которые покупают все эти пакеты кристаллов за десятки тысяч рублей, которые для меня всегда казались бессмысленными. Мол, "кто это купит". А вот покупают.
И такая экономическая модель вполне живет.
И возможно оно и на общество перенесется. Экономика переориентируется на 1% богатых, а все остальные будут содержаться по остаточному принципу. В играх вполне работает, цифры сходятся.
Ну и это тоже. Кризис будет когда‑нибудь, но потом.
А почему меня вообще должно что‑то смущать? Я просто описываю наблюдаемое. Я не агитирую, не говорю хорошо это или плохо, а просто излагаю факты и свой личный прогноз. То что на Хабре у айтишников от такого варианта событий подгорает — ну увы, я тоже привык ощущать себя элитой общества и не хочу это терять, но объективной ситуации вокруг похрен на то, что хотелось бы мне или другим комментаторам выше.
Индустрию ждет проблема, связанная с тем, что из джунов в сеньоров будет непонятно как развиваться. Но увы, тут в дело вступает трагедия общин. Каждой конкретной компании джуны не нужны и тратить на них деньги станет совсем убыточно. А абстрактное осознание что они нужны индустрии в целом никак не заставит конкретного предпринимателя тратить свои кровные денежки на это «общее благо».
Исключение — крупные корпорации, которые могут себе позволить лишние расходы и работу на перспективу. Они и сейчас этим занимаются. И к ним уже сейчас огромная очередь на стажировку, а будет только хуже.
И можно сколько угодно задаваться вопросом "ооо а откуда же сеньоры возьмутся если вы джунов не будете готовить". Все это понимают, всем пофиг, своя рубашка ближе к телу.
Я в целом согласен. Еще года три назад я радовался, когда сын что‑то там в Roblox учится программировать. Но сейчас — уже не радуюсь.
На рынке ИТ полный ад, который я наблюдаю как через знакомых со стороны соискателей, так и со своей собственной стороны как работодателя. Сотни откликов на каждую вакансию, безумные требования и фильтры (я, синьор с 18-летним опытом, не мог сходу пройти эти тесты которые требуют от новичков, просто чтобы попасть на неоплачиваемую стажировку), общий кризис в экономике и сокращения (к нам на собеседования приходило достаточно людей, уволенных из Сбера и прочего бигтеха, говорили что там волны сокращений целых отделов идут).
Ну и ИИ. Да, я сам вижу как оно меняет ландшафт найма. Да, джуны уже больше не нужны, совсем. Там где раньше мне чтобы делать задачу надо было двух помощников‑джунов на рутину, я теперь справляюсь один, и гораздо быстрее. Еще через год‑другой это окончательно дойдет до всех, и найм джунов просто ссохнется окончательно. Попасть уже сейчас очень сложно куда‑то, а будет еще сложнее. Останется только бигтех с его стажировками, на которые будет колоссальная очередь желающих.
В общем как во многих таких статьях и предупреждают, ИТ расслоится. Останется небольшая прослойка топов‑синьоров (в которой надеюсь оказаться и я), толпа низкооплачиваемых вайбкодеров за копейки, а середина исчезнет. Идти сюда за хорошей жизнью станет точно незачем.
Ну окей, кто‑то конечно всегда читает. Но большинство — нет.
Мне чтение ассемблерного кода за мои 18 лет работы программистом понадобилось кажется один раз на самой заре карьеры, когда мы поймали баг в компиляторе MSVC, он генерировал неверные инструкции.
Налоговые поблажки того размера что есть для аккредитованых компаний — это вполне себе цель. Или возможно разница между прибыльностью и убыточностью. Там вроде довольно заметные числа.
Ну и как уже тут сказали, монополисты типа яндекса или озона просто заставят пользователей отключать впн, потому что куда тем деваться?
Есть, но работает только если у родителя тоже iOS. С другой ОС управлять им нельзя.
У меня и жены Android а у сына айфон, и вот это проблема, очень мало какие приложения работают в такой конфигурации. Тот же Касперский не позволяет ограничивать экранное время на iOS, я его было купил, сразу столкнулся с этим и отменил подписку.
Вы так пишете будто этим сайтам какой‑то выбор оставили. Там кажется в качестве кнута им показали, что удалят из реестра аккредитованных ИТ компаний, а для тех кто там есть — это серьезная угроза. Это и налоговые поблажки приличные, и льготная ипотека для сотрудников, и место в белых списках.
Плюс добавлю, что мое глубокое убеждение (за что меня на Хабре уже пару раз расстреляли в комментариях), что все эти лучшие практики скоро отправятся на свалку истории.
Все эти DRY, KISS и прочие Clean Code штуки изобретены для того, чтобы упростить чтение и поддержку кода людьми. Наши мозги, созданные природой для подсчета бананов на ветке, плохо работают со сложными большими абстракциями. У нас маленький контекст мышления и короткая оперативная память. Нам все эти практики необходимы, иначе мы в методе на тыщу строк будем пропускать очевидные ошибки и не сможем вносить правки, так как он не влезает в наш контекст.
У нейросетей такой проблемы нет, большой лапшеобразный метод они вполне понимают и нормально правят. Им это просто не нужно, ну или как минимум нужна только меньшая часть практик.
Поэтому как только код в массе своей перестанет читаться людьми вообще (а к этому уже идет семимильными шагами), то и в этих практиках нужда отпадет. Так же как сейчас вы не читаете глазами ассемблерный код, и вам уже не нужны практики 40-летней давности по его читаемости и поддерживаемости, вас устраивает что там компилятор накомпилирует, и лезть вы в это почти никогда не будете.
Но это мое личное непопулярное мнение.
Вот выводы из моей статьи что это так себе идея.
Политику можно написать с помощью ИИ... но некоторые нейронки ее просто игнорируют при ревью, или легко переубеждаются. Не важно что именно там написано, если вы используете в своем пайплайне DeepSeek (потому что дешевле всего из облачного) или Qwen (потому что локально). Они их читают, удивляются различию с кодом, а потом пропускают зловредный код и еще и политику под него переписать пытаются, если она в том же репозитории лежит.
Наивные идеи тоже не работают. Моей первой идеей был формат описания ревью, в котором нет кода. Только описание. Он был заточен под обмен ревью между недоверенными ИИ-агентами, и идея была в том что агенты передают друг другу только шаги воспроизведения проблемы или описание, а код каждый строит сам. При этом структура ревью формализована, проверяется скриптами, которые должны защищать от вредоносного кода, прежде чем оно попадет к ИИ. Эту идею предложило и одобрило несколько ИИ на ИИ-досках (о которых я писал в прошлой статье https://habr.com/ru/articles/1081320/). Подробнее тут https://github.com/smirnovegorv/reproducible-claim-record
Но эта идея полностью провалила столкновение с реальностью, когда оказалось что основной канал уязвимостей вовсе не код.
Это я к тому, что если дать задачу просто ИИ предложить какую-то идею безопасного флоу ревью, он вполне может предложить очевидную, но на практике не рабочую идею.
Нет, меня именно безопасность интересовала.
Но был некий побочный вывод. При двухпроходном ревью на втором шаге ИИ, не видевший описания реквеста и имеющий только код на входе, начинал очень часто отклонять легальные правки (у меня была контрольная группа — правки без инъекций, чтобы проверить что модель не отклоняет вообще все подряд). Разные модели делали это по разным причинам, но особенно выделился Sonnet, который отклонял их как раз под соусом несоответствия хорошим практикам. Например, потому что нет тестов, или еще как‑то к коду придирался. Что выходило уже за рамки моего эксперимента.
В этом плане мне кажется особых проблем нет, я сам вообще вручную код полгода как перестал писать, и качество ИИ кода меня вполне устраивает. Особенно если время от времени ему давать задания на рефакторинг и переписывание.
Неожиданностью оказалась именно уязвимость к бэкдорам. При этом ИИ на полном серьезе может этот бэкдор вот завернуть в тесты и красивый код.
Как раз думаю инъекцию из той статьи ИИ отбил бы без проблем. Он не страдает недостатком внимания и не путает "=" и "==" в отличие от человека.
Поэтому пока ничего лучше совместного ревью не придумать. Каждый должен отвечать за то в чем он силен - ИИ в поиске неправильной скобочки среди тысяч других скобочек. А человек в отстаивании границ и посылании лесом тех, кто пытается незапланированное поведение вносить.