8000 ml-projects/processing_news_articles at main · Inchimonsha/ml-projects · GitHub
[go: up one dir, main page]

Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
Создать систему обработки текстовых данных (например, новостных статей) с использованием нейронной модели NLP для классификации тем. Данные будут поступать через RabbitMQ, обрабатываться в PySpark, а весь пайплайн будет оркестрироваться Apache Airflow.
Шаги реализации с объяснениями

1. Разворачивание инфраструктуры

    Используем Docker Compose для локального запуска RabbitMQ, Apache Airflow и Spark.

    RabbitMQ — брокер сообщений для передачи текстов.

    Airflow — оркестратор задач.

    PySpark — обработка и обучение модели.

2. Настройка RabbitMQ

    Создаем очередь (например, queue.texts).

    В Airflow добавляем соединение с RabbitMQ (через UI или конфиг).

    В пайплайне Airflow создаем sensor, который слушает очередь и получает сообщения (тексты для обработки).

3. Создание DAG в Airflow

    DAG будет содержать следующие таски:

        sensor — ждет сообщения из RabbitMQ.

        preprocess — обрабатывает текст (очистка, токенизация) с помощью PySpark.

        train_model — обучает или обновляет нейронную сеть NLP на новых данных (можно использовать библиотеки типа HuggingFace Transformers с PySpark).

        predict — применяет модель для классификации текста.

        store_results — сохраняет результаты (например, в базу данных или файл).

Пример кода sensor и таски обработки можно взять из туториала с Airflow и RabbitMQ.
4. Обработка данных в PySpark

    Используем Spark DataFrame для пакетной обработки текстов.

    Применяем NLP-пайплайн с токенизацией, векторизацией и нейронной моделью.

    Модель можно обучать периодически (например, раз в день) через Airflow.

5. Оркестрация с Apache Airflow

    Airflow запускает задачи по расписанию или по событию (при поступлении сообщения).

    Используем PythonOperator для запуска Python-кода обработки и обучения.

    Таски связаны последовательностью: sensor → preprocess → train_model → predict → store_results.

    Можно использовать XCom для передачи данных между тасками.

6. Запуск и тестирование

    Запускаем Docker Compose.

    Отправляем тестовые сообщения в RabbitMQ.

    Наблюдаем выполнение DAG в Airflow UI.

    Проверяем логи и результаты.


---

Как подробно объяснить архитектуру проекта начинающим
1. Начните с общей идеи проекта

Объясните, что именно проект делает, какие задачи решает и для кого он предназначен. Например:

    «Мы создаём систему, которая принимает текстовые данные, обрабатывает их с помощью нейронной сети и классифицирует по темам».
    Это помогает понять, зачем нужна архитектура и что мы строим.

2. Опишите основные компоненты системы и их роли

Разбейте проект на ключевые части:

    RabbitMQ — принимает и передаёт сообщения (тексты).

    Apache Airflow — управляет последовательностью задач (как дирижёр).

    PySpark — обрабатывает большие данные и обучает модель.

    Нейронная сеть NLP — анализирует и классифицирует текст.
    Покажите, как данные движутся между этими компонентами.

3. Используйте визуализации и схемы

Нарисуйте простую диаграмму, где стрелками показано:

    Отправка текста → RabbitMQ → Airflow запускает обработку → PySpark обучает модель → результат сохраняется.
    Визуальное представление помогает лучше понять связи и взаимодействия.

4. Объясните архитектурный стиль и логику взаимодействия

Расскажите, что система построена по принципу модульности: каждый компонент отвечает за свою задачу и взаимодействует через чётко определённые интерфейсы (например, через очередь сообщений). Это облегчает поддержку и масштабирование.
5. Расскажите о функциональных и нефункциональных требованиях

Объясните, какие задачи система должна выполнять (функциональные), и какие качества важны (скорость, надёжность, масштабируемость). Например:

    Обработка сообщений в реальном времени.

    Возможность обучать модель на больших объёмах данных.

6. Используйте модель «4+1» для описания архитектуры (по мере готовности)

Поясните, что архитектура рассматривается с разных точек зрения:

    Логическая (какие модули и как связаны).

    Процессная (как данные и задачи движутся во времени).

    Физическая (где развёрнуты компоненты).

    Разработческая (как организован код).

    Сценарии использования (кейсы работы системы).

7. Приводите простые примеры и аналогии

Например, сравните Airflow с дирижёром оркестра, RabbitMQ — с почтовым отделением, а PySpark — с фабрикой по обработке данных. Это помогает усвоить сложные технические понятия.
0