Останнім часом у сфері НЛП було досягнуто багато досягнень. Попередньо навчені моделі та повністю керовані послуги НЛП демократизували доступ і впровадження НЛП. «Амазонка» це повністю керована служба, яка може виконувати завдання NLP, такі як розпізнавання особливих об’єктів, моделювання тем, аналіз настроїв тощо, щоб витягувати ідеї з даних без попереднього досвіду ML.
Минулого року AWS оголосила про партнерство з Обіймати обличчя щоб допомогти швидше запровадити моделі обробки природної мови (NLP). Hugging Face — це спільнота штучного інтелекту з відкритим кодом, зосереджена на НЛП. Їх бібліотека на основі Python (трансформери) надає інструменти для легкого використання популярних найсучасніших архітектур Transformer, таких як BERT, RoBERTa та GPT. Ви можете застосувати ці моделі до різноманітних завдань НЛП, таких як класифікація тексту, вилучення інформації та відповіді на питання, серед інші.
Amazon SageMaker – це повністю керований сервіс, який надає розробникам і дослідникам даних можливість швидко створювати, навчати та розгортати моделі машинного навчання (ML). SageMaker усуває важку роботу з кожного етапу процесу машинного навчання, полегшуючи розробку високоякісних моделей. SageMaker Python SDK надає API та контейнери з відкритим вихідним кодом для навчання та розгортання моделей на SageMaker, використовуючи кілька різних фреймворків машинного навчання та глибокого навчання.
Інтеграція Hugging Face із SageMaker дозволяє створювати масштабні моделі Hugging Face у власних випадках використання для конкретного домену.
У цій публікації ми ознайомимо вас із прикладом того, як створити та розгорнути спеціальний текстовий підсумовувач Hugging Face на SageMaker. Для цієї мети ми використовуємо Pegasus [1], першу модель на основі Transformer, спеціально попередньо навчену меті, призначеній для абстрактного підсумовування тексту. BERT попередньо навчений маскувати випадкові слова в реченні; навпаки, під час попереднього навчання Pegasus речення маскуються від вхідного документа. Потім модель генерує відсутні речення як єдину вихідну послідовність, використовуючи всі незамасковані речення як контекст, створюючи в результаті короткий виклад документа.
Завдяки гнучкості бібліотеки HuggingFace ви можете легко адаптувати код, показаний у цій публікації, для інших типів моделей трансформаторів, таких як t5, BART тощо.
Завантажте власний набір даних, щоб точно налаштувати модель обличчя, що обіймається
Щоб завантажити спеціальний набір даних із файлу CSV, ми використовуємо load_dataset
метод із пакету Transformers. Ми можемо застосувати токенізацію до завантаженого набору даних за допомогою datasets.Dataset.map
функція. map
функція повторює завантажений набір даних і застосовує функцію tokenize до кожного прикладу. Токенізований набір даних можна передати інструктору для точного налаштування моделі. Перегляньте наступний код:
Створіть свій навчальний сценарій для оцінювача Hugging Face SageMaker
Як пояснюється в дописі AWS і Hugging Face співпрацюють, щоб спростити та прискорити впровадження моделей обробки природної мови, навчання моделі Hugging Face на SageMaker ніколи не було таким простим. Ми можемо зробити це, використовуючи інструмент оцінки Hugging Face від SageMaker SDK.
Наступний фрагмент коду точно налаштовує Pegasus на наш набір даних. Ви також можете знайти багато зразки зошитів які допоможуть вам налаштувати різні типи моделей, доступні безпосередньо в репозиторії transformers GitHub. Щоб увімкнути розподілене навчання, ми можемо використовувати Бібліотека паралелізму даних у SageMaker, який вбудовано в API Trainer HuggingFace. Щоб увімкнути паралелізм даних, нам потрібно визначити distribution
у нашому інструменті оцінки Hugging Face.
Максимальний розмір навчальної партії, який ви можете налаштувати, залежить від розміру моделі та пам’яті GPU використовуваного екземпляра. Якщо ввімкнено розподілене навчання SageMaker, загальний розмір пакету є сумою кожного пакета, який розподіляється між кожним пристроєм/графічним процесором. Якщо ми використовуємо ml.g4dn.16xlarge із розподіленим навчанням замість екземпляра ml.g4dn.xlarge, ми матимемо у вісім разів (8 GPU) більше пам’яті, ніж екземпляр ml.g4dn.xlarge (1 GPU). Розмір партії на пристрій залишається незмінним, але вісім пристроїв навчаються паралельно.
Як зазвичай у SageMaker, ми створюємо a train.py
сценарій для використання в режимі сценаріїв і передача гіперпараметрів для навчання. Наступний фрагмент коду для Pegasus завантажує модель і навчає її за допомогою Transformers Trainer
клас:
Повний код доступний на GitHub.
Розгорніть навчену модель Hugging Face у SageMaker
Наші друзі з Hugging Face зробили висновок про моделі SageMaker for Transformers простіше, ніж будь-коли, завдяки SageMaker Hugging Face Inference Toolkit. Ви можете безпосередньо розгорнути попередньо навчену модель, просто налаштувавши змінну середовища "HF_TASK":"summarization"
(інструкції див Моделі Пегаса), вибираючи Розгортання, а потім вибираючи Amazon SageMaker, без необхідності писати сценарій висновку.
Однак, якщо вам потрібен певний спосіб генерації або постобробки передбачень, наприклад, генерування кількох підсумкових пропозицій на основі списку різних параметрів генерації тексту, написання власного сценарію висновку може бути корисним і відносно простим:
Як показано в попередньому коді, такий сценарій висновку для HuggingFace на SageMaker потребує лише таких функцій шаблону:
- model_fn () – Читає вміст того, що було збережено наприкінці навчального завдання всередині
SM_MODEL_DIR
, або з існуючого каталогу ваг моделі, збереженого як файл tar.gz у Служба простого зберігання Amazon (Amazon S3). Він використовується для завантаження навченої моделі та пов’язаного токенізера. - input_fn () – Форматує дані, отримані від запиту, зробленого до кінцевої точки.
- predict_fn () – викликає вихід
model_fn()
(модель і токенізер), щоб виконати висновок на виходіinput_fn()
(відформатовані дані).
За бажанням ви можете створити output_fn()
функція для форматування висновку, використовуючи вихідні дані predict_fn()
, яку ми не демонстрували в цій публікації.
Потім ми можемо розгорнути навчену модель Hugging Face із пов’язаним сценарієм висновку в SageMaker за допомогою Модель SageMaker, що обіймається клас:
Тестуйте розгорнуту модель
Для цієї демонстрації ми навчили модель на Набір даних оглядів жіночого одягу електронної комерції, який містить огляди статей про одяг (які ми розглядаємо як вхідний текст) і пов’язані з ними заголовки (які ми розглядаємо як резюме). Після видалення статей із відсутніми назвами набір даних містить 19,675 70 відгуків. Точне налаштування моделі Pegasus на навчальному наборі, що містить 3.5% цих статей для п’яти епох, зайняло приблизно 3.16 години на екземплярі ml.pXNUMXxlarge.
Потім ми можемо розгорнути модель і перевірити її за допомогою прикладів даних із тестового набору. Нижче наведено приклад огляду з описом светра:
Завдяки нашому спеціальному сценарію висновку, розміщеному в кінцевій точці SageMaker, ми можемо створити кілька підсумків для цього огляду з різними параметрами генерації тексту. Наприклад, ми можемо попросити кінцеву точку створити діапазон від дуже коротких до помірно довгих підсумків із зазначенням різних штрафів за довжину (чим менший штраф за довжину, тим коротший згенерований підсумок). Нижче наведено деякі приклади введення параметрів і наступні підсумкові підсумки, створені машиною:
Якому резюме ви віддаєте перевагу? Перший створений заголовок фіксує всі важливі факти про рецензію з чвертю кількості слів. На відміну від цього, останній використовує лише три слова (менше 1/10 довжини оригінального огляду), щоб зосередити увагу на найважливішій особливості светра.
Висновок
За допомогою цього простого прикладу, доступного на веб-сторінці GitHub. Додатковий зразки зошитів для навчання та розгортання моделей Hugging Face на SageMaker також доступні.
Як завжди, AWS раді відгукам. Надішліть будь-які коментарі чи запитання.
посилання
[1] PEGASUS: Попереднє навчання з вилученими прогалинами для абстрактного резюмування
Про авторів
Віктор Малесевич є інженером машинного навчання в AWS Professional Services, захоплюється обробкою природної мови та MLOps. Він працює з клієнтами над розробкою та впровадженням складних моделей глибокого навчання в AWS. У вільний час він любить випити з друзями келих червоного вина та трохи сиру.
Аамна Наджмі є спеціалістом із обробки даних у AWS Professional Services. Вона захоплено допомагає клієнтам впроваджувати інновації з технологіями великих даних і штучного інтелекту, щоб отримувати цінність для бізнесу та розуміння даних. У вільний час вона любить займатися садівництвом і подорожувати в нові місця.
- AI
- ai мистецтво
- AI арт генератор
- ai робот
- Amazon SageMaker
- штучний інтелект
- сертифікація штучного інтелекту
- штучний інтелект у банківській справі
- робот зі штучним інтелектом
- роботи зі штучним інтелектом
- програмне забезпечення для штучного інтелекту
- AWS Машинне навчання
- blockchain
- блокчейн конференція AI
- coingenius
- розмовний штучний інтелект
- крипто конференція ai
- dall's
- глибоке навчання
- у вас є гугл
- навчання за допомогою машини
- plato
- платон ai
- Інформація про дані Платона
- Гра Платон
- PlatoData
- platogaming
- масштаб ai
- синтаксис
- зефірнет