Skip to content
Назад к Блогу
Model Releases

StarCoder 15.5B: Открытая модель кодирования для разработчиков

Знакомьтесь с StarCoder - мощной 15.5B параметрической моделью для генерации кода, обученной на более чем 1 триллионе токенов.

4 мая 2023 г.
Model ReleaseStarCoder

Введение

BigCode, коллаборативное сообщество исследователей и инженеров, представила StarCoder - одну из самых значимых открытых моделей для генерации кода в 2023 году. Выпущенная 4 мая 2023 года, StarCoder представляет собой 15.5 миллиардов параметров модели, специально оптимизированной для задач программирования и понимания кода.

Модель является результатом совместной работы между ведущими университетами, технологическими компаниями и организациями по разработке ПО с открытым исходным кодом. StarCoder демонстрирует стремление BigCode к демократизации ИИ через открытые источники и науку.

Ключевое значение этой модели заключается в её способности эффективно работать с 80+ языками программирования, что делает её универсальным инструментом для разработчиков по всему миру. Это важный шаг в сторону более доступных и ответственных ИИ-инструментов для программистов.

С поддержкой контекста до 8K токенов, StarCoder может обрабатывать сложные кодовые базы и длинные последовательности программного кода, что делает её особенно полезной для реальных сценариев разработки.

Ключевые особенности и архитектура

StarCoder основана на архитектуре decoder-only transformer с 15.5 миллиардами параметров. Модель была обучена на 1 триллионе токенов из датасета The Stack, который включает код на более чем 80 языках программирования.

Одним из ключевых аспектов архитектуры является поддержка контекста длиной до 8192 токенов (8K), что значительно превышает большинство предыдущих моделей кодирования. Это позволяет обрабатывать более длинные функции, классы и даже целые файлы без потери информации.

Модель также поддерживает возможность заполнения (infilling), что позволяет ей заполнять пропуски в существующем коде, что полезно для задач рефакторинга и автоматического завершения кода.

Архитектура оптимизирована для быстрого вывода при больших батчах, что делает её подходящей для промышленного использования в IDE и других инструментах разработки.

  • 15.5B параметров
  • 8K контекстное окно
  • Обучение на 1T токенов из The Stack
  • Поддержка 80+ языков программирования
  • Возможность заполнения (infilling)
  • Оптимизация для быстрого вывода

Производительность и бенчмарки

StarCoder показывает впечатляющие результаты на стандартных бенчмарках для оценки производительности генерации кода. На HumanEval, который тестирует способность модели генерировать корректный код для простых задач, StarCoder достигает 37.7% точности, что превосходит многие предыдущие открытые модели.

На более сложном бенчмарке MBPP (Mostly Basic Python Problems) StarCoder набирает 52.6%, что указывает на её способность решать практические задачи программирования. Эти результаты делают её конкурентоспособной по сравнению с коммерческими решениями того же размера.

В тестах на несколько языков StarCoder показывает особенно хорошие результаты на Python (на котором дополнительно обучалась версия StarCoder), но также демонстрирует стабильную производительность на Java, JavaScript, C++, TypeScript и других популярных языках.

В сравнении с GPT-3.5-Turbo на задачах генерации кода, StarCoder показывает сопоставимую или лучшую точность на некоторых языках, несмотря на меньший размер модели и открытый характер.

Ценообразование API

Как полностью открытая модель, StarCoder не имеет платформенного ценообразования API от BigCode. Однако пользователи могут развертывать модель локально бесплатно, что делает её очень экономичной для внутреннего использования.

Для облачных провайдников, которые предлагают доступ к StarCoder через свои API, цена может варьироваться. В среднем, цена составляет около $0.20 за миллион входных токенов и $0.20 за миллион выходных токенов для коммерческих использований.

Некоторые хостинг-платформы предоставляют бесплатные квоты для некоммерческого использования, особенно для исследовательских проектов и образовательных целей.

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

Таблица сравнения

Вот как StarCoder сравнивается с другими популярными моделями генерации кода на рынке.

Таблица ниже показывает ключевые характеристики и ценовые аспекты нескольких моделей.

Эти данные помогут вам выбрать наиболее подходящую модель для ваших нужд.

Все значения являются приблизительными и могут меняться в зависимости от провайдера API.

Сценарии использования

StarCoder идеально подходит для широкого спектра сценариев использования в области разработки программного обеспечения. Основные применения включают автодополнение кода, генерацию фрагментов, рефакторинг и документирование кода.

Модель особенно эффективна в интеграции с IDE и редакторами кода, где может предлагать предложения в реальном времени на основе текущего контекста. Она также может использоваться для генерации тестов, анализа безопасности кода и обучения новым разработчикам.

Благодаря поддержке множества языков, StarCoder подходит для мультиязычных проектов и команд, работающих с различными технологиями.

Также возможны применения в системах RAG (Retrieval-Augmented Generation) для поиска и генерации кода на основе документации и существующих кодовых баз.

Начало работы

Чтобы начать использовать StarCoder, вы можете получить доступ к модели через Hugging Face Hub по адресу bigcode/starcoder. Модель доступна под лицензией BigCode OpenRAIL-M, что позволяет использовать её как в исследованиях, так и в коммерческих целях.

Для локального запуска вы можете использовать библиотеку transformers от Hugging Face. Просто установите библиотеку и загрузите модель с помощью AutoModelForCausalLM.

Для интеграции с вашими приложениями доступны SDK для Python, Node.js и других языков. Также можно использовать inference API от Hugging Face для быстрого прототипирования.

Документация и примеры использования доступны на официальной странице проекта BigCode и в репозитории на GitHub.


Comparison

Model: StarCoder 15.5B | Context: 8K | Max Output: 4K | Input $/M: 0.00 | Output $/M: 0.00 | Strength: Open source, 80+ langs

Model: CodeLlama 13B | Context: 16K | Max Output: 4K | Input $/M: 0.15 | Output $/M: 0.15 | Strength: Long context, Python focus

Model: GPT-3.5 Turbo | Context: 16K | Max Output: 4K | Input $/M: 0.50 | Output $/M: 1.50 | Strength: General purpose, high quality

Model: Replit Code V1-3B | Context: 4K | Max Output: 2K | Input $/M: 0.08 | Output $/M: 0.08 | Strength: Fast inference, small size

API Pricing — Input: 0.00 / Output: 0.00 / Context: Free open source model


Sources

Официальная страница StarCoder на Hugging Face

Технический отчет StarCoder на arXiv

Документация проекта BigCode

GitHub репозиторий StarCoder