Код Llama 70B тепер доступний в Amazon SageMaker JumpStart | Веб-сервіси Amazon

Код Llama 70B тепер доступний в Amazon SageMaker JumpStart | Веб-сервіси Amazon

Сьогодні ми раді повідомити, що моделі основи Code Llama, розроблені Meta, доступні для клієнтів через Amazon SageMaker JumpStart щоб розгорнути одним клацанням миші для запуску висновку. Code Llama — це найсучасніша велика мовна модель (LLM), здатна генерувати код і природну мову про код із підказок як коду, так і природної мови. Ви можете випробувати цю модель за допомогою SageMaker JumpStart, центру машинного навчання (ML), який надає доступ до алгоритмів, моделей і рішень ML, щоб ви могли швидко розпочати роботу з ML. У цій публікації ми розглянемо, як виявити та розгорнути модель Code Llama за допомогою SageMaker JumpStart.

Код Лама

Code Llama — модель, випущена компанією Meta створений на основі Llama 2. Ця сучасна модель розроблена для підвищення продуктивності програмування розробників, допомагаючи їм створювати високоякісний, добре задокументований код. Ці моделі чудово володіють Python, C++, Java, PHP, C#, TypeScript і Bash і мають потенціал для економії часу розробників і підвищення ефективності робочих процесів програмного забезпечення.

Він доступний у трьох варіантах, розроблених для широкого спектру додатків: базова модель (Code Llama), спеціалізована модель Python (Code Llama Python) і модель, що виконує інструкції для розуміння інструкцій природною мовою (Code Llama Instruct). Усі варіанти Code Llama доступні в чотирьох розмірах: параметри 7B, 13B, 34B і 70B. Варіанти 7B і 13B base і instruct підтримують заповнення на основі навколишнього вмісту, що робить їх ідеальними для програм помічника коду. Моделі були розроблені з використанням Llama 2 як основи, а потім навчені на 500 мільярдах токенів даних коду, а спеціалізована версія Python навчена на додаткових 100 мільярдах токенів. Моделі Code Llama забезпечують стабільні генерації з до 100,000 16,000 токенів контексту. Усі моделі навчені на послідовностях із 100,000 XNUMX токенів і демонструють покращення на вхідних даних до XNUMX XNUMX токенів.

Модель доступна під тим же ліцензія спільноти як Llama 2.

Моделі основи в SageMaker

SageMaker JumpStart надає доступ до ряду моделей із популярних центрів моделювання, зокрема Hugging Face, PyTorch Hub і TensorFlow Hub, які ви можете використовувати в процесі розробки ML у SageMaker. Нещодавні досягнення в ML дали початок новому класу моделей, відомих як моделі фундаменту, які зазвичай навчаються на мільярдах параметрів і адаптуються до широкої категорії випадків використання, таких як узагальнення тексту, створення цифрового мистецтва та мовний переклад. Оскільки навчання цих моделей є дорогим, клієнти хочуть використовувати існуючі попередньо навчені базові моделі та налаштовувати їх за потреби, а не навчати ці моделі самостійно. SageMaker надає підібраний список моделей, які можна вибрати на консолі SageMaker.

У SageMaker JumpStart можна знайти моделі основи від різних постачальників моделей, що дає змогу швидко розпочати роботу з моделями основи. Ви можете знайти базові моделі на основі різних завдань або постачальників моделей, а також легко переглянути характеристики моделі та умови використання. Ви також можете випробувати ці моделі за допомогою тестового віджета інтерфейсу користувача. Якщо ви хочете використовувати базову модель у великому масштабі, ви можете зробити це, не виходячи з SageMaker, використовуючи попередньо зібрані блокноти від постачальників моделей. Оскільки моделі розміщуються та розгортаються на AWS, ви можете бути впевнені, що ваші дані, незалежно від того, використовуються вони для оцінки чи використання моделі в масштабі, ніколи не передаються третім особам.

Відкрийте для себе модель Code Llama в SageMaker JumpStart

Щоб розгорнути модель Code Llama 70B, виконайте наведені нижче дії Студія Amazon SageMaker:

  1. Виберіть на домашній сторінці SageMaker Studio Поштовх у навігаційній панелі.

    Код Llama 70B тепер доступний в Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

  2. Знайдіть моделі Code Llama та виберіть модель Code Llama 70B зі списку представлених моделей.

    Код Llama 70B тепер доступний в Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

    Ви можете знайти більше інформації про модель на картці моделі Code Llama 70B.

    Код Llama 70B тепер доступний в Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

    На наступному знімку екрана показано налаштування кінцевої точки. Ви можете змінити параметри або скористатися стандартними.

  3. Прийміть Ліцензійну угоду кінцевого користувача (EULA) і виберіть Розгортання.
    Код Llama 70B тепер доступний в Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

    Це запустить процес розгортання кінцевої точки, як показано на наступному знімку екрана.

    Код Llama 70B тепер доступний в Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Розгорніть модель за допомогою SDK SageMaker Python

