Code Llama 70B теперь доступен в Amazon SageMaker JumpStart | Веб-сервисы Amazon

Code 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 — модель, выпущенная компанией Мета который построен на основе 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 и инструкции поддерживают заполнение на основе окружающего контента, что делает их идеальными для приложений-помощников по написанию кода. Модели были разработаны с использованием 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, которые вы можете использовать в рабочем процессе разработки машинного обучения в SageMaker. Недавние достижения в области машинного обучения привели к появлению нового класса моделей, известных как модели фундамента, которые обычно обучаются на миллиардах параметров и адаптируются к широкой категории случаев использования, таких как обобщение текста, создание цифровых изображений и языковой перевод. Поскольку обучение этих моделей обходится дорого, клиенты хотят использовать существующие предварительно обученные базовые модели и настраивать их по мере необходимости, а не обучать эти модели самостоятельно. SageMaker предоставляет тщательно подобранный список моделей, из которых вы можете выбирать на консоли SageMaker.

Вы можете найти модели фундамента от разных поставщиков моделей в SageMaker JumpStart, что позволит вам быстро приступить к работе с моделями фундамента. Вы можете найти базовые модели, основанные на различных задачах или поставщиках моделей, а также легко просмотреть характеристики моделей и условия использования. Вы также можете опробовать эти модели, используя тестовый виджет пользовательского интерфейса. Если вы хотите использовать базовую модель в большом масштабе, вы можете сделать это, не выходя из SageMaker, используя готовые блокноты от поставщиков моделей. Поскольку модели размещаются и развертываются на AWS, вы можете быть уверены, что ваши данные, независимо от того, используются ли они для оценки или масштабного использования модели, никогда не будут переданы третьим лицам.

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

Чтобы развернуть модель Code Llama 70B, выполните следующие шаги в Студия Amazon SageMaker:

  1. На домашней странице SageMaker Studio выберите Толчок в навигационной панели.

    Code Llama 70B теперь доступен в Amazon SageMaker JumpStart | Веб-сервисы Amazon PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

  2. Найдите модели Code Llama и выберите модель Code Llama 70B из представленного списка моделей.

    Code Llama 70B теперь доступен в Amazon SageMaker JumpStart | Веб-сервисы Amazon PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

    Более подробную информацию о модели можно найти в карточке модели Code Llama 70B.

    Code Llama 70B теперь доступен в Amazon SageMaker JumpStart | Веб-сервисы Amazon PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

    На следующем снимке экрана показаны настройки конечной точки. Вы можете изменить параметры или использовать параметры по умолчанию.

  3. Примите лицензионное соглашение с конечным пользователем (EULA) и выберите Развертывание.
    Code Llama 70B теперь доступен в Amazon SageMaker JumpStart | Веб-сервисы Amazon PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

    Это запустит процесс развертывания конечной точки, как показано на следующем снимке экрана.

    Code Llama 70B теперь доступен в Amazon SageMaker JumpStart | Веб-сервисы Amazon PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Разверните модель с помощью SageMaker Python SDK.

Альтернативно вы можете выполнить развертывание с помощью примера записной книжки, выбрав Открыть блокнот на странице сведений о модели 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 по умолчанию. Вы можете изменить эти конфигурации, указав значения не по умолчанию в JumpStartМодель. Обратите внимание, что по умолчанию accept_eula на False. Вам нужно установить accept_eula=True для успешного развертывания конечной точки. Поступая так, вы принимаете пользовательское лицензионное соглашение и политику допустимого использования, как упоминалось ранее. Вы также можете скачать лицензионное соглашение.

Вызвать конечную точку SageMaker

После развертывания конечной точки вы можете выполнить логический вывод с помощью Boto3 или SageMaker Python SDK. В следующем коде мы используем 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_beams – Определяет количество лучей, используемых при жадном поиске. Если указано, оно должно быть целым числом, большим или равным num_return_sequences.
  • no_repeat_ngram_size – Модель гарантирует, что последовательность слов no_repeat_ngram_size не повторяется в выходной последовательности. Если указано, это должно быть положительное целое число больше 1.
  • температура – Это контролирует случайность вывода. Выше temperature приводит к выходной последовательности со словами с низкой вероятностью и меньшими temperature приводит к выходной последовательности со словами с высокой вероятностью. Если temperature равно 0, это приводит к жадному декодированию. Если указано, это должно быть положительное число с плавающей запятой.
  • ранняя_остановка - Если Trueгенерация текста завершается, когда все гипотезы луча достигают конца токена предложения. Если указано, оно должно быть логическим.
  • do_sample - Если True, модель выбирает следующее слово в соответствии с вероятностью. Если указано, оно должно быть логическим.
  • топ_к – На каждом этапе генерации текста модель отбирает только top_k скорее всего слова. Если указано, это должно быть положительное целое число.
  • топ_р – На каждом этапе генерации текста модель выбирает наименьший возможный набор слов с кумулятивной вероятностью. top_p. Если указано, это должно быть число с плавающей точкой от 0 до 1.
  • return_full_text - Если True, входной текст будет частью выходного сгенерированного текста. Если указано, оно должно быть логическим. Значение по умолчанию для него False.
  • остановить – Если указано, это должен быть список строк. Генерация текста прекращается, если генерируется одна из указанных строк.

Вы можете указать любое подмножество этих параметров при вызове конечной точки. Далее мы покажем пример того, как вызвать конечную точку с этими аргументами.

Завершение кода

В следующих примерах показано, как выполнить завершение кода, когда ожидаемый ответ конечной точки является естественным продолжением приглашения.

Сначала мы запускаем следующий код:

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, а затем использовать ее для выполнения задач, связанных с кодом, таких как генерация кода и заполнение кода. В качестве следующего шага попробуйте использовать модель со своими собственными вариантами использования и данными, связанными с кодом.


Об авторах

Code Llama 70B теперь доступен в Amazon SageMaker JumpStart | Веб-сервисы Amazon PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Доктор Кайл Ульрих — ученый-прикладник в команде Amazon SageMaker JumpStart. Его исследовательские интересы включают масштабируемые алгоритмы машинного обучения, компьютерное зрение, временные ряды, байесовские непараметрические и гауссовские процессы. Его докторская степень получена в Университете Дьюка, и он опубликовал статьи в NeurIPS, Cell и Neuron.

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

Code Llama 70B теперь доступен в Amazon SageMaker JumpStart | Веб-сервисы Amazon PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.июнь выиграл является менеджером по продукту в SageMaker JumpStart. Он фокусируется на том, чтобы сделать базовые модели легко обнаруживаемыми и пригодными для использования, чтобы помочь клиентам создавать генеративные приложения ИИ. Его опыт работы в Amazon также включает мобильное приложение для покупок и доставку последней мили.

Отметка времени:

Больше от Машинное обучение AWS