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

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), которая особенно полезна для автодополнения кода и рефакторинга.
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%.
Важно отметить, что улучшения наблюдаются не только в метриках точности, но и в качестве генерации кода. Модель лучше понимает сложные структуры данных, контексты вызова функций и зависимости между различными частями программы.
Как полностью открытая модель, 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 активно поддерживает модели и регулярно выпускает обновления.
API Pricing — Input: $0.10-$0.15/M tokens / Output: $0.20-$0.30/M tokens / Context: Free open weights available, cloud pricing varies