Горизонтальне та вертикальне масштабування методів машинного навчання - Білецький, Б.О. (Проблеми програмування, 2019)
В роботі розглядаються основні етапи розв’язку задач машинного навчання (з учителем) розпізнаванню образів, а саме: управління навчальними виборками, навчання, розпізнавання. Обговорюється вплив феномену великих даних (BigData) на кожен з етапів, а також методи ефективної організації обчислень на кожному з етапів при розв’язанні зазначених задач. В работе рассматриваются основные этапы решения задачи обучения распознаванию образов, а именно: обработка и хранение обучающих данных, обучение распознаванию и распознавание. Обговаривается влияние феномена больших данных на каждый из этих этапов. Сравниваются различные подходы к эффективной организации вычислений на различных этапах. Первый раздел статьи посвящен определению понятия масштабирования, вводятся понятия горизонтального и вертикального масштабирования, обсуждаются их преимущества и недостатки. Рассматриваются некоторые ограничения при масштабировании на примере закона Амдала. Второй раздел статьи посвящен масштабированию хранилищ обучающих данных. Обговаривается подходы к масштабированию реляционных баз данных, и ограничения связанные с гарантиями ACID, которым удовлетворяют такие базы данных. Отдельно рассматриваются горизонтально масштабируемые нереляционные т. н. NoSQL базы данных. Приводится формулировка CAP-теоремы, как одного из фундаментальных ограничений при горизонтальном масштабировании таких баз данных. Третий раздел работы посвящен горизонтальному масштабированию вычислений на основе модели программирования MapReduce. Рассматриваются различные реализации этой модели программирования, такие как Hadoop и Spark, их строение и основные принципы работы. В четвертом разделе рассматриваются различные подходы к масштабированию методов машинного обучения. Приводится общая постановка задачи машинного обучения. На примере Байесовской процедуры обучения показывается, как модель программирования MapReduce применима для горизонтального масштабирования методов машинного обучения. Далее на основе глубоких нейронных сетей обговариваются методы обучения, не подлежащие горизонтальному масштабированию. Рассматриваются подходы к масштабированию таких методов при помощи графических процессоров (GPU) и модели программирования Tensor Flow. The main stages of Machine Learning Pipelines are considered in the paper, such as: train data collection and storage, training and scoring. The effect of the Big Data phenomenon on each of the stages is discussed. Different approaches to efficient organization of computation are on each of the stage are evaluated.
In the first part of the paper we introduce the notion of horizontal and vertical scalability together with corresponding cons and pros. We consider some limitations of scaling, such as Amdahl's law. In the second part of the paper we consider scalability of data storage routines. First we discuss relational databases and scalability limitations related to ACID guarantees, which such database satisfy. Then we consider horizontally scalable non-relational databases, so called NoSQL databases. We formulate CAP-theorem as a fundamental limitation of horizontally scalable databases. The third part of the paper is dedicated to scalability of computation based on the MapReduce programming model. We discuss some implementations of this programming model, such as Hadoop and Spark together with some basic principles which they are based on. In the fourth part of the article we consider various approaches towards scaling of Machine Learning methods. We give the general statement of Machine Learning problem. Then we show how MapReduce programming model can be applied for horizontal scaling of Machine Learning methods on the example of Bayessian pattern recognition procedure. On the example of Deep Neural Networks we discuss Machine Learning methods which are not horizontally scalable. Then we consider some approaches towards vertical scaling of such methods based on GPU’s and the TensorFlow programming model.