Обогащение потоков новостей в режиме реального времени с помощью библиотеки данных Refinitiv, сервисов AWS и Amazon SageMaker

Обогащение потоков новостей в режиме реального времени с помощью библиотеки данных Refinitiv, сервисов AWS и Amazon SageMaker

Этот пост написан в соавторстве с Мариосом Скевофилакасом, Джейсоном Рамчандани и Айказом Арамяном из Refinitiv, An LSEG Business.

Поставщикам финансовых услуг часто необходимо находить релевантные новости, анализировать их, извлекать информацию и предпринимать действия в режиме реального времени, например, торговать определенными инструментами (такими как товары, акции, фонды) на основе дополнительной информации или контекста новости. Одной из таких дополнительных частей информации (которую мы используем в качестве примера в этом посте) является настроение новостей.

Библиотеки данных Refinitiv (RD) предоставляют полный набор интерфейсов для унифицированного доступа к каталогу данных Refinitiv. Библиотека предлагает несколько уровней абстракции, предоставляя различные стили и методы программирования, подходящие для всех разработчиков, от доступа в режиме реального времени с малой задержкой до пакетного приема данных Refinitiv.

В этом посте мы представляем прототип архитектуры AWS, который принимает наши новостные ленты с помощью библиотек RD и дополняет их прогнозами модели машинного обучения (ML) с использованием Создатель мудреца Амазонки, полностью управляемый сервис машинного обучения от AWS.

Стремясь разработать модульную архитектуру, которую можно было бы использовать в различных случаях, таких как анализ настроений, распознавание именованных сущностей и т. д., независимо от модели машинного обучения, используемой для усовершенствования, мы решили сосредоточиться на пространстве реального времени. Причина такого решения заключается в том, что варианты использования в реальном времени, как правило, более сложны и что та же архитектура может использоваться с минимальными корректировками для пакетного вывода. В нашем случае мы реализуем архитектуру, которая принимает нашу новостную ленту в режиме реального времени, вычисляет тональность каждого заголовка новостей с помощью машинного обучения и повторно обслуживает улучшенную ленту ИИ через архитектуру издатель/подписчик.

Кроме того, чтобы представить всеобъемлющий и многоразовый способ производства моделей машинного обучения путем внедрения методов MLOps, мы вводим концепцию инфраструктуры как кода (IaC) на протяжении всего жизненного цикла MLOps прототипа. Используя Terraform и настраиваемый скрипт с единой точкой входа, мы можем создать экземпляр всей инфраструктуры в рабочем режиме на AWS всего за несколько минут.

В этом решении мы не обращаемся к аспекту MLOps при разработке, обучении и развертывании отдельных моделей. Если вы хотите узнать больше об этом, см. Дорожная карта основания MLOps для предприятий с Amazon SageMaker, в котором подробно объясняется структура построения, обучения и развертывания моделей в соответствии с рекомендациями.

Обзор решения

В этом прототипе мы используем полностью автоматизированную методологию предоставления ресурсов в соответствии с IaC. лучшие практики. IaC — это процесс выделения ресурсов программным путем с использованием автоматизированных сценариев, а не интерактивных инструментов настройки. Ресурсы могут быть как аппаратными, так и необходимыми программными. В нашем случае мы используем Terraform для реализации единой настраиваемой точки входа, которая может автоматически разворачивать всю необходимую нам инфраструктуру, включая политики безопасности и доступа, а также автоматизированный мониторинг. С помощью этой единой точки входа, которая запускает набор сценариев Terraform, по одному для каждого объекта службы или ресурса, мы можем полностью автоматизировать жизненный цикл всех или частей компонентов архитектуры, что позволяет нам осуществлять детальный контроль как на DevOps, так и на стороне MLOps. После того, как Terraform будет правильно установлен и интегрирован с AWS, мы сможем воспроизвести большинство операций, которые можно выполнять на панелях мониторинга сервиса AWS.

На следующей диаграмме показана архитектура нашего решения.

Обогащение потоков новостей в реальном времени с помощью библиотеки данных Refinitiv, сервисов AWS и Amazon SageMaker PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Архитектура состоит из трех этапов: прием, обогащение и публикация. На первом этапе потоки в реальном времени принимаются на Эластичное вычислительное облако Amazon (Amazon EC2), созданный с помощью AMI, готового к работе с библиотекой данных Refinitiv. Экземпляр также подключается к потоку данных через Потоки данных Amazon Kinesis, что вызывает AWS Lambda функции.

