Проект AWS SageMaker
Это было в начале декабря 2022 года, и я боролся со своими кодами — не беспокойтесь, это часть процесса.
Помните фиаско GameStop в 2021 году? Пример, когда коллектив доказал способность повышать акции, или, откровенно говоря, коллективное желание не разбогатеть, а обанкротить фирмы — если вы хотите узнать об этом больше, ознакомьтесь с этой статьей Джеймса Шуровецки и комментарием. раздел.
Контекст здесь таков, что мне нужно было создать проект с использованием сервисов AWS. Нападение на фирмы произошло в r/wsb подобно тому, как служанки, нанесшие удар Фреду Уотерфорду, привели к запуску этого проекта: возможно ли провести анализ настроений в сабреддите, у которого 13,1 миллиона подписчиков, с помощью облачных вычислений? Теоретически да. Просто небольшой проект.
Позвольте мне рассказать вам об архитектуре и обосновании моего облачного проекта.
Закупка данных
Во-первых, нам нужно получить некоторые данные из Reddit API. Использование PushShift , которые разрешают доступ к двум конечным точкам: всем общедоступным сообщениям и комментариям.
Для целей этого проекта вы должны отфильтровать из r/wallstreetbets, а затем извлечь все сообщения за последние шесть месяцев с такими функциями, как идентификатор, субреддит, заголовок, тело, оценка, автор и URL . Поиск комментариев также извлечет все комментарии, относящиеся к сообщениям за один и тот же период времени, с идентификатором функций, телом, автором, датой, оценкой, URL-адресом, post_id (общий ключ к данным сообщений).
Проектирование облачной системы
Столпы хорошо спроектированной инфраструктуры для облачных вычислений включают масштабируемость, надежность, оптимизацию затрат и производительность. В следующем разделе я представлю подробную документацию по облачной архитектуре и обоснование использования каждого сервиса AWS.
Экземпляр EC2 : T3 micro лучше всего подходит для небольших/средних баз данных, и он может продолжать работать на полной мощности ЦП, пока не достигнет 144 кредитов или более. В отличие от инстансов T2, при необходимости он может превысить базовый уровень. Кроме того, это самый экономичный вариант проекта. Поскольку проект посвящен r/wsb, следует ожидать внезапных всплесков. Ожидание оправдалось: в день открытия фондового рынка поток данных выше.
CloudWatch : были настроены два сигнала тревоги для оповещения пользователей, когда либо экземпляры EC2 достигли кредитного лимита, либо данные превышают определенное количество ошибок с AWS Lambda. Этот сервис обеспечивает отслеживаемость и помогает отслеживать производительность облачной системы и принимать обоснованные решения о масштабировании в будущем.
S3 : извлечение данных с помощью PushShift в корзину S3. Мы выбрали эту базу данных из-за ее масштабируемости и поддержки получения данных (и формата данных). Кроме того, с помощью AWS EventBridge вы можете создать автоматизацию, которая запускает рабочие процессы, в данном случае: извлечение данных из Reddit с помощью Lambda. Однако из-за ограничений этого проекта данные извлекались вручную каждые 12 часов.
SageMaker : извлечение данных из корзины S3 в SageMaker для выполнения анализа настроений. Как специалист по данным, вы можете использовать его для подготовки данных и создания, обучения, а затем развертывания моделей машинного обучения.
Кроме того, QuickSight : из-за ограничений мы не смогли использовать эту службу, однако вы можете подключить конечную точку SageMaker к этой функции, чтобы получать прогнозы для каждого случая использования в бизнесе.
Анализ настроений
В этом разделе используется SageMaker Studio, так как ограничения не позволяют использовать Amazon Comprehend, к тому же с ним интересно поэкспериментировать.
ETL. При извлечении данных из S3 возникали трудности из-за проблемы с форматом данных. SageMaker не смог распознать определенный формат Reddit JSON непосредственно из корзины S3, что оказалось простой проблемой json.loads() и json.load().
После извлечения данных из сообщений и комментариев в корзине S3 с помощью Boto3 (который интегрирует приложение и библиотеку Python с AWS S3, EC2, DynamoDB и т. д.) и сохранения их в фреймворк данных, я извлек символ тикера с помощью Reticker перед очисткой данных. Пакет Reticker создал список тикеров в столбце, который я использовал для их группировки и выполнения анализа тональности постов/комментариев «тела».
Форматирование тела для анализа тональности, как обычно: токенизация, строчные буквы, удаление знаков препинания и стоп-слов. Если вам интересно, я рекомендую прочитать эту статью Мюриэль Косака для начинающих.
Затем я использовал модель VADER в пакете NTLK для анализа тональности текста. Он чувствителен как к полярности, так и к силе эмоций. После очистки данных я добавил столбцы в исходный фрейм данных для хранения словарей polarity_score и извлеченных составных оценок. Модель хорошо работает с разнообразными текстами, особенно со сложными по своей природе.
Используя полученные оценки настроений, я получил представление о настроениях, связанных с каждой акцией, и выбрал 10 самых обсуждаемых акций и их настроения. Этот процесс включал очистку бегущих строк на основе общеизвестных слов, не являющихся бегущей строкой. После удаления слов, которые не относятся к бегущей строке, мы можем выделить 10 лучших по положительным, отрицательным и нейтральным бегущим строкам.
Проверьте мой GitHub , чтобы просмотреть всю операцию.
План безопасности
VPC : SageMaker автоматически создает два VPC в целях безопасности, и их не следует удалять. Первый VPC обеспечивает прямой доступ в Интернет к Amazon SageMaker, а второй обеспечивает зашифрованный трафик между доменом и нашим файловым томом. Все подсети в SageMaker VPC являются частными, поэтому связь с другими сервисами AWS осуществляется явным образом через частное подключение между этими конечными точками.
Политики IAM : используйте управление доступом на основе атрибутов для создания детальных разрешений на основе характеристик пользователя, таких как должность, название группы и отдел. Из-за ограничений этого проекта лаборатория не дала нам разрешения на создание политик IAM. Поэтому в качестве альтернативы мы создали группу безопасности, которая разрешает доступ к экземпляру и корзинам S3 только членам команды, чтобы гарантировать целостность облачной системы.
Подведение итогов
Крики, плач, рвота. Расхожая поговорка, которую можно применить здесь.
В этом проекте я разработал облачный дизайн, развернул экземпляр EC2, настроил CloudWatch и использовал SageMaker для анализа настроений. Это действительно была серия неудачных сражений, но вы учитесь на практике.
Облачные вычисления могут обеспечить множество преимуществ, таких как повышенная масштабируемость, гибкость и экономичность. Однако важно тщательно оценить потенциальные риски безопасности, соответствия требованиям и привязки к поставщику, связанные с использованием облачных сервисов.
Я доставил. Убей.
Спасибо моему товарищу по команде Шаке, который удалил данные из Reddit и оказывал ценную помощь на протяжении всего проекта, а также Марлону, который также оказал невероятную поддержку и позаботился об анализе затрат для этого проекта. Оба моих товарища по команде потрясающие.
Я также благодарен профессору Джавиду Гусейнову, который щедро поделился со мной своим опытом и отраслевыми знаниями в области облачных вычислений. Его понимание возможностей технологий и творчества было бесценным.
Если вы хотите увидеть некоторые коды, загляните в мой репозиторий на GitHub для этого проекта.
Увидимся в следующий раз, оставайтесь на связи

![В любом случае, что такое связанный список? [Часть 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































