Генеративный ИИ переживает период ошеломляющего роста. Постоянно выпускаются все более функциональные базовые модели, причем большие языковые модели (LLM) являются одним из наиболее заметных классов моделей. LLM — это модели, состоящие из миллиардов параметров, обученных на обширных корпусах текстов, до сотен миллиардов или даже триллионов токенов. Эти модели оказались чрезвычайно эффективными для широкого спектра текстовых задач, от ответов на вопросы до анализа настроений.
Сила LLM заключается в их способности учиться и обобщать обширные и разнообразные обучающие данные. Начальное обучение этих моделей выполняется с различными целями, контролируемыми, неконтролируемыми или гибридными. Завершение текста или вменение — одна из наиболее распространенных задач без учителя: по фрагменту текста модель учится точно предсказывать, что будет дальше (например, предсказывать следующее предложение). Модели также можно обучать под наблюдением, используя помеченные данные для выполнения набора задач (например, является ли этот обзор фильма положительным, отрицательным или нейтральным). Независимо от того, обучена ли модель автозавершению текста или какой-либо другой задаче, часто это не та задача, для которой клиенты хотят использовать модель.
Чтобы повысить производительность предварительно обученного LLM для конкретной задачи, мы можем настроить модель, используя примеры целевой задачи в процессе, известном как инструкция тонкой настройки. Тонкая настройка инструкций использует набор помеченных примеров в виде пар {приглашение, ответ} для дальнейшего обучения предварительно обученной модели адекватному прогнозированию ответа на запрос. Этот процесс изменяет веса модели.
В этом посте описывается, как выполнить точную настройку инструкций LLM, а именно FLAN T5 XL, с помощью Быстрый запуск Amazon SageMaker. Мы покажем, как это сделать с помощью пользовательского интерфейса Jumpstart и блокнота в Студия Amazon SageMaker. Вы можете найти сопроводительная записная книжка в amazon-sagemaker-примеры Репозиторий GitHub.
Обзор решения
Целевая задача в этом посте состоит в том, чтобы, учитывая фрагмент текста в подсказке, вернуть вопросы, которые связаны с текстом, но на которые нельзя ответить на основе содержащейся в нем информации. Это полезная задача для выявления отсутствующей информации в описании или определения того, требуется ли ответ на запрос дополнительной информации.
Модели FLAN T5 представляют собой инструкции, точно настроенные для широкого круга задач, чтобы повысить производительность этих моделей при выполнении многих распространенных задач[1]. Дополнительная точная настройка инструкций для конкретной задачи клиента может еще больше повысить точность этих моделей, особенно если целевая задача ранее не использовалась для обучения модели FLAN T5, как в случае с нашей задачей.
В нашем примере задачи мы заинтересованы в создании релевантных, но оставшихся без ответа вопросов. С этой целью мы используем подмножество версии 2 Стэнфордского набора данных для ответов на вопросы (SQuAD2.0) [2] для точной настройки модели. Этот набор данных содержит вопросы, заданные комментаторами-людьми в ряде статей Википедии. Помимо вопросов с ответами, SQuAD2.0 содержит около 50,000 XNUMX вопросов без ответов. Такие вопросы правдоподобны, но на них нельзя напрямую ответить из содержания статей. Мы используем только вопросы без ответа. Наши данные структурированы в виде файла JSON Lines, где каждая строка содержит контекст и вопрос.
Предпосылки
Для начала все, что вам нужно, — это учетная запись AWS, в которой вы можете использовать Studio. Вам потребуется создать профиль пользователя для Studio, если у вас его еще нет.
Точная настройка FLAN-T5 с помощью пользовательского интерфейса Jumpstart
Чтобы точно настроить модель с помощью пользовательского интерфейса Jumpstart, выполните следующие шаги:
- На консоли SageMaker откройте Studio.
- Под SageMaker Jumpstart на панели навигации выберите Модели, ноутбуки, решения.
Вы увидите список базовых моделей, в том числе FLAN T5 XL, который помечен как настраиваемый.
- Выберите Посмотреть модель.
- Под Источник данных, вы можете указать путь к своим обучающим данным. Источник данных, используемых в этом посте, предоставляется по умолчанию.
- Вы можете оставить значение по умолчанию для конфигурации развертывания (включая тип экземпляра), безопасности и гиперпараметров, но вам следует увеличить количество эпох как минимум до трех, чтобы получить хорошие результаты.
- Выберите Train для обучения модели.
Вы можете отслеживать статус задания обучения в пользовательском интерфейсе.
- По завершении обучения (в нашем случае примерно через 53 минуты) выберите Развертывание для развертывания отлаженной модели.
После создания конечной точки (несколько минут) вы можете открыть записную книжку и приступить к использованию настроенной модели.
Точная настройка FLAN-T5 с помощью ноутбука Python
В нашем примере блокнота показано, как использовать Jumpstart и SageMaker для программной точной настройки и развертывания модели FLAN T5 XL. Его можно запустить в Studio или локально.
В этом разделе мы сначала рассмотрим некоторые общие настройки. Затем вы настраиваете модель, используя наборы данных SQuADv2. Затем вы развертываете предварительно обученную версию модели за конечной точкой SageMaker и делаете то же самое с точно настроенной моделью. Наконец, вы можете запросить конечные точки и сравнить качество выходных данных предварительно обученной и точно настроенной модели. Вы обнаружите, что результат тонко настроенной модели имеет гораздо более высокое качество.
Настроить предварительные условия
Начните с установки и обновления необходимых пакетов. Перезапустите ядро после запуска следующего кода:
Затем получите роль выполнения, связанную с текущим экземпляром записной книжки:
Вы можете определить удобное раскрывающееся меню, в котором будут перечислены размеры моделей, доступные для тонкой настройки:
Jumpstart автоматически извлекает соответствующие типы экземпляров обучения и логического вывода для выбранной вами модели:
Теперь вы готовы приступить к тонкой настройке.
Переобучите модель на наборе данных тонкой настройки
После завершения настройки выполните следующие шаги:
Используйте следующий код для получения URI необходимых артефактов:
Данные обучения находятся в общедоступном Простой сервис хранения Amazon (Amazon S3) ведро.
Используйте следующий код, чтобы указать местоположение данных и настроить выходное местоположение в сегменте вашей учетной записи:
Исходные данные не в формате, соответствующем задаче, под которую вы настраиваете модель, поэтому вы можете переформатировать ее:
Теперь вы можете определить некоторые гиперпараметры для обучения:
Теперь вы готовы запустить задание обучения:
В зависимости от размера данных точной настройки и выбранной модели точная настройка может занять до нескольких часов.
Вы можете отслеживать показатели производительности, такие как потери при обучении и проверке, с помощью Amazon CloudWatch во время обучения. Для удобства вы также можете получить самый последний снимок метрик, запустив следующий код:
Когда обучение будет завершено, у вас будет точно настроенная модель в model_uri
. Давайте использовать его!
Вы можете создать две конечные точки вывода: одну для исходной предварительно обученной модели и одну для точной модели. Это позволяет сравнить выходные данные обеих версий модели. На следующем шаге вы развертываете конечную точку вывода для предварительно обученной модели. Затем вы развертываете конечную точку для отлаженной модели.
Разверните предварительно обученную модель
Начнем с развертывания предварительно обученной модели, которая извлекает URI образа Docker для логического вывода. Это базовое изображение контейнера Hugging Face. Используйте следующий код:
Теперь вы можете создать конечную точку и развернуть предварительно обученную модель. Обратите внимание, что вам необходимо передать класс Predictor при развертывании модели через класс Model, чтобы иметь возможность выполнять вывод через SageMaker API. См. следующий код:
Создание конечной точки и развертывание модели может занять несколько минут, после чего ваша конечная точка готова принимать вызовы логического вывода.
Разверните доработанную модель
Давайте развернем точно настроенную модель на ее собственной конечной точке. Процесс почти идентичен тому, который мы использовали ранее для предварительно обученной модели. Единственная разница в том, что мы используем точно настроенное имя модели и URI:
Когда этот процесс завершен, как предварительно обученные, так и точно настроенные модели развертываются за их собственными конечными точками. Давайте сравним их выходы.
Генерация выходных данных и сравнение результатов
Определите некоторые служебные функции для запроса конечной точки и анализа ответа:
В следующем фрагменте кода мы определяем приглашение и тестовые данные. Описывает нашу целевую задачу, которая состоит в том, чтобы генерировать вопросы, связанные с предоставленным текстом, но на которые нельзя ответить на его основе.
Тестовые данные состоят из трех разных абзацев, один из которых посвящен австралийскому городу Аделаиде из первые два абзаца этой страницы Википедии, один относительно Магазин эластичных блоков Amazon (Amazon EBS) из Документация по Amazon EBS, и один из Amazon Comprehend из Документация по Amazon Comprehend. Мы ожидаем, что модель выявит вопросы, связанные с этими абзацами, но на которые нельзя ответить с помощью представленной в них информации.
Теперь вы можете протестировать конечные точки, используя примеры статей.
Данные испытаний: Аделаида
Мы используем следующий контекст:
Ответ предварительно обученной модели выглядит следующим образом:
Точно настроенные ответы модели следующие:
Тестовые данные: Amazon EBS
Мы используем следующий контекст:
Ответы предварительно обученной модели следующие:
Точно настроенные ответы модели следующие:
Тестовые данные: Amazon Comprehend
Мы используем следующий контекст:
Ответы предварительно обученной модели следующие:
Точно настроенные ответы модели следующие:
Разница в качестве вывода между предварительно обученной моделью и точно настроенной моделью разительна. Вопросы, представленные в тонко настроенной модели, затрагивают более широкий круг тем. Это систематически значимые вопросы, что не всегда верно для предварительно обученной модели, как показано на примере Amazon EBS.
Хотя это не является формальной и систематической оценкой, ясно, что процесс тонкой настройки улучшил качество ответов модели на эту задачу.
Убирать
Наконец, не забудьте очистить и удалить конечные точки:
Заключение
В этом посте мы показали, как использовать тонкую настройку инструкций для моделей FLAN T5 с помощью пользовательского интерфейса Jumpstart или ноутбука Jupyter, работающего в Studio. Мы предоставили код, объясняющий, как переобучить модель, используя данные для целевой задачи, и развернуть точно настроенную модель за конечной точкой. Целевой задачей в этом посте было определить вопросы, которые относятся к фрагменту текста, предоставленному во входных данных, но на которые нельзя ответить на основе информации, представленной в этом тексте. Мы продемонстрировали, что модель, точно настроенная для этой конкретной задачи, дает лучшие результаты, чем предварительно обученная модель.
Теперь, когда вы знаете, как настроить модель с помощью Jumpstart, вы можете создавать мощные модели, адаптированные для вашего приложения. Соберите некоторые данные для вашего варианта использования, загрузите их в Amazon S3 и используйте пользовательский интерфейс Studio или ноутбук для настройки модели FLAN T5!
Рекомендации
[1] Чанг, Хён Вон и др. «Масштабирование языковых моделей с тонкой настройкой инструкций». Препринт arXiv arXiv: 2210.11416 (2022 г.).
[2] Раджпуркар, Пранав, Робин Джиа и Перси Лян. «Знай то, чего ты не знаешь: вопросы без ответов для SQuAD». Материалы 56-го ежегодного собрания Ассоциации компьютерной лингвистики (Том 2: Краткие статьи). 2018.
Об авторах
Лоран Калло — главный научный сотрудник и менеджер AWS AI Labs, который работал над различными проблемами машинного обучения, от базовых моделей и генеративного ИИ до прогнозирования, обнаружения аномалий, причинно-следственных связей и операций ИИ.
Андрей Кан является старшим научным сотрудником в AWS AI Labs с интересами и опытом в различных областях машинного обучения. К ним относятся исследования базовых моделей, а также приложения машинного обучения для графиков и временных рядов.
Доктор Ашиш Хетан — старший научный сотрудник, работающий со встроенными алгоритмами Amazon SageMaker и помогающий разрабатывать алгоритмы машинного обучения. Он получил докторскую степень в Университете Иллинойса в Урбане Шампейн. Он является активным исследователем в области машинного обучения и статистических выводов и опубликовал множество статей на конференциях NeurIPS, ICML, ICLR, JMLR, ACL и EMNLP.
Барис Курт является прикладным ученым в AWS AI Labs. Его интересы связаны с обнаружением аномалий временных рядов и моделями фундаментов. Ему нравится разрабатывать удобные для пользователя системы машинного обучения.
Йонас Кюблер является прикладным ученым в AWS AI Labs. Он работает над базовыми моделями с целью облегчить применение конкретных вариантов использования.
- SEO-контент и PR-распределение. Получите усиление сегодня.
- ПлатонАйСтрим. Анализ данных Web3. Расширение знаний. Доступ здесь.
- Чеканка будущего с Эдриенн Эшли. Доступ здесь.
- Покупайте и продавайте акции компаний PREIPO® с помощью PREIPO®. Доступ здесь.
- Источник: https://aws.amazon.com/blogs/machine-learning/instruction-fine-tuning-for-flan-t5-xl-with-amazon-sagemaker-jumpstart/
- :имеет
- :является
- :нет
- $UP
- 000
- 1
- 10
- 100
- 11
- 12
- 13
- 17
- 1M
- 20
- 2018
- 2022
- 22
- 40
- 50
- 60
- 7
- 8
- 80
- 9
- a
- в состоянии
- О нас
- Принять
- доступ
- доступной
- выполнять
- Учетная запись
- точность
- точно
- активный
- дополнение
- дополнительный
- адекватно
- После
- AI
- AL
- алгоритмы
- Все
- позволяет
- уже
- причислены
- всегда
- Amazon
- Amazon Comprehend
- Создатель мудреца Амазонки
- Amazon SageMaker JumpStart
- Amazon Web Services
- an
- анализ
- анализировать
- и
- годовой
- обнаружение аномалии
- ответы
- любой
- API
- API
- Применение
- Приложения
- прикладной
- соответствующий
- МЫ
- ПЛОЩАДЬ
- аргумент
- гайд
- статьи
- AS
- связанный
- Объединение
- At
- Австралия
- австралийский
- автоматически
- доступен
- AWS
- Использование темпера с изогнутым основанием
- основанный
- BE
- Beach
- Ширина
- за
- не являетесь
- ниже
- Лучшая
- между
- миллиарды
- Заблокировать
- тело
- булавка
- изоферменты печени
- встроенный
- но
- by
- под названием
- Объявления
- CAN
- не могу
- возможности
- способный
- Пропускная способность
- столица
- случаев
- центр
- изменение
- выбор
- Выберите
- выбрал
- выбранный
- Город
- класс
- классов
- классификация
- Очистить
- клиент
- Побережье
- код
- выходит
- Общий
- сравнить
- полный
- завершение
- состоящие
- постигать
- конференции
- Конфигурация
- Консоли
- составлять
- Container
- содержит
- содержание
- контекст
- (CIJ)
- непрерывно
- Удобно
- соответствует
- может
- Пара
- Создайте
- создали
- Создающий
- создание
- Текущий
- изготовленный на заказ
- клиент
- Клиенты
- подгонянный
- данным
- базы данных
- Наборы данных
- По умолчанию
- демонстрировать
- убивают
- в зависимости
- развертывание
- развернуть
- развертывание
- развертывание
- описание
- обнаружение
- Определять
- развивать
- развивающийся
- развивается
- устройство
- Устройства
- разница
- различный
- непосредственно
- Дисплей
- Разное
- do
- Docker
- документ
- Документация
- приносит
- не
- доминирующий
- Dont
- управлять
- в течение
- динамично
- Е & Т
- каждый
- Ранее
- восток
- Эффективный
- или
- элементы
- еще
- конец
- Конечная точка
- Весь
- лиц
- организация
- эпоха
- эпохи
- особенно
- оценка
- Даже
- исследовать
- пример
- Примеры
- выполнять
- выполнение
- ожидать
- опыт
- объясняя
- подвергаться
- продолжается
- расширение
- обширный
- извлечение
- чрезвычайно
- Face
- содействовал
- далеко
- Фэшн
- Особенность
- Особенности
- несколько
- Поля
- Файл
- Файлы
- в заключение
- Найдите
- конец
- Во-первых,
- после
- следующим образом
- Что касается
- форма
- формальный
- формат
- найденный
- Год основания
- Четвертый
- Рамки
- часто
- дружественный
- от
- Функции
- далее
- собирать
- Общие
- порождать
- генерируется
- порождающий
- поколение
- генеративный
- Генеративный ИИ
- получить
- GitHub
- данный
- цель
- хорошо
- Графики
- большой
- большой
- Рост
- Жесткий
- жесткий диск
- Есть
- he
- помогает
- высший
- Холмы
- его
- ЧАСЫ
- Как
- How To
- HTML
- HTTP
- HTTPS
- ОбниматьЛицо
- человек
- Сотни
- Гибридный
- i
- ID
- идентичный
- определения
- идентификаторы
- if
- Иллинойс
- изображение
- Импортировать
- улучшать
- улучшенный
- in
- включают
- В том числе
- Увеличение
- все больше и больше
- самостоятельно
- info
- информация
- информативный
- начальный
- вход
- затраты
- размышления
- устанавливать
- Установка
- пример
- заинтересованный
- интересы
- Введение
- IT
- ЕГО
- работа
- Джобс
- JPG
- JSON
- Сохранить
- Основные
- Знать
- известный
- Labs
- язык
- Языки
- большой
- крупнейших
- запуск
- УЧИТЬСЯ
- изучение
- наименее
- Длина
- уровень
- ЖИЗНЬЮ
- такое как
- линия
- линий
- Список
- LLM
- в местном масштабе
- расположенный
- расположение
- возвышенный
- Длинное
- долгосрочный
- от
- любит
- машина
- обучение с помощью машины
- менеджер
- многих
- с пометкой
- Макс
- Май..
- значимым
- заседания
- упоминает
- Меню
- Метрика
- Минут
- отсутствующий
- ML
- модель
- Модели
- монитор
- БОЛЕЕ
- самых
- ГОРУ
- кино
- много
- должен
- имя
- а именно
- натуральный
- Обработка естественного языка
- Навигация
- необходимо
- Необходимость
- необходимый
- потребности
- отрицательный
- сетей
- Нейтральные
- Новые
- новые продукты
- следующий
- НЛП
- север
- ноутбук
- сейчас
- номер
- целей
- получать
- of
- on
- ONE
- только
- открытый
- or
- оригинал
- Другое
- наши
- выходной
- за
- переопределение
- собственный
- Владельцы
- пакеты
- пар
- хлеб
- бумага
- параметры
- часть
- особый
- особенно
- pass
- путь
- Люди
- Выполнять
- производительность
- период
- настойчивость
- фразы
- Платон
- Платон Интеллектуальные данные
- ПлатонДанные
- правдоподобный
- Точка
- население
- положительный
- После
- мощностью
- мощный
- предсказывать
- прогнозирования
- Predictor
- предварительно
- первичный
- Основной
- печать
- проблемам
- процесс
- обработка
- Продукция
- Профиль
- Прогресс
- доказанный
- обеспечивать
- при условии
- приводит
- что такое варган?
- опубликованный
- Питон
- Запросы
- вопрос
- Вопросы
- быстро
- случайный
- ассортимент
- Сырье
- готовый
- реального времени
- Получать
- последний
- признание
- признавать
- признавая
- рекомендовать
- Управление по борьбе с наркотиками (DEA)
- по
- регулярное выражение
- область
- Связанный
- выпустил
- соответствующие
- полагаться
- помнить
- хранилище
- требовать
- обязательный
- требуется
- исследованиям
- исследователь
- жители
- Полезные ресурсы
- ответ
- ответы
- ограничивать
- Итоги
- возвращают
- Возвращает
- обзоре
- Робин
- Роли
- Run
- Бег
- s
- sagemaker
- то же
- сканирование
- Ученый
- Поиск
- Во-вторых
- Раздел
- безопасность
- посмотреть
- выбор
- старший
- предложение
- настроение
- Серии
- обслуживание
- Услуги
- Сессия
- набор
- Наборы
- установка
- несколько
- Короткое
- должен
- показал
- Шоу
- просто
- Размер
- Размеры
- небольшой
- Снимок
- So
- Соцсети
- Социальная сеть
- некоторые
- Источник
- Южная
- конкретный
- раскол
- Стэнфорд
- сильно
- Начало
- и политические лидеры
- Область
- статистический
- Статус:
- Шаг
- Шаги
- По-прежнему
- диск
- магазин
- Структура
- структурированный
- студия
- Ошеломляющий
- такие
- поддержка
- Поддержанный
- окружающих
- система
- системы
- взять
- цель
- Сложность задачи
- задачи
- шаблон
- тестXNUMX
- чем
- который
- Ассоциация
- Местоположение
- Столица
- информация
- Источник
- Государство
- Запад,
- мир
- их
- Их
- тогда
- в нем
- Эти
- они
- этой
- те
- три
- Через
- время
- Временные ряды
- в
- Лексемы
- топ
- Темы
- трогать
- трек
- традиционный
- Train
- специалистов
- Обучение
- Триллион
- правда
- два
- напишите
- Типы
- ui
- понимание
- Университет
- Updates
- загружено
- использование
- прецедент
- используемый
- Информация о пользователе
- через
- утилита
- Проверка
- ценностное
- Наши ценности
- разнообразие
- версия
- Винсент
- видимый
- объем
- тома
- W
- хотеть
- законопроект
- Путь..
- we
- Web
- веб-сервисы
- ЧТО Ж
- запад
- Что
- Что такое
- когда
- будь то
- , которые
- в то время как
- КТО
- широкий
- Широкий диапазон
- Шире
- ширина
- Википедия.
- будете
- в
- Выиграл
- Word
- работавший
- работает
- Мир
- бы
- Ты
- ВАШЕ
- зефирнет