Databricks

Databricks ML Associate完全解説|MLflow・AutoML対策

2026-03-26
更新: 2026-03-27
NicheeLab編集部

Databricks Certified Machine Learning Associate(ML Associate)は、MLflowによる実験管理、 Spark MLによるパイプライン構築、AutoMLによる自動モデリングの実践力を証明する認定試験です。 Data Engineer Associate(DEA)と並び、Databricks認定の中で最も受験者数が多い試験の一つで、 MLエンジニアとしてのキャリアを始める際の標準的な資格とされています。

試験概要

項目内容
正式名称Databricks Certified Machine Learning Associate
問題数45問(多肢選択式)
試験時間90分
合格ライン70%(32問/45問)
受験料$200(税別)
言語英語・日本語対応
前提条件なし(実務6ヶ月以上の経験を推奨)
有効期限2年間
受験方式オンラインプロクター(自宅受験可能)

日本語で受験可能ですが、翻訳の品質にばらつきがあるため、コードスニペットが含まれる問題は英語原文も表示して確認することを推奨します。 残り時間は画面上部に常時表示され、問題のフラグ機能で後から見直す問題をマークできます。

4つの出題ドメインと配点

ドメイン配点主要トピック
Databricks ML29%(約13問)AutoML、Feature Store、MLflow Tracking
ML Workflows29%(約13問)実験管理、Model Registry、デプロイ
Spark ML22%(約10問)Pipeline、Transformer、Estimator
Scaling ML Models20%(約9問)分散学習、Pandas UDF、分散推論

Databricks MLとML Workflowsの2ドメインで合計58%を占めます。 この2つはMLflow関連の出題が多く、MLflow Tracking・Model Registry・Autologgingを正確に理解していれば 約25問(全体の55%)をカバーできます。残り20%のScaling ML Modelsは、Pandas UDFやspark-tensorflow-distributorなど 分散処理固有の知識が求められるため、Sparkの基本を理解した上で学習する必要があります。

ドメイン1: Databricks ML(29%)

AutoML

Databricks AutoMLは、分類(Classification)・回帰(Regression)・予測(Forecasting)の3タスクに対応した自動機械学習機能です。 UIまたはAPIから実行でき、内部ではデータの前処理・特徴量エンジニアリング・ハイパーパラメータチューニング・モデル選択を自動化します。

# API経由でAutoMLを実行
from databricks import automl

summary = automl.classify(
    dataset=train_df,           # Spark DataFrameまたはPandas DataFrame
    target_col="churn",         # 目的変数のカラム名
    primary_metric="f1",        # 最適化するメトリクス
    timeout_minutes=30,         # 最大実行時間
    max_trials=20               # 最大試行回数
)

# 最良のモデル・Run・ノートブックを取得
print(summary.best_trial)      # 最良のTrialオブジェクト
print(summary.best_trial.model_path)  # モデルのアーティファクトパス

試験で問われるのは、AutoMLの結果として生成されるノートブックの意味です。 AutoMLは各Trialの実行コードをEditable Notebookとして自動生成し、データサイエンティストが 前処理ロジックやハイパーパラメータを手動で調整できるようにします。 つまりAutoMLは「ブラックボックス」ではなく「出発点」としてのベースラインモデルを提供する設計思想です。

Feature Store

Databricks Feature Storeは、機械学習の特徴量を一元管理するリポジトリです。 Unity Catalog上のDelta Tableとして特徴量テーブルを登録し、訓練時とサービング時で同じ特徴量定義を共有します。

  • 特徴量テーブルはDelta Lake上に保存され、タイムトラベルでポイントインタイムの特徴量を再現可能
  • 訓練時: FeatureStoreClient.create_training_set() で特徴量を結合
  • 推論時: FeatureStoreClient.score_batch() で自動的に最新の特徴量をルックアップ
  • オンラインストア(Cosmos DB、DynamoDB等)へのパブリッシュでリアルタイム推論にも対応

MLflow Tracking

Databricks ML ドメインでは、MLflow Trackingの基本操作(Experiment作成、Run記録、パラメータ/メトリクス/アーティファクトの保存)が問われます。 Databricks上では mlflow.autolog() がデフォルトで有効になっており、scikit-learn・XGBoost・LightGBM・PyTorch・TensorFlow等の 主要フレームワークでパラメータ・メトリクス・モデルが自動記録されます。

