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

StarCoder 2: Открытая кодовая модель нового поколения от BigCode и ServiceNow

BigCode и ServiceNow представили StarCoder 2 — семейство открытых языковых моделей для программирования с параметрами 3B, 7B и 15B, обученными на более чем 4 триллионах токенов.

6 февраля 2024 г.
Model ReleaseStarCoder 2
StarCoder 2 - official image

Введение

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

Новый набор моделей включает три размера: 3 миллиарда, 7 миллиардов и 15 миллиардов параметров, что позволяет выбрать оптимальный баланс между производительностью и вычислительными затратами. StarCoder 2 стал результатом совместной работы ServiceNow, NVIDIA и Hugging Face, что делает его одним из самых прозрачных и доступных решений на рынке.

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

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

StarCoder 2 представлен в трех размерах: 3B, 7B и 15B параметров, что обеспечивает гибкость выбора для различных сценариев использования. Архитектурно модель основана на современных достижениях в области трансформеров с улучшенной системой внимания.

Одной из выдающихся особенностей является контекстное окно длиной 16 000 токенов с использованием скользящего окна внимания (sliding window attention). Это позволяет модели эффективно обрабатывать длинные файлы кода и сохранять контекст в больших программных проектах.

Модель поддерживает более 600 языков программирования, что значительно превышает возможности предыдущих версий. Также реализована функция заполнения посередине (fill-in-the-middle), которая особенно полезна для автодополнения кода и рефакторинга.

  • Размеры: 3B, 7B, 15B параметров
  • Контекстное окно: 16K токенов со скользящим вниманием
  • Поддержка 600+ языков программирования
  • Fill-in-the-middle capability
  • Обучение только на разрешительно лицензированном коде

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

StarCoder 2 демонстрирует значительные улучшения по сравнению с предыдущей версией. В тестах HumanEval модель показала результаты на 15-20% выше, чем оригинальный StarCoder, особенно в сегментах 7B и 15B. Модель 15B достигла 78.2% точности на HumanEval, что сопоставимо с ведущими коммерческими решениями.

В бенчмарке MBPP (Mostly Basic Python Problems) StarCoder 2 15B достиг 72.4%, превосходя многие существующие модели. В тестах на конкретных языках программирования модель показывает особенно сильные результаты на Python, JavaScript, TypeScript и C++, где превосходит предыдущие версии на 10-15%.

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

Цены на API

Как полностью открытая модель, StarCoder 2 не имеет прямых цен на API, но доступен через различные платформы и сервисы. На Hugging Face модель предоставляется бесплатно для исследовательских целей, хотя коммерческое использование может потребовать собственной инфраструктуры.

Для облачных сервисов, поддерживающих StarCoder 2, цены начинаются от $0.10 за миллион входных токенов и $0.20 за миллион выходных токенов для 7B модели. 15B версия стоит примерно в 1.5 раза дороже, что остается конкурентоспособным по сравнению с другими коммерческими решениями.

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

Сравнение с конкурентами

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

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

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

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

Модель особенно эффективна в сценариях, требующих понимания контекста большой глубины, таких как анализ существующих кодовых баз, генерация тестов и исправление ошибок. Длинное контекстное окно позволяет модели работать с целыми файлами, а не с фрагментами.

Также StarCoder 2 подходит для построения агентов программирования, систем RAG (Retrieval Augmented Generation) для документации кода и внутренних инструментов ИИ для команд разработки.

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

Доступ к StarCoder 2 возможен через несколько платформ. На Hugging Face можно найти все три версии модели с подробной документацией и примерами использования. Модели доступны как для локального запуска, так и через API.

Для интеграции в IDE доступны плагины для популярных редакторов кода, включая VS Code, Vim и Emacs. Также существуют SDK для Python и других языков, упрощающие интеграцию в существующие рабочие процессы.

Документация включает примеры запросов, рекомендации по токенизации и оптимизации производительности. Сообщество BigCode активно поддерживает модели и регулярно выпускает обновления.


Comparison

Model: StarCoder 2 15B | Context: 16K | Max Output: 8K | Input $/M: $0.15 | Output $/M: $0.30 | Strength: 600+ langs, permissive license

Model: CodeLlama 13B | Context: 16K | Max Output: 4K | Input $/M: $0.20 | Output $/M: $0.40 | Strength: Specialized code model

Model: Mistral 7B Instruct | Context: 32K | Max Output: 8K | Input $/M: $0.12 | Output $/M: $0.24 | Strength: General purpose, high perf

Model: GPT-3.5 Turbo | Context: 16K | Max Output: 4K | Input $/M: $0.50 | Output $/M: $1.50 | Strength: Proprietary, strong reasoning

API Pricing — Input: $0.10-$0.15/M tokens / Output: $0.20-$0.30/M tokens / Context: Free open weights available, cloud pricing varies


Sources

StarCoder2 and The Stack v2 - Hugging Face

Fast-LLM Documentation for StarCoder 2