Meta запустила «артефакт» штучного інтелекту. Як модель безкоштовного коду з відкритим кодом Code Llama порівнюється з ChatGPT?

Джерело: AGI Innovation Lab

Джерело зображення: створено Unbounded AI‌

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 мільярди параметрів.

Кожна версія навчається за допомогою 500 млрд кодових токенів і даних, пов’язаних із кодом. 7 мільярдів і 13 мільярдів базових моделей параметрів і інструкцій також навчені можливостям Fill-in-the-Intermediate (FIM), що дозволяє їм підключати код до існуючого коду, тобто вони можуть підтримувати такі завдання, як завершення коду поза межами коробка.

Ці три моделі відповідають різним вимогам щодо обслуговування та затримки. Наприклад, 7 мільярдів моделей можуть працювати на одному GPU. 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.

Джерело діаграми: Meta

  • Чи налаштована модель 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. Об’єднайте рядки, додаючи літери в чергуванні, починаючи з word1. Якщо один рядок довший за інший, додайте додаткові літери до об’єднаних рядків. кінець.

Повернути об’єднаний рядок.

приклад 1: • Введення: word1="abc", word2="pqr" • Вихід: "apbqcr"

🟢 ChatGPT: +1 за успіх 🔵 Код полум'я: 成功+1

Питання 2:

"Використання Python. Дано рядок s, просто перевернути всі голосні в рядку та повернути його.

Голосними є «а», «е», «і», «о» та «у», які можуть зустрічатися кілька разів як у нижньому, так і у верхньому регістрі.

приклад 1:

Вхід: s="привіт" Вихід: "Хол"

🟢 ChatGPT: +1 за успіх 🔵 Код Llama: не вдалося +0

Питання 3:

"Використання Python. Дано цілий масив nums, перемістіть усі 0 у його кінець, зберігаючи відносний порядок ненульових елементів. Зверніть увагу, що ви повинні зробити це на місці, не створюючи копію масиву.

приклад 1:

Вхід: nums = [0,1,0,3,12] Вихід: [1,3,12,0,0]"

🟢 ChatGPT: +1 за успіх 🔵 Код Llama: не вдалося +0

Питання 4:

«Використання Python. У вас є довга клумба, де одні ділянки засаджені, а деякі ні. Але сусідні ділянки не можна засаджувати квітами. Дано масив цілих чисел 0 і 1 для клумби, де 0 означає порожню, а 1 означає не порожню, а ціле число n повертає істину, якщо n нових квітів можна висадити на клумбі без порушення правила відсутності сусідніх квітів, Інакше поверніть false.

приклад 1: Вхідні дані: клумба = [1,0,0,0,1], n = 1 Вихід: істина приклад 2: Вхідні дані: клумба = [1,0,0,0,1], n = 2 вихід: false

🟢 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 Пояснення: «lee», «eet» і «ode» містять 2 голосні.

🟢 ChatGPT: +1 за успіх 🔵 Код полум'я: 成功+1

Питання 7:

"Використання Python. Дано рядок s, який містить зірочки *.

За допомогою однієї операції ви можете:

Виберіть зірку в с.

Видаляє найближчий символ не зірочки ліворуч і видаляє саму зірочку.

Повертає рядок після видалення всіх зірочок.

приклад 1: Вхід: s="leet**cod*e" Вихід: "lecoe""

🟢 ChatGPT: +1 за успіх 🔵 Код Llama: не вдалося +0

Питання 8:

"Використання Python. Дано масив цілих температур, що представляють денні температури, поверніть масив відповідей, де answer [i] це кількість днів за днем i, які вам доведеться чекати підвищення температури. Якщо в майбутньому немає дня, щоб це зробити, збережіть відповідь [i] == 0.

приклад 1: Вхід: температура = [73,74,75,71,69,72,76,73] Вихід: [1,1,4,2,1,1,0,0]"

🟢 Чат GPT: +1 🔵 Code Camel: +1

Остаточні результати:

🟢 ChatGPT: 8/8 🔵 CodeLlama: 5/8

Підводячи підсумок, Code Llama не демонструє очевидних переваг порівняно з ChatGPT у фактичному ефекті використання, але наведені вище тести не можуть повністю використовуватися як основа для судження. Крім того, користувачі можуть налаштувати код Llama з відкритим кодом легше, ніж ChatGPT, відповідно до своїх потреб, що може надати більше можливостей.

Література:

Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
  • Нагородити
  • Прокоментувати
  • Поділіться
Прокоментувати
0/400
Немає коментарів
  • Закріпити