На втором этапе функция Lambda, запускаемая Kinesis Data Streams, подключается к SageMaker и отправляет заголовки новостей. ФинБЕРТ конечная точка, которая возвращает рассчитанную тональность для элемента новостей. Это рассчитанное настроение представляет собой обогащение данных в реальном времени, которые функция Lambda затем оборачивает новостным сообщением и сохраняет в Amazon DynamoDB таблице.

На третьем этапе архитектуры поток DynamoDB запускает лямбда-функцию при вставке новых элементов, которая интегрирована с Сервер Amazon MQ запуск RabbitMQ, который повторно обслуживает расширенный поток AI.

Решение об этом трехэтапном инженерном проектировании, а не о первом уровне Lambda, напрямую взаимодействующем с сервером Amazon MQ или реализующем больше функций в экземпляре EC2, было принято для того, чтобы в будущем можно было исследовать более сложные, менее связанные архитектуры проектирования ИИ.

Создание и развертывание прототипа

Мы представляем этот прототип в виде серии из трех подробных чертежей. В каждом плане и для каждой используемой службы вы найдете обзоры и соответствующую информацию о ее технической реализации, а также сценарии Terraform, которые позволяют автоматически запускать, настраивать и интегрировать службу с остальной частью структуры. В конце каждого плана вы найдете инструкции о том, как убедиться, что все работает должным образом на каждом этапе. Чертежи следующие:

Чтобы начать реализацию этого прототипа, мы предлагаем создать новую среду Python, посвященную ему, и установить необходимые пакеты и инструменты отдельно от других сред, которые у вас могут быть. Для этого создайте и активируйте новую среду в Anaconda, используя следующие команды:

conda create —name rd_news_aws_terraform python=3.7
conda activate rd_news_aws_terraform

Теперь мы готовы установить Интерфейс командной строки AWS (AWS CLI), который позволит нам создавать все необходимые программные взаимодействия внутри и между сервисами AWS:

pip install awscli

Теперь, когда AWS CLI установлен, нам нужно установить Terraform. HashiCorp предоставляет Terraform бинарный установщик, который вы можете скачать и установить.

После установки обоих инструментов убедитесь, что они работают правильно, используя следующие команды:

terraform -help
AWS – version

Теперь вы готовы следовать подробным чертежам на каждом из трех этапов внедрения.

Этот план представляет собой начальные этапы архитектуры, которые позволяют нам получать новостные ленты в реальном времени. Он состоит из следующих компонентов:

  • Amazon EC2 готовит ваш экземпляр к приему RD News – В этом разделе настраивается экземпляр EC2 таким образом, чтобы он позволял подключаться к API библиотек удаленных рабочих столов и потоку в реальном времени. Мы также покажем, как сохранить образ созданного экземпляра, чтобы обеспечить его повторное использование и масштабируемость.
  • Получение новостей в режиме реального времени из Amazon EC2 – Подробная реализация конфигураций, необходимых для того, чтобы Amazon EC2 мог подключать библиотеки удаленных рабочих столов, а также сценарии для запуска загрузки.
  • Создание и запуск Amazon EC2 из AMI – Запуск нового экземпляра путем одновременной передачи файлов загрузки во вновь созданный экземпляр, все автоматически с использованием Terraform.
  • Создание потока данных Kinesis – В этом разделе представлен обзор Kinesis Data Streams и способы настройки потока на AWS.
  • Подключение и отправка данных в Kinesis – Когда код загрузки заработает, нам нужно подключить его и отправить данные в поток Kinesis.
  • Тестирование прототипа на данный момент - Мы используем Amazon CloudWatch и инструменты командной строки, чтобы убедиться, что прототип работает до этого момента и что мы можем перейти к следующему проекту. Журнал принятых данных должен выглядеть так, как показано на следующем снимке экрана.

Обогащение потоков новостей в реальном времени с помощью библиотеки данных Refinitiv, сервисов AWS и Amazon SageMaker PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

