Пошаговое руководство для профессионального инженера по машинному обучению в Google Cloud: раздел...
Автор: Jules of Tech
Загружено: 2026-01-12
Просмотров: 7
Цель встречи
Обзор Google Cloud PubSub для конвейеров машинного обучения и экзамена GCP ML Associate.
Ключевые моменты
PubSub соединяет сервисы машинного обучения
Выбор типа доставки в зависимости от архитектуры
Критические функции обеспечивают надежность и эффективность
Практика ключевых шаблонов интеграции для экзамена
Темы
Проблема: Ненадежные архитектуры машинного обучения
Тесно связанные конвейеры машинного обучения ненадежны, поскольку отказ одного сервиса может остановить всю систему.
PubSub решает эту проблему, выступая в роли «умного почтового сервиса», который надежно доставляет сообщения между независимыми сервисами, обеспечивая бесперебойный поток данных.
Решение: Модель «издатель-подписчик»
Тема: Именованный канал, куда издатели отправляют сообщения.
Подписка: Способ получения сообщений из темы заинтересованными сторонами.
К одной теме может быть привязано несколько подписок, каждая с независимой очередью сообщений.
Это разделение мощное: если один подписчик выходит из строя, другие продолжают обработку без перерыва.
Структура сообщения: пары ключ-значение с полезной нагрузкой и необязательными атрибутами (например, sensor_id, timestamp) для метаданных.
Гарантия доставки: доставка как минимум один раз. Если подписчик не подтверждает сообщение в течение настраиваемого срока (по умолчанию 10 секунд, максимум 10 минут), PubSub повторно доставляет его.
Механизмы доставки: Pull и Push
Подписки Pull:
Механизм: Подписчик активно запрашивает сообщения через вызовы API.
Вариант использования: пакетная обработка с контролем обратного давления.
Пример: кластер Kubernetes фиксированного размера может получать только столько сообщений, сколько может обработать, предотвращая перегрузку.
Интеграция: хорошо работает с конвейерами Dataflow для эффективной параллельной обработки.
Подписки с отправкой сообщений:
Механизм: PubSub активно доставляет сообщения на настроенную конечную точку HTTPS (например, Cloud Function, Cloud Run).
Вариант использования: Серверные архитектуры, управляемые событиями.
Пример: Cloud Function автоматически запускается при поступлении сообщения, обеспечивая вывод в реальном времени или переобучение модели.
Компромисс: Меньший контроль над скоростью обработки, поскольку PubSub управляет временем доставки.
Расширенные возможности для надежного машинного обучения
Порядок сообщений:
Проблема: PubSub не гарантирует порядок сообщений по умолчанию, что может нарушить последовательную логику (например, финансовые транзакции, данные временных рядов).
Решение: Используйте ключи упорядочивания. Назначьте ключ (например, user_id) во время публикации. PubSub гарантирует, что сообщения с одним и тем же ключом доставляются в порядке для данной подписки.
Предостережение: Требуется последовательное подтверждение для каждого ключа. Сбой обработки блокирует последующие сообщения с этим ключом до тех пор, пока проблема не будет решена.
Темы недоставленных сообщений (DLQ):
Проблема: Сообщения, обработка которых неоднократно завершается неудачей, могут застревать в цикле повторных попыток, скрывая системные проблемы.
Решение: Настройте подписку с пороговым значением max_delivery_attempts и DLQ. После достижения порогового значения сообщение перемещается в DLQ.
Преимущество: Изолирует сообщения с ошибками для отладки (например, обнаружение новой схемы, нарушающей работу парсера) и позволяет повторно воспроизводить сообщения.
Требование IAM: Учетная запись службы PubSub должна иметь роль pubsub.publisher в DLQ.
Фильтры подписки:
Проблема: Одна тема может получать сообщения разных типов, заставляя подписчиков анализировать и отбрасывать нерелевантные данные.
Решение: Примените к подписке выражение фильтра, подобное SQL. Доставляются только сообщения, соответствующие фильтру.
Преимущество: Снижает затраты и повышает производительность за счет обработки меньшего объема данных. Упрощает логику приложения, перенося фильтрацию в PubSub.
Ограничение: Фильтры работают только с атрибутами сообщения, а не с телом полезной нагрузки.
Повторная отправка сообщений (поиск):
Проблема: Необходимость повторной обработки исторических данных (например, для переобучения модели, исправления ошибок, A/B-тестирования).
Решение: Откат подписки к предыдущей метке времени или именованному снимку. PubSub повторно доставляет все сообщения с этого момента.
Требование: Код подписчика должен быть идемпотентным (обработка сообщения дважды дает тот же результат), чтобы корректно обрабатывать повторно доставленные сообщения.
Безопасность, квоты и стоимость
Роли IAM:
roles/pubsub.publisher: Публикация сообщений в тему.
roles/pubsub.subscriber: Получение сообщений или получение push-уведомлений.
roles/pubsub.viewer: Доступ только для чтения к темам/подпискам.
roles/pubsub.editor: Полный доступ к управлению.
Шифрование:
По умолчанию: ключи, управляемые Google, для данных в состоянии покоя и при передаче.
Соотв...
Доступные форматы для скачивания:
Скачать видео mp4
-
Информация по загрузке: