Так профессия программиста гораздо шире и сложнее, чем простая реализация алгоритмов или задачи уровня собеседований. Проблемы измерения и оценки прогресса ИИ для программирования Оптимизация кода промышленного масштаба, например, перенастройка ядер GPU или сложные многоуровневые улучшения движка V8 в Chrome — по-прежнему остается одной из самых трудных задач для объективной оценки. Современные метрики производительности были созданы для коротких, изолированных сценариев, и хотя тесты с множественным выбором до сих пор распространены в исследованиях по обработке естественного языка, для ИИ в области программирования они никогда не были адекватной мерой. Главный существующий эталон — SWE-Bench — оценивает способность модели исправлять ошибки в репозиториях GitHub. Этот подход полезен, но отражает лишь часть реальности: — задачи охватывают всего несколько сотен строк кода — есть риск утечек данных из открытых репозиториев — не учитываются широкий спектр практических сценариев, такие как, рефакторинг, совместное программирование человека и ИИ или критически важные переписывания систем, включающих миллионы строк. Пока такие эталоны не научатся охватывать более масштабные и комплексные контексты, измерение реального прогресса ИИ в инженерии программного обеспечения останется нерешенной задачей. Вызовы коммуникации и контекста в работе ИИ с кодом Если измерение прогресса остается одной из главных проблем, то коммуникация между человеком и машиной — не менее серьезное препятствие. Современное взаимодействие программиста с ИИ пока напоминает тонкий и ненадежный канал связи. При генерации кода модели часто выдают объемные, неструктурированные файлы и поверхностные модульные тесты, не обеспечивающие реальной проверки корректности. Этот разрыв проявляется и в ограниченной способности ИИ использовать широкий спектр инструментов инженерии программного обеспечения — от отладчиков до статических анализаторов, которые необходимы для глубокого понимания и контроля качества кода. Отсутствие прозрачности в работе моделей приводит к тому, что разработчики нередко вынуждены доверять коду, который компилируется, но может оказаться ошибочным при внедрении в рабочие системы. Для преодоления этого барьера необходимо, чтобы ИИ умел передавать степень уверенности в своих решениях и вовремя обращаться к пользователю за уточнениями. Проблемы усиливаются с ростом масштаба. Большие кодовые базы с миллионами строк становятся серьезным испытанием: — корпоративные репозитории имеют уникальные соглашения и стандарты — ИИ может генерировать код, который выглядит корректным, но нарушает внутренние правила или не проходит проверки в CI/CD — модели ошибаются при поиске фрагментов кода, ориентируясь на синтаксис, а не на функциональную логику, что снижает точность и надежность предложений. Призыв к совместным усилиям и значение исследования Авторы исследования подчеркивают, что универсального решения для существующих проблем не существует. Они призывают научное и инженерное сообщество к совместным усилиям: к созданию более богатых наборов данных, отражающих сам процесс написания кода — какие фрагменты разработчики сохраняют, какие удаляют и как код эволюционирует со временем. Исследователи также предлагают разрабатывать общие тестовые наборы, которые позволят измерять прогресс не только в точности генерации, но и в качестве рефакторинга, устойчивости исправлений и корректности миграций. Отдельное внимание уделяется разработке прозрачных инструментов, способных показывать уровень уверенности модели и вовлекать человека в процесс принятия решений. Такой подход должен превратить ИИ из простого механизма автодополнения в полноценного инженерного партнера. Это особенно важно, поскольку программное обеспечение лежит в основе всех ключевых сфер — от финансов и транспорта до здравоохранения. Человеческие ресурсы становятся узким местом, и именно ИИ, способный безопасно брать на себя рутинные задачи, сможет освободить специалистов для творческих и стратегических решений. Source: https://the-tech.kz/mozhet-li-ii-zamenit-razrabotchika-novoe-issledovanie-mit/