Створіть систему сповіщень у режимі реального часу на основі новин за допомогою Twitter, Amazon SageMaker і Hugging Face PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Створіть систему сповіщень у режимі реального часу на основі новин за допомогою Twitter, Amazon SageMaker і Hugging Face

Сьогодні соціальні мережі є величезним джерелом новин. Користувачі покладаються на такі платформи, як Facebook і Twitter, щоб споживати новини. Для певних галузей, таких як страхові компанії, перші респонденти, правоохоронні та державні установи, здатність швидко обробляти новини про відповідні події, що відбуваються, може допомогти їм вжити заходів, поки ці події ще розгортаються.

Нерідко організації, які намагаються отримати цінність із текстових даних, шукають рішення, яке не передбачає навчання складної моделі NLP (обробки природної мови). Для таких організацій більш практичним є використання попередньо навченої моделі НЛП. Крім того, якщо обрана модель не задовольняє їхні показники успіху, організації хочуть мати можливість легко вибрати іншу модель і переоцінити її.

Наразі простіше, ніж будь-коли, отримувати інформацію з текстових даних завдяки наступному:

  • Поява найсучасніших архітектур NLP загального призначення, таких як трансформери
  • Здатність розробників і дослідників даних швидко створювати, навчати та розгортати моделі машинного навчання (ML) у масштабі хмари за допомогою таких сервісів, як Amazon SageMaker
  • Наявність тисяч попередньо підготовлених моделей НЛП сотнями мов і з підтримкою багатьох фреймворків, наданих спільнотою на таких платформах, як Hugging Face Hub

У цій публікації ми покажемо вам, як створити систему сповіщень у реальному часі, яка споживає новини з Twitter і класифікує твіти за допомогою попередньо навченої моделі з Hugging Face Hub. Ви можете використовувати це рішення для нульової класифікації, тобто ви можете класифікувати твіти практично за будь-яким набором категорій і розгортати модель за допомогою SageMaker для висновків у реальному часі.

Крім того, якщо ви шукаєте інформацію про розмови ваших клієнтів і покращуєте впізнаваність бренду, аналізуючи взаємодію в соціальних мережах, ми рекомендуємо вам ознайомитися з Інструментальна панель соціальних медіа на основі штучного інтелекту. Розчин використовує «Амазонка», повністю керований NLP-сервіс, який відкриває цінну інформацію та зв’язки в тексті, не вимагаючи досвіду машинного навчання.

Навчання з нульовим пострілом

Сфери НЛП і розуміння природної мови (NLU) швидко розвинулися для вирішення випадків використання, включаючи класифікацію тексту, відповіді на запитання, резюмування, генерацію тексту тощо. Ця еволюція стала можливою частково завдяки появі найсучасніших архітектур загального призначення, таких як трансформатори, а також наявності більшої кількості більш якісних текстових корпусів, доступних для навчання таких моделей.

Архітектура трансформатора — це складна нейронна мережа, яка потребує досвіду роботи в певній області та величезної кількості даних, щоб навчатися з нуля. Поширеною практикою є використання попередньо навченого сучасного трансформатора, такого як BERT, RoBERTa, T5, GPT-2 або DistilBERT, і точне налаштування (перенесення навчання) моделі для конкретного випадку використання.

Тим не менш, навіть виконання навчання переносу на попередньо підготовленій моделі НЛП часто може бути складним завданням, яке потребує великої кількості текстових даних із мітками та команди експертів для обробки даних. Ця складність не дозволяє більшості організацій ефективно використовувати ці моделі, але нульове навчання допомагає практикам ML та організаціям подолати цей недолік.

Нульове навчання — це спеціальне завдання ML, у якому класифікатор навчається на одному наборі міток під час навчання, а потім під час висновку оцінюється на іншому наборі міток, якого класифікатор ніколи раніше не бачив. У NLP ви можете використовувати класифікатор нульової послідовності, навчений на задачі логічного висновку з природної мови (NLI), щоб класифікувати текст без будь-якого тонкого налаштування. У цій публікації ми використовуємо популярний NLI БАРТ модель bart-large-mnli для класифікації твітів. Це велика попередньо навчена модель (1.6 ГБ), доступна в центрі моделей Hugging Face.