В этом втором плане мы сосредоточимся на основной части архитектуры: функции Lambda, которая принимает и анализирует поток новостей, прикрепляет к нему вывод ИИ и сохраняет его для дальнейшего использования. В него входят следующие компоненты:

  • Лямбда – Определите конфигурацию Terraform Lambda, позволяющую ей подключаться к конечной точке SageMaker.
  • Amazon S3 – Для реализации Lambda нам нужно загрузить соответствующий код в Простой сервис хранения Amazon (Amazon S3) и разрешить функции Lambda использовать его в своей среде. В этом разделе описывается, как мы можем использовать Terraform для достижения этой цели.
  • Реализация лямбда-функции: Шаг 1. Обработка события Kinesis – В этом разделе мы начинаем строить лямбда-функцию. Здесь мы создаем только часть обработчика ответа потока данных Kinesis.
  • SageMaker – В этом прототипе мы используем предварительно обученную модель Hugging Face, которую мы сохраняем в конечной точке SageMaker. Здесь мы представляем, как этого можно достичь с помощью сценариев Terraform и как происходит соответствующая интеграция, позволяющая конечным точкам SageMaker и функциям Lambda работать вместе.
    • На этом этапе вы можете вместо этого использовать любую другую модель, которую вы разработали и развернули за конечной точкой SageMaker. Такая модель может обеспечить различное улучшение исходных данных новостей в зависимости от ваших потребностей. При желании это можно экстраполировать на несколько моделей для нескольких улучшений, если таковые существуют. Благодаря остальной архитектуре любые такие модели будут обогащать ваши источники данных в режиме реального времени.
  • Построение лямбда-функции: шаг 2, вызов конечной точки SageMaker — В этом разделе мы создаем нашу исходную функцию Lambda, добавляя блок SageMaker, чтобы получить заголовок новостей с улучшенным настроением, вызывая конечную точку SageMaker.
  • DynamoDB – Наконец, когда вывод ИИ находится в памяти функции Lambda, она повторно упаковывает элемент и отправляет его в таблицу DynamoDB для хранения. Здесь мы обсудим как соответствующий код Python, необходимый для этого, так и необходимые сценарии Terraform, обеспечивающие эти взаимодействия.
  • Создание лямбда-функции: шаг 3. Отправка расширенных данных в DynamoDB — Здесь мы продолжаем создавать нашу лямбда-функцию, добавляя последнюю часть, которая создает запись в таблице Dynamo.
  • Тестирование прототипа на данный момент – Мы можем перейти к таблице DynamoDB на консоли DynamoDB, чтобы убедиться, что наши улучшения отображаются в таблице.

Обогащение потоков новостей в реальном времени с помощью библиотеки данных Refinitiv, сервисов AWS и Amazon SageMaker PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Этот третий Blueprint завершает этот прототип. Основное внимание уделяется перераспределению вновь созданных элементов данных с улучшенным ИИ на сервер RabbitMQ в Amazon MQ, что позволяет потребителям подключаться и получать улучшенные новостные элементы в режиме реального времени. В него входят следующие компоненты:

  • Потоки DynamoDB – Когда расширенный элемент новостей находится в DynamoDB, мы настраиваем инициирование события, которое затем можно зафиксировать с помощью соответствующей функции Lambda.
  • Написание производителя Lambda – Эта функция Lambda фиксирует событие и выступает в качестве производителя потока RabbitMQ. Эта новая функция представляет концепцию слоев Lambda, поскольку она использует библиотеки Python для реализации функций производителя.
  • Потребители Amazon MQ и RabbitMQ — Последний шаг прототипа — настройка службы RabbitMQ и реализация примера потребителя, который будет подключаться к потоку сообщений и получать новости с улучшенным ИИ.
  • Окончательное испытание прототипа – Мы используем сквозной процесс, чтобы убедиться, что прототип полностью работает, от приема до повторного обслуживания и использования нового потока с улучшенным ИИ.

На этом этапе вы можете убедиться, что все работает, перейдя на панель управления RabbitMQ, как показано на следующем снимке экрана.

Обогащение потоков новостей в реальном времени с помощью библиотеки данных Refinitiv, сервисов AWS и Amazon SageMaker PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

В окончательном проекте вы также найдете подробный тестовый вектор, чтобы убедиться, что вся архитектура ведет себя так, как планировалось.

Заключение

