Рабочие заметки ML инженера
Автор: @m1trm
Post #18
366


Глупые железяки
Разбираю тут одну статью по оценке качества LLM на задаче информационной безопасности, периодически повторяю что-то, если глаз зацепился.
И вот дохожу до эксперимента, в котором проверяется умение языковых моделей находить уязвимости (картинка 1). Авторы смотрят на результат (мол
Ладно, факт есть факт, подумал я и решил ради интереса проверить, смогут ли, спустя несколько лет публикации статьи, текущие модели справиться с этой задачей? Всё-таки GPT-4 вышла в далеком 2023 ( а cutoff у нее вообще случился в 2021).
Я отправил этот кусок кода без замысловатого промпта в gpt-4o и посмотрите на 2 картинку, о боже, она тоже попалась на эту задачу?!🤢
Заподозрил что-то неладное и решил проверить. Повторил пример из статьи и обнаружил баг: в стремлении упростить сниппет кода, авторы оставили в нем ошибку, которая не позволяла корректно воспроизвести уязвимость (а точнее её отстутсвие), сервис крашился на попытке выполнить
Поэтому нельзя сказать, что текущая и старая версии chatgpt были совсем не правы, они просто изучили код не так подробно, как хотелось бы авторам, сделав допущение, что в коде ошибок нет - подсветили явную уязвимость: мы в каком-то методе сформировали запрос без параметров в возвращаемом значении и подали на исполнение.
Получается дилемма, которую часто ловлю в работе с llm как с code copilot:
Тут как нельзя кстати приходится сравнение llm с джунами, которые часто в силу отсутствия опыта решают (a) только четко поставленные задачи, и (б) - решают их в лоб.
#papers #fun
Разбираю тут одну статью по оценке качества LLM на задаче информационной безопасности, периодически повторяю что-то, если глаз зацепился.
И вот дохожу до эксперимента, в котором проверяется умение языковых моделей находить уязвимости (картинка 1). Авторы смотрят на результат (мол
createQuery возвращает параметризованный запрос) и делают очевидный вывод:(1) LLMs are not familiar with the safe practices of library functions, and
(2) LLMs cannot handle complex multi- function and multi-variable data flow patterns.
Ладно, факт есть факт, подумал я и решил ради интереса проверить, смогут ли, спустя несколько лет публикации статьи, текущие модели справиться с этой задачей? Всё-таки GPT-4 вышла в далеком 2023 ( а cutoff у нее вообще случился в 2021).
Я отправил этот кусок кода без замысловатого промпта в gpt-4o и посмотрите на 2 картинку, о боже, она тоже попалась на эту задачу?!🤢
Заподозрил что-то неладное и решил проверить. Повторил пример из статьи и обнаружил баг: в стремлении упростить сниппет кода, авторы оставили в нем ошибку, которая не позволяла корректно воспроизвести уязвимость (а точнее её отстутсвие), сервис крашился на попытке выполнить
cursor.execute с входным tuple вместо ожидаемых параметров:TypeError: can't concat tuple to bytes
Поэтому нельзя сказать, что текущая и старая версии chatgpt были совсем не правы, они просто изучили код не так подробно, как хотелось бы авторам, сделав допущение, что в коде ошибок нет - подсветили явную уязвимость: мы в каком-то методе сформировали запрос без параметров в возвращаемом значении и подали на исполнение.
Получается дилемма, которую часто ловлю в работе с llm как с code copilot:
- Если вопрос был поставлен прямо: есть ли уязвимость (да/нет/не знаю) в коде, должна ли ллм предусматривать еще и программные ошибки, которые не позволят коду запуститься?
- Или она должна допустить, что в одной из частей код корректен и ответить на поставленный вопрос?
- Если так, то обязана ли она выбрать то же допущение, что и пользователь?
Кажется, что нет...
Тут как нельзя кстати приходится сравнение llm с джунами, которые часто в силу отсутствия опыта решают (a) только четко поставленные задачи, и (б) - решают их в лоб.
#papers #fun





