Open-source модель StarCoder генерирует код на 86 языках программирования

starcoder

StarCoder — это state-of-the-art метод для исправления и генерации кода с помощью нейронных сетей от сообщества исследователей The BigCode, MIT, университета Пенсильвании и Колумбийского университета. StarCoder отличается от предыдущих моделей, таких как PaLM, LaMDA, LLaMA и OpenAI code-cushman-001 улучшением показателей качества и производительности. StarCoder работает с 86 языками программирования, такими как Python, C++, Java, Kotlin, PHP, Ruby, TypeScript и другими. В список не включен язык Swift «из-за человеческой ошибки» при составлении списка. Код модели, данные для обучения и параметры для запуска модели выложены в открытом доступе на Github.

StarCoder — это дообученная модель SantaCoder от тех же авторов. Потестировать генерацию кода моделью можно в песочнице.

Обучение Starcoder

Исследователи представили две модели:

  1. StarcoderBase — компактная модель обученная на 86 языках программирования, предназначенная только для исправления ошибок.
  2. Starcoder генерирует новый код и исправляет ошибки в существующем коде, была дообучена на 35 миллиардах Python-токенов.

Модель с 15,5 миллиардами параметров представляет собой дообученный SantaCoder на основе Transformer (только с декодером), содержащим Fill-in-the-Middle и MultiQuery механизмом внимания.

Обучение модели проводилось на датасете The Stack 1.2, он содержит более 6 ТБ файлов исходного кода из открытых репозиториев Github, охватывающих 358 языков программирования, из которых были отобраны 86 языков с достаточным количеством данных для обучения. Код из репозиториев был очищен и обезличен: удалены e-mail адреса, имена и пароли.

Оценка результатов модели

starcoder code generation from text promt
Пример генерации Python-кода по текстовому запросу

StarCoder была оценена на нескольких метриках, включая HumanEval и MBPP. В сравнении с предыдущими моделями продемонстрировано значительное улучшение в точности исправления и генерации кода на языках Python и Java.

Подписаться
Уведомить о
guest

0 Comments
Межтекстовые Отзывы
Посмотреть все комментарии

gogpt