Exporter des modèles et pipelines Apache Spark ml Export Apache Spark ML models and pipelines

Cet article traite de la partie exportation d’un flux de travail d' exportation de modèle DATABRICKS ml ; consultez importer des modèles dans votre application pour la partie importation et notation du flux de travail.This article discusses the export part of a Databricks ML Model Export workflow; see Import models into your application for the import and scoring part of the workflow.

Avec l’exportation de modèle Databricks ML, vous pouvez facilement exporter vos modèles et pipelines Apache Spark ML formés.With Databricks ML Model Export, you can easily export your trained Apache Spark ML models and pipelines.

import com.databricks.ml.local.ModelExport
val lr = new LogisticRegression()
val model = lr.fit(trainingData)
// Export the model into provided directory
ModelExport.exportModel(lrModel, "<storage-location>")

Pour obtenir des exemples de code détaillés, consultez les exemples de bloc-notes.For detailed code examples, see the example notebooks.

Format d’exportation de modèleModel Export format

Les modèles MLlib sont exportés en tant que fichiers JSON, avec un format correspondant au format de persistance Spark ml.MLlib models are exported as JSON files, with a format matching the Spark ML persistence format. Les modifications de clé du format de MLlib sont les suivantes :The key changes from MLlib’s format are:

  • Utilisation de JSON à la place de parquetUsing JSON instead of Parquet
  • Ajout de métadonnées supplémentairesAdding extra metadata

Le format d’exportation de modèle présente plusieurs avantages :The Model Export format has several benefits:

JSONJSON

Format simple et lisible qui peut être archivé dans les systèmes de gestion de versionSimple, human-readable format that can be checked into version control systems

Format MLlib correspondantMatching MLlib format

L’exportation de modèle reste synchronisée avec les normes et les API MLlibModel Export stays in sync with MLlib standards and APIs

NotationScoring

Les métadonnées supplémentaires de Azure Databricks autorisent la notation en dehors de SparkThe extra metadata from Azure Databricks allows scoring outside of Spark

Par exemple, l’exportation d’un modèle de régression logistique génère un répertoire contenant les fichiers JSON suivants :For example, exporting a logistic regression model produces a directory containing the following JSON files:

  • metadata, qui contient le type du modèle et la façon dont il a été configuré pour l’apprentissage.metadata, which contains the type of the model and how it was configured for training. Ce fichier correspond au fichier de MLlib metadata .This file matches MLlib’s metadata file.

    {
       "class":"org.apache.spark.ml.classification.LogisticRegressionModel",
       "paramMap":{
       "featuresCol":"features",
       "predictionCol":"prediction",
       "aggregationDepth":2,
       "elasticNetParam":0.0,
       "family":"auto",
       "fitIntercept":true,
       "maxIter":100,
       "regParam":0.0,
       "standardization":true,
       "threshold":0.5,
       "tol":1.0E-6
    },
    "sparkVersion":"2.1.0",
    "timestamp":1488858051051,
    "uid":"logreg_a99aee74cfef"}
    
  • data, qui contient les paramètres de modèle formés.data, which contains the trained model parameters. Ce fichier correspond au fichier de MLlib data .This file matches MLlib’s data file. type est le format de vecteur MLlib : pour le vecteur 0 fragmenté, 1 pour le vecteur dense.type is the MLlib vector format: 0 for sparse vector, 1 for dense vector.

    {
      "numClasses":2,
      "numFeatures":13,
      "interceptVector": {
        "type":1,
        "values":[ -8.44645260967139 ]
    },
    "coefficientMatrix":{
        "type":1,
        "numRows":1,
        "numCols":4,
        "values":[ -0.01747691176982096, 1.542111173068903, 0.700895509427004, 0.025215711086829903 ],
        "isTransposed":true
    },
    "isMultinomial":false}
    
  • dbmlMetadata, qui contient des informations supplémentaires spécifiques à l’exportation de modèle Databricks ML.dbmlMetadata, which contains extra information specific to Databricks ML Model Export.

{
  "dbmlExportLibraryVersion":"0.1.1"
}

Modèles pris en chargeSupported models

Vous pouvez récupérer par programmation une liste des modèles pris en charge en appelant ModelExport.supportedModels .You can programmatically retrieve a list of supported models by calling ModelExport.supportedModels. Les modèles suivants sont pris en charge :The following models are supported:

Notes

Les classifieurs probabilistes (classifieurs de l’arbre de décision, régression logistique, classifieurs de forêts aléatoires, etc.) peuvent générer un probability champ supplémentaire contenant un vecteur de probabilités de classe.Probabilistic classifiers ( decision tree classifiers, logistic regression, random forest classifiers, etc.) can output an additional probability field containing a vector of class probabilities.

Exportation de modèles à partir de Databricks Exporting models from Databricks

Les blocs-notes suivants montrent comment exporter des modèles ML à partir de Azure Databricks.The following notebooks demonstrate how to export ML models from Azure Databricks.

Bloc-notes Scala d’exportation de modèleModel export Scala notebook

Obtenir le notebookGet notebook

Bloc-notes python d’exportation de modèleModel export Python notebook

Obtenir le notebookGet notebook