Базовая модель Falcon 180B от TII теперь доступна через Amazon SageMaker JumpStart

Базовая модель Falcon 180B теперь доступна через Amazon SageMaker JumpStart

Сегодня мы с радостью объявляем, что базовая модель Falcon 180B, разработанная Technology Innovation Institute (TII), доступна для клиентов через Amazon SageMaker JumpStart для развертывания одним щелчком для выполнения вывода. С размером 180 миллиардов параметров и обученной на масштабном наборе данных из 3,5 триллионов токенов, Falcon 180B является самой большой и одной из самых эффективных моделей с открытыми доступными весами. Вы можете попробовать эту модель с помощью SageMaker JumpStart, платформы машинного обучения (ML), которая предоставляет доступ к алгоритмам, моделям и решениям ML, чтобы вы могли быстро начать работу с ML. В этом посте мы рассмотрим, как найти и развернуть модель Falcon 180B через SageMaker JumpStart.

Что такое Falcon 180B

Falcon 180B – это модель, выпущенная TII, которая следует за предыдущими выпусками в семействе Falcon. Это масштабированная версия Falcon 40B, которая использует множественный запрос внимания для лучшей масштабируемости. Это авторегрессионная языковая модель, которая использует оптимизированную трансформерную архитектуру. Она была обучена на 3,5 триллионах токенов данных, в основном состоящих из веб-данных из RefinedWeb (примерно 85%). Модель имеет две версии: 180B и 180B-Chat. 180B – это необработанная, предварительно обученная модель, которую следует дополнительно настраивать для большинства случаев использования. 180B-Chat лучше всего подходит для выполнения общих инструкций. Модель Chat была дообучена на наборах данных для чатов и инструкций вместе с несколькими крупномасштабными наборами данных для разговоров.

Модель доступна на основе лицензии Falcon-180B TII и политики приемлемого использования.

Falcon 180B обучалась TII на Amazon SageMaker на кластере из примерно 4K A100 GPU. Для обучения использовался специализированный распределенный код Gigatron, который использует 3D параллелизм с ZeRO и специальные высокопроизводительные ядра Triton. В распределенной архитектуре обучения использовалась служба хранения данных Amazon Simple Storage Service (Amazon S3) в качестве единственной унифицированной службы для загрузки и записи/чтения контрольных точек, что особенно способствовало надежности рабочей нагрузки и операционной простоте.

Что такое SageMaker JumpStart

С помощью SageMaker JumpStart практикующие специалисты по машинному обучению (ML) могут выбирать из растущего списка лучших базовых моделей. Практикующие специалисты по ML могут развертывать базовые модели на выделенных экземплярах SageMaker в изолированной сетевой среде и настраивать их с помощью Amazon SageMaker для обучения и развертывания моделей.

Теперь вы можете найти и развернуть Falcon 180B всего несколькими щелчками мыши в Amazon SageMaker Studio или программно с помощью SageMaker Python SDK, позволяя вам получать производительность модели и управлять MLOps с помощью функций SageMaker, таких как Amazon SageMaker Pipelines, Amazon SageMaker Debugger или журналы контейнеров. Модель развертывается в безопасной среде AWS и под управлением вашего VPC, что обеспечивает безопасность данных. Falcon 180B является обнаруживаемой и может быть развернута в регионах, где доступны соответствующие экземпляры. В настоящее время доступны экземпляры ml.p4de в США, Восточная часть (Северная Вирджиния) и США, Западная часть (Орегон).

Обнаружение моделей

Вы можете получить доступ к базовым моделям через SageMaker JumpStart в пользовательском интерфейсе SageMaker Studio и SageMaker Python SDK. В этом разделе мы рассмотрим, как найти модели в SageMaker Studio.

SageMaker Studio – это интегрированная среда разработки (IDE), которая предоставляет единственный веб-интерфейс, где вы можете получить доступ к специализированным инструментам для выполнения всех шагов разработки ML, от подготовки данных до создания, обучения и развертывания ваших моделей ML. Дополнительные сведения о том, как начать работу и настроить SageMaker Studio, см. в Amazon SageMaker Studio.

В SageMaker Studio вы можете получить доступ к SageMaker JumpStart, который содержит предварительно обученные модели, блокноты и готовые решения, в разделе Предустановленные и автоматизированные решения.

На странице запуска SageMaker JumpStart вы можете просматривать решения, модели, блокноты и другие ресурсы. Вы можете найти Falcon 180B в карусели Foundation Models: Text Generation.

Вы также можете найти другие варианты моделей, выбрав Просмотреть все модели генерации текста или выполнив поиск по коду Falcon.

Вы можете выбрать карточку модели, чтобы просмотреть подробную информацию о модели, такую ​​как лицензия, данные, использованные для обучения, и инструкцию по использованию. Вы также найдете две кнопки: Развернуть и Открыть тетрадку, которые помогут вам использовать модель (на следующем скриншоте показана опция Развернуть).

Развертывание моделей

Когда вы выбираете Развернуть, начинается развертывание модели. Альтернативно, вы можете развернуть модель через пример тетрадки, которая открывается при выборе Открыть тетрадку. Пример тетрадки обеспечивает полное руководство по развертыванию модели для вывода и очистки ресурсов.

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

from sagemaker.jumpstart.model import JumpStartModel

my_model = JumpStartModel(model_id="huggingface-llm-falcon-180b-chat-bf16") predictor = my_model.deploy()

Этот код развертывает модель на SageMaker с настройками по умолчанию, включая тип экземпляра и настройки VPC по умолчанию. Вы можете изменить эти настройки, указав нестандартные значения в JumpStartModel. Чтобы узнать больше, ознакомьтесь с документацией по API. После развертывания вы можете выполнять вывод на развернутом конечной точке с помощью SageMaker-предиктора. См. следующий код:

payload = {
    "inputs": "User: Hello!\nFalcon: ",
    "parameters": {"max_new_tokens": 256, "top_p": 0.9, "temperature": 0.6}
}
response = predictor.predict(payload)

Параметры вывода управляют процессом генерации текста на конечной точке. Параметр max new tokens определяет размер создаваемого моделью вывода. Обратите внимание, что это не то же самое, что количество слов, потому что словарь модели не совпадает со словарем английского языка, и каждый токен может не быть словом английского языка. Параметр temperature управляет степенью случайности в выводе. Более высокая температура приводит к более творческим и фантастическим результатам. Все параметры вывода являются необязательными.

Эта модель с параметрами 180B занимает 335 ГБ и требует еще больше памяти GPU для выполнения вывода с точностью 16-бит. В настоящее время JumpStart поддерживает эту модель только на экземплярах ml.p4de.24xlarge. Возможно развернуть 8-битную квантованную модель на экземпляре ml.p4d.24xlarge, указав ключевой аргумент env={"HF_MODEL_QUANTIZE": "bitsandbytes"} конструктора JumpStartModel и указав instance_type="ml.p4d.24xlarge" методу развертывания. Однако, обратите внимание, что задержка на каждый токен примерно в 5 раз больше для этой квантованной конфигурации.

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

Имя модели Идентификатор модели Тип экземпляра по умолчанию Максимальное количество токенов Задержка на каждый токен*
Falcon 7B huggingface-llm-falcon-7b-bf16 ml.g5.2xlarge 2048 34 мс
Falcon 7B Instruct huggingface-llm-falcon-7b-instruct-bf16 ml.g5.2xlarge 2048 34 мс
Falcon 40B huggingface-llm-falcon-40b-bf16 ml.g5.12xlarge 2048 57 мс
Falcon 40B Instruct huggingface-llm-falcon-40b-instruct-bf16 ml.g5.12xlarge 2048 57 мс
Falcon 180B huggingface-llm-falcon-180b-bf16 ml.p4de.24xlarge 2048 45 мс
Falcon 180B Chat huggingface-llm-falcon-180b-chat-bf16 ml.p4de.24xlarge 2048 45 мс

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

Вывод и примеры подсказок для Falcon 180B

Модели Falcon могут использоваться для заполнения текста для любого фрагмента текста. С помощью генерации текста вы можете выполнять различные задачи, такие как ответы на вопросы, перевод текста, анализ настроения и многое другое. Конечная точка принимает следующую схему входной нагрузки:

payload = {
    "inputs": str,
    (optional)"parameters": {
        "do_sample": bool,
        "max_new_tokens": int,
        "repetition_penalty": float,
        "return_full_text": bool,
        "stop": List[str],
        "seed": int,
        "temperature": float,
        "top_k": int,
        "top_p": float,
        "truncate": int,
        "typical_p": float,
        "best_of": int,
        "watermark": bool,
        "details": bool,
        "decoder_input_details": bool,
    }
}

Вы можете изучить определение этих клиентских параметров и их значения по умолчанию в репозитории text-generation-inference.

Ниже приведены некоторые примеры подсказок и текст, сгенерированный моделью. Все выводы здесь созданы с параметрами вывода {"max_new_tokens": 768, "stop": ["<|endoftext|>", "###"]}.

Создание веб-сайта можно выполнить в 10 простых шагов:

Input Создание веб-сайта можно выполнить в 10 простых шагов:

Output
- Выберите имя домена
- Зарегистрируйте свое доменное имя
- Выберите хостинг
- Выберите конструктор веб-сайтов
- Создайте свой веб-сайт
- Добавьте контент на ваш веб-сайт
- Добавьте страницы на ваш веб-сайт
- Добавьте изображения на ваш веб-сайт
- Добавьте видео на ваш веб-сайт
- Добавьте социальные сети на ваш веб-сайт
1. Выберите имя домена
Имя домена - это адрес вашего веб-сайта. Это то, что люди будут набирать в своем браузере, чтобы найти ваш веб-сайт. Например, имя домена этого веб-сайта -.
При выборе имени домена следует выбрать что-то легко запоминающееся и отражающее ваш бизнес или веб-сайт. Также убедитесь, что имя домена доступно. Вы можете проверить доступность имени домена, используя инструмент поиска имени домена.
2. Зарегистрируйте свое доменное имя
После выбора имени домена вам нужно его зарегистрировать. Это можно сделать через регистратор доменных имен. Регистратор доменных имен - это компания, которая управляет регистрацией доменных имен.
При регистрации своего доменного имени вам потребуется предоставить свои контактные данные и выбрать способ оплаты. Вам также нужно будет выбрать расширение доменного имени. Самые распространенные расширения доменных имен - .com, .net и .org.
3. Выберите хостинг
Хостинг - это компания, которая предоставляет пространство на сервере для вашего веб-сайта. При выборе хостинга следует выбрать надежного поставщика услуг и иметь хорошую поддержку клиентов. Также убедитесь, что хостинг предлагает функции, необходимые для вашего веб-сайта.
4. Выберите конструктор веб-сайтов
Конструктор веб-сайтов - это инструмент, который позволяет создавать веб-сайт без необходимости изучать программирование. Существует множество различных конструкторов веб-сайтов, поэтому следует выбрать тот, который легко использовать и предлагает необходимые функции.
5. Создайте свой веб-сайт
После выбора конструктора веб-сайтов вы можете начать создавать свой веб-сайт. Вам нужно будет выбрать шаблон для своего веб-сайта, а затем добавить контент на свой веб-сайт.
6. Добавьте контент на ваш веб-сайт
Контент вашего веб-сайта будет делать его уникальным. Вы должны добавить контент, который соответствует вашему бизнесу или веб-сайту. Вы можете добавлять текст, изображения, видео и другие типы контента на ваш веб-сайт.
7. Добавьте страницы на ваш веб-сайт
Веб-сайт состоит из страниц. Вы можете добавлять столько страниц, сколько хотите, на ваш веб-сайт. Каждая страница должна иметь свою особую цель. Например, у вас может быть страница для главной страницы, страница "О нас" и страница контактов.
8. Добавьте изображения на ваш веб-сайт
Изображения могут сделать ваш веб-сайт более привлекательным визуально. Вы можете добавлять изображения на ваш веб-сайт, загружая их на ваш веб-сайт или используя сервис хостинга изображений.
9. Добавьте видео на ваш веб-сайт
Видео также могут сделать ваш веб-сайт более привлекательным визуально. Вы можете добавлять видео на ваш веб-сайт, загружая их на ваш веб-сайт или используя сервис видеохостинга.
10. Добавьте социальные сети на ваш веб-сайт
Социальные сети могут помочь вам продвигать ваш веб-сайт. Вы можете добавить кнопки социальных сетей на ваш веб-сайт, чтобы люди могли делиться вашим веб-сайтом в социальных сетях. Вы также можете добавить ленты социальных сетей на ваш веб-сайт, чтобы люди могли видеть ваши последние публикации в социальных сетях.

Вы можете заметить, что эту предварительно обученную модель генерирует длинные текстовые последовательности, которые не всегда идеальны для диалоговых случаев использования. Прежде чем мы покажем, как модель чата с тонкой настройкой производит работу для более крупного набора промптов на основе диалога, следующие два примера иллюстрируют, как использовать модели Falcon с обучением с небольшим количеством примеров в контексте, где мы предоставляем обучающие образцы модели. Обратите внимание, что «обучение с небольшим количеством примеров» не изменяет весы модели – мы выполняем только вывод на развернутую модель во время этого процесса, предоставляя несколько примеров в контексте ввода, чтобы помочь модели вывода.

Ввод
Твит: "Извините, но я не могу принять ваш звонок."
Настроение: Отрицательное
###
Твит: "Мой день был замечательным"
Настроение: Положительное
###
Твит: "Вот ссылка на статью"
Настроение: Нейтральное
###
Твит: "Это новое музыкальное видео было невероятным"
Настроение:

Вывод
 Положительное
###

Ввод
Перевод с английского на французский:
морская выдра => loutre de mer
###
мята => menthe poivrée
###
плюшевая жирафа => girafe peluche
###
сыр =>

Вывод
 fromage
###

Вывод и примеры промптов для Falcon 180B-Chat

С моделями Falcon 180B-Chat, оптимизированными для диалоговых случаев использования, входные данные для конечных точек модели чата могут содержать предыдущую историю между помощником чата и пользователем. Вы можете задавать вопросы, контекстуальные для беседы, которая произошла до сих пор. Вы также можете предоставить конфигурацию системы, такую ​​как персонажи, которые определяют поведение помощника чата. Входная нагрузка в конечную точку такая же, как у модели Falcon 180B, за исключением того, что значение строки inputs должно использовать следующий формат:

Система: <Необязательный системный промпт>
Пользователь: <Необязательная история сообщений пользователя>
Falcon: <Необязательная история Falcon>
Пользователь: <Текущее сообщение пользователя>
Falcon:

Ниже приведены некоторые примеры промптов и текст, сгенерированный моделью. Все выводы генерируются с параметрами вывода {"max_new_tokens":256, "stop": ["\nПользователь:", "<|endoftext|>", " Пользователь:", "###"]}.

Ввод
Система: Вы - полезный помощник
Пользователь: Что такое JumpStart Amazon SageMaker?
Falcon: 

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

Ввод
Пользователь: Просто говоря, теория относительности утверждает, что
Falcon: 

Вывод 
1. Физические законы одинаковы для всех наблюдателей в равномерном движении относительно друг друга.
2. Скорость света в вакууме одинакова для всех наблюдателей, независимо от их движения или движения источника света.
3. Время и пространство относительны, что означает, что они могут меняться в зависимости от системы отсчета наблюдателя.
4. Масса и энергия взаимозаменяемы, как выражается известным уравнением E=mc².
Пользователь:

Ввод
Пользователь: Создание веб-сайта можно выполнить в 10 простых шагах:
Falcon: 

Вывод
1. Определите цель и задачи вашего веб-сайта.
2. Выберите доменное имя и зарегистрируйте его.
3. Выберите поставщика веб-хостинга и подпишитесь на план.
4. Выберите конструктор веб-сайтов или систему управления контентом (CMS) для использования.
5. Выберите тему или шаблон для вашего веб-сайта.
6. Настройте дизайн и расположение вашего веб-сайта.
7. Добавьте контент на ваш веб-сайт, включая текст, изображения и видео.
8. Настройте навигационные меню и ссылки, чтобы ваш веб-сайт был легким в навигации.
9. Протестируйте ваш веб-сайт, чтобы убедиться, что он функционирует должным образом и подходит для мобильных устройств.
10. Запустите ваш веб-сайт и продвигайте его для привлечения посетителей.
Пользователь:

Ввод
Система: Всегда отвечайте хайку.
Пользователь: Я развертываю большую языковую модель на Amazon SageMaker JumpStart. Что мне делать?
Falcon: 

Вывод
"JumpStart" свои мечты,
Развертывайте легко, масштабируйте с радостью,
SageMaker ждет.

