SafeCoder против закрытых ассистентов по коду

SafeCoder vs closed code assistants

На протяжении десятилетий разработчики программного обеспечения создают методологии, процессы и инструменты, которые помогают им повышать качество кода и увеличивать производительность. Например, гибкие методологии разработки, разработка через тестирование, код-ревью и непрерывная интеграция и доставка (CI/CD) теперь являются стандартными в индустрии программного обеспечения.

В книге “Как Google тестирует программное обеспечение” (Addison-Wesley, 2012) Google сообщает, что исправление ошибки во время системного тестирования – последнего этапа тестирования – стоит в 1000 раз дороже, чем исправление ее на этапе модульного тестирования. Это оказывает большое давление на разработчиков – первое звено в цепочке – чтобы писать качественный код с самого начала.

Несмотря на всю шумиху вокруг генеративного искусственного интеллекта, генерация кода кажется многообещающим способом помочь разработчикам быстро создавать более качественный код. Действительно, ранние исследования показывают, что управляемые сервисы, такие как GitHub Copilot или Amazon CodeWhisperer, помогают разработчикам быть более продуктивными.

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

В этой статье мы сравним SafeCoder с сервисами с закрытым исходным кодом и выделим преимущества, которые вы можете ожидать от нашего решения.

Передовые модели

SafeCoder в настоящее время основан на моделях StarCoder, семействе моделей с открытым исходным кодом, разработанных и обученных в рамках проекта BigCode.

StarCoder – это модель с 15,5 миллиарда параметров, обученная для генерации кода на более чем 80 языках программирования. Она использует инновационные архитектурные концепции, такие как множественное внимание к запросам (Multi-Query Attention, MQA), чтобы повысить пропускную способность и снизить задержку, технику, также присутствующую в моделях Falcon и адаптированную для моделей LLaMa 2.

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

Наконец, как и HuggingChat, SafeCoder будет внедрять новые передовые модели со временем, что обеспечит плавный путь обновлений.

К сожалению, сервисы с закрытым исходным кодом не раскрывают информацию о базовых моделях, их возможностях и данных обучения.

Прозрачность

В соответствии с Законом масштабирования Чинчиллы, SafeCoder – это модель оптимальной вычислительной сложности, обученная на 1 триллионе (1,000 миллиардов) токенов кода. Эти токены извлекаются из The Stack, набора данных объемом 2,7 терабайта, построенного на основе репозиториев с открытым исходным кодом с разрешительными лицензиями. Все усилия прилагаются для учета запросов на исключение, и мы разработали инструмент, который позволяет владельцам репозиториев проверять, является ли их код частью этого набора данных.

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

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

Настройка

Модели StarCoder специально разработаны для настройки, и мы уже создали различные версии:

  • StarCoderBase: исходная модель, обученная на более чем 80 языках из The Stack.
  • StarCoder: StarCoderBase, дополнительно обученная на языке Python.
  • StarCoder+: StarCoderBase, дополнительно обученная на английских веб-данных для общения по кодированию.

Мы также опубликовали код для донастройки на GitHub.

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

К сожалению, сервисы с закрытым исходным кодом нельзя настроить.

Гибкость в области информационных технологий

SafeCoder использует контейнеры Docker для донастройки и развертывания. Его легко запустить на собственной инфраструктуре или в облаке на любой службе управления контейнерами.

Кроме того, SafeCoder включает наши библиотеки для аппаратного ускорения Optimum. Независимо от того, работаете ли вы с центральным процессором, графическим процессором или ускорителями искусственного интеллекта, Optimum автоматически включится, чтобы помочь вам экономить время и деньги на обучении и выводе модели. Поскольку вы контролируете аппаратное обеспечение, вы также можете настроить соотношение стоимости и производительности вашей инфраструктуры в соответствии с вашими потребностями.

К сожалению, закрытые сервисы доступны только в виде управляемых сервисов.

Безопасность и конфиденциальность

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

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

SafeCoder не шпионит за вашими данными. Ваши подсказки и предложения принадлежат только вам. SafeCoder не отправляет домой и не отправляет телеметрические данные Hugging Face или кому-либо еще. Знать, как и когда вы используете SafeCoder, должны только вы. Для работы SafeCoder даже не требуется подключение к Интернету. Вы можете (и должны) использовать его в полностью изолированной среде.

Закрытые сервисы полностью полагаются на безопасность базового облачного решения. Решение о том, подходит ли это для вашего соответствия требованиям, принимаете только вы. Для корпоративных пользователей подсказки и предложения не сохраняются (они сохраняются для отдельных пользователей). Однако, к сожалению, мы отмечаем, что GitHub собирает “данные о взаимодействии пользователя” без возможности отказаться. AWS делает то же самое по умолчанию, но дает вам возможность отказаться.

Заключение

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

Если вас интересует использование SafeCoder в вашей компании, свяжитесь с нами. Наша команда свяжется с вами в ближайшее время, чтобы узнать больше о вашем случае использования и обсудить требования.

Спасибо за внимание!