Комментарии 16
Это всего лишь означает, что в той кодовой базе, на которой его учили, такого небезопасного кода большинство. Что неудивительно, учитывая, что это Гитхаб, которым пол-планеты пользуется.
Видел уже стартапы, которые на базе chatgpt уже делают код-ревью. И там серьёзно находят такие проблемы.
Осталось натравить chatgpt на copilot.
По-моему, нейросети в качестве замены программистов - это большой мыльный пузырь. В молодости я писал скрипты для ботов в чатах. Это были боты, которые могли общаться с пользователями, если никого не было онлайн. Чем больше был сам скрипт, тем естественнее вëл себя бот, и тем труднее было распознать его сущность на первых секундах диалога. Но, он всегда оставался ботом. И всë, что я вижу в нейросетях - это те же самые боты, только с автоматизированным созданием скриптов. Из-за этого, скрипты могут быть гигантскими, но бот навсегда останется ботом. Он может успешно обманывать собеседника, но его опыт ограничен тем, что у него в скриптах. Скрипты можно получить только на основе реального кода реальных людей. А идеального кода не бывает. В любом случае, всë зависит от инфраструктуры, на которой будет исполняться код. От зависимостей в виде БД, систем обмена сообщениями и т.д.. В каждом уникальном случае, представление о подходящем коде будет уникальным и индивидуальным.
и то и другое принадлежит майкрософту
«Никогда такого на было.ю и вот опять»
А кто-то сомневался что CoPilot не понимает того что пишет?
Или без него у вас в проекте люди не будут copy+Paste делать из фрагментов небезопасного кода?
Все как заказывали: мусор на входе, мусор на выходе.
как обычно: ударяемся мизинцем о шкаф и ругаем его. теперь в этой роли ИИ: то его в расизме обвиняют, то теперь в дырявости кода. а винить надо людей, которые тащат код методом copy&paste не приходя в сознание. логично, что код на stackoverflow и подобных пишется для понимания и примера, а не для использования в продакшене. А если бы этот код и не компилировался бы, то тоже бы ИИ виноват был?
ага, давайте внедрим в SO (а ещё и на Хабр) компилятор и анализатор (в т.ч. на уязвимости, благо таковые тоже имеются) чтобы нельзя было запостить плохой код в принципе - тогда заживём!
эх, люди, люди... блин, вообще не научены проверять чужой (а по хорошему и свой) код, а слепо доверяют тому, что им принесли. а ведь так запросто занести в прод "заразу" не только в виде уязвимостей, но и намеренные бэкдоры.
вместо п.с.:
каюсь, я иногда тоже тащу код из интернета (стековерфлоу, гитхаба и прочего опенсорса) копипастой, но - затем его вылизываю как [сравнение вставьте сами] - до неузнаваемости, пока и статический анализатор на него ругается и пока сама глазами замечаю огрехи (естественно, уже далее идёт тестирование и рефакторинг).
да, именно так, сначала я пишу (или беру) плохой и едва рабочий код, и только потом его рефакторю много-много раз, а не сразу пишу хороший. впрочем, с опытом уже получается писать не самый ужасный, но тем не менее, принцип остаётся.
нейросеть просто анализирует кодовую базу, но не понимает, как она работает.
ха, будто бы люди понимают
Нейросеть просто закрепляет, что после "foreach (var e " 99.7% идет "in " в тестовом наборе и ставит этот токен при генерации. Там все сложнее, LLAMA все-таки не марковская цепь, но принцип такой. О понимании речи нет.
Нет никаких оснований думать, что способность нейросетей "понимать" хуже по сравнению с человеческим мозгом. Просто даже самая большая нейросеть гораздо меньше мозга и методы обучения скорее всего менее эффективны.
>Отсутствие проверок. Ассистенты не могут проверять безопасность предложенных фрагментов, а разработчики редко пересматривают их.
интересное конечно утверждение. если человек как-то видит небезопасный код (делает условный статический анализ и зачатки фаззинга у себя в голове), значит и нейронку можно натренировать выполнять это.
Забавно то, что нейронка выдает ровно самое вероятное из написанного в инете.
Из 3х грейдов разработчиков - количественно мидлов больше остальных, т.е. при прочих равных (что все грейды одинаково часто выкладывают код) именно мнение мидлов и будет самым часто встречающимся и самым вероятным продолжением для нейронки.
Т.е. полученный код и есть самый-самый "мидл", медианный, среднего уровня разработчик.
А вот куда улетели запросы эйчаров, и почему рынок так старательно ищет сеньоров под видом мидлом - очень хорошо видно в сравнении как раз с реально вычисленным "средним" уровнем.
(это не относится, конечно, напрямую к теме статьи - к подсовыванию плохого кода для дообучения. просто наблюдение, что нейросеть выдает иногда небезопасный код и это и есть средний уровень)
Мне нужно было порезать в потоке ogg на куски. Нейросеть сгенерило код который был компиляцией использования разных библиотек в разных языках. К реальному миру отношения не имел совсем. Чем меньше решений задачи, тем меньше вероятность получения рабочего кода.
А sql давно пора переосмыслить и повысить надежность к стандартным уязвимостям.
это как раз задача для нейронок
А кто-то сомневался что CoPilot не понимает того что пишет?
Даже не сомневался в этом, копилот даже ответы строит из политических предпочтений разрабов
Исследователи обнаружили, что GitHub Copilot генерирует уязвимый код