Uczenie maszynowe na dużą skalęMachine learning at scale

Uczenie maszynowe (ML) to technika służąca do uczenia modeli predykcyjnych w oparciu o algorytmy matematyczne.Machine learning (ML) is a technique used to train predictive models based on mathematical algorithms. Uczenie maszynowe analizuje relacje między polami danych, aby przewidzieć nieznane wartości.Machine learning analyzes the relationships between data fields to predict unknown values.

Tworzenie i wdrażanie modelu uczenia maszynowego jest procesem iteracyjnym:Creating and deploying a machine learning model is an iterative process:

  • Naukowcy danych eksplorują dane źródłowe, aby określić relacje między funkcjami a przewidywanymi etykietami.Data scientists explore the source data to determine relationships between features and predicted labels.
  • Naukowcy i sprawdzają poprawność modeli opartych na odpowiednich algorytmach, aby znaleźć optymalny model do prognozowania.The data scientists train and validate models based on appropriate algorithms to find the optimal model for prediction.
  • Optymalny model jest wdrażany w środowisku produkcyjnym, jako usługa sieci Web lub inna Wbudowana funkcja.The optimal model is deployed into production, as a web service or some other encapsulated function.
  • W miarę zebrania nowych danych model jest okresowo przemieszczony w celu poprawy jego skuteczności.As new data is collected, the model is periodically retrained to improve its effectiveness.

Uczenie maszynowe na dużą skalę dotyczy dwóch różnych problemów dotyczących skalowalności.Machine learning at scale addresses two different scalability concerns. Pierwszy to uczenie modelu w porównaniu z dużymi zestawami danych, które wymagają uczenia się skalowalnych w poziomie klastrów.The first is training a model against large data sets that require the scale-out capabilities of a cluster to train. Drugie centra na operacjonalizowania model, który umożliwia skalowanie w celu spełnienia wymagań aplikacji, które go używają.The second centers on operationalizing the learned model so it can scale to meet the demands of the applications that consume it. Zazwyczaj jest to realizowane przez wdrożenie funkcji predykcyjnych jako usługi sieci Web, która może być następnie skalowana w poziomie.Typically this is accomplished by deploying the predictive capabilities as a web service that can then be scaled out.

Funkcja uczenia maszynowego na dużą skalę umożliwia tworzenie zaawansowanych, przewidywalnych możliwości, ponieważ lepsze modele zwykle wynikają z większej ilości danych.Machine learning at scale has the benefit that it can produce powerful, predictive capabilities because better models typically result from more data. Gdy model jest przeszkolony, można go wdrożyć jako bezstanową, wysoce wydajną usługę sieci Web skalowania w poziomie.Once a model is trained, it can be deployed as a stateless, highly performant scale-out web service.

Przygotowywanie i uczenie modeluModel preparation and training

Podczas fazy przygotowywania i uczenia się z modelem analityków danych bada dane interaktywnie przy użyciu języków takich jak Python i R, aby:During the model preparation and training phase, data scientists explore the data interactively using languages like Python and R to:

  • Wyodrębnij przykłady z magazynów danych o dużych ilościach.Extract samples from high volume data stores.
  • Znajdź i Traktuj elementy odstające, duplikaty i brakujące wartości, aby wyczyścić dane.Find and treat outliers, duplicates, and missing values to clean the data.
  • Określ korelacje i relacje w danych za pomocą analizy statystycznej i wizualizacji.Determine correlations and relationships in the data through statistical analysis and visualization.
  • Generuj nowe funkcje obliczeniowe, które zwiększają predictiveness relacji statystycznych.Generate new calculated features that improve the predictiveness of statistical relationships.
  • Uczenie modeli ML opartych na algorytmach predykcyjnych.Train ML models based on predictive algorithms.
  • Weryfikuj przeszkolone modele przy użyciu danych, które zostały wstrzymane podczas uczenia się.Validate trained models using data that was withheld during training.

Aby zapewnić obsługę tej interaktywnej analizy i fazy modelowania, platforma danych musi umożliwić analitykom danych Eksplorowanie danych przy użyciu różnych narzędzi.To support this interactive analysis and modeling phase, the data platform must enable data scientists to explore data using a variety of tools. Ponadto szkolenie złożonego modelu uczenia maszynowego może wymagać dużo intensywnego przetwarzania dużych ilości danych, więc wystarczające zasoby do skalowania szkoleń modeli są niezbędne.Additionally, the training of a complex machine learning model can require a lot of intensive processing of high volumes of data, so sufficient resources for scaling out the model training is essential.

