Еще один доказал непонятно что*
В линкедин прилетела ссылка на свежее исследование, где новым моделям дали задание повторить известные проекты вроде FFMPEG и они не смогли, из чего автор поста задал риторический вопрос: но ведь весь этот код наверняка есть в обучающей выборке, неужели не могут повторить?!
Код скорее всего есть, но вывод неправильный, как и сама постановка вопроса ничего с исследованием не имеет. Ребята вообще говоря не то чтобы хотели что-то доказать, а скорее исследовали как модель будет проектировать софт если ей не задавать каркас проекта и другие ограничения.
Задача была взять бинарник повторяемого проекта, документацию от него, тесты и написать код, который будет делать то же самое (пройдет тесты) с отключенным интернетом. Т.е. полагаясь сугубо на свои веса.
Модели сносно справились со штуками типа fzf, но совершенно все провалились на сложных проектах с 10 летней историей разработки типа ffmpeg (Вот это да!).
Но куда интереснее как модели писали код:
- Модель угадывала и решала использовать такой же язык разработки в половине случаев. Напомню, что доступа к исходникам и интернету у модели не было. Возможно, в документации упоминался язык, но модель могла выбрать любой
- Решение модели всегда были значительно короче по числу строк
- Модели предпочитали валить все в один файл, а не раскладывать по папкам
- Модели писали меньше функций, но зато сами функции были длиннее
Короче говнокодили мама моя дядя Боб наверное своим зеленым напульсником TESTS FIRST подавился.
Пара моментов, которые принято упускать:
- Модели заточены НЕ ПОВТОРЯТЬ решения из обучающей выборки 1-1 потому что копирайт
- Модели тюнятся отвечать быстрее. Это человек скажет "мне надо подумать" и пойдет хуй пинать, а за "подумать недельку" модели платить никто не будет, хоть мы и идем к тому что модели будут работать неделями.
- Модель решает задачу здесь и сейчас. Надо чтобы тесты прошли - пишем все в одну функцию. Человеки же решают задачу построения джоб секурити фреймворка и раскладывают по папочкам, чтобы сложнее было понять что к чему.
Зная эти простые правила можно уже улучшить результат работы с моделями. Хотя я уверен, что мы решаем не ту задачу. Мы все еще хотим генератор, а не компилятор. ЛЛМ должно быть компилятором. В здоровую голову не придет идея заглядывать, что там нагородил gcc, так же и с ЛЛМами - они написали код. Код работает. Зачем в него смотреть? Вот так надо подходить к настройке моделей.
Поэтому исследование на самом деле интересное, а вот выводы из него люди делают странные.
Потом еще напишу почему информации у моделей больше чем у человека и одновременно меньше.
Исследование:
https://arxiv.org/html/2605.03546v1