Крім того, ви можете розгорнути через приклад блокнота, вибравши Відкрийте Блокнот на сторінці моделі Classic Studio. Приклад блокнота містить наскрізні вказівки щодо того, як розгорнути модель для висновків і очистити ресурси.

Щоб розгорнути за допомогою ноутбука, ми починаємо з вибору відповідної моделі, зазначеної в model_id. Ви можете розгорнути будь-яку з вибраних моделей на SageMaker за допомогою такого коду:

from sagemaker.jumpstart.model import JumpStartModel model = JumpStartModel(model_id="meta-textgeneration-llama-codellama-70b")
predictor = model.deploy(accept_eula=False) # Change EULA acceptance to True

Це розгортає модель на SageMaker із конфігураціями за замовчуванням, включаючи тип екземпляра за замовчуванням і конфігурації VPC за замовчуванням. Ви можете змінити ці конфігурації, вказавши значення, відмінні від замовчування JumpStartModel. Зауважте, що за умовчанням accept_eula встановлений в False. Вам потрібно встановити accept_eula=True щоб успішно розгорнути кінцеву точку. Роблячи це, ви приймаєте ліцензійну угоду користувача та політику прийнятного використання, як зазначено раніше. Ви також можете скачати ліцензійний договір.

Викликати кінцеву точку SageMaker

Після розгортання кінцевої точки ви можете зробити висновок за допомогою Boto3 або SDK SageMaker Python. У наступному коді ми використовуємо SageMaker Python SDK, щоб викликати модель для висновку та надрукувати відповідь:

def print_response(payload, response): print(payload["inputs"]) print(f"> {response[0]['generated_text']}") print("n==================================n")

Функція print_response приймає корисне навантаження, що складається з корисного навантаження та відповіді моделі, і друкує результат. Code Llama підтримує багато параметрів під час виконання висновку:

  • максимальна_довжина – Модель генерує текст, доки не досягне вихідної довжини (яка включає довжину вхідного контексту). max_length. Якщо вказано, воно має бути додатним цілим числом.
  • max_new_tokens – Модель генерує текст, доки не досягне вихідної довжини (за винятком довжини вхідного контексту). max_new_tokens. Якщо вказано, воно має бути додатним цілим числом.
  • кількість_променів – Це визначає кількість променів, які використовуються в жадібному пошуку. Якщо вказано, воно має бути цілим числом, більшим або рівним num_return_sequences.
  • no_repeat_ngram_size – Модель гарантує, що послідовність слів no_repeat_ngram_size не повторюється у вихідній послідовності. Якщо вказано, воно має бути додатним цілим числом, більшим за 1.
  • температура – Це контролює випадковість виведення. Вища temperature призводить до вихідної послідовності зі словами з низькою ймовірністю та нижче temperature призводить до вихідної послідовності зі словами з високою ймовірністю. Якщо temperature дорівнює 0, це призводить до жадібного декодування. Якщо вказано, це має бути позитивне плаваюче значення.
  • раннє_стопінг – Якщо Trueгенерація тексту завершується, коли всі гіпотези променя досягають кінця маркера речення. Якщо вказано, воно має бути логічним.
  • do_sample – Якщо True, модель вибирає наступне слово відповідно до ймовірності. Якщо вказано, воно має бути логічним.
  • top_k – На кожному кроці генерації тексту модель бере вибірку лише з top_k швидше за все слова. Якщо вказано, воно має бути додатним цілим числом.
  • top_p – На кожному кроці генерації тексту модель бере вибірку з найменшого можливого набору слів із сукупною ймовірністю top_p. Якщо вказано, це має бути число з плаваючою речовиною між 0 і 1.
  • return_full_text – Якщо True, вхідний текст буде частиною вихідного згенерованого тексту. Якщо вказано, воно має бути логічним. Значення за замовчуванням для нього False.
  • СТОП – Якщо вказано, це має бути список рядків. Генерація тексту припиняється, якщо згенеровано будь-який із зазначених рядків.

Під час виклику кінцевої точки можна вказати будь-яку підмножину цих параметрів. Далі ми покажемо приклад того, як викликати кінцеву точку з цими аргументами.

Code completion

У наведених нижче прикладах показано, як виконати завершення коду, коли очікувана відповідь кінцевої точки є природним продовженням підказки.

Спочатку запускаємо наступний код:

prompt = """
import socket def ping_exponential_backoff(host: str): """ payload = { "inputs": prompt, "parameters": {"max_new_tokens": 256, "temperature": 0.2, "top_p": 0.9},
}
response = predictor.predict(payload)
print_response(payload, response)

Ми отримуємо наступний результат:

""" Pings the given host with exponential backoff. """ timeout = 1 while True: try: socket.create_connection((host, 80), timeout=timeout) return except socket.error: timeout *= 2

Для нашого наступного прикладу ми запускаємо такий код:

prompt = """
import argparse
def main(string: str): print(string) print(string[::-1])
if __name__ == "__main__": """ payload = { "inputs": prompt, "parameters": {"max_new_tokens": 256, "temperature": 0.2, "top_p": 0.9},
}
predictor.predict(payload)

Ми отримуємо наступний результат:

parser = argparse.ArgumentParser(description='Reverse a string') parser.add_argument('string', type=str, help='String to reverse') args = parser.parse_args() main(args.string)

Генерація коду

У наступних прикладах показано створення коду Python за допомогою Code Llama.

Спочатку запускаємо наступний код:

prompt = """
Write a python function to traverse a list in reverse. """ payload = { "inputs": prompt, "parameters": {"max_new_tokens": 256, "temperature": 0.2, "top_p": 0.9},
}
response = predictor.predict(payload)
print_response(payload, response)

Ми отримуємо наступний результат:

def reverse(list1): for i in range(len(list1)-1,-1,-1): print(list1[i]) list1 = [1,2,3,4,5]
reverse(list1)

Для нашого наступного прикладу ми запускаємо такий код:

prompt = """
Write a python function to to carry out bubble sort. """ payload = { "inputs": prompt, "parameters": {"max_new_tokens": 256, "temperature": 0.1, "top_p": 0.9},
}
response = predictor.predict(payload)
print_response(payload, response)

Ми отримуємо наступний результат:

def bubble_sort(arr): n = len(arr) for i in range(n): for j in range(0, n-i-1): if arr[j] > arr[j+1]: arr[j], arr[j+1] = arr[j+1], arr[j] return arr arr = [64, 34, 25, 12, 22, 11, 90]
print(bubble_sort(arr))

Це деякі приклади завдань, пов’язаних із кодом, із використанням Code Llama 70B. Ви можете використовувати модель для створення ще більш складного коду. Ми заохочуємо вас спробувати це, використовуючи власні сценарії використання та приклади, пов’язані з кодом!

Прибирати

Після перевірки кінцевих точок переконайтеся, що ви видалили кінцеві точки висновку SageMaker і модель, щоб уникнути стягнення плати. Використовуйте наступний код:

predictor.delete_endpoint()

Висновок

У цій публікації ми представили Code Llama 70B на SageMaker JumpStart. Code Llama 70B — це найсучасніша модель для генерації коду з підказок природної мови, а також коду. Ви можете розгорнути модель за допомогою кількох простих кроків у SageMaker JumpStart, а потім використовувати її для виконання завдань, пов’язаних із кодом, таких як створення та заповнення коду. Наступним кроком спробуйте використати модель із власними сценаріями використання та даними, пов’язаними з кодом.


Про авторів

Код Llama 70B тепер доступний в Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Доктор Кайл Ульріх є прикладним науковцем у команді Amazon SageMaker JumpStart. Його дослідницькі інтереси включають масштабовані алгоритми машинного навчання, комп’ютерне бачення, часові ряди, байєсівські непараметричні процеси та процеси Гаусса. Його доктор філософії отримав в Університеті Дьюка, і він опублікував статті в NeurIPS, Cell і Neuron.

Код Llama 70B тепер доступний в Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Доктор Фарук Сабір є старшим архітектором рішень зі штучного інтелекту та машинного навчання в AWS. Він має ступінь доктора філософії та магістра з електротехніки в Техаському університеті в Остіні та ступінь магістра з комп’ютерних наук у Технологічному інституті Джорджії. Він має понад 15 років досвіду роботи, а також любить навчати та наставляти студентів коледжу. В AWS він допомагає клієнтам формулювати та вирішувати їхні бізнес-проблеми в області обробки даних, машинного навчання, комп’ютерного зору, штучного інтелекту, чисельної оптимізації та пов’язаних областях. Живучи в Далласі, штат Техас, він і його сім’я люблять подорожувати та їздити в далекі подорожі.

Код Llama 70B тепер доступний в Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Джун Вон є менеджером із продуктів SageMaker JumpStart. Він зосереджується на тому, щоб базові моделі легко знаходити та використовувати, щоб допомогти клієнтам створювати генеративні додатки ШІ. Його досвід роботи в Amazon також включає мобільний додаток для покупок і доставку «останньої милі».

Часова мітка:

Більше від AWS Машинне навчання