Збагачення потоків новин у реальному часі за допомогою бібліотеки даних Refinitiv, служб AWS і Amazon SageMaker

Збагачення потоків новин у реальному часі за допомогою бібліотеки даних Refinitiv, служб AWS і Amazon SageMaker

Співавторами цієї публікації є Маріос Скевофілакас, Джейсон Рамчандані та Хайказ Арамян з Refinitiv, An LSEG Business.

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

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

У цьому дописі ми представляємо прототип архітектури AWS, який отримує наші канали новин за допомогою бібліотек RD і вдосконалює їх за допомогою прогнозів моделі машинного навчання (ML) за допомогою Amazon SageMaker, повністю керована служба машинного навчання від AWS.

Прагнучи розробити модульну архітектуру, яку можна було б використовувати в різних випадках використання, як-от аналіз настроїв, розпізнавання іменованих об’єктів тощо, незалежно від моделі ML, яка використовується для вдосконалення, ми вирішили зосередитися на просторі реального часу. Причина такого рішення полягає в тому, що випадки використання в режимі реального часу, як правило, складніші, і ту саму архітектуру можна використовувати з мінімальними коригуваннями для пакетного висновку. У нашому прикладі використання ми реалізуємо архітектуру, яка завантажує нашу стрічку новин у реальному часі, обчислює настрої щодо кожного заголовка новин за допомогою ML і повторно обслуговує розширену стрічку штучного інтелекту через архітектуру видавець/передплатник.

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

У цьому рішенні ми не розглядаємо аспект MLOps щодо розробки, навчання та розгортання окремих моделей. Якщо вам цікаво дізнатися більше про це, зверніться до Основна дорожня карта MLOps для підприємств із Amazon SageMaker, де детально пояснюється структура для побудови моделі, навчання та розгортання відповідно до найкращих практик.

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

У цьому прототипі ми використовуємо повністю автоматизовану методологію надання відповідно до IaC передового досвіду. IaC — це процес надання ресурсів програмним шляхом за допомогою автоматизованих сценаріїв, а не за допомогою інтерактивних інструментів налаштування. Ресурсами можуть бути як обладнання, так і необхідне програмне забезпечення. У нашому випадку ми використовуємо Terraform для реалізації єдиної конфігурованої точки входу, яка може автоматично розкручувати всю необхідну інфраструктуру, включаючи політики безпеки та доступу, а також автоматичний моніторинг. Завдяки цій єдиній точці входу, яка запускає набір сценаріїв Terraform, по одному на службу чи ресурс, ми можемо повністю автоматизувати життєвий цикл усіх або окремих компонентів архітектури, дозволяючи реалізувати детальний контроль як на DevOps, так і на DevOps. сторона MLOps. Після того, як Terraform буде правильно встановлено та інтегровано з AWS, ми зможемо відтворити більшість операцій, які можна виконати на інформаційних панелях служби AWS.

Наступна схема ілюструє нашу архітектуру рішення.

Enriching real-time news streams with the Refinitiv Data Library, AWS services, and Amazon SageMaker PlatoBlockchain Data Intelligence. Vertical Search. Ai.

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

На другому етапі функція Lambda, яка запускається з Kinesis Data Streams, підключається до SageMaker і надсилає заголовки новин. FinBERT кінцева точка, яка повертає розрахований настрій для новини. Цей розрахований настрій є збагаченням даних у реальному часі, якими функція Лямбда потім обгортає новину та зберігає в Amazon DynamoDB таблиці.

На третьому етапі архітектури потік DynamoDB запускає функцію Lambda для нових вставок елементів, яка інтегрована з Сервер 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 бібліотек RD і потоку в реальному часі. Ми також покажемо, як зберегти образ створеного екземпляра, щоб забезпечити його повторне використання та масштабованість.
  • Отримання новин у реальному часі від Amazon EC2 – Детальна реалізація конфігурацій, необхідних для підключення Amazon EC2 до бібліотек RD, а також сценаріїв для запуску прийому даних.
  • Створення та запуск Amazon EC2 з AMI – Запустіть новий екземпляр, одночасно передавши файли прийому до новоствореного екземпляра, і все це автоматично за допомогою Terraform.
  • Створення потоку даних Kinesis – У цьому розділі наведено огляд потоків даних Kinesis і те, як налаштувати потік на AWS.
  • Підключення та надсилання даних до Kinesis – Коли код прийому запрацює, нам потрібно підключити його та надіслати дані в потік Kinesis.
  • Тестування прототипу поки що - Ми використовуємо Amazon CloudWatch і інструменти командного рядка, щоб переконатися, що прототип працює до цього моменту, і що ми можемо продовжити до наступного проекту. Журнал переданих даних має виглядати так, як на знімку екрана нижче.

Enriching real-time news streams with the Refinitiv Data Library, AWS services, and Amazon SageMaker PlatoBlockchain Data Intelligence. Vertical Search. Ai.

У цьому другому плані ми зосереджуємося на основній частині архітектури: функції Lambda, яка отримує й аналізує потік новин, приєднує до нього висновок ШІ та зберігає його для подальшого використання. Він включає наступні компоненти:

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