ドメイン2: ML Workflows(29%)

実験管理パターン

ML Workflowsドメインでは、MLflowの実験管理を軸にしたエンドツーエンドのワークフローが問われます。 単なるAPI呼び出しではなく、「なぜそのAPIを使うのか」という判断力が求められます。

import mlflow
from mlflow.models import infer_signature

mlflow.set_experiment("/Experiments/fraud_detection")

with mlflow.start_run(run_name="lgbm_baseline") as run:
    # パラメータの記録
    mlflow.log_param("model_type", "LightGBM")
    mlflow.log_param("num_leaves", 31)
    mlflow.log_param("learning_rate", 0.05)
    mlflow.log_param("data_version", "delta_v3")

    # 訓練
    model = lgb.train(params, train_data, valid_sets=[val_data])

    # メトリクスの記録
    mlflow.log_metric("auc", 0.934)
    mlflow.log_metric("precision", 0.891)
    mlflow.log_metric("recall", 0.867)

    # Signatureの推論とモデルの記録
    signature = infer_signature(X_train, model.predict(X_train))
    mlflow.lightgbm.log_model(model, "model", signature=signature)

    # 補助アーティファクトの保存
    mlflow.log_artifact("feature_importance.png")
    mlflow.log_artifact("confusion_matrix.html")

試験では log_param(文字列/数値1個)、log_params(辞書で一括)、log_metric(数値1個、stepオプション付き)、log_metrics(辞書で一括)の使い分けが問われます。log_artifact はファイルパスを受け取り、log_model はフレームワーク固有のモデルオブジェクトを受け取るという違いも頻出です。

Model Registry

Model Registryはモデルのバージョン管理とライフサイクル管理を行います。 試験では旧Workspace Model Registryのステージ遷移と、Unity Catalog Model Registryのエイリアスの両方が出題されます。

観点旧 Workspace RegistryUnity Catalog Registry
ステージ管理None → Staging → Production → Archivedエイリアス(champion / challenger 等、自由定義)
スコープ単一ワークスペースアカウント横断(複数ワークスペース共有)
権限モデルワークスペースレベルACLUnity Catalog 3レベル権限(catalog.schema.model)
リネージ限定的テーブル → モデル → エンドポイントの自動追跡
# Unity Catalog Model Registryへの登録
mlflow.set_registry_uri("databricks-uc")
mlflow.register_model(
    model_uri=f"runs:/{run.info.run_id}/model",
    name="ml_prod.fraud.lgbm_model"  # catalog.schema.model の3レベル名
)

# エイリアスの設定
from mlflow import MlflowClient
client = MlflowClient()
client.set_registered_model_alias(
    name="ml_prod.fraud.lgbm_model",
    alias="champion",
    version=5
)

デプロイパターン

  • リアルタイム推論: Model Servingでエンドポイントを作成し、REST API経由で推論
  • バッチ推論: mlflow.pyfunc.spark_udf() でSpark DataFrameに適用
  • ストリーミング推論: Structured Streaming + spark_udf() でリアルタイムデータに適用
# バッチ推論の典型パターン
predict_udf = mlflow.pyfunc.spark_udf(
    spark,
    model_uri="models:/ml_prod.fraud.lgbm_model@champion"
)
predictions = (spark.table("silver.transactions")
    .withColumn("fraud_score", predict_udf("amount", "merchant_category", "hour_of_day"))
)

ドメイン3: Spark ML(22%)

Spark MLlib(pyspark.mlパッケージ)のPipeline APIが中心です。 Transformer(変換: データを受け取ってデータを返す)とEstimator(推定: データを受け取ってモデル=Transformerを返す)の 区別は、試験で最も基本的かつ頻出のポイントです。

概念役割代表例
TransformerDataFrame → DataFrame(列を追加/変換)VectorAssembler, StringIndexer(fit済み), Tokenizer
EstimatorDataFrame → Model(Transformer)を生成LogisticRegression, RandomForestClassifier, StringIndexer(未fit)
PipelineTransformer/Estimatorの直列連結前処理 → 特徴量変換 → モデル訓練を1つのオブジェクトに
CrossValidator交差検証によるハイパーパラメータチューニングParamGridBuilderでグリッドサーチ
from pyspark.ml import Pipeline
from pyspark.ml.feature import VectorAssembler, StringIndexer, StandardScaler
from pyspark.ml.classification import LogisticRegression
from pyspark.ml.tuning import CrossValidator, ParamGridBuilder
from pyspark.ml.evaluation import BinaryClassificationEvaluator

# Stage 1: カテゴリ変数のエンコード
indexer = StringIndexer(inputCol="category", outputCol="category_idx")

# Stage 2: 特徴量ベクトルの作成
assembler = VectorAssembler(
    inputCols=["amount", "category_idx", "hour_of_day"],
    outputCol="features"
)

# Stage 3: スケーリング
scaler = StandardScaler(inputCol="features", outputCol="scaled_features")

# Stage 4: ロジスティック回帰
lr = LogisticRegression(featuresCol="scaled_features", labelCol="label")

# Pipelineの構築
pipeline = Pipeline(stages=[indexer, assembler, scaler, lr])

# CrossValidatorでハイパーパラメータチューニング
param_grid = (ParamGridBuilder()
    .addGrid(lr.regParam, [0.01, 0.1, 1.0])
    .addGrid(lr.elasticNetParam, [0.0, 0.5, 1.0])
    .build())

evaluator = BinaryClassificationEvaluator(
    labelCol="label", metricName="areaUnderROC"
)

cv = CrossValidator(
    estimator=pipeline,
    estimatorParamMaps=param_grid,
    evaluator=evaluator,
    numFolds=3,
    parallelism=4   # 並列実行数(クラスタリソースに応じて設定)
)

cv_model = cv.fit(train_df)
best_model = cv_model.bestModel

CrossValidatorの parallelism パラメータは試験で問われやすいポイントです。 デフォルトは1(逐次実行)ですが、クラスタリソースに余裕があれば並列数を増やすことで チューニング時間を短縮できます。ただし各フォールドの訓練がSparkジョブとして分散実行されるため、 parallelismを上げすぎるとリソース競合が発生する点も把握しておく必要があります。

ドメイン4: Scaling ML Models(20%)

Pandas UDF(Vectorized UDF)

単一ノードのPandas処理をSpark上で分散実行するための仕組みです。 Apache Arrowによるデータ転送で、通常のUDFと比較して10〜100倍の高速化が見込めます。

import pandas as pd
from pyspark.sql.functions import pandas_udf
from pyspark.sql.types import DoubleType

@pandas_udf(DoubleType())
def predict_batch(features: pd.Series) -> pd.Series:
    """各パーティションでPandasベースの推論を実行"""
    model = load_model()  # ブロードキャスト変数やMLflowから読み込み
    return pd.Series(model.predict(features.tolist()))

# Spark DataFrameの各パーティションで並列実行
predictions = df.withColumn("prediction", predict_batch("features"))

分散学習

大規模データセットでの深層学習には、Databricksが提供する分散学習フレームワークを使用します。

  • spark-tensorflow-distributor: TensorFlow/Kerasモデルをマルチノードで分散訓練。TensorflowDistributor(num_processes=8, local_mode=False).run(train_fn) で起動
  • torch.distributed(PyTorch): TorchDistributorを使用。TorchDistributor(num_processes=4, local_mode=False).run(train_fn)
  • Horovod: HorovodRunnerを使ってTensorFlow/PyTorchモデルをデータ並列で分散訓練

試験では「どの分散フレームワークがどのML基盤に対応するか」「local_mode=TrueFalse の違い」が問われます。local_mode=True はドライバノード上でマルチプロセス実行(デバッグ用)、False はワーカーノード間での本番分散実行です。

Pandas API on Spark

pyspark.pandas(旧Koalas)を使うことで、PandasのAPIでSpark DataFrameを操作できます。 単一ノードのPandasコードを最小限の変更で分散実行に移行するシナリオが出題されます。

import pyspark.pandas as ps

# Pandas APIで操作(内部はSpark DataFrameとして分散処理される)
psdf = ps.read_delta("dbfs:/mnt/gold/features")
psdf["feature_ratio"] = psdf["feature_a"] / psdf["feature_b"]
result = psdf.groupby("segment").mean()

MLflow頻出パターンまとめ

ML Associate試験の約40%がMLflow関連であり、以下のAPIパターンを正確に覚えることが合格の鍵です。

API引数用途
mlflow.start_run()run_name, nestedRunの開始(コンテキストマネージャーで使用)
mlflow.log_param()key, valueハイパーパラメータ1個の記録
mlflow.log_metric()key, value, stepメトリクス1個の記録(stepでエポック管理)
mlflow.log_artifact()local_pathローカルファイルをアーティファクトとして保存
mlflow.sklearn.log_model()model, artifact_pathscikit-learnモデルの保存(フレーバー固有)
mlflow.autolog()なし(または設定辞書)対応フレームワークのパラメータ/メトリクス/モデルを自動記録
mlflow.register_model()model_uri, nameModel Registryへの登録
mlflow.pyfunc.spark_udf()spark, model_uriSpark UDFとしてバッチ推論に利用

AutoML出題パターン

出題テーマ問われる内容
対応タスクClassification(分類)、Regression(回帰)、Forecasting(時系列予測)の3種。クラスタリングは非対応
実行方法UI(Experiments画面から起動)とAPI(automl.classify() 等)の2通り
生成物MLflow Experiment、各TrialのRun、編集可能なソースノートブック、ベストモデル
データ前処理欠損値補完、ワンホットエンコーディング、特徴量選択が自動実行される
カスタマイズ生成ノートブックを編集して前処理やモデルを調整し、独自のRunとして再実行可能

DEA(Data Engineer Associate)との重複と違い

トピックDEAML Associate
Delta Lake基礎深く出題(MERGE、CDF、制約)特徴量テーブルの文脈で基礎レベル
Spark DataFrameETL操作中心(filter, join, aggregate)ML用の特徴量エンジニアリング操作
Unity Catalogテーブル・ビューの権限管理モデル・Feature Storeの権限管理
MLflow基本概念のみ(出題頻度低い)Tracking/Registry/Servingを詳細に出題
Spark ML出題なしPipeline/CrossValidatorを詳細に出題
AutoML出題なし実行方法・生成物・カスタマイズを出題
DLT(Delta Live Tables)詳細に出題出題なし
Workflows / Jobs詳細に出題MLパイプラインのオーケストレーション文脈で軽く出題

DEAに合格済みの受験者は、Delta Lake・Spark DataFrame・Unity Catalogの基礎知識をそのまま活用できます。 追加で必要なのはMLflow(約40%)、Spark ML(約22%)、AutoML・Feature Store(約10%)、分散学習(約15%)です。 DEAの知識が流用できる部分は約13〜15%程度と見積もれるため、DEA合格者でも2ヶ月程度の追加学習を計画してください。

学習ロードマップ(2〜3ヶ月)

第1フェーズ: 基礎固め(1〜3週目)

  • MLflowの公式チュートリアル(Databricks Academy無料コース)を完走する
  • Community EditionでExperiment作成 → Run記録 → Model Registry登録を一連で実施する
  • Spark ML PipelineのTransformer/Estimator/Evaluatorの概念を公式ドキュメントで確認する
  • scikit-learn・Pandas・NumPyの基本操作に不安があればここで補強する

第2フェーズ: 実践演習(4〜7週目)

  • AutoMLをUI・APIの両方で実行し、生成ノートブックの構造を把握する
  • CrossValidator + ParamGridBuilder でハイパーパラメータチューニングを実装する
  • Feature Storeに特徴量テーブルを登録し、create_training_set() で訓練データを作成する
  • Pandas UDFでバッチ推論パイプラインを構築する
  • Unity Catalog Model Registryでエイリアス設定 → Model Servingデプロイの流れを実践する

第3フェーズ: 試験対策(8〜12週目)

  • Databricks公式Practice Examを2周以上解き、苦手ドメインを特定する
  • MLflow API表(log_param/log_metric/log_artifact/log_model)を暗記する
  • Model Registryの旧ステージ遷移とUCエイリアスの違いを整理する
  • 分散学習フレームワーク(TensorflowDistributor/TorchDistributor/HorovodRunner)の使い分けを確認する
  • 模擬試験で45問を90分以内に解く時間配分を練習する

問題で確認

Spark ML

問題 1

