Введение
Генеративный ИИ находится на грани полной автоматизации генерации кода, хотя пока и не достигла этой вехи. Однако следующим лучшим инструментом является Code Llama! Выпущенный в 2023 году, последний генератор кода Meta, Code Llama, предназначен для помощи программистам в различных задачах программирования. Code Llama фокусируется на улучшении рабочих процессов разработчиков, генерации и завершении кода, а также помощи в тестировании. Давайте рассмотрим Code Llama как автономный актив, а затем сравним его с другими инструментами генеративного ИИ, специализирующимися на кодировании.
Как работает Code Llama
Code Llama — это специализированный для кода вариант Llama 2, разработанный путем дальнейшего обучения Llama 2 на наборах данных, специфичных для кода, и выборки большего количества данных из этих наборов данных в течение длительных периодов. Этот процесс наделил Code Llama расширенными возможностями кодирования, построенными на основе Llama 2. Он может генерировать код и описания кода на естественном языке как из кода, так и из подсказок на естественном языке (например, «Напишите мне функцию, которая выводит последовательность Фибоначчи»). Кроме того, его можно использовать для завершения кода и отладки. Code Llama поддерживает многие популярные языки программирования, включая Python, C++, Java, PHP, TypeScript (JavaScript), C# и Bash.
Meta выпускает четыре размера Code Llama, включающие модели с параметрами 7B, 13B, 34B и 70B соответственно. Каждая из этих моделей, за исключением версии 70B, обучается на токенах 500B кода и связанных с кодом данных, в то время как модель 70B обучается на токенах 1T. Базовые и инструктирующие модели 7B и 13B также включают возможность заполнения в середине (FIM), что позволяет им вставлять код в существующий код и поддерживать такие задачи, как автодополнение кода, прямо из коробки.
Эти модели удовлетворяют различным требованиям к обслуживанию и задержке. Например, модель 7B может обслуживаться на одном сервере. GPU. В то время как модели 34B и 70B обеспечивают наилучшие результаты и предлагают превосходную помощь при кодировании, более компактные модели 7B и 13B работают быстрее и больше подходят для задач, требующих малой задержки, таких как завершение кода в реальном времени.
Возможности Code Llama
Модели Code Llama обеспечивают стабильные поколения с контекстом до 100,000 16,000 токенов. Все модели обучаются на последовательностях из 100,000 XNUMX токенов и демонстрируют улучшения при вводе до XNUMX XNUMX токенов.
Эта возможность обработки более длинных последовательностей ввода не только облегчает создание более длинных программ, но и открывает новые возможности использования модели языка кода (LLM). Например, пользователи могут предоставить модели больше контекста из своей кодовой базы, что делает сгенерированный код более релевантным. Кроме того, это полезно при отладке сценариев в больших кодовых базах, где отслеживание всего кода, связанного с конкретной проблемой, может быть сложным для разработчиков. Предоставляя разработчикам возможность вводить полный код, модель может помочь в отладке обширных фрагментов кода.
Кроме того, Meta дополнительно доработала две дополнительные версии Code Llama: Code Llama — Python и Code Llama — Instruct.
Code Llama — Python — это специализированная версия языка, дополнительно настроенная на 100 млрд токенов кода Python. Учитывая, что Python является наиболее протестированным языком для генерации кода и играет важную роль в сообществе ИИ наряду с PyTorch, эта специализированная модель предлагает дополнительную полезность.
Code Llama — Instruct — это тонко настроенная и выровненная вариация инструкций. Настройка инструкций продолжает процесс обучения с другой целью, где модель получает входные данные «естественного языка инструкций» и ожидаемый вывод. Это повышает ее способность понимать ожидания человека от подсказок. Рекомендуется использовать варианты Code Llama — Instruct для генерации кода, поскольку они тонко настроены для получения полезных и безопасных ответов на естественном языке.
Не рекомендуется использовать Code Llama или Code Llama — Python для общих задач на естественном языке, поскольку эти модели не предназначены для выполнения инструкций на естественном языке. Если вы хотите завершить задачи NLP, вы можете выбрать Модели Llama2 или Llama3, где вы можете получить доступ, интегрировавшись с novita.ai LLM API:

С самыми дешевыми ценами и масштабируемыми моделями, Novita AI LLM API вывода расширяет ваши возможности LLM невероятная стабильность и довольно низкая задержка — менее 2 секунд. LLM производительность может быть значительно улучшена с помощью Novita AI LLM API вывода.
Code Llama специализируется на задачах, связанных с кодом, и не подходит в качестве базовой модели для других приложений.
Пользователи моделей Code Llama должны соблюдать лицензию Meta и политику допустимого использования.
Оценка производительности Code Llama
Чтобы оценить производительность Code Llama по сравнению с существующими решениями, Meta использовала два популярных бенчмарка кодирования: HumanEval и Mostly Basic Python Programming (MBPP). HumanEval оценивает способность модели завершать код на основе строк документации, в то время как MBPP проверяет способность модели писать код на основе описания.
Тестирование производительности показало, что Code Llama превзошла другие языковые модели с открытым исходным кодом, ориентированные на конкретный код, и превысила производительность Llama 2. Например, Code Llama 34B набрала 53.7% на HumanEval и 56.2% на MBPP, что является самым высоким показателем среди современных открытых решений и сопоставимо с ChatGPT.
Как и все передовые технологии, Code Llama несет определенные риски. Ответственное построение моделей ИИ имеет решающее значение, поэтому перед выпуском Code Llama были реализованы многочисленные меры безопасности. В рамках усилий по объединению Red Team была проведена количественная оценка риска генерации вредоносного кода Code Llama. Были использованы запросы, разработанные для запроса вредоносного кода с явным намерением, и ответы Code Llama сравнивались с ответами ChatGPT (GPT-3.5 Turbo). Результаты показали, что Code Llama давал более безопасные ответы.
Как использовать Код Лама
Code Llama недоступен напрямую через веб-сайт или платформу. Вместо этого он доступен на GitHub и может быть загружен для локального использования. Вот несколько способов доступа к Code Llama:
1. Интеграция чат-бота: Perplexity-AI, текстовый ИИ, похожий на ChatGPT, интегрировал версию параметра Code Llama 34B. Это позволяет пользователям генерировать код с помощью текстовых подсказок. Perplexity-AI предлагает несколько вариантов, ориентированных на определенные языки программирования, такие как Python, Java, C++ и JavaScript.
2. Интеграция моделей: Hugging Face, платформа с открытым исходным кодом, предоставляет стандартные модели, которые можно использовать для легкой генерации кода.
3. Интегрированная среда разработки (IDE): Ollama — это библиотека Code Llama, которую можно загрузить и интегрировать непосредственно в IDE. Это позволяет пользователям локально использовать большие языковые модели.
В этом уроке мы продемонстрируем возможности Code Llama с использованием Perplexity AI. Начнем с определения и создания функций сортировки. Сначала мы создадим функцию двоичной сортировки, которая похожа на сортировку вставкой, но использует двоичный поиск для определения позиции элемента. После этого мы спросим у Perplexity, есть ли другие алгоритмы, сопоставимые с двоичной сортировкой. Наконец, мы попросим Perplexity сгенерировать класс сортировки, содержащий некоторые из этих функций.
подскажите:
У меня есть класс Python, который выиграл бы от алгоритма бинарной сортировки. Не могли бы вы создать класс Python, который принимает список значений, сортирует их с помощью бинарной сортировки и возвращает отсортированный список.
Ответ:

подскажите:
Существует ли другой алгоритм, сравнимый или лучший, чем двоичная сортировка?
Ответ:

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



Кому выгоден Code Llama
Программисты уже используют большие языковые модели (LLMs) для помощи в выполнении различных задач, от написания нового программного обеспечения до отладки существующего кода. Цель — оптимизировать рабочие процессы разработчиков, позволяя им сосредоточиться на аспектах своей работы, более ориентированных на человека, а не на рутинных задачах.
В Meta считают, что модели ИИ, особенно LLMs для программирования, получают значительные преимущества от открытого подхода, способствующего как инновациям, так и безопасности. Общедоступные, ориентированные на конкретный код модели могут стимулировать разработку новых технологий, улучшающих жизнь людей. Публикуя такие модели, как Code Llama, всё сообщество может оценить свои возможности, выявить проблемы и устранить уязвимости.
Ответственное использование Code Llama
В исследовательской работе Меты представлена подробная информация о разработке Code Llama, проведенных сравнительных тестах, ограничениях модели и возникших проблемах, а также о принятых мерах по их смягчению и будущих проблемах, которые предстоит решить.
Кроме того, было обновлено Руководство по ответственному использованию, в которое теперь включены рекомендации по ответственной разработке последующих моделей, охватывающие такие аспекты, как:
– Определение политик в отношении контента и мер по его снижению
– Подготовка данных
– Тонкая настройка модели
– Оценка и улучшение производительности
– Устранение рисков на уровне входных и выходных данных
– Создание механизмов прозрачности и отчетности во взаимодействии с пользователями
Разработчикам рекомендуется оценивать свои модели с использованием оценочных показателей, специфичных для кода, и проводить исследования безопасности в случаях использования, специфичных для кода, таких как создание вредоносных программ, компьютерных вирусов или вредоносного кода. Также рекомендуется использовать наборы данных безопасности для автоматических и человеческих оценок и проводить red teaming с подсказками-соперниками.
Будущее генеративного ИИ для кодирования
Code Llama предназначена для поддержки инженеров-программистов во всех секторах, включая исследования, промышленность, проекты с открытым исходным кодом, НПО и бизнес. Однако есть еще много вариантов использования, выходящих за рамки того, что наши базовые и инструктирующие модели могут поддерживать в настоящее время.
Мы надеемся, что Code Llama вдохновит других использовать Llama 2 для создания новых, инновационных инструментов для исследований и коммерческих продуктов.
Заключение
Code Llama — уникальный инструмент, разработанный для помощи в проектах программирования, позволяющий разработчикам переключить внимание с генерации кода на цели проекта. Он поддерживает автодополнение кода, пишет понятные человеку комментарии и генерирует код.
Как инструмент программирования ИИ, Code Llama выделяется своей автономной возможностью. Его можно импортировать в IDE, что устраняет необходимость в подключении к Интернету. Обученный на 100 ГБ данных, он преуспевает в автодополнении и генерации кода. Доступно несколько версий Code Llama, включая версии параметров 7B, 13B и 34B, а также специализированные версии, такие как -Python и -Instruct. Выберите ту, которая лучше всего соответствует вашим потребностям, и удачи в ваших начинаниях в программировании!
novita.ai, универсальная платформа для безграничного творчества, предоставляющая доступ к более чем 100 API. От генерации изображений и обработки языка до улучшения звука и обработки видео. Недорогая оплата по факту использования избавит вас от GPU Проблемы с обслуживанием при создании собственных продуктов. Попробуйте бесплатно.
Рекомендуемое чтение
Узнайте больше от Novita
Подпишитесь, чтобы получать последние публикации на вашу электронную почту.




