Эта статья по искусственному интеллекту объясняет, как языки программирования могут улучшать друг друга через настройку инструкций.

Статья объясняет, как языки программирования могут улучшать друг друга через настройку инструкций.

Введение больших языковых моделей (LLM) ворвалось в мир громким штурмом. Эти модели славятся имитацией людей, созданием уникального и креативного контента и отвечают на вопросы так, как это делают люди. Эти модели также способны кратко излагать длинные абзацы текста, переводить языки и завершать коды. Недавно наблюдается значительный рост разработки LLM, созданных специально для создания кода. Невероятные навыки создания кода этих моделей, также известных как кодовые LLM, привлекли много внимания в академических и промышленных областях. CodeGeeX, StarCoder, CodeLlama и Codex – несколько заметных кодовых LLM, которые были недавно представлены.

Применение алгоритмов настройки инструкций является увлекательным прорывом в области кодовых LLM. Последние исследования исследовали идею обучения LLM, как следовать определенным инструкциям, чтобы улучшить их способность создавать код. Последнее исследование исследует интересную идею о том, что после того, как человеческие программисты освоили один язык программирования, им может быть проще освоить второй язык. Основная цель этого исследования – определить, могут ли различные языки программирования дополнять друг друга в то время, когда большие языковые модели настраивают свои инструкции.

Для исследования и проверки этой теории группа исследователей провела серию обширных экспериментов, включающих восемь популярных языков программирования: Python, JavaScript, TypeScript, C, C++, Java, Go и HTML. Эти языки включают широкий спектр программных парадигм и областей применения, от языков разметки, таких как HTML, до языков системного уровня, таких как C и C++, а также скриптовых языков, таких как Python и JavaScript. Основной целью этих тестов было выяснить, может ли настройка инструкций на одном языке программирования улучшить производительность кодового LLM при использовании с другим языком. В этих тестах использовалась кодовая модель StarCoder.

Для обеспечения соответствия инструкциям синтаксису и требованиям каждого языка методология создания этих языкоспецифических инструкций включает изменение исходной инструкции на основе Python путем либо глубокой эволюции, либо, в случае HTML, широкой эволюции. Глубокая эволюция – это метод генерации языкоспецифических инструкций, начиная с исходной инструкции на основе Python, а затем делая ее более сложной и приспособленной к целевому языку, улавливая языкоспецифические тонкости. С другой стороны, широкая эволюция предполагает создание совершенно новых инструкций, специфичных для HTML, а не начало с инструкций на основе Python, признавая отличительные особенности HTML в веб-разработке.

Результаты экспериментов привели к некоторым серьезным выводам. Было показано, что, когда речь идет о задачах создания кода, языки программирования определенно имеют способность выполнять заметно лучше друг друга. Например, при тестировании Java-кода с использованием бенчмарка HumanEval-X модель кода, известная как CODEM-Python 15B, обученная на данных Python, продемонстрировала замечательное улучшение показателя pass@1 точностью 17,95%. Это открытие говорит о том, что знание одного языка, такого как Python, может значительно улучшить создание кода на другом языке, таком как Java.

Еще более удивительно, при использовании на корпусе HTML (язык разметки) CODEM-HTML 7B показал значительное абсолютное улучшение точности 15,24% pass@1. Это означает, что даже фундаментально разные языки, такие как языки разметки, например HTML, и традиционные языки программирования, такие как Java, могут взаимно улучшать возможности создания кода друг друга.