Hugging Face — це компанія штучного інтелекту, яка керує платформою з відкритим кодом (Hugging Face Hub) із тисячами попередньо підготовлених моделей NLP (трансформерів) більш ніж 100 різними мовами та з підтримкою різних фреймворків, таких як TensorFlow і PyTorch. Бібліотека transformers допомагає розробникам і дослідникам даних розпочати роботу над складними завданнями NLP і NLU, такими як класифікація, вилучення інформації, відповіді на запитання, узагальнення, переклад і генерація тексту.

AWS і Hugging Face співпрацюють, щоб спростити та прискорити впровадження моделей НЛП. Тепер доступні набір контейнерів глибокого навчання (DLC) для навчання та висновків у PyTorch або TensorFlow, а також оцінювачі та предиктори Hugging Face для SDK SageMaker Python. Ці можливості допомагають розробникам із будь-яким рівнем досвіду легко розпочати роботу з НЛП.

Огляд рішення

Ми пропонуємо робоче рішення, яке отримує твіти в режимі реального часу з вибраних облікових записів Twitter. Для демонстрації нашого рішення ми використовуємо три облікові записи Amazon Web Services (@awscloud), AWS Security (@AWSSecurityInfo) і Amazon Science (@AmazonScience) і класифікувати їх вміст за однією з таких категорій: безпека, база даних, обчислення, зберігання та машинне навчання. Якщо модель повертає категорію з достовірністю більше 40%, надсилається сповіщення.

У наступному прикладі модель віднесла твіт від Amazon Web Services до категорії машинного навчання з достовірністю 97%, створивши сповіщення.

Рішення покладається на попередньо навчену модель трансформатора Hugging Face (від Hugging Face Hub) для класифікації твітів на основі набору міток, які надаються під час висновку — модель не потребує навчання. На наступних знімках екрана показано більше прикладів і те, як вони були класифіковані.
Кілька відповідних прикладів
Ми радимо вам спробувати рішення на собі. Просто завантажте вихідний код із GitHub сховище і дотримуйтесь інструкцій щодо розгортання у файлі README.

Архітектура рішення

Рішення підтримує відкрите з’єднання з кінцевою точкою Twitter і, коли надходить новий твіт, надсилає повідомлення в чергу. Споживач читає повідомлення з черги, викликає кінцеву точку класифікації та, залежно від результатів, повідомляє кінцевого користувача.

Нижче наведено діаграму архітектури рішення.
Обсяг рішення
Робочий процес рішення складається з таких компонентів:

  1. Рішення покладається на Twitter Stream API, щоб отримувати твіти, які відповідають налаштованим правилам (твіти з облікових записів, які вас цікавлять), у режимі реального часу. Для цього програма, що працює всередині контейнера, підтримує відкрите з’єднання з кінцевою точкою Twitter. Звертатися до API Twitter для більш докладної інформації.
  2. Контейнер працює далі Служба еластичних контейнерів Amazon (Amazon ECS), повністю керована служба оркестровки контейнерів, яка полегшує розгортання, керування та масштабування контейнерних програм. Одне завдання виконується в безсерверній інфраструктурі, якою керує AWS Fargate.
  3. Маркер носія Twitter надійно зберігається в Зберігання параметрів AWS Systems Manager, здатність Менеджер систем AWS який забезпечує безпечне ієрархічне зберігання конфігураційних даних і секретів. Зображення контейнера розміщено на Реєстр контейнерів Amazon Elastic (Amazon ECR), повністю керований реєстр контейнерів, що пропонує високопродуктивний хостинг.
  4. Щоразу, коли надходить новий твіт, програма-контейнер поміщає твіт у Служба простої черги Amazon (Amazon SQS) черга. Amazon SQS — це повністю керована служба черги повідомлень, яка дає змогу відокремлювати та масштабувати мікросервіси, розподілені системи та безсерверні програми.
  5. Логіка рішення полягає в AWS Lambda функція. Lambda — це безсерверний обчислювальний сервіс, керований подіями. Функція споживає нові твіти з черги та класифікує їх, викликаючи кінцеву точку.
  6. Кінцева точка покладається на модель Hugging Face і розміщена на SageMaker. Кінцева точка виконує висновок і виводить клас твіту.
  7. Залежно від класифікації функція генерує сповіщення через Служба простих сповіщень Amazon (Amazon SNS), повністю керована служба обміну повідомленнями. Ви можете підписатися на тему SNS, і кілька пунктів призначення зможуть отримати це сповіщення (див Місця призначення подій Amazon SNS). Наприклад, ви можете доставити сповіщення до папки "Вхідні" як повідомлення електронної пошти (див Повідомлення по електронній пошті).