Wdrażanie i użycie modeluModel deployment and consumption

Gdy model jest gotowy do wdrożenia, może być hermetyzowany jako usługa sieci Web i wdrożony w chmurze, na urządzeniu brzegowym lub w środowisku wykonawczym w przedsiębiorstwie.When a model is ready to be deployed, it can be encapsulated as a web service and deployed in the cloud, to an edge device, or within an enterprise ML execution environment. Ten proces wdrażania jest określany jako operacjonalizacji.This deployment process is referred to as operationalization.

WyzwaniaChallenges

Uczenie maszynowe na dużą skalę zapewnia kilka wyzwań:Machine learning at scale produces a few challenges:

  • Zwykle potrzebne jest posiadanie dużej ilości danych do uczenia modelu, szczególnie w przypadku modeli uczenia głębokiego.You typically need a lot of data to train a model, especially for deep learning models.
  • Przed rozpoczęciem szkolenia modelu należy przygotować te zestawy danych Big Data.You need to prepare these big data sets before you can even begin training your model.
  • Fazy szkolenia modelu muszą uzyskiwać dostęp do magazynów danych Big Data.The model training phase must access the big data stores. Typowym celem jest przeprowadzenie szkolenia modelu przy użyciu tego samego klastra danych Big Data, takiego jak Spark, który jest używany do przygotowywania danych.It's common to perform the model training using the same big data cluster, such as Spark, that is used for data preparation.
  • W scenariuszach, takich jak głębokie uczenie się, nie tylko potrzebny jest klaster, który może zapewnić skalowanie w poziomie procesorów CPU, ale klaster będzie musiał zawierać węzły z obsługą procesora GPU.For scenarios such as deep learning, not only will you need a cluster that can provide you scale-out on CPUs, but your cluster will need to consist of GPU-enabled nodes.

Uczenie maszynowe na dużą skalę na platformie AzureMachine learning at scale in Azure

Przed podjęciem decyzji o tym, które usługi w usłudze ML mają być używane w szkoleniach i operacjonalizacji, należy rozważyć, czy w ogóle należy przeprowadzić uczenie modelu, czy też prebudowany model spełnia Twoje wymagania.Before deciding which ML services to use in training and operationalization, consider whether you need to train a model at all, or if a prebuilt model can meet your requirements. W wielu przypadkach korzystanie z prebudowanego modelu jest tylko kwestią wywołania usługi sieci Web lub z użyciem biblioteki ML do załadowania istniejącego modelu.In many cases, using a prebuilt model is just a matter of calling a web service or using an ML library to load an existing model. Dostępne są następujące opcje:Some options include:

  • Użyj usług sieci Web udostępnianych przez usługę Azure Cognitive Services.Use the web services provided by Azure Cognitive Services.
  • Użyj przedneuronowychch modeli sieci dostarczonych przez Cognitive Toolkit.Use the pretrained neural network models provided by the Cognitive Toolkit.
  • Osadź serializowane modele dostarczone przez podstawową ML dla aplikacji systemu iOS.Embed the serialized models provided by Core ML for an iOS app.

Jeśli wstępnie skompilowany model nie pasuje do danych lub Twojego scenariusza, opcje na platformie Azure obejmują Azure Machine Learning, HDInsight przy użyciu platformy Spark MLlib i MMLSpark, Azure Databricks, Cognitive Toolkit i SQL Machine Learning Services.If a prebuilt model does not fit your data or your scenario, options in Azure include Azure Machine Learning, HDInsight with Spark MLlib and MMLSpark, Azure Databricks, Cognitive Toolkit, and SQL Machine Learning Services. Jeśli zdecydujesz się użyć modelu niestandardowego, musisz zaprojektować potok, który obejmuje szkolenia modeli i operacjonalizacji.If you decide to use a custom model, you must design a pipeline that includes model training and operationalization.

Aby zapoznać się z listą technologii dla sieci w systemie Azure, zobacz:For a list of technology choices for ML in Azure, see:

Następne krokiNext steps

Poniższe architektury referencyjne przedstawiają scenariusze uczenia maszynowego na platformie Azure:The following reference architectures show machine learning scenarios in Azure: