
А вы знали, что есть способ улучшить генерализацию любой кодовой модели? Как? Применив до этого модель от Microsoft – CodeExecutor
Сложно-сложно, непонятно. Как я могу улучшить результаты своей модели, применив до этого CodeExecutor? А как именно надо применить?🤨
Итак, модель вышла в мае этого года. Основана она на предыдущей модели Microsoft под названием UnixCoder (2022). Коротко – чуваки взяли и поверх предыдущей модели на претрэйне обучали ее на предсказание трассировки по коду. Что за трассировка можно посмотреть во вложении, но по сути это состояние переменных в течении выполнения кода.
Они кстати выложили, как выглядит их датасет, но я нашла только test.😠 А собирали они его следующим образом: брали код из датасета CodeNet и прогоняли в песочнице, которая будет комплитить этот код и выдавать трассировку. Вау, как неожиданно. Ладно, на самом деле это не все, они еще зааугали данные различными операциями (вложения, там список). И получив AST дерево (тоже напомню во вложениях как оно выглядит), они получали элементы к которым они могут применить операции «мутаций»
Еще мне понравилось, что авторы вспомнили древний (ну реально, на фоне всех методов NLP) подход curriculum learning. Если коротко – это обучение с постепенным усложнением функции. Ну то есть начинаем с линейной, постепенно продвигаемся к выпуклой. Соответственно они начинали учить с однострочных кодов и увеличивали постепенно количество строк.
Так вот, как же она может то давать прирост величины результатов любой модели. Перед тем, как использовать кодовые модели просто прогоняем трестировку на данных и скарливаем. Все🧠 . По метрикам у моделей действительно увеличивается понимание кода.
🤗Модель
🖥 Код
Сложно-сложно, непонятно. Как я могу улучшить результаты своей модели, применив до этого CodeExecutor? А как именно надо применить?
Итак, модель вышла в мае этого года. Основана она на предыдущей модели Microsoft под названием UnixCoder (2022). Коротко – чуваки взяли и поверх предыдущей модели на претрэйне обучали ее на предсказание трассировки по коду. Что за трассировка можно посмотреть во вложении, но по сути это состояние переменных в течении выполнения кода.
Они кстати выложили, как выглядит их датасет, но я нашла только test.
Еще мне понравилось, что авторы вспомнили древний (ну реально, на фоне всех методов NLP) подход curriculum learning. Если коротко – это обучение с постепенным усложнением функции. Ну то есть начинаем с линейной, постепенно продвигаемся к выпуклой. Соответственно они начинали учить с однострочных кодов и увеличивали постепенно количество строк.
Так вот, как же она может то давать прирост величины результатов любой модели. Перед тем, как использовать кодовые модели просто прогоняем трестировку на данных и скарливаем. Все
🤗Модель