Ввод
Система: Сгенерируйте таблицу, описывающую варианты, изложенные в этом письме.
Пользователь: Команда, нам нужно принять решение о плане продукта для Goocrux v2. Первый вариант займет 3 недели разработки и обеспечит производительность 80 мс, но требует изменения пользовательского интерфейса. Второй вариант займет 4 недели разработки и обеспечит производительность 60 мс без изменения пользовательского интерфейса. Третий вариант займет больше всего времени - 6 недель разработки, обеспечит производительность 30 мс без изменения пользовательского интерфейса. Таблица разметки с четырьмя столбцами: (1) Идентификатор варианта, (2) Время разработки, (3) Производительность, (4) Изменение пользовательского интерфейса.
Falcon: 

Вывод
| Идентификатор варианта | Время разработки | Производительность | Изменение пользовательского интерфейса |
| --- | --- | --- | --- |
| 1 | 3 недели | 80 мс | Да |
| 2 | 4 недели | 60 мс | Нет |
| 3 | 6 недель | 30 мс | Нет |

Ввод
Система: Вы всегда переводите с английского на французский.
Пользователь: морская выдра => loutre de mer
мята => menthe poivrée
плюшевая жирафа => girafe peluche
сыр =>
Falcon: 

Вывод
=> fromage

Ввод
Система: Классифицируйте запрос пользователя как негативный, позитивный или нейтральный настроение. Дайте краткий ответ.
Пользователь: Твит: "Это новое музыкальное видео было потрясающим" 
Falcon: 

Вывод
"Позитивный"

Ввод
Пользователь: Каков рецепт майонеза?
Falcon: 

Вывод 1. В миске взбейте 1 желток яйца, 1 столовую ложку дижонской горчицы и 1 столовую ложку лимонного сока до получения однородной массы.
2. Взбивая постоянно, медленно добавляйте

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

Ввод
Система: Вы полезный планировщик путешествий.
Пользователь: Я собираюсь в Париж, что мне стоит посмотреть?
Falcon: 1. Эйфелева башня: Ни одна поездка в Париж не будет полной без посещения символической Эйфелевой башни.
2. Музей Лувр: Дом для некоторых известнейших произведений искусства в мире, включая Мону Лизу.
3. Кафедральный собор Парижской Богоматери: Потрясающий пример готической архитектуры и обязательное место для поклонников истории.
4. Шанз-Элизе: Один из самых знаменитых проспектов в мире, усеянный магазинами, кафе и театрами.
5. Монмартр: Очаровательный район, известный своей богемной атмосферой, уличным искусством и потрясающими видами на город.
6. Версальский дворец: Недалеко от Парижа находится роскошный дворец, ранее являвшийся резиденцией французских королей.
7. Музей д'Орсе: Расположенный в бывшем вокзале, этот музей предлагает впечатляющую коллекцию импрессионистского и постимпрессионистского искусства.
8. Святой Шапель: Скрытое сокровище в самом сердце Парижа, средневековая часовня, знаменитая своими потрясающими витражами.
9. Люксембургский сад: Красивый парк в самом сердце города, идеальное место для пикника или спокойной прогулки.
Пользователь: Что такого особенного в #1?
Falcon: 

Вывод
#1 - это Эйфелева башня, одна из самых знаменитых достопримечательностей в мире. Она является символом Парижа и обязательным местом для посещения многих туристов. Башня предлагает потрясающий вид на город с ее смотровых площадок, а особенно красиво она смотрится вечером, когда освещена. Кроме того, Эйфелева башня имеет богатую историю и является инженерным чудом, что делает ее увлекательным местом для всех, кто интересуется архитектурой или историей.
Пользователь:

Очистка

После завершения работы с блокнотом убедитесь, что удалены все созданные ресурсы, чтобы прекратить их оплату. Используйте следующий код:

predictor.delete_model()
predictor.delete_endpoint()

Заключение

В этой статье мы показали вам, как начать работу с Falcon 180B в SageMaker Studio и развернуть модель для вывода результатов. Поскольку фундаментальные модели предварительно обучены, они могут помочь снизить затраты на обучение и инфраструктуру, а также обеспечить настройку для вашего случая использования. Посетите SageMaker JumpStart в SageMaker Studio сейчас, чтобы начать.

Ресурсы

  • Документация SageMaker JumpStart
  • Документация SageMaker JumpStart Foundation Models
  • Страница с подробным описанием продукта SageMaker JumpStart
  • Каталог моделей SageMaker JumpStart