Enriching real-time news streams with the Refinitiv Data Library, AWS services, and Amazon SageMaker PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Цей третій Blueprint завершує цей прототип. Він зосереджений на перерозповсюдженні нещодавно створеного елемента даних, розширеного штучним інтелектом, на сервері RabbitMQ в Amazon MQ, дозволяючи споживачам підключатися та отримувати розширені новини в режимі реального часу. Він включає наступні компоненти:

  • Потоки DynamoDB – Коли розширена новина знаходиться в DynamoDB, ми встановлюємо активацію події, яку потім можна зафіксувати за допомогою відповідної функції Lambda.
  • Пише виробник Lambda – Ця функція Lambda фіксує подію та діє як виробник потоку RabbitMQ. Ця нова функція представляє концепцію лямбда-рівнів, оскільки вона використовує бібліотеки Python для реалізації функціональності виробника.
  • Споживачі Amazon MQ і RabbitMQ – Останнім кроком прототипу є налаштування служби RabbitMQ і реалізація зразка споживача, який підключатиметься до потоку повідомлень і отримуватиме розширені новини ШІ.
  • Остаточне випробування прототипу – Ми використовуємо наскрізний процес, щоб перевірити, чи прототип повністю працює, від прийому до повторного обслуговування та споживання нового потоку, розширеного ШІ.

На цьому етапі ви можете перевірити, чи все працює, перейшовши до інформаційної панелі RabbitMQ, як показано на наступному знімку екрана.

Enriching real-time news streams with the Refinitiv Data Library, AWS services, and Amazon SageMaker PlatoBlockchain Data Intelligence. Vertical Search. Ai.

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

Висновок

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

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

Якщо у вас є коментарі чи запитання, залиште їх у розділі коментарів.

Супутня інформація


 Про авторів

Enriching real-time news streams with the Refinitiv Data Library, AWS services, and Amazon SageMaker PlatoBlockchain Data Intelligence. Vertical Search. Ai.Маріос Скевофілакас походить із фінансових послуг, інвестиційної банківської справи та консалтингових технологій. Має ступінь доктора інженерних наук. у галузі штучного інтелекту та ступінь магістра наук. в системі машинного зору. Протягом своєї кар’єри він брав участь у численних мультидисциплінарних проектах ШІ та DLT. Зараз він є адвокатом розробників у Refinitiv, бізнесі LSEG, зосереджуючись на додатках AI та Quantum у фінансових послугах.

Enriching real-time news streams with the Refinitiv Data Library, AWS services, and Amazon SageMaker PlatoBlockchain Data Intelligence. Vertical Search. Ai.Джейсон Рамчандані 8 років працював у Refinitiv, бізнесі LSEG, як провідний адвокат розробників, допомагаючи створювати їхню спільноту розробників. Раніше він понад 15 років працював на фінансових ринках, маючи значний досвід у сфері акцій/акціонерного капіталу в Okasan Securities, Sakura Finance та Jefferies LLC. Його альма-матер — UCL.

Enriching real-time news streams with the Refinitiv Data Library, AWS services, and Amazon SageMaker PlatoBlockchain Data Intelligence. Vertical Search. Ai.Айказ Арамян має досвід фінансів і технологій. Має ступінь доктора філософії. в галузі фінансів, а також ступінь магістра наук. в області фінансів, технологій і політики. За 10 років професійного досвіду Хайказ працював над кількома міждисциплінарними проектами, пов’язаними з пенсійними фондами, фондами венчурного капіталу та технологічними стартапами. Зараз він є адвокатом розробників у Refinitiv, компанії LSEG, зосереджуючись на додатках ШІ у фінансових послугах.

Enriching real-time news streams with the Refinitiv Data Library, AWS services, and Amazon SageMaker PlatoBlockchain Data Intelligence. Vertical Search. Ai.Георгіос Схінас є старшим фахівцем з розробки рішень для AI/ML у регіоні EMEA. Він живе в Лондоні та тісно співпрацює з клієнтами у Великобританії та Ірландії. Georgios допомагає клієнтам розробляти та розгортати програми машинного навчання у виробництві на AWS, приділяючи особливий інтерес практикам MLOps і дозволяючи клієнтам виконувати машинне навчання в масштабі. У вільний час він любить подорожувати, готувати їжу та проводити час з друзями та родиною.

Enriching real-time news streams with the Refinitiv Data Library, AWS services, and Amazon SageMaker PlatoBlockchain Data Intelligence. Vertical Search. Ai.Мутувелан Свамінатан є архітектором корпоративних рішень із Нью-Йорка. Він працює з корпоративними клієнтами, надаючи архітектурні рекомендації щодо створення надійних, економічно ефективних інноваційних рішень, які відповідають потребам їхнього бізнесу та допомагають їм виконувати масштабні роботи за допомогою продуктів і послуг AWS.

Enriching real-time news streams with the Refinitiv Data Library, AWS services, and Amazon SageMaker PlatoBlockchain Data Intelligence. Vertical Search. Ai.Маюр Удернані керує бізнесом AWS AI & ML з комерційними підприємствами у Великобританії та Ірландії. На своїй посаді Маюр проводить більшу частину свого часу з клієнтами та партнерами, щоб допомогти створювати ефективні рішення, які вирішують найнагальніші потреби клієнтів або для ширшої галузі, використовуючи послуги AWS Cloud, AI & ML. Маюр живе в районі Лондона. Він має ступінь магістра ділового адміністрування в Індійському інституті менеджменту та бакалавра комп’ютерної інженерії в Університеті Мумбаї.

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

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