Офіційний код Llama з відкритим кодом: безкоштовний для комерційного використання, таємнича версія близька до GPT-4

Джерело: Heart of the Machine

Редактори: Ду Вей, Чень Пін

Сьогодні сімейство моделей Llama з відкритим кодом Meta відкрило нового члена – Code Llama, базову модель, що спеціалізується на генерації коду.

Як специфічна для коду версія Llama 2, Code Llama додатково налаштована та навчена на певному наборі кодових даних.

Meta сказав, що угода з відкритим кодом Code Llama, як і Llama 2, безкоштовна для дослідницьких і комерційних цілей.

Пов’язану статтю «Code Llama: Open Foundation Models for Code» було опубліковано на 47 сторінках і 25 авторах.

Адреса паперу:

Адреса GitHub:

Є три версії серії моделей Code Llama з величинами параметрів 7B, 13B і 34B. Він підтримує кілька мов програмування, включаючи Python, C++, Java, PHP, Type (Java), C# і Bash.

Code Llama стабільно підтримує генерацію контексту до 100 000 токенів. На малюнку 2 нижче показано процес тонкого налаштування Code Llama.

З точки зору ефекту, швидкість проходження (pass@1) різних версій Code Llama для наборів даних Human і MBPP може перевершити GPT-3.5.

Крім того, pass@1 версії Code Llama "Unnatural" 34B на наборі даних Human близький до GPT-4 (62,2% проти 67,0%). Meta не випускала цю версію, але досягла значного покращення продуктивності завдяки навчанню на невеликій кількості високоякісних закодованих даних.

Це спеціальне видання привернуло увагу багатьох людей, у тому числі Андрія Карпаті, колишнього директора відділу ШІ в Tesla, який повернувся до OpenAI.

Незважаючи на те, що в статті згадується, що це «версія коду Llama-Python 34B, налаштована на 15 000 неприродних інструкцій», Карпаті все ще цікавить це «таємниче ім’я, розпливчастий опис і нищення інших моделей конфіденційності».

Як працює Code Llama

Code Llama має дуже потужні можливості кодування. Він може генерувати код на основі коду та підказок природної мови (наприклад, запити користувача на введення «Допоможіть мені написати функцію, яка виводить послідовність Фібоначчі».) Він також може допомогти користувачам із доповненням коду та налагодженням код .

Три версії параметрів моделі Code Llama навчаються з використанням 500 B маркерів коду та пов’язаних із кодом даних. Базові та інструкційні моделі 7B і 13B також навчені FIM (заповнення посередині), що дозволяє вставляти код у існуючий код, що означає, що вони можуть підтримувати такі завдання, як доповнення коду з коробки.

У наведеній нижче таблиці наведено навчальний набір даних Code Llama.

З усіма трьома моделями можна задовольнити різні вимоги до обслуговування та затримки. Наприклад, модель 7B може працювати на одному графічному процесорі; модель 34B дає найкращі результати та забезпечує кращу допомогу при кодуванні, але з точки зору швидкості менші моделі 7B і 13B швидші та краще підходять для завдань із низькою затримкою, таких як Живе завершення коду.

Code Llama не тільки забезпечує стабільне створення до 100 000 контекстних токенів, але також до 16 000 послідовностей навчальних токенів для всіх моделей. **

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

Варто зазначити, що Meta додатково налаштувала Code Llama за допомогою двох додаткових варіантів: **Code Llama - Python і Code Llama - Instruct. **

Code Llama-Python — це варіант Code Llama, який додатково налаштований на токені 100B коду Python. У наведеній нижче таблиці наведено навчальний набір даних Code Llama-Python.

Code Llama – Instruct — це наведений на інструкції та вирівняний варіант Code Llama для кращого розуміння підказок введення. Meta рекомендує використовувати варіант Code Llama - Instruct при використанні Code Llama для генерації коду, оскільки Code Llama - Instruct було налаштовано для створення корисних і безпечних відповідей природною мовою.

Meta заявила, що вони не рекомендують використовувати Code Llama або Code Llama - Python для загальних завдань природною мовою, оскільки жодна з моделей не розроблена для виконання інструкцій природної мови. Code Llama розроблено для завдань, пов’язаних із кодом, і не підходить як базова модель для інших завдань.

Використовуючи моделі Code Llama, користувачі повинні дотримуватися Ліцензії та Політики використання.

Як працює Code Llama

Meta використовує для тестування два тести кодування Human і MBPP (Mostly Basic Python Programming). Серед них тестова модель Human заснована на здатності рядка документа (docstrings) завершувати код, а тестова модель MBPP заснована на здатності описувати код.

Результати показують, що Code Llama перевершує LLM з відкритим вихідним кодом, що стосуються конкретних кодових завдань, а також Llama2. Наприклад, Code Llama 34B набирає 53,7% на Human і 56,2% на MBPP, що є найкращим результатом порівняно з іншими найсучаснішими рішеннями з відкритим кодом і порівнянним із ChatGPT.

Однак Code Llama також має ризики. Meta сказала, що створення відповідальної моделі штучного інтелекту має вирішальне значення, і вони вжили багатьох заходів безпеки, перш ніж випустити Code Llama. У рамках тестування червоної команди Meta провела кількісну оцінку ризику створення шкідливого коду Code Llama. Вони створили підказки, намагаючись змусити модель генерувати шкідливий код, і порівняли відповіді Code Llama на ці підказки з ChatGPT (GPT3.5 Turbo). Виявляється, відповідь Code Llama безпечніша.

З цієї точки зору Llama 2, чия здатність до кодування не є особливо сильною, була заповнена Code Llama. Meta сподівається, що поява Code Llama надихне інших дослідників на створення нових інноваційних інструментів для досліджень і комерційних продуктів на основі Llama 2.

Посилання на посилання:

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