MLエンジニアがSpark MLパイプラインを構築し、ハイパーパラメータチューニングを実施したい。以下のコードの空欄に入る組み合わせとして正しいものはどれか。 pipeline = Pipeline(stages=[indexer, assembler, lr]) param_grid = ParamGridBuilder().addGrid(lr.regParam, [0.01, 0.1]).build() evaluator = BinaryClassificationEvaluator(labelCol='label') cv = CrossValidator(estimator=___A___, estimatorParamMaps=___B___, evaluator=evaluator, numFolds=3) cv_model = cv.fit(train_df) best = cv_model.___C___

  1. A: pipeline, B: param_grid, C: bestModel
  2. A: lr, B: param_grid, C: bestModel
  3. A: pipeline, B: param_grid, C: best_params
  4. A: pipeline, B: [0.01, 0.1], C: bestModel

正解: A

CrossValidatorのestimatorにはPipeline全体を渡します。lrだけを渡すと前処理(indexer, assembler)が含まれず、データの変換が行われないまま訓練が実行されてエラーになります。estimatorParamMapsにはParamGridBuilderで構築したパラメータグリッドのリストを渡します。最良モデルの取得はbestModelプロパティ(Pythonのキャメルケース)です。best_paramsはscikit-learnのAPIであり、Spark MLでは使用しません。

よくある質問

ML AssociateとData Engineer Associateは同時に勉強できますか?

出題範囲の約30%(Delta Lake基礎、Spark DataFrame操作、Unity Catalog権限)が重複するため、DEAを先に合格してからML Associateに進むと効率的です。ただしML Associate固有のMLflow Tracking・Model Registry・AutoML・Spark MLパイプラインは別途学習が必要で、これらが配点の約70%を占めます。両試験を並行するよりも、DEA→ML Associateの順で1試験ずつ集中する方が合格率が高い傾向があります。

ML Associateの試験でPythonコードはどの程度出ますか?

全45問中15〜20問程度でPythonコードスニペットが登場します。特にmlflow.start_run()のコンテキストマネージャー、mlflow.log_param/metric/artifactの使い分け、Spark ML PipelineのTransformer/Estimator構築、CrossValidatorの設定パターンが頻出です。コードは穴埋めや誤りの指摘形式が多く、実際にコードを書く必要はありませんが、APIの引数名や戻り値の型を正確に覚えておく必要があります。

ML ProfessionalとML Associateの違いは何ですか?

Associateは「MLflowで実験を記録し、Spark MLでパイプラインを組み、AutoMLで迅速にベースラインモデルを作る」という個人ワークフローが中心です。Professionalは「本番MLパイプラインの設計・分散学習のチューニング・A/Bテスト・モデルドリフト監視・Feature Storeのオンライン/オフライン一貫性」といったチームでの運用設計を問います。Associateの合格が前提条件ではありませんが、Associateレベルの知識は当然求められます。

Databricks資格の関連記事

Machine Learning Professional 完全解説

最難関 MLP — 本番 ML 設計レベル

Generative AI Engineer Associate 完全解説

MLA と約 30% 範囲が重なる次の認定

Databricks 試験の難易度ランキング

全 7 試験を学習時間とともに比較

Databricks 資格一覧

出題範囲と合格ラインを一望

この記事で学んだ内容を問題で確認しましょう

16,000問以上の問題で実力チェック

無料で問題を解いてみる
この記事の著者

NicheeLab編集部

データエンジニアリング・クラウド資格の専門家。Databricks・Snowflake等の認定資格を保有し、実務経験に基づいた問題作成・解説を行っています。NicheeLab運営。


関連記事
Databricks

Databricks資格一覧|全7試験・難易度・勉強法

Databricks認定資格全7試験の一覧・難易度・出題範囲・合格ラインを徹底解説。2026年最新版の公式試験ガイドに準...

Databricks

Databricks試験の難易度ランキング|全7資格を徹底比較

Databricks認定全7試験の難易度をランキング形式で徹底比較。合格率・学習時間・出題傾向から難易度を分析。...

Databricks

Databricks資格の勉強方法|最短合格ルートと学習時間の目安

Databricks認定資格に最短で合格するための勉強方法を完全ガイド。公式リソース・問題集・学習スケジュールを徹底解説...

Databricks

Databricks Data Engineer Associate完全解説|出題範囲・問題例・合格戦略

Databricks Certified Data Engineer Associate試験を徹底解説。5つの出題ドメイ...

Databricks

Databricks Data Engineer Professional完全解説|上級試験の攻略法

Databricks Certified Data Engineer Professional試験を徹底解説。10の出題...

Databricksの記事一覧 (109件)
© 2026 NicheeLab All rights reserved.