В этом посте мы поделились решением, использующим ML в облаке, с такими сервисами AWS, как SageMaker (ML), Lambda (без сервера) и Kinesis Data Streams (потоковая передача), чтобы обогатить потоковые новостные данные, предоставляемые библиотеками данных Refinitiv. Решение добавляет оценку настроений к новостям в режиме реального времени и масштабирует инфраструктуру с помощью кода.

Преимущество этой модульной архитектуры заключается в том, что вы можете повторно использовать ее со своей собственной моделью для выполнения других типов пополнения данных бессерверным, масштабируемым и экономичным способом, который можно применять поверх библиотеки данных Refinitiv. Это может повысить ценность рабочих процессов торговли/инвестиций/управления рисками.

Если у вас есть какие-либо комментарии или вопросы, оставьте их в разделе комментариев.

Сопутствующая информация


 Об авторах

Обогащение потоков новостей в реальном времени с помощью библиотеки данных Refinitiv, сервисов AWS и Amazon SageMaker PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Мариос Скевофилакас происходит из финансовых услуг, инвестиционно-банковских услуг и консалтинговых технологий. Он имеет докторскую степень инженера. в области искусственного интеллекта и степень магистра наук. в машинном зрении. На протяжении всей своей карьеры он участвовал в многочисленных междисциплинарных проектах по искусственному интеллекту и DLT. В настоящее время он является защитником разработчиков в Refinitiv, подразделении LSEG, специализирующемся на приложениях AI и Quantum в сфере финансовых услуг.

Обогащение потоков новостей в реальном времени с помощью библиотеки данных Refinitiv, сервисов AWS и Amazon SageMaker PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Джейсон Рамчандани работал в Refinitiv, подразделении LSEG, в течение 8 лет в качестве ведущего адвоката разработчиков, помогая создавать их сообщество разработчиков. Ранее он более 15 лет работал на финансовых рынках, имея опыт работы с количественными данными в области акционерного капитала/акционерного капитала в Okasan Securities, Sakura Finance и Jefferies LLC. Его альма-матер — UCL.

Обогащение потоков новостей в реальном времени с помощью библиотеки данных Refinitiv, сервисов AWS и Amazon SageMaker PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Айказ Арамян исходит из финансов и технологий фона. Он имеет докторскую степень. в области финансов и степень магистра наук. в области финансов, технологий и политики. Благодаря 10-летнему профессиональному опыту Айказ работал над несколькими междисциплинарными проектами с участием пенсионных, венчурных фондов и технологических стартапов. В настоящее время он является советником разработчиков в Refinitiv, An LSEG Business, специализируясь на приложениях ИИ в финансовых услугах.

Обогащение потоков новостей в реальном времени с помощью библиотеки данных Refinitiv, сервисов AWS и Amazon SageMaker PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Георгиос Шинас является старшим специалистом по разработке решений для AI/ML в регионе EMEA. Он базируется в Лондоне и тесно сотрудничает с клиентами в Великобритании и Ирландии. Georgios помогает клиентам разрабатывать и развертывать приложения машинного обучения в рабочей среде на AWS, уделяя особое внимание практике MLOps и предоставляя клиентам возможность выполнять машинное обучение в масштабе. В свободное время он любит путешествовать, готовить и проводить время с друзьями и семьей.

Обогащение потоков новостей в реальном времени с помощью библиотеки данных Refinitiv, сервисов AWS и Amazon SageMaker PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Мутувелан Сваминатан является архитектором корпоративных решений из Нью-Йорка. Он работает с корпоративными клиентами, предоставляя рекомендации по архитектуре для создания отказоустойчивых, экономичных, инновационных решений, отвечающих потребностям их бизнеса и помогающих им работать в масштабе с использованием продуктов и сервисов AWS.

Обогащение потоков новостей в реальном времени с помощью библиотеки данных Refinitiv, сервисов AWS и Amazon SageMaker PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Маюр Удернани руководит бизнесом AWS AI & ML с коммерческими предприятиями в Великобритании и Ирландии. В своей роли Маюр проводит большую часть своего времени с клиентами и партнерами, помогая создавать эффективные решения, которые удовлетворяют самые насущные потребности клиентов или для более широкой отрасли, используя сервисы AWS Cloud, AI и ML. Майур живет в районе Лондона. Он имеет степень магистра делового администрирования Индийского института менеджмента и степень бакалавра вычислительной техники Университета Мумбаи.

Отметка времени:

Больше от Машинное обучение AWS