Розгортайте моделі Hugging Face за допомогою SageMaker

Ви можете вибрати будь-яку з понад 10,000 XNUMX загальнодоступних моделей із Hugging Face Model Hub і розгорнути їх за допомогою SageMaker за допомогою DLC «Обіймати обличчя»..

При використанні AWS CloudFormation, ви вибираєте один із загальнодоступних Контейнери для визначення обличчя обіймів і налаштувати модель і завдання. Це рішення використовує facebook/bart-large-mnli модель і завдання класифікації нульового удару, але ви можете вибрати будь-яку з моделей під Класифікація без стрільби на Hugging Face Model Hub. Ви налаштовуєте їх, встановлюючи змінні середовища HF_MODEL_ID і HF_TASK у вашому шаблоні CloudFormation, як у наступному коді:

SageMakerModel:
  Type: AWS::SageMaker::Model
  Properties:
    ExecutionRoleArn: !GetAtt SageMakerModelRole.Arn
    PrimaryContainer:
      Image: 763104351884.dkr.ecr.us-east-1.amazonaws.com/huggingface-pytorch-inference:1.7-transformers4.6-cpu-py36-ubuntu18.04
      Environment:
        HF_MODEL_ID: facebook/bart-large-mnli
        HF_TASK: zero-shot-classification
        SAGEMAKER_CONTAINER_LOG_LEVEL: 20
        SAGEMAKER_REGION: us-east-1

Крім того, якщо ви не використовуєте AWS CloudFormation, ви можете досягти тих самих результатів за допомогою кількох рядків коду. Звертатися до Розгортайте моделі в Amazon SageMaker для більш докладної інформації.

Щоб класифікувати вміст, ви просто викликаєте кінцеву точку SageMaker. Нижче наведено фрагмент коду Python:

endpoint_name = os.environ['ENDPOINT_NAME']
labels = os.environ['ENDPOINT_NAME']

data = {
    'inputs': tweet,
    'parameters': {
        'candidate_labels': labels,
        'multi_class': False
    }
}

response = sagemaker.invoke_endpoint(EndpointName=endpoint_name,
                                     ContentType='application/json',
                                     Body=json.dumps(data))

response_body = json.loads(response['Body'].read())

Зверніть увагу на Помилковий значення для мульти_клас параметр, який вказує на те, що сума всіх ймовірностей для кожного класу становитиме 1.

Покращення рішення

Ви можете покращити запропоноване тут рішення, зберігаючи твіти та результати моделі. Служба простого зберігання Amazon (Amazon S3), служба зберігання об’єктів, є одним із варіантів. Ви можете записувати твіти, результати та інші метадані як об’єкти JSON у сегмент S3. Потім ви можете виконувати спеціальні запити щодо цього вмісту за допомогою Амазонка Афіна, інтерактивна служба запитів, яка полегшує аналіз даних в Amazon S3 за допомогою стандартного SQL.

Ви можете використовувати історію не лише для отримання інформації, але й для навчання спеціальної моделі. Ви можете скористатися підтримкою Hugging Face для навчання моделі з вашими власними даними за допомогою SageMaker. Дізнайтеся більше на Проведіть навчання на Amazon SageMaker.

Реальні випадки використання

Клієнти вже експериментують із моделями Hugging Face на SageMaker. Сегурос Болівар, колумбійська фінансова та страхова компанія, заснована в 1939 році, є прикладом.

«Ми розробили рішення для сповіщення про загрози для клієнтів і страхових брокерів. Ми використовуємо попередньо навчені моделі НЛП Hugging Face для класифікації твітів із відповідних облікових записів, щоб генерувати сповіщення для наших клієнтів майже в реальному часі як стратегію запобігання, щоб допомогти зменшити претензії. Претензія виникає через те, що клієнти не усвідомлюють рівня ризику, якому вони піддаються. Рішення дозволяє нам підвищити обізнаність наших клієнтів, перетворюючи ризик на щось, що можна виміряти в конкретних ситуаціях».

– Джуліан Ріко, керівник відділу досліджень і знань Seguros Bolívar.

Сегурос Болівар працював з AWS над перебудовою їхнього рішення; тепер він покладається на SageMaker і нагадує описаний у цій публікації.

Висновок

Класифікація з нульовим ударом ідеальна, коли у вас мало даних для навчання спеціального текстового класифікатора або коли ви не можете дозволити собі навчання спеціальної моделі NLP. Для спеціалізованих випадків використання, коли текст базується на конкретних словах або термінах, краще використовувати контрольовану модель класифікації на основі спеціального навчального набору.

У цій публікації ми показали вам, як створити класифікатор новин за допомогою моделі нульового знімка Hugging Face на AWS. Ми використовували Twitter як джерело новин, але ви можете вибрати джерело новин, яке більше відповідає вашим потребам. Крім того, ви можете легко змінити модель, просто вкажіть обрану модель у шаблоні CloudFormation.

Вихідний код див GitHub сховище Він містить повні інструкції з налаштування. Ви можете клонувати, змінювати, розгортати та запускати його самостійно. Ви також можете використовувати його як відправну точку та налаштувати категорії та логіку сповіщень або створити інше рішення для подібного випадку використання.

Спробуйте, будь ласка, і повідомте нам, що ви думаєте. Як завжди, ми з нетерпінням чекаємо ваших відгуків. Ви можете надіслати його своїм звичайним контактам служби підтримки AWS або в Форум AWS для SageMaker.


Про авторів

Створіть систему сповіщень у режимі реального часу на основі новин за допомогою Twitter, Amazon SageMaker і Hugging Face PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Девід Ларедо є архітектором прототипування в AWS Envision Engineering в Латинської Америки, де він допоміг розробити кілька прототипів машинного навчання. Раніше він працював інженером з машинного навчання та займався машинним навчанням понад 5 років. Сфери його інтересів – НЛП, часові ряди та наскрізне машинобудування.

Створіть систему сповіщень у режимі реального часу на основі новин за допомогою Twitter, Amazon SageMaker і Hugging Face PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Рафаель Вернек є старшим архітектором прототипування в AWS Envision Engineering, що базується в Бразилії. Раніше він працював інженером з розробки програмного забезпечення на Amazon.com.br і Amazon RDS Performance Insights.

Створіть систему сповіщень у режимі реального часу на основі новин за допомогою Twitter, Amazon SageMaker і Hugging Face PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Вікрам Еланго є архітектором AI/ML Specialist Solutions в Amazon Web Services, що базується у Вірджинії, США. Vikram допомагає клієнтам у фінансовій та страховій галузях завдяки дизайну та інтелектуальному лідерству створювати та розгортати програми машинного навчання в масштабі. Зараз він зосереджений на обробці природної мови, відповідальному штучному інтелекті, оптимізації висновків і масштабуванні ML на підприємстві. У вільний час він любить подорожувати, піти в походи, готувати їжу та кемпінг зі своєю сім’єю.

Часова мітка:

Більше від AWS Машинне навчання