Масштабирование машинного обучения для больших данных: методы и решения для компаний из списка Fortune 500

Я освоил и создал решения с использованием различных методов для нескольких компаний из списка Fortune 500 после того, как два года назад столкнулся с экспоненциальным обучением при создании машинного обучения (ML) для хранилища данных.

Вот некоторые из них, которые я использовал в свое время:

  1. Pyspark. Вы можете использовать пакет Python Pyspark, созданный на основе распределенных вычислительных сред, таких как Apache Spark, Hadoop или Dask, для предоставления масштабируемой и эффективной инфраструктуры для обработки и анализа больших данных для создания и обучения моделей машинного обучения с использованием встроенных библиотек машинного обучения, таких как PySpark MLlib.
  2. Tensorflow: TensorFlow в Spark (TensorFlowOnSpark) позволяет использовать TensorFlow в кластерах Spark, используя возможности распределенных вычислений Spark. TensorFlow Extended (TFX) – это готовая к работе платформа, созданная на основе TensorFlow и обеспечивающая сквозные конвейеры машинного обучения для больших данных. TFX интегрирован с Apache Airflow или облачной платформой, такой как Google Cloud. TensorFlow предоставляет возможности распределенного обучения через свои tf.distribute.Strategy и tf.distribute.MirroredStrategy API.
  3. Облачные решения. Облачные платформы, такие как Amazon Web Services (AWS), Google Cloud Platform (GCP) или Microsoft Azure, предлагают масштабируемую инфраструктуру и управляемые сервисы, специально предназначенные для обработки больших данных и машинного обучения. Использование Google Vertex AI, AWS Sagemaker или Azure ML может значительно упростить настройку и управление конвейерами больших данных и рабочими процессами машинного обучения.

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

  1. Пошаговое обучение: пакетное обучение и периодическое сохранение контрольных точек модели особенно подходят для обработки крупномасштабных потоковых данных, когда модель может обучаться с увеличением объема данных.
  2. Выборка и выбор подмножества. При работе с большими данными используйте методы выборки, чтобы выбрать репрезентативное подмножество данных для построения модели. Методы случайной выборки или стратифицированной выборки можно использовать для создания небольшого управляемого набора данных, который по-прежнему отражает основные характеристики исходных данных.

Это первая часть серии статей о машинном обучении для больших данных. Подробные статьи по каждой теме будут опубликованы в ближайшее время. Следите за обновлениями Data Science.