Meta недавно выпустила Code Llama, крупномасштабную языковую модель на основе Llama 2 для тонкой настройки, которая может генерировать код с помощью текстовых подсказок и имеет открытый исходный код для исследовательского и коммерческого использования.
Code Llama — это современная открытая программа LLM для задач кодирования, которая потенциально может сделать текущие рабочие процессы разработчиков более быстрыми и эффективными, а также снизить входной барьер для тех, кто учится программировать. Code Llama может использоваться в качестве инструмента повышения производительности и обучения, помогая программистам писать более надежное и хорошо документированное программное обеспечение.
Как работает Code Llama
В июле этого года Meta (ранее Facebook) выпустила Llama 2, бесплатную и коммерчески доступную модель с открытым исходным кодом. Последний выпуск, Code Llama, представляет собой специальную версию Llama2 специально для кодирования, созданную путем дальнейшего обучения Llama 2 на наборе данных для конкретного кода, выборке большего количества данных из одного и того же набора данных в течение более длительных периодов времени.
В целом Code Llama имеет расширенные функции кодирования, созданные на основе Llama 2. Он может генерировать код и естественный язык о коде на основе кода и подсказок естественного языка (например, «напишите мне функцию, которая выводит последовательность Фибоначчи»). Его также можно использовать для завершения кода и отладки.
Code Llama поддерживает многие из наиболее популярных языков, используемых сегодня, включая Python, C++, Java, PHP, Typeface (Java), C# и Bash.
В настоящее время Code Llama имеет три версии параметров: 7 миллиардов параметров, 13 миллиардов параметров, 34 миллиарда параметров.
Каждая версия обучается с использованием 500B токенов кода и данных, связанных с кодом. База параметров и модели инструкций из 7 миллиардов и 13 миллиардов также обучены с помощью возможностей Fill-in-the-Intermediate (FIM), что позволяет им подключать код к существующему коду, а это означает, что они могут поддерживать такие задачи, как завершение кода извне. коробка.
Эти три модели соответствуют различным требованиям к обслуживанию и задержке. Например, на одном графическом процессоре могут работать 7 миллиардов моделей. Модель с 34 миллиардами дает лучшие результаты и предлагает лучшую помощь в кодировании, но меньшие модели с 7 миллиардами и 13 миллиардами быстрее и лучше подходят для задач, требующих низкой задержки, таких как завершение кода в реальном времени.
Модель Code Llama обеспечивает стабильную генерацию до 100 000 токенов контекста. Все модели обучаются на последовательностях из 16 000 токенов и демонстрируют улучшение при вводе до 100 000 токенов.
Помимо того, что более длинные входные последовательности являются обязательным условием для создания более длинных программ, они могут открыть новые интересные варианты использования Code LLM. Например, пользователи могут предоставлять моделям больше контекста из своей кодовой базы, чтобы сделать поколения более актуальными. Это также помогает при отладке сценариев в более крупных базах кода, где разработчикам может быть сложно понять весь код, связанный с конкретной проблемой. Когда разработчикам приходится отлаживать большие объемы кода, они могут передать в модель всю длину кода.
Meta также дорабатывает две дополнительные версии Code Llama: Code Llama — Python и Code Llama — Instruct.
Code Llama. Python — это языковой вариант Code Llama, доработанный на основе токена 100B кода Python.
Code Llama — Instruct — это доработанная и согласованная версия инструкций Code Llama. Корректировки инструкций продолжают тренировочный процесс, но с другими целями. Модель принимает «инструкции естественного языка» в качестве входных и ожидаемых выходных данных. Это позволяет ему лучше понять, чего люди ожидают от подсказки. Мы рекомендуем использовать версию Code Llama - Instruct при использовании Code Llama для генерации кода, поскольку Code Llama - Instruct точно настроен для генерации полезных и безопасных ответов на естественном языке.
Но не рекомендуется использовать Code Llama или Code Llama — Python для общих задач на естественном языке, поскольку ни одна из моделей не предназначена для выполнения инструкций на естественном языке. Code Llama предназначен для задач, специфичных для кода, и не подходит в качестве базовой модели для других задач.
Как работает Code Llama?
Человеческое и преимущественно базовое программирование на Python (MBPP) — это два часто используемых теста для оценки навыков кодирования: человек проверяет способность модели выполнять код из строки документации, а MBPP проверяет способность модели писать код из описания.
Тестирование Code Llama по этим двум тестам показывает, что Code Llama превосходит Llama с открытым исходным кодом, ориентированную на конкретный код, и превосходит саму Llama 2. Например, Code Llama 34B набирает 53,7% на Human и 56,2% на MBPP, превосходя ChatGPT, но все же уступая GPT-4 на Human.
Источник диаграммы: Мета
*Точно настроенная модель CodeLlama-34B превзошла GPT-4? *
Хоть Code Llama и не выиграла тест, это еще не все Code Llama, еще одна изюминка — снова тонкая настройка. Пользователи могут снова настроить код Llama с открытым исходным кодом, чтобы создать лучшую версию, отвечающую их потребностям.
Phind недавно доработал CodeLlama-34B и CodeLlama-34B-Python на основе собственного набора данных, а его доработанные версии достигли 67,6% и 69,5% на Human, что превзошло GPT-4, анонсированный OpenAI в марте, на 67% Общая.
Ссылки по теме:
Сравнение фактического использования ChatGPT и Code Llama
Прежде всего, в этом сравнении использовалась версия GPT-3.5 ChatGPT и Code Llama, поддерживаемая платформой Perplexity. Мы зададим 8 вопросов, чтобы сравнить, успешно ли они генерируют код.
Вопрос 1:
«Использование Python. Даны две строки word1 и word2. Объедините строки, добавляя буквы в чередующемся порядке, начиная со слова1. Если одна строка длиннее другой, добавьте дополнительные буквы к объединенным строкам. end.
Верните объединенную строку.
Пример 1:
• Ввод: word1="abc", word2="pqr"
• Вывод: «apbqcr»
🟢 ChatGPT: +1 за успех
🔵 Код пламени: 成功+1
Вопрос 2:
«Использование Python. Учитывая строку s, просто поменяйте местами все гласные в строке и верните ее.
Гласные: «a», «e», «i», «o» и «u», которые могут встречаться несколько раз как в нижнем, так и в верхнем регистре.
Пример 1:
Ввод: s="привет"
Выход: «Зал»
🟢 ChatGPT: +1 за успех
🔵 Код Ламы: Не удалось +0
Вопрос 3:
«Используя Python. Учитывая целочисленный массив чисел, сдвиньте все 0 в его конец, сохраняя при этом относительный порядок ненулевых элементов.
Обратите внимание, что вам нужно сделать это на месте, не создавая копию массива.
Пример 1:
Ввод: числа = [0,1,0,3,12]
Выход: [1,3,12,0,0]"
🟢 ChatGPT: +1 за успех
🔵 Код Ламы: Не удалось +0
Вопрос 4:
«Использование Python. У вас есть длинная клумба, на которой некоторые участки засажены, а некоторые нет. Однако соседние участки нельзя засадить цветами.
Учитывая целочисленный массив из 0 и 1 для клумбы, где 0 означает пустую, а 1 означает не пустую, и целое число n, возвращает true, если на клумбе можно посадить n новых цветов, не нарушая правило отсутствия соседних цветов, В противном случае верните false.
Пример 1:
Входные данные: клумба = [1,0,0,0,1], n = 1
Вывод: правда
Пример 2:
Входные данные: клумба = [1,0,0,0,1], n = 2
вывод: ложь
🟢 ChatGPT: +1 за успех
🔵 Код пламени: 成功+1
Вопрос 5:
«Использование Python. Учитывая входную строку s, измените порядок слов на обратный.
Слово определяется как последовательность символов без пробелов. Слова в s будут разделены хотя бы одним пробелом.
Возвращает строку слов, соединенных одинарными пробелами в обратном порядке.
Обратите внимание, что s может содержать начальные или конечные пробелы или несколько пробелов между двумя словами. Возвращаемая строка должна содержать только один пробел для разделения слов. Не включайте лишних пробелов.
Пример 1:
Ввод: s = «Небо голубое»
Вывод: «Синее небо»»
🟢 ChatGPT: +1 за успех
🔵 Код пламени: 成功+1
Вопрос 6:
«Используя Python. Учитывая строку s и целое число k, верните максимальное количество гласных в любой подстроке длины k в s.
Гласные в английском языке: «a», «e», «i», «o» и «u».
Пример 1:
Ввод: s = "leetcode", k = 3
Выход: 2
Пояснение: «ли», «еэт» и «ода» содержат 2 гласные.
🟢 ChatGPT: +1 за успех
🔵 Код пламени: 成功+1
Вопрос 7:
«Использование Python. Дана строка s, содержащая звездочки *.
С помощью одной операции вы сможете:
Выберите звезду в с.
Удаляет ближайший слева от него символ, не являющийся звездочкой, а также саму звездочку.
Возвращает строку после удаления всех звездочек.
Пример 1:
Ввод: s="leet**cod*e"
Вывод: "леко""
🟢 ChatGPT: +1 за успех
🔵 Код Ламы: Не удалось +0
Вопрос 8:
«Использование Python. Учитывая массив целочисленных температур, представляющих дневную температуру, верните массив ответов, где ответ [i] — это количество дней за днем, когда вам придется ждать потепления. Если в будущем не будет дня, чтобы сделать это, сохраните ответ [i] == 0。
Пример 1:
Ввод: Температура = [73,74,75,71,69,72,76,73]
Выход: [1,1,4,2,1,1,0,0]"
🟢 Чат GPT: +1
🔵 Код Верблюда: +1
Окончательные результаты:
🟢 ЧатGPT: 8/8
🔵 КодLlama: 5/8
Подводя итог, можно сказать, что в реальном использовании Code Llama не демонстрирует очевидных преимуществ по сравнению с ChatGPT, но приведенные выше тесты не могут быть полностью использованы в качестве основы для суждения. Более того, Code Llama с открытым исходным кодом проще, чем ChatGPT, пользователям проще настроить в соответствии со своими потребностями, что может предоставить больше возможностей.
Использованная литература:
Посмотреть Оригинал
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
Meta выпустила «артефакт» искусственного интеллекта. Чем модель Code Llama с открытым исходным кодом и бесплатным кодом отличается от ChatGPT?
Первоисточник: Инновационная лаборатория AGI.
Meta недавно выпустила Code Llama, крупномасштабную языковую модель на основе Llama 2 для тонкой настройки, которая может генерировать код с помощью текстовых подсказок и имеет открытый исходный код для исследовательского и коммерческого использования.
Code Llama — это современная открытая программа LLM для задач кодирования, которая потенциально может сделать текущие рабочие процессы разработчиков более быстрыми и эффективными, а также снизить входной барьер для тех, кто учится программировать. Code Llama может использоваться в качестве инструмента повышения производительности и обучения, помогая программистам писать более надежное и хорошо документированное программное обеспечение.
Как работает Code Llama
В июле этого года Meta (ранее Facebook) выпустила Llama 2, бесплатную и коммерчески доступную модель с открытым исходным кодом. Последний выпуск, Code Llama, представляет собой специальную версию Llama2 специально для кодирования, созданную путем дальнейшего обучения Llama 2 на наборе данных для конкретного кода, выборке большего количества данных из одного и того же набора данных в течение более длительных периодов времени.
В целом Code Llama имеет расширенные функции кодирования, созданные на основе Llama 2. Он может генерировать код и естественный язык о коде на основе кода и подсказок естественного языка (например, «напишите мне функцию, которая выводит последовательность Фибоначчи»). Его также можно использовать для завершения кода и отладки.
Code Llama поддерживает многие из наиболее популярных языков, используемых сегодня, включая Python, C++, Java, PHP, Typeface (Java), C# и Bash.
В настоящее время Code Llama имеет три версии параметров: 7 миллиардов параметров, 13 миллиардов параметров, 34 миллиарда параметров.
Каждая версия обучается с использованием 500B токенов кода и данных, связанных с кодом. База параметров и модели инструкций из 7 миллиардов и 13 миллиардов также обучены с помощью возможностей Fill-in-the-Intermediate (FIM), что позволяет им подключать код к существующему коду, а это означает, что они могут поддерживать такие задачи, как завершение кода извне. коробка.
Эти три модели соответствуют различным требованиям к обслуживанию и задержке. Например, на одном графическом процессоре могут работать 7 миллиардов моделей. Модель с 34 миллиардами дает лучшие результаты и предлагает лучшую помощь в кодировании, но меньшие модели с 7 миллиардами и 13 миллиардами быстрее и лучше подходят для задач, требующих низкой задержки, таких как завершение кода в реальном времени.
Модель Code Llama обеспечивает стабильную генерацию до 100 000 токенов контекста. Все модели обучаются на последовательностях из 16 000 токенов и демонстрируют улучшение при вводе до 100 000 токенов.
Помимо того, что более длинные входные последовательности являются обязательным условием для создания более длинных программ, они могут открыть новые интересные варианты использования Code LLM. Например, пользователи могут предоставлять моделям больше контекста из своей кодовой базы, чтобы сделать поколения более актуальными. Это также помогает при отладке сценариев в более крупных базах кода, где разработчикам может быть сложно понять весь код, связанный с конкретной проблемой. Когда разработчикам приходится отлаживать большие объемы кода, они могут передать в модель всю длину кода.
Meta также дорабатывает две дополнительные версии Code Llama: Code Llama — Python и Code Llama — Instruct.
Но не рекомендуется использовать Code Llama или Code Llama — Python для общих задач на естественном языке, поскольку ни одна из моделей не предназначена для выполнения инструкций на естественном языке. Code Llama предназначен для задач, специфичных для кода, и не подходит в качестве базовой модели для других задач.
Как работает Code Llama?
Человеческое и преимущественно базовое программирование на Python (MBPP) — это два часто используемых теста для оценки навыков кодирования: человек проверяет способность модели выполнять код из строки документации, а MBPP проверяет способность модели писать код из описания. Тестирование Code Llama по этим двум тестам показывает, что Code Llama превосходит Llama с открытым исходным кодом, ориентированную на конкретный код, и превосходит саму Llama 2. Например, Code Llama 34B набирает 53,7% на Human и 56,2% на MBPP, превосходя ChatGPT, но все же уступая GPT-4 на Human.
*Точно настроенная модель CodeLlama-34B превзошла GPT-4? *
Хоть Code Llama и не выиграла тест, это еще не все Code Llama, еще одна изюминка — снова тонкая настройка. Пользователи могут снова настроить код Llama с открытым исходным кодом, чтобы создать лучшую версию, отвечающую их потребностям.
Phind недавно доработал CodeLlama-34B и CodeLlama-34B-Python на основе собственного набора данных, а его доработанные версии достигли 67,6% и 69,5% на Human, что превзошло GPT-4, анонсированный OpenAI в марте, на 67% Общая.
Ссылки по теме:
Сравнение фактического использования ChatGPT и Code Llama
Прежде всего, в этом сравнении использовалась версия GPT-3.5 ChatGPT и Code Llama, поддерживаемая платформой Perplexity. Мы зададим 8 вопросов, чтобы сравнить, успешно ли они генерируют код.
«Использование Python. Даны две строки word1 и word2. Объедините строки, добавляя буквы в чередующемся порядке, начиная со слова1. Если одна строка длиннее другой, добавьте дополнительные буквы к объединенным строкам. end.
Верните объединенную строку.
Пример 1: • Ввод: word1="abc", word2="pqr" • Вывод: «apbqcr»
🟢 ChatGPT: +1 за успех 🔵 Код пламени: 成功+1
«Использование Python. Учитывая строку s, просто поменяйте местами все гласные в строке и верните ее.
Гласные: «a», «e», «i», «o» и «u», которые могут встречаться несколько раз как в нижнем, так и в верхнем регистре.
Пример 1:
Ввод: s="привет" Выход: «Зал»
🟢 ChatGPT: +1 за успех 🔵 Код Ламы: Не удалось +0
«Используя Python. Учитывая целочисленный массив чисел, сдвиньте все 0 в его конец, сохраняя при этом относительный порядок ненулевых элементов. Обратите внимание, что вам нужно сделать это на месте, не создавая копию массива.
Пример 1:
Ввод: числа = [0,1,0,3,12] Выход: [1,3,12,0,0]"
🟢 ChatGPT: +1 за успех 🔵 Код Ламы: Не удалось +0
«Использование Python. У вас есть длинная клумба, на которой некоторые участки засажены, а некоторые нет. Однако соседние участки нельзя засадить цветами. Учитывая целочисленный массив из 0 и 1 для клумбы, где 0 означает пустую, а 1 означает не пустую, и целое число n, возвращает true, если на клумбе можно посадить n новых цветов, не нарушая правило отсутствия соседних цветов, В противном случае верните false.
Пример 1: Входные данные: клумба = [1,0,0,0,1], n = 1 Вывод: правда Пример 2: Входные данные: клумба = [1,0,0,0,1], n = 2 вывод: ложь
🟢 ChatGPT: +1 за успех 🔵 Код пламени: 成功+1
«Использование Python. Учитывая входную строку s, измените порядок слов на обратный.
Слово определяется как последовательность символов без пробелов. Слова в s будут разделены хотя бы одним пробелом.
Возвращает строку слов, соединенных одинарными пробелами в обратном порядке.
Обратите внимание, что s может содержать начальные или конечные пробелы или несколько пробелов между двумя словами. Возвращаемая строка должна содержать только один пробел для разделения слов. Не включайте лишних пробелов.
Пример 1: Ввод: s = «Небо голубое» Вывод: «Синее небо»»
🟢 ChatGPT: +1 за успех 🔵 Код пламени: 成功+1
«Используя Python. Учитывая строку s и целое число k, верните максимальное количество гласных в любой подстроке длины k в s. Гласные в английском языке: «a», «e», «i», «o» и «u».
Пример 1: Ввод: s = "leetcode", k = 3 Выход: 2 Пояснение: «ли», «еэт» и «ода» содержат 2 гласные.
🟢 ChatGPT: +1 за успех 🔵 Код пламени: 成功+1
«Использование Python. Дана строка s, содержащая звездочки *.
С помощью одной операции вы сможете:
Выберите звезду в с.
Удаляет ближайший слева от него символ, не являющийся звездочкой, а также саму звездочку.
Возвращает строку после удаления всех звездочек.
Пример 1: Ввод: s="leet**cod*e" Вывод: "леко""
🟢 ChatGPT: +1 за успех 🔵 Код Ламы: Не удалось +0
«Использование Python. Учитывая массив целочисленных температур, представляющих дневную температуру, верните массив ответов, где ответ [i] — это количество дней за днем, когда вам придется ждать потепления. Если в будущем не будет дня, чтобы сделать это, сохраните ответ [i] == 0。
Пример 1: Ввод: Температура = [73,74,75,71,69,72,76,73] Выход: [1,1,4,2,1,1,0,0]"
🟢 Чат GPT: +1 🔵 Код Верблюда: +1
🟢 ЧатGPT: 8/8 🔵 КодLlama: 5/8
Подводя итог, можно сказать, что в реальном использовании Code Llama не демонстрирует очевидных преимуществ по сравнению с ChatGPT, но приведенные выше тесты не могут быть полностью использованы в качестве основы для суждения. Более того, Code Llama с открытым исходным кодом проще, чем ChatGPT, пользователям проще настроить в соответствии со своими потребностями, что может предоставить больше возможностей.
Использованная литература: