Онлайн-розмови повсюдно поширені в сучасному житті, охоплюючи галузі від відеоігор до телекомунікацій. Це призвело до експоненційного зростання обсягу даних онлайн-розмов, що допомогло в розробці найсучасніших систем обробки природної мови (NLP), таких як чат-боти та моделі генерації природної мови (NLG). Згодом також розвивалися різні техніки НЛП для аналізу тексту. Це обумовлює потребу в повністю керованій службі, яку можна інтегрувати в програми за допомогою викликів API без потреби в широкому досвіді машинного навчання (ML). AWS пропонує попередньо навчені сервіси AWS AI, наприклад «Амазонка», який може ефективно обробляти сценарії використання НЛП, включаючи класифікацію, підсумовування тексту, розпізнавання сутностей тощо, щоб збирати ідеї з тексту.
Крім того, онлайн-розмови призвели до широкого поширення явища нетрадиційного використання мови. Традиційні техніки НЛП часто погано працюють із цими текстовими даними через постійну зміну словникових запасів, які існують на різних платформах, а також значні лексичні відхилення слів від правильної англійської мови, або випадково, або навмисно як форма змагальної атаки. .
У цій публікації ми описуємо кілька підходів ML для текстової класифікації онлайн-розмов за допомогою інструментів і сервісів, доступних на AWS.
Передумови
Перш ніж заглиблюватися в цей сценарій використання, виконайте наступні передумови:
- Налаштуйте Обліковий запис AWS та створити користувача IAM.
- Налаштуйте CLI AWS та SDK AWS.
- (Необов’язково) Налаштуйте свій Середовище IDE Cloud9.
Набір даних
Для цього допису ми використовуємо Jigsaw Ненавмисне зміщення в наборі даних класифікації токсичності, еталон для конкретної проблеми класифікації токсичності в онлайн-розмовах. Набір даних містить ярлики токсичності, а також кілька атрибутів підгруп, таких як непристойність, напад на ідентифікацію, образа, погроза та відверто сексуальний характер. Мітки надаються як дробові значення, які представляють частку людей-анотаторів, які повірили, що атрибут застосований до даного фрагмента тексту, і рідко бувають одностайними. Щоб створити двійкові мітки (наприклад, токсичні чи нетоксичні), до дробових значень застосовується поріг 0.5, а коментарі зі значеннями, які перевищують порогове значення, розглядаються як позитивний клас для цієї мітки.
Вбудовування підслів і RNN
Для нашого першого підходу до моделювання ми використовуємо комбінацію вбудовування підслів і рекурентних нейронних мереж (RNN) для навчання моделей класифікації тексту. Вбудовування підслів було введено Бояновський та ін. у 2017 році як покращення попередніх методів вбудовування на рівні слів. Традиційні моделі Word2Vec skip-gram навчені вивчати статичне векторне представлення цільового слова, яке оптимально передбачає контекст цього слова. З іншого боку, моделі підслів представляють кожне цільове слово як пакет n-грам символів, які складають слово, де n-грама складається з набору n послідовних символів. Цей метод дозволяє моделі вбудовування краще представляти основну морфологію споріднених слів у корпусі, а також обчислювати вбудовування для нових слів, що не є словниковим (OOV). Це особливо важливо в контексті онлайн-розмов, проблемного простору, в якому користувачі часто неправильно пишуть слова (іноді навмисно, щоб уникнути виявлення), а також використовують унікальну лексику, що постійно розвивається, яку може не охопити загальний навчальний корпус.
Amazon SageMaker дозволяє легко навчати та оптимізувати модель вбудованого підслова без нагляду на вашому власному корпусі доменних текстових даних за допомогою вбудованої Алгоритм BlazingText. Ми також можемо завантажити існуючі моделі загального призначення, навчені на великих наборах даних онлайнового тексту, як-от наведені нижче Англомовні моделі доступні безпосередньо з fastText. З екземпляра блокнота SageMaker просто запустіть наступне, щоб завантажити попередньо підготовлену модель fastText:
Незалежно від того, навчили ви власні вбудовування за допомогою BlazingText чи завантажили попередньо навчену модель, результатом буде архівований двійковий файл моделі, який ви можете використовувати з бібліотекою gensim для вбудовування певного цільового слова як вектора на основі його складових підслів:
Після попередньої обробки заданого сегмента тексту ми можемо використати цей підхід для створення векторного представлення для кожного зі складових слів (відокремлених пробілами). Потім ми використовуємо SageMaker і структуру глибокого навчання, таку як PyTorch, щоб навчити налаштовану RNN із двойковою або багатозначною метою класифікації, щоб передбачити, чи є текст токсичним чи ні, і конкретний підтип токсичності на основі позначених навчальних прикладів.
Щоб завантажити попередньо оброблений текст у Служба простого зберігання Amazon (Amazon S3), використовуйте такий код:
Щоб розпочати навчання масштабованої моделі з кількома GPU за допомогою SageMaker, введіть такий код:
В , ми визначаємо набір даних PyTorch, який використовує train.py
підготувати текстові дані для навчання та оцінки моделі:
Зауважте, що цей код передбачає, що vectors.zip
файл, що містить ваші вбудовані файли fastText або BlazingText, буде збережено в .
Крім того, ви можете легко самостійно розгортати заздалегідь підготовлені моделі fastText для живих кінцевих точок SageMaker, щоб миттєво обчислювати вектори вбудовування для використання у відповідних завданнях на рівні слів. Дивіться наступне Приклад GitHub для більш докладної інформації.
Трансформери з обличчям, що обіймається
Для нашого другого підходу до моделювання ми переходимо до використання трансформаторів, представлених у статті Увага – це все, що вам потрібно. Трансформатори — це моделі глибокого навчання, розроблені для навмисного уникнення пасток RNN, покладаючись на механізм самоуважності для визначення глобальних залежностей між входом і виходом. Архітектура моделі Transformer дозволяє значно краще розпаралелювати і може досягти високої продуктивності за відносно короткий час навчання.
Створений на основі успіху Трансформерів, BERT, представлений у статті BERT: Попередня підготовка глибоких двонаправлених трансформаторів для розуміння мови, додано двонаправлене попереднє навчання для представлення мови. Натхненний завданням Cloze, BERT попередньо навчений моделюванню замаскованої мови (MLM), у якому модель вчиться відновлювати вихідні слова для випадково замаскованих токенів. Модель BERT також попередньо навчена на завдання передбачення наступного речення (NSP), щоб передбачити, чи два речення знаходяться в правильному порядку читання. З моменту появи в 2018 році BERT і його варіації широко використовуються в завданнях класифікації текстів.
Наше рішення використовує варіант BERT, відомий як RoBERTa, який був представлений у статті RoBERTa: надійно оптимізований підхід до переробки BERT. RoBERTa додатково покращує продуктивність BERT у різноманітних завданнях природної мови за рахунок оптимізованого навчання моделі, включаючи довше навчання моделей на в 10 разів більшому корпусі, використовуючи оптимізовані гіперпараметри, динамічне випадкове маскування, видалення завдання NSP тощо.
Наші моделі на основі RoBERTa використовують Обійми трансформатори обличчя бібліотека, яка є популярним фреймворком Python з відкритим вихідним кодом, який забезпечує високоякісні реалізації всіх типів найсучасніших моделей Transformer для різноманітних завдань NLP. Hugging Face співпрацює з AWS щоб ви могли легко навчати та розгортати моделі Transformer на SageMaker. Ця функція доступна через Зображення контейнера AWS Deep Learning Hugging Face, які включають бібліотеки Transformers, Tokenizers і Datasets, а також оптимізовану інтеграцію з SageMaker для навчання моделі та висновків.
У нашій реалізації ми успадковуємо основу архітектури RoBERTa від фреймворку Hugging Face Transformers і використовуємо SageMaker для навчання та розгортання нашої власної моделі класифікації тексту, яку ми називаємо RoBERTox. RoBERTox використовує парне кодування байтів (BPE), введене в Нейронний машинний переклад рідкісних слів з одиницями підслова, щоб токенізувати введений текст у представлення підслов. Потім ми можемо навчити наші моделі та токенізери на даних Jigsaw або будь-якому великому доменно-спеціальному корпусі (наприклад, журналах чату з певної гри) і використовувати їх для індивідуальної класифікації тексту. Ми визначаємо наш власний клас моделі класифікації в такому коді:
Перед навчанням ми готуємо наші текстові дані та мітки за допомогою бібліотеки наборів даних Hugging Face і завантажуємо результат до Amazon S3:
Ми починаємо навчання моделі подібно до RNN:
Нарешті, наступний фрагмент коду Python ілюструє процес обслуговування RoBERTox через живу кінцеву точку SageMaker для класифікації тексту в реальному часі для запиту JSON:
Оцінка ефективності моделі: набір даних ненавмисного зміщення Jigsaw
У наведеній нижче таблиці наведено показники ефективності для моделей, навчених і оцінених за даними конкурсу Jigsaw Unintended Bias in Toxicity Detection Kaggle. Ми підготували моделі для трьох різних, але взаємопов’язаних завдань:
- Двійковий відмінок – Модель було навчено на повному навчальному наборі даних для прогнозування
toxicity
тільки етикетка - Дрібнозернистий корпус – Підмножина навчальних даних, для яких
toxicity>=0.5
використовувався для прогнозування інших міток підтипу токсичності (obscene
,threat
,insult
,identity_attack
,sexual_explicit
) - Багатозадачний кейс – Повний навчальний набір даних використовувався для прогнозування всіх шести міток одночасно
Ми навчили моделі RNN і RoBERTa для кожного з цих трьох завдань за допомогою дробових міток, наданих Jigsaw, які відповідають частці анотаторів, які вважали, що мітка підходить для тексту, а також за допомогою двійкових міток у поєднанні з вагами класів у мережі. функція втрат. У схемі бінарного маркування пропорції були встановлені на рівні 0.5 для кожної доступної мітки (1, якщо мітка>=0.5, 0 в іншому випадку), а функції втрат моделі були зважені на основі відносних пропорцій кожної двійкової мітки в навчальному наборі даних. У всіх випадках ми виявили, що використання дробових міток безпосередньо призвело до найкращої продуктивності, вказуючи на додаткову цінність інформації, притаманну ступеню узгодженості між анотаторами.
Ми відображаємо два показники моделі: середню точність (AP), яка надає зведення кривої точності-запам’ятовування шляхом обчислення зваженого середнього значень точності, досягнутих за кожним порогом класифікації, і площу під кривою робочих характеристик приймача (AUC) , який агрегує продуктивність моделі за пороговими значеннями класифікації щодо частоти справжніх позитивних результатів і частоти помилкових позитивних результатів. Зауважте, що справжній клас для даного екземпляра тексту в тестовому наборі відповідає тому, чи справжня частка більша або дорівнює 0.5 (1, якщо label>=0.5, 0 в іншому випадку).
. | Вбудовування підслова + RNN | РоБЕРТа | ||
. | Дробові мітки | Двійкові мітки + зважування класу | Дробові мітки | Двійкові мітки + зважування класу |
двійковий | AP=0.746, AUC=0.966 | AP=0.730, AUC=0.963 | AP=0.758, AUC=0.966 | AP=0.747, AUC=0.963 |
Дрібнозернистий | AP=0.906, AUC=0.909 | AP=0.850, AUC=0.851 | AP=0.913, AUC=0.913 | AP=0.911, AUC=0.912 |
Багатозадачний | AP=0.721, AUC=0.972 | AP=0.535, AUC=0.907 | AP=0.740, AUC=0.972 | AP=0.711, AUC=0.961 |
Висновок
У цій публікації ми представили два підходи до класифікації тексту для онлайн-розмов за допомогою сервісів AWS ML. Ви можете узагальнити ці рішення на платформах онлайн-комунікації, причому такі галузі, як ігри, особливо ймовірно, виграють від покращеної здатності виявляти шкідливий вміст. У наступних публікаціях ми плануємо додатково обговорити наскрізну архітектуру для безперебійного розгортання моделей у вашому обліковому записі AWS.
Якщо ви бажаєте допомогти прискорити використання ML у своїх продуктах і процесах, зверніться до Лабораторія рішень Amazon ML.
Про авторів
Райан Бренд є дослідником даних у лабораторії рішень Amazon Machine Learning Solutions. Він має певний досвід застосування машинного навчання до проблем охорони здоров’я та наук про життя, а у вільний час любить читати історію та наукову фантастику.
Сурав Бхабеш є спеціалістом з обробки даних у Amazon ML Solutions Lab. Він розробляє рішення AI/ML для клієнтів AWS у різних галузях. Його спеціалізація — обробка природної мови (NLP), і він захоплений глибоким навчанням. Поза роботою любить читати книги та подорожувати.
Лютун Чжоу є прикладним науковцем у Amazon ML Solutions Lab. Він створює індивідуальні рішення AI/ML для клієнтів AWS у різних галузях. Він спеціалізується на обробці природної мови (NLP) і захоплюється мультимодальним глибоким навчанням. Він ліричний тенор і любить співати опери поза роботою.
Сіа Голамі є старшим спеціалістом із обробки даних у Amazon ML Solutions Lab, де він створює рішення AI/ML для клієнтів у різних галузях. Він захоплений обробкою природної мови (НЛП) і глибоким навчанням. Поза роботою Сія любить проводити час на природі та грати в теніс.
Даніель Горовиц є науковим менеджером прикладного штучного інтелекту. Він очолює групу вчених у Amazon ML Solutions Lab, яка працює над вирішенням проблем клієнтів і стимулює впровадження хмарних технологій за допомогою ML.
- Coinsmart. Найкраща в Європі біржа біткойн та криптовалют.
- Платоблокчейн. Web3 Metaverse Intelligence. Розширені знання. БЕЗКОШТОВНИЙ ДОСТУП.
- CryptoHawk. Альткойн Радар. Безкоштовне випробування.
- Джерело: https://aws.amazon.com/blogs/machine-learning/text-classification-for-online-conversations-with-machine-learning-on-aws/
- '
- "
- 10
- 100
- 7
- a
- здатність
- МЕНЮ
- прискорення
- рахунки
- Achieve
- досягнутий
- через
- доданий
- Прийняття
- Угода
- AI
- Послуги ШІ
- ВСІ
- дозволяє
- Amazon
- кількість
- аналіз
- API
- застосування
- прикладної
- Застосовувати
- Застосування
- підхід
- підходи
- відповідний
- архітектура
- ПЛОЩА
- Атрибути
- доступний
- середній
- AWS
- сумка
- еталонний тест
- користь
- КРАЩЕ
- Краще
- між
- більший
- книги
- Будує
- вбудований
- call
- випадок
- випадків
- символи
- клас
- класифікація
- хмара
- код
- поєднання
- комбінований
- коментарі
- Комунікація
- конкурс
- повний
- складається
- обчислення
- обчислення
- обчислення
- поспіль
- постійно
- контакт
- Контейнер
- містить
- зміст
- Розмова
- розмови
- створювати
- крива
- виготовлений на замовлення
- клієнт
- Клієнти
- дані
- вчений даних
- глибокий
- розгортання
- розгортання
- описувати
- призначений
- деталі
- Виявлення
- Визначати
- розробка
- різний
- Розмір
- безпосередньо
- обговорювати
- дисплей
- скачати
- управляти
- під час
- динамічний
- кожен
- легко
- фактично
- включіть
- кінець в кінець
- Кінцева точка
- англійська
- Що натомість? Створіть віртуальну версію себе у
- суб'єкта
- оцінка
- еволюціонує
- приклад
- Приклади
- існуючий
- досвід
- експертиза
- обширний
- Особа
- мода
- Художня література
- Перший
- після
- форма
- Вперед
- знайдений
- дробові
- Рамки
- Безкоштовна
- від
- Повний
- функція
- функціональність
- Функції
- далі
- майбутнє
- гра
- Games
- азартні ігри
- Загальне
- Головна мета
- породжувати
- покоління
- Глобальний
- великий
- Зростання
- обробляти
- голова
- охорона здоров'я
- допомога
- допоміг
- Високий
- високоякісний
- історія
- HTTPS
- людина
- Особистість
- реалізація
- важливо
- поліпшений
- поліпшення
- включати
- У тому числі
- промисловості
- інформація
- притаманне
- вхід
- розуміння
- натхненний
- екземпляр
- Образа
- інтегрований
- інтеграція
- IT
- Головоломка
- робота
- ключі
- відомий
- lab
- етикетка
- маркування
- етикетки
- мова
- великий
- більше
- шар
- Веде за собою
- УЧИТЬСЯ
- вивчення
- Led
- бібліотека
- Life Sciences
- Ймовірно
- жити
- загрузка
- машина
- навчання за допомогою машини
- зробити
- РОБОТИ
- вдалося
- менеджер
- маска
- маски
- матч
- Матриця
- механізм
- пам'ять
- методика
- Метрика
- може бути
- ML
- модель
- Моделі
- більше
- множинний
- Природний
- природа
- мережу
- мереж
- наступний
- ноутбук
- номер
- Пропозиції
- онлайн
- операційний
- Оптимізувати
- оптимізований
- порядок
- оригінал
- Інше
- інакше
- власний
- Папір
- особливо
- партнерська
- пристрасний
- продуктивність
- частина
- Платформи
- ігри
- будь ласка
- популярний
- позитивний
- Пости
- передбачати
- прогноз
- Готувати
- попередній
- Проблема
- проблеми
- процес
- процеси
- обробка
- Продукти
- Проекція
- за умови
- забезпечує
- читання
- реального часу
- Відновлювати
- доречний
- видалення
- представляти
- подання
- представляє
- запросити
- повертати
- Умови повернення
- Роль
- прогін
- масштабовані
- схема
- наука
- НАУКИ
- вчений
- Вчені
- безшовні
- сегмент
- обслуговування
- Послуги
- виступаючої
- комплект
- кілька
- Короткий
- значний
- аналогічний
- простий
- з
- SIX
- Розмір
- рішення
- Рішення
- ВИРІШИТИ
- Простір
- пробіли
- спеціалізується
- Спеціальність
- конкретний
- Витрати
- впроваджений
- Штати
- зберігання
- успіх
- Systems
- Мета
- завдання
- команда
- методи
- зв'язок
- тест
- Команда
- три
- поріг
- через
- час
- times
- Жетони
- інструменти
- факел
- традиційний
- поїзд
- Навчання
- перехід
- Переклад
- Подорож
- при
- створеного
- використання
- користувачі
- перевірка достовірності
- значення
- різноманітність
- різний
- Відео
- відеоігри
- Чи
- ВООЗ
- в
- без
- слова
- Work
- робочий
- вашу