Організаціям у таких галузях, як роздрібна торгівля, банківська справа, фінанси, охорона здоров’я, виробництво та кредитування, часто доводиться мати справу з величезною кількістю неструктурованих текстових документів, які надходять із різних джерел, таких як новини, блоги, огляди продуктів, канали підтримки клієнтів і соціальні мережі. Ці документи містять важливу інформацію, яка є ключовою для прийняття важливих бізнес-рішень. У міру зростання організації стає складним завданням отримати важливу інформацію з цих документів. Завдяки вдосконаленню технологій обробки природної мови (NLP) і машинного навчання (ML) ми можемо швидко й з високою точністю виявляти цінну інформацію та зв’язки з цих текстових документів, допомагаючи компаніям своєчасно приймати якісні бізнес-рішення. Повністю керовані послуги НЛП також прискорили впровадження НЛП. «Амазонка» – це повністю керована послуга, яка дає вам змогу створювати користувацькі моделі НЛП відповідно до ваших вимог без будь-яких знань у ML.
У цьому дописі ми демонструємо, як використовувати найсучасніші методи ML для вирішення п’яти різних завдань NLP: узагальнення документів, класифікація тексту, відповіді на запитання, розпізнавання іменованих сутностей і вилучення зв’язків. Для кожного з цих завдань НЛП ми демонструємо, як використовувати Amazon SageMaker виконати такі дії:
- Розгорніть і запустіть висновок на попередньо навченій моделі
- Тонко налаштуйте попередньо навчену модель на новому спеціальному наборі даних
- Подальше вдосконалення продуктивності тонкого налаштування за допомогою Автоматичне налаштування моделі SageMaker
- Оцініть продуктивність моделі на основі даних тестування за допомогою різних оціночних показників
Незважаючи на те, що в цій публікації ми розглядаємо п’ять конкретних завдань NLP, ви можете використовувати це рішення як шаблон для узагальнення точного налаштування попередньо навчених моделей за допомогою вашого власного набору даних, а потім запустити оптимізацію гіперпараметрів для підвищення точності.
Шаблони рішень JumpStart
Amazon SageMaker JumpStart надає наскрізні рішення в один клік для багатьох поширених випадків використання машинного навчання. Ознайомтеся з такими варіантами використання, щоб отримати додаткові відомості про доступні шаблони рішень:
Шаблони рішень JumpStart охоплюють різноманітні випадки використання, у кожному з яких пропонується декілька різних шаблонів рішень (це рішення для розуміння документів належить до варіанту використання «Вилучення й аналіз даних із документів»).
На цільовій сторінці JumpStart виберіть шаблон рішення, який найкраще підходить для вашого випадку використання. Щоб отримати додаткові відомості про конкретні рішення для кожного випадку використання та про те, як запустити рішення JumpStart, див Шаблони рішень.
Огляд рішення
На наступному зображенні показано, як можна використовувати це рішення з компонентами SageMaker. Навчальні завдання SageMaker використовуються для навчання різних моделей NLP, а кінцеві точки SageMaker використовуються для розгортання моделей на кожному етапі. Ми використовуємо Служба простого зберігання Amazon (Amazon S3) разом із SageMaker для зберігання навчальних даних і артефактів моделі, а також Amazon CloudWatch для реєстрації виходів навчання та кінцевих точок.
Відкрийте рішення «Розуміння документа».
Перейдіть до рішення «Розуміння документів» у JumpStart.
Тепер ми можемо ближче розглянути деякі активи, включені в це рішення, починаючи з демонстраційного блокнота.
Демонстраційний блокнот
Ви можете використовувати демонстраційний блокнот, щоб надсилати приклади даних до вже розгорнутих кінцевих точок моделі для виконання завдань узагальнення документів і відповідей на запитання. Демо-блокнот дозволяє швидко отримати практичний досвід, запитуючи приклади даних.
Після запуску рішення Document Understanding відкрийте демонстраційний блокнот, вибравши Використовуйте кінцеву точку в блокноті.
Давайте детальніше зануримося в кожен із п’яти основних ноутбуків для цього рішення.
Передумови
In Студія Amazon SageMaker, переконайтеся, що ви використовуєте PyTorch 1.10 Python 3.8 CPU Optimized
зображення/ядро, щоб відкрити блокноти. Навчання використовує п’ять екземплярів ml.g4dn.2xlarge, тому вам слід підняти a запит на збільшення ліміту послуги якщо ваш обліковий запис вимагає збільшених лімітів для цього типу.
Класифікація тексту
Класифікація тексту відноситься до класифікації вхідного речення за однією з міток класу навчального набору даних. Цей блокнот демонструє, як користуватися API JumpStart для класифікації тексту.
Розгорніть і запустіть висновок на попередньо навченій моделі
Модель класифікації тексту, яку ми вирішили використовувати, побудована на вбудованому тексті (tensorflow-tc-bert-en-uncased-L-12-H-768-A-12-2
) модель від Концентратор TensorFlow, який попередньо навчається на базах даних Wikipedia та BookCorpus.
Модель, доступна для розгортання, створюється шляхом додавання рівня двійкової класифікації до результату моделі вбудовування тексту, а потім тонкого налаштування всієї моделі на SST-2 набір даних, який складається з позитивних і негативних відгуків про фільми.
Щоб виконати висновок на цій моделі, нам спочатку потрібно завантажити контейнер висновків (deploy_image_uri
), сценарій висновку (deploy_source_uri
), а також попередньо навчену модель (base_model_uri
). Потім ми передаємо їх як параметри для створення екземпляра об’єкта моделі SageMaker, який потім можемо розгорнути:
Наступний код показує наші відповіді:
Тонко налаштуйте попередньо навчену модель на спеціальному наборі даних
Ми щойно пройшли через виконання висновків на попередньо підготовленій моделі BERT, яка була точно налаштована на SST-2
набір даних.
Далі ми обговоримо, як точно налаштувати модель на спеціальному наборі даних із будь-якою кількістю класів. Набір даних, який ми використовуємо для точного налаштування, залишається SST-2
набір даних. Ви можете замінити цей набір даних будь-яким набором даних, який вас цікавить.
Ми отримуємо навчальний контейнер Docker, джерело навчального алгоритму та попередньо навчену модель:
Для специфічних для алгоритму гіперпараметрів ми починаємо з отримання словника Python тренувальних гіперпараметрів, які приймає алгоритм разом зі значеннями за замовчуванням. Ви можете замінити їх власними значеннями, як показано в наступному коді:
Набір даних (SST-2
) поділяється на набори для навчання, перевірки та тестування, де набір для навчання використовується для підгонки моделі, набір для перевірки використовується для обчислення показників оцінки, які можна використовувати для HPO, а набір для тестування використовується як резервні дані для оцінки продуктивності моделі. Потім набір даних навчання та перевірки завантажується в Amazon S3 і використовується для запуску завдання навчання тонкого налаштування:
Після завершення роботи з тонкого налаштування ми розгортаємо модель, виконуємо висновок на основі тестового набору даних і обчислюємо оціночні показники. Оскільки це завдання двійкової класифікації, ми використовуємо оцінка точності та F1 бал як метрика оцінки. Більше значення вказує на кращу продуктивність. На наступному знімку екрана показано наші результати.
Ще більше покращте ефективність точного налаштування за допомогою автоматичного налаштування моделі SageMaker
На цьому кроці ми демонструємо, як можна додатково покращити продуктивність моделі шляхом точного налаштування моделі за допомогою автоматичного налаштування моделі SageMaker. Автоматичне налаштування моделі, також відоме як оптимізація гіперпараметрів (HPO), знаходить найкращу версію моделі, запускаючи кілька завдань навчання на вашому наборі даних із діапазоном гіперпараметрів, які ви вказуєте. Потім він вибирає значення гіперпараметрів, які призводять до моделі, яка працює найкраще, як вимірюється метрикою, яку ви вибираєте, у наборі даних перевірки.
По-перше, ми встановили мету як показник точності даних перевірки (val_accuracy
) і визначив метрики для завдання налаштування, вказавши ім’я цільової метрики та регулярний вираз (регулярний вираз). Регулярний вираз використовується для узгодження вихідних даних алгоритму та запису числових значень показників. Далі ми вказуємо діапазони гіперпараметрів, щоб вибрати найкращі значення гіперпараметрів. Ми встановлюємо загальну кількість завдань налаштування як шість і розподіляємо ці завдання на три різні Обчислювальна хмара Amazon Elastic (Amazon EC2) екземпляри для виконання завдань паралельного налаштування. Перегляньте наступний код:
Ми передаємо ці значення, щоб створити екземпляр об’єкта SageMaker Estimator, подібно до того, що ми робили на попередньому етапі тонкого налаштування. Замість того, щоб дзвонити fit
функції Estimator
об'єкт, ми передаємо Estimator
об'єкт як параметр для HyperparameterTuner конструктор і викличте fit
його функція для запуску завдань налаштування:
Після завершення роботи з налаштування ми розгортаємо модель, яка дає найкращу оцінку метричних показників у наборі даних перевірки, робимо висновок на тому ж наборі даних перевірки, який ми робили в попередньому розділі, і обчислюємо оцінювальні метрики.
Результати показують, що модель, вибрана за допомогою автоматичного налаштування моделі, значно перевершує модель, налаштовану в попередньому розділі на наборі даних для тестування.
Розпізнавання іменованих об’єктів
Розпізнавання іменованих об’єктів (NER) — це процес виявлення та класифікації іменованих об’єктів за попередньо визначеними категоріями, такими як імена осіб, організацій, місцезнаходження та кількості. Існує багато реальних прикладів використання NER, таких як механізми рекомендацій, категоризація та призначення запитів на підтримку клієнтів потрібному відділу, вилучення важливої інформації зі звітів пацієнтів у сфері охорони здоров’я та класифікація вмісту з новин і блогів.
Розгорніть і запустіть висновок на попередньо навченій моделі
Ми розгортаємо En_core_web_md модель від просторий бібліотека. spaCy — бібліотека NLP з відкритим кодом, яку можна використовувати для різних завдань і має вбудовані методи для NER. Ми використовуємо AWS PyTorch Deep Learning Container (DLC) із режимом сценарію та встановлюємо бібліотеку spaCy як залежну поверхню контейнера.
Далі, точка входу для сценарію (аргумент entry_point.py
), містить увесь код для завантаження En_core_web_md
моделювати та робити висновки щодо даних, які надсилаються до кінцевої точки. Нарешті, нам ще потрібно забезпечити model_data
як попередньо підготовлену модель для висновку. Тому що попередньо навчені En_core_web_md
модель завантажується на льоту, що вказано в скрипті входу, надаємо порожній архівний файл. Після розгортання кінцевої точки ви можете викликати її безпосередньо з блокнота за допомогою SDK SageMaker Python Predictor
. Дивіться наступний код:
Вхідними даними для моделі є текстовий документ. Модель іменованих сутностей виділяє фрагменти іменників і іменовані сутності в текстовому документі та класифікує їх за різними типами (такими як люди, місця та організації). Приклади введення та виведення показані в наступному коді. The start_char
параметр вказує зсув символу для початку діапазону, і end_char
вказує на кінець прольоту.
Тонко налаштуйте попередньо навчену модель на спеціальному наборі даних
На цьому кроці ми демонструємо, як точно налаштувати попередньо підготовлені мовні моделі для NER на вашому власному наборі даних. Етап тонкого налаштування оновлює параметри моделі, щоб охопити характеристики ваших власних даних і підвищити точність. Ми використовуємо WikiANN (PAN-X) для точного налаштування DistilBERT-база без корпусу Модель трансформер від Hugging Face.
Набір даних розділено на набори для навчання, перевірки та тестування.
Далі ми вказуємо гіперпараметри моделі та використовуємо DLC AWS Hugging Face із режимом сценарію (аргумент entry_point
), щоб запустити завдання тонкого налаштування:
Після завершення роботи з тонкого налаштування ми розгортаємо кінцеву точку та надсилаємо запит цій кінцевій точці за допомогою тестових даних. Щоб запитати кінцеву точку, кожен текстовий рядок потрібно токенізувати в один або кілька токенів і надіслати в модель трансформатора. Кожен токен отримує передбачений іменований тег сутності. Оскільки кожен текстовий рядок можна токенізувати в один або кілька токенів, нам потрібно скопіювати базовий тег сутності з іменем правдивості рядка для всіх асоційованих з ним токенів. Наданий блокнот проведе вас через кроки, щоб досягти цього.
Нарешті, ми використовуємо вбудовані показники оцінки Hugging Face продовження для обчислення оціночних балів за даними тестування. Використані показники оцінки: загальна точність, загальне запам’ятовування, загальна F1 і точність. На наступному знімку екрана показано наші результати.
Ще більше покращте ефективність точного налаштування за допомогою автоматичного налаштування моделі SageMaker
Подібно до класифікації тексту, ми демонструємо, як ви можете ще більше покращити продуктивність моделі шляхом точного налаштування моделі за допомогою автоматичного налаштування моделі SageMaker. Щоб запустити завдання налаштування, нам потрібно визначити об’єктивну метрику, яку ми хочемо використовувати для оцінки продуктивності моделі на наборі даних перевірки (оцінка F1 у цьому випадку), діапазони гіперпараметрів для вибору найкращих значень гіперпараметрів, а також конфігурації завдання налаштування, такі як максимальна кількість завдань налаштування та кількість паралельних завдань для одночасного запуску:
Після завершення роботи з налаштування ми розгортаємо модель, яка дає найкращу оцінку метричних показників у наборі даних перевірки, робимо висновок на тому ж наборі даних перевірки, який ми робили в попередньому розділі, і обчислюємо оцінювальні метрики.
Ми бачимо, що модель з HPO досягає значно кращої продуктивності за всіма показниками.
Відповідь на запитання
Функція відповіді на запитання корисна, коли потрібно запитати велику кількість тексту для отримання конкретної інформації. Це дозволяє користувачеві поставити запитання природною мовою та отримати негайну та коротку відповідь. Системи відповідей на запитання, що працюють на базі НЛП, можна використовувати в пошукових системах та інтерфейсах телефонної розмови.
Розгорніть і запустіть висновок на попередньо навченій моделі
Наша попередньо навчена модель – це модель екстрактивних відповідей на питання (EQA). bert-large-uncased-whole-word-masking-finetuned-squad побудований на моделі Transformer від Hugging Face. Ми використовуємо DLC AWS PyTorch із режимом сценарію та встановлюємо Трансформатори бібліотека як залежність поверх контейнера. Подібно до завдання NER, ми надаємо порожній файл архіву в аргументі model_data
оскільки попередньо навчена модель завантажується на льоту. Після розгортання кінцевої точки ви можете викликати її безпосередньо з блокнота за допомогою SDK SageMaker Python Predictor
. Дивіться наступний код:
Все, що нам потрібно зробити, це побудувати об’єкт словника з двома ключами. context
це текст, з якого ми хочемо отримати інформацію. question
це запит на природній мові, який визначає, яку інформацію ми хочемо отримати. Ми називаємо predict
на нашому предикторі, і ми повинні отримати відповідь від кінцевої точки, яка містить найбільш ймовірні відповіді:
У нас є відповідь, і ми можемо роздрукувати найбільш ймовірні відповіді, які були витягнуті з попереднього тексту. Кожна відповідь має оцінку достовірності, яка використовується для ранжирування (але цю оцінку не слід тлумачити як справжню ймовірність). Окрім дослівної відповіді, ви також отримуєте початковий і кінцевий індекси символів відповіді з оригінального контексту:
Тепер ми вдосконалюємо цю модель за допомогою власного спеціального набору даних, щоб отримати кращі результати.
Тонко налаштуйте попередньо навчену модель на спеціальному наборі даних
На цьому кроці ми демонструємо, як точно налаштувати попередньо підготовлені мовні моделі для EQA на вашому власному наборі даних. Етап тонкого налаштування оновлює параметри моделі, щоб охопити характеристики ваших власних даних і підвищити точність. Ми використовуємо SQuAD2.0 набір даних для точного налаштування моделі вбудовування тексту bert-base-uncased від Hugging Face. Модель, доступна для точного налаштування, приєднує шар вилучення відповіді до моделі вбудовування тексту та ініціалізує параметри шару до випадкових значень. Етап тонкого налаштування точно налаштовує всі параметри моделі, щоб мінімізувати помилку передбачення вхідних даних, і повертає точно налаштовану модель.
Подібно до завдання класифікації тексту, набір даних (SQuAD2.0) розділений на набір для навчання, перевірки та тестування.
Далі ми вказуємо гіперпараметри моделі та використовуємо API JumpStart щоб запустити завдання тонкого налаштування:
Після завершення роботи з тонкого налаштування ми розгортаємо модель, виконуємо висновок на основі тестового набору даних і обчислюємо оціночні показники. Використані показники оцінки – це середній бал точної відповідності та середній бал F1. На наступному знімку екрана показано результати.
Ще більше покращте ефективність точного налаштування за допомогою автоматичного налаштування моделі SageMaker
Подібно до попередніх розділів, ми використовуємо a HyperparameterTuner
об'єкт для запуску завдань налаштування:
Після завершення роботи з налаштування ми розгортаємо модель, яка дає найкращу оцінку метричних показників у наборі даних перевірки, робимо висновок на тому ж наборі даних перевірки, який ми робили в попередньому розділі, і обчислюємо оцінювальні метрики.
Ми бачимо, що модель з HPO показує значно кращу продуктивність за даними тесту утримання.
Вилучення відносин
Вилучення зв’язків — це завдання вилучення семантичних зв’язків із тексту, які зазвичай виникають між двома або більше об’єктами. Вилучення зв’язків відіграє важливу роль у вилученні структурованої інформації з неструктурованих джерел, таких як необроблений текст. У цьому блокноті ми демонструємо два варіанти використання вилучення зв’язків.
Тонко налаштуйте попередньо навчену модель на спеціальному наборі даних
Ми використовуємо модель вилучення зв’язків, побудовану на a BERT-основа без корпусу моделі з використанням трансформаторів від Трансформери Hugging Face бібліотека. Модель для точного налаштування приєднує рівень лінійної класифікації, який приймає пару вбудованих маркерів, виведених моделлю вбудованого тексту, і ініціалізує параметри шару до випадкових значень. Етап тонкого налаштування точно налаштовує всі параметри моделі, щоб мінімізувати помилку передбачення вхідних даних, і повертає точно налаштовану модель.
Набір даних, який ми налаштовуємо на модель SemEval-2010 Завдання 8. Модель, отриману за допомогою тонкого налаштування, може бути використана для логічного висновку.
Набір даних містить набори для навчання, перевірки та тестування.
Ми використовуємо AWS PyTorch DLC із режимом сценарію з SageMaker Python SDK, де transformers
бібліотека встановлюється як залежність поверх контейнера. Ми визначаємо SageMaker PyTorch
оцінювач і набір гіперпараметрів, таких як попередньо навчена модель, швидкість навчання та номери епох для виконання тонкого налаштування. Код для точного налаштування моделі вилучення зв’язків визначено в entry_point.py
. Дивіться наступний код:
Ще більше покращте ефективність точного налаштування за допомогою автоматичного налаштування моделі SageMaker
Подібно до попередніх розділів, ми використовуємо a HyperparameterTuner
об’єкт для взаємодії з API налаштування гіперпараметрів SageMaker. Ми можемо почати роботу з налаштування гіперпараметрів, викликавши fit
метод:
Після завершення роботи з налаштування гіперпараметрів ми виконуємо висновок і перевіряємо оцінку.
Ми бачимо, що модель з HPO показує кращу продуктивність за даними тесту утримання.
Резюмування документа
Резюмування документа або тексту — це завдання конденсації великої кількості текстових даних у меншу підмножину осмислених речень, які представляють найважливішу або відповідну інформацію в оригінальному вмісті. Резюмування документів є корисною технікою для виділення важливої інформації з великої кількості текстових даних у кілька речень. Резюмування тексту використовується в багатьох випадках використання, таких як обробка документів і отримання інформації з блогів, статей і новин.
Цей блокнот демонструє розгортання моделі підсумовування документів Т5-основа від Трансформери Hugging Face бібліотека. Ми також тестуємо розгорнуті кінцеві точки за допомогою текстової статті та оцінюємо результати за допомогою вбудованої метрики оцінки Hugging Face ЧЕРВОНИЙ.
Подібно до зошитів для відповідей на запитання та NER, ми використовуємо PyTorchModel
із SageMaker Python SDK разом із entry_point.py
сценарій для завантаження базової моделі T5 до кінцевої точки HTTPS. Після успішного розгортання кінцевої точки ми можемо надіслати кінцевій точці текстову статтю, щоб отримати прогнозовану відповідь:
Далі ми оцінюємо та порівнюємо текстову статтю та результат узагальнення за допомогою метрики ROUGE. Розраховуються три оцінювальні метрики: rougeN
, rougeL
та rougeLsum
. rougeN
вимірює кількість збігів n-grams
між створеним моделлю текстом (результатом підсумовування) і a reference
(введення тексту). Метрики rougeL
та rougeLsum
виміряти найдовші відповідні послідовності слів шляхом пошуку найдовших спільних підрядків у згенерованих і довідкових підсумках. Для кожного показника обчислюються довірчі інтервали для точності, запам’ятовування та оцінка F1. Див. наступний код:
Прибирати
Ресурси, створені для цього рішення, можна видалити за допомогою Видалити всі ресурси із IDE SageMaker Studio. Кожен блокнот також містить розділ очищення з кодом для видалення кінцевих точок.
Висновок
У цьому дописі ми продемонстрували, як використовувати найсучасніші методи ML для вирішення п’яти різних завдань NLP: узагальнення документів, класифікація тексту, запитання та відповіді, розпізнавання іменованих об’єктів і вилучення зв’язків за допомогою Jumpstart. Почніть роботу з Jumpstart зараз!
Про авторів
Доктор Синь Хуан є прикладним науковцем для вбудованих алгоритмів Amazon SageMaker JumpStart і Amazon SageMaker. Він зосереджується на розробці масштабованих алгоритмів машинного навчання. Його наукові інтереси пов’язані з обробкою природної мови, глибоким вивченням табличних даних та надійним аналізом непараметричної просторово-часової кластеризації. Він опублікував багато робіт у конференціях ACL, ICDM, KDD та журналі Royal Statistical Society: Series A.
Вівек Гангасані є старшим архітектором рішень машинного навчання в Amazon Web Services. Він допомагає стартапам створювати та вводити в дію програми AI/ML. Зараз він зосереджений на поєднанні свого досвіду в контейнерах і машинному навчанні, щоб надавати рішення щодо MLOps, ML Inference і ML з низьким кодом. У вільний час він любить пробувати нові ресторани та досліджувати нові тенденції в штучному інтелекті та глибокому навчанні.
Джеремі Коен є архітектором рішень з AWS, де він допомагає клієнтам створювати передові хмарні рішення. У вільний час він любить короткі прогулянки по пляжу, досліджуючи район затоки з родиною, лагодити речі по дому, ламати речі по дому та готувати барбекю.
Нілам Кошія є архітектором корпоративних рішень в AWS. Наразі вона зосереджується на тому, щоб допомогти корпоративним клієнтам у їхньому переході на хмару для досягнення стратегічних бізнес-результатів. У вільний час вона любить читати та бувати на свіжому повітрі.
- Розширений (300)
- AI
- ai мистецтво
- AI арт генератор
- ai робот
- Amazon SageMaker
- Amazon SageMaker JumpStart
- штучний інтелект
- сертифікація штучного інтелекту
- штучний інтелект у банківській справі
- робот зі штучним інтелектом
- роботи зі штучним інтелектом
- програмне забезпечення для штучного інтелекту
- AWS Машинне навчання
- blockchain
- блокчейн конференція AI
- coingenius
- розмовний штучний інтелект
- крипто конференція ai
- dall's
- глибоке навчання
- експерт (400)
- у вас є гугл
- навчання за допомогою машини
- plato
- платон ai
- Інформація про дані Платона
- Гра Платон
- PlatoData
- platogaming
- масштаб ai
- синтаксис
- зефірнет