Databricks Certified Machine Learning Associate(ML Associate)は、Databricksを使って基本的な機械学習タスクをこなす力を証明する認定試験です。 AutoML・Unity Catalog・MLflowといったDatabricksの機械学習機能に加え、データの探索と特徴量エンジニアリング、 モデルの学習・チューニング・評価、モデルのデプロイまでが出題範囲です。 DatabricksのMLエンジニア向け認定のうち入門にあたるAssociateレベルの試験で、上位にMachine Learning Professionalがあります。
| 項目 | 内容 |
|---|---|
| 正式名称 | Databricks Certified Machine Learning Associate |
| 問題数 | 48問(採点対象。単一選択・複数選択) |
| 試験時間 | 90分 |
| 合格ライン | 非公表(統計的分析で設定され、変更されうる) |
| 受験料 | $200(税別) |
| 言語 | 英語・日本語・ポルトガル語(ブラジル)・韓国語 |
| 前提条件 | なし(実務6ヶ月以上の経験を推奨) |
| 有効期限 | 2年間 |
| 受験方式 | オンライン監督付き(公式の英語ページにはテストセンターも記載) |
日本語で受験可能です。 日本語ページからリンクされている日本語版の試験ガイドは2024年10月28日時点の版ですが、出題範囲の項目は英語版(2025年3月1日時点)と同じです。 残り時間は画面上部に常時表示され、問題のフラグ機能で後から見直す問題をマークできます。
| ドメイン | 配点 | 主要トピック |
|---|---|---|
| Databricks Machine Learning | 38%(約18問) | AutoML、Feature Store(Unity Catalog)、MLflow(Runの記録・Client API)、Unity Catalogのモデルレジストリとエイリアス、MLランタイム |
| ML Workflows(試験ガイドでの名称はData Processing) | 19%(約9問) | 要約統計量、外れ値の除去、可視化、欠損値の補完、ワンホットエンコーディング、対数変換 |
| Model Development | 31%(約15問) | アルゴリズムの選択、不均衡データ対策、EstimatorとTransformer、学習パイプライン、ハイパーパラメータ調整(Hyperopt)、交差検証、評価指標、バイアスとバリアンス |
| Model Deployment | 12%(約6問) | バッチ・リアルタイム・ストリーミング推論の違い、Model Servingへのデプロイ、pandasによるバッチ推論、エンドポイント間のトラフィック分割 |
問題数の目安は、公式の配点を48問に当てはめた概算です。 Databricks Machine Learning(38%)とModel Development(31%)の2ドメインで約7割を占めます。 前者はAutoML・Feature Store・MLflow・モデルレジストリといったDatabricksの機能そのもの、後者はアルゴリズムの選択・チューニング・評価といった機械学習の基礎を問います。 公式ページで「ML Workflows」となっているドメインは、試験ガイドでは「Data Processing」という名前で、要約統計量・外れ値・欠損値の補完・エンコーディングなどのデータ処理を扱います。
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 # 最大実行時間
)
# 最良のモデル・Run・ノートブックを取得
print(summary.best_trial) # 最良のTrialオブジェクト
print(summary.best_trial.model_path) # モデルのアーティファクトパス試験で問われるのは、AutoMLの結果として生成されるノートブックの意味です。 AutoMLは各Trialの実行コードをEditable Notebookとして自動生成し、データサイエンティストが 前処理ロジックやハイパーパラメータを手動で調整できるようにします。 つまりAutoMLは「ブラックボックス」ではなく「出発点」としてのベースラインモデルを提供する設計思想です。 なお、以前のmax_trialsパラメータはDatabricks Runtime 11.0 ML以降では使えないため、実行時間はtimeout_minutesで制限します。
Databricks Feature Storeは、機械学習の特徴量を一元管理するリポジトリです。 Unity Catalog上のDelta Tableとして特徴量テーブルを登録し、訓練時とサービング時で同じ特徴量定義を共有します。 ワークスペースごとのFeature StoreではなくUnity Catalog(アカウントレベル)に特徴量テーブルを作る利点も試験ガイドの項目で、 Unity CatalogではFeatureEngineeringClient(Feature Engineering in Unity Catalog)を使います。
FeatureEngineeringClient.create_table()でテーブルを作り、データを書き込む(試験ガイドのサンプル問題の正解もこの方法)FeatureEngineeringClient.create_training_set() で特徴量を結合FeatureEngineeringClient.score_batch() で自動的に最新の特徴量をルックアップDatabricks Machine Learningドメインでは、MLflow Trackingの基本操作(Experiment作成、Run記録、パラメータ/メトリクス/アーティファクトの保存)、 MLflow Client APIによる最良のRunの特定、MLflow UIで確認できる情報が問われます。 Databricks上では mlflow.autolog() がデフォルトで有効になっており、scikit-learn・XGBoost・LightGBM・PyTorch・TensorFlow等の 主要フレームワークでパラメータ・メトリクス・モデルが自動記録されます。 Runへのメトリクス・アーティファクト・モデルの手動記録も試験ガイドの項目なので、次のような明示的な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 はフレームワーク固有のモデルオブジェクトを受け取るという違いも頻出です。 最良のRunは、MlflowClient().search_runs()でメトリクスを基準に並べ替えて(例: order_by=["metrics.auc DESC"])特定します。
Model Registryはモデルのバージョン管理とライフサイクル管理を行います。 試験ガイドには、MLflow Client APIによるUnity Catalogのレジストリへの登録、旧Workspace Model Registryと比べたUnity Catalogのレジストリの利点、 モデルのタグの設定と削除、エイリアスによるchallengerモデルからchampionモデルへの昇格が含まれます。
| 観点 | 旧 Workspace Registry | Unity Catalog Registry |
|---|---|---|
| ステージ管理 | None → Staging → Production → Archived | エイリアス(champion / challenger 等、自由定義) |
| スコープ | 単一ワークスペース | アカウントレベル(複数ワークスペースで共有) |
| 権限モデル | ワークスペースレベルACL | Unity 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
)
# モデルバージョンへのタグの設定(削除はdelete_model_version_tag)
client.set_model_version_tag(
name="ml_prod.fraud.lgbm_model",
version=5,
key="validation_status",
value="approved"
)公式ページでは「ML Workflows」、試験ガイドでは「Data Processing(データ処理)」という名前のドメインで、 モデルに入れる前のデータの探索と前処理が問われます。試験ガイドの項目は9つです。
.summary()(count・mean・stddev・min・四分位・max)か、dbutils.data.summarize()で確認するfrom pyspark.ml.feature import Imputer, StringIndexer, OneHotEncoder
# 要約統計量
train_df.summary().show()
# 欠損値を中央値で補完
imputer = Imputer(strategy="median", inputCols=["income"], outputCols=["income_imputed"])
# カテゴリ列のワンホットエンコーディング(先にインデックス化してからエンコード)
indexer = StringIndexer(inputCol="plan", outputCol="plan_idx")
encoder = OneHotEncoder(inputCols=["plan_idx"], outputCols=["plan_ohe"])モデルの学習・チューニング・評価を問うドメインで、試験ガイドの項目は15個です。 Spark MLlib(pyspark.mlパッケージ)のPipeline APIは、「EstimatorとTransformerの比較」「学習パイプラインの作成」「交差検証」の項目に関わります。 Transformer(変換: データを受け取ってデータを返す)とEstimator(推定: データを受け取ってモデル=Transformerを返す)の 区別は、最も基本的なポイントです。
| 概念 | 役割 | 代表例 |
|---|---|---|
| Transformer | DataFrame → DataFrame(列を追加/変換) | VectorAssembler, StringIndexer(fit済み), Tokenizer |
| Estimator | DataFrame → Model(Transformer)を生成 | LogisticRegression, RandomForestClassifier, StringIndexer(未fit) |
| Pipeline | Transformer/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.bestModelCrossValidatorの parallelism パラメータは試験で問われやすいポイントです。 デフォルトは1(逐次実行)ですが、クラスタリソースに余裕があれば並列数を増やすことで チューニング時間を短縮できます。ただし各フォールドの訓練がSparkジョブとして分散実行されるため、 parallelismを上げすぎるとリソース競合が発生する点も把握しておく必要があります。
試験ガイドには、Hyperoptのfminによる調整、ランダムサーチ・グリッドサーチ・ベイズ最適化の使い分け、 単一ノードのモデルを並列にチューニングする方法が含まれます。HyperoptではSparkTrialsを使うと、 単一ノードのモデル(scikit-learnなど)の試行をSparkのワーカーに分散できます。
グリッドサーチと交差検証を組み合わせたときに学習されるモデル数を数える項目もあります。パラメータの組み合わせの数×分割数(fold数)で数え、 試験ガイドのサンプル問題では3値×2値×3値の18通りを5分割交差検証して90個です。 評価指標は、分類ではF1・Log Loss・ROC/AUC、回帰ではRMSE・MAE・R²が試験ガイドに挙がっています。 不均衡データへの対策(少数クラスの誤分類コストを高くするコスト考慮型学習など)や、モデルの複雑さとバイアス・バリアンスのトレードオフも範囲です。
推論の方式(バッチ・リアルタイム・ストリーミング)の違いと、Model Servingへのデプロイが問われます。 試験ガイドの項目は6つで、カスタムモデルのエンドポイントへのデプロイ、pandasによるバッチ推論、 Delta Live Tables(現在のLakeflow Pipelines)でのストリーミング推論、リアルタイム推論でのエンドポイント間のトラフィック分割が含まれます。
mlflow.pyfunc.spark_udf() でSpark DataFrameに適用# バッチ推論の典型パターン
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"))
)Pandas UDF(Vectorized UDF)は、単一ノードのPandas処理をSpark上で並列に実行するための仕組みです。 Apache Arrowでデータを受け渡すため、1行ずつ処理する通常のPython UDFより高速に処理できます。
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"))Model Servingでは、Unity Catalogに登録したモデル(カスタムモデルを含む)をエンドポイントにデプロイし、REST APIで呼び出します。 1つのエンドポイントに複数のモデルバージョンを載せ、トラフィックの割合(例: 90%と10%)を分けることもできます。
なお、TorchDistributorなどを使った深層学習の分散学習や、Pandas API on Spark(pyspark.pandas)は、 現行(2025年3月1日時点)の試験ガイドに項目がありません。データ並列とモデル並列の選び方やRayとSparkの比較といった大規模な分散学習は、 Machine Learning Professionalの試験ガイドに載っています。
MLflowはDatabricks Machine Learning(38%)の中心で、Runの記録、Client API、Unity Catalogのモデルレジストリ、エイリアスが試験ガイドに並びます。Model Deploymentでも登録済みのモデルを使うため、以下のAPIパターンを正確に覚えることが合格の鍵です。
| API | 引数 | 用途 |
|---|---|---|
mlflow.start_run() | run_name, nested | Runの開始(コンテキストマネージャーで使用) |
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_path | scikit-learnモデルの保存(フレーバー固有) |
mlflow.autolog() | なし(または設定辞書) | 対応フレームワークのパラメータ/メトリクス/モデルを自動記録 |
MlflowClient().search_runs() | experiment_ids, filter_string, order_by | 条件に合うRunを検索し、最良のRunを特定 |
mlflow.register_model() | model_uri, name | Model Registryへの登録 |
mlflow.pyfunc.spark_udf() | spark, model_uri | Spark UDFとしてバッチ推論に利用 |
| 出題テーマ | 問われる内容 |
|---|---|
| 対応タスク | Classification(分類)、Regression(回帰)、Forecasting(時系列予測)の3種。クラスタリングは非対応 |
| 実行方法 | UI(Experiments画面から起動)とAPI(automl.classify() 等)の2通り |
| 生成物 | MLflow Experiment、各TrialのRun、編集可能なソースノートブック、ベストモデル |
| データ前処理 | 欠損値補完、ワンホットエンコーディング、特徴量選択が自動実行される |
| カスタマイズ | 生成ノートブックを編集して前処理やモデルを調整し、独自のRunとして再実行可能 |
| トピック | DEA | ML Associate |
|---|---|---|
| Delta Lake基礎 | 取り込み・変換・テーブル管理の中心(Auto Loader、COPY INTO、Liquid Clusteringなど) | 特徴量テーブルの文脈で基礎レベル |
| Spark DataFrame | ETL操作中心(filter, join, aggregate) | ML用の特徴量エンジニアリング操作 |
| Unity Catalog | テーブル・ビューの権限管理 | モデルと特徴量テーブルの登録・管理(ワークスペースのレジストリとの比較を含む) |
| MLflow | 試験ガイドに項目なし | Tracking/Registry/Servingを詳細に出題 |
| Spark ML | 出題なし | Estimator/Transformer・学習パイプライン・交差検証を出題 |
| AutoML | 出題なし | 実行方法・生成物・カスタマイズを出題 |
| Lakeflow Pipelines(旧Delta Live Tables) | 出題あり(試験ガイドの表記はLakeflow Spark Declarative Pipelines) | ストリーミング推論の文脈で出題(試験ガイドの表記はDelta Live Tables) |
| Lakeflow Jobs | 詳細に出題 | 試験ガイドに項目なし |
DEAに合格済みの受験者は、Delta Lake・Spark DataFrame・Unity Catalogの基礎知識をそのまま活用できます。 追加で必要なのは、ML Associateの公式の4ドメインのほぼすべてです。Databricks Machine Learning(AutoML・Feature Store・MLflow・モデルレジストリ、38%)、 ML Workflows(データ処理、19%)、Model Development(31%)、Model Deployment(12%)がこれにあたります。 DEAの知識が直接役立つのは主にSpark DataFrameやUnity Catalogの基本操作なので、DEA合格者でも機械学習の部分は一から学ぶつもりで、下のロードマップを目安に計画してください。
create_training_set() で訓練データを作成するModel Development
問題 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___
正解: A
CrossValidatorのestimatorにはPipeline全体を渡します。lrだけを渡すと前処理(indexer, assembler)が含まれず、データの変換が行われないまま訓練が実行されてエラーになります。estimatorParamMapsにはParamGridBuilderで構築したパラメータグリッドのリストを渡します。最良モデルの取得はbestModelプロパティ(Pythonのキャメルケース)です。best_paramsはscikit-learnのAPIであり、Spark MLでは使用しません。
ML AssociateとData Engineer Associateは同時に勉強できますか?
Delta Lake・Spark DataFrame・Unity Catalogの基本は両方の試験で使いますが、ML Associateの公式の出題範囲は4つのドメインすべてが機械学習のタスクです(Databricks Machine Learning 38%・ML Workflows 19%・Model Development 31%・Model Deployment 12%)。MLflow・AutoML・Feature Store、モデルの学習・チューニング・評価、デプロイはDEAの試験ガイドにない項目なので、別に学ぶ必要があります。並行して勉強することもできますが、DEA→ML Associateの順に1試験ずつ集中する方が、学ぶ範囲を区切りやすく進めやすいでしょう。
ML Associateの試験でPythonコードはどの程度出ますか?
公式ページによると、この試験の機械学習のコードはすべてPythonで、機械学習に特化しないデータ操作のコードはSQLで出ることもあります。全48問のうち何問にコードが含まれるかは公表されていません。試験ガイドには、MLflowのRunへのメトリクス・アーティファクト・モデルの手動記録、EstimatorとTransformerの比較、学習パイプラインの作成、交差検証、Hyperoptのfminによるハイパーパラメータ調整といった項目があり、コードを読んで判断する力が求められます。選択式なので実際にコードを書くことはありませんが、APIの引数名や戻り値の型は正確に覚えておく必要があります。
ML ProfessionalとML Associateの違いは何ですか?
Associateは「Databricksを使って基本的な機械学習タスクをこなせるか」を問う試験で、AutoML・Feature Store・MLflow・Unity Catalogのモデルレジストリ、データの前処理、モデルの学習と評価、デプロイの基本が範囲です。Professionalはエンタープライズ規模のMLソリューションの設計・実装・管理を問い、SparkMLによるスケーラブルなパイプライン、分散学習とハイパーパラメータ調整(Optuna・Ray)、テスト、Declarative Automation Bundlesによる環境管理、自動再学習、Lakehouse Monitoring(現在の名称はデータプロファイリング)によるドリフト検出、ブルーグリーンやカナリアといったデプロイ戦略まで含みます。Associateの合格は受験の前提条件ではありませんが、Associateレベルの知識は当然求められます。
出題範囲を体系的に扱う教科書があります。全 16 章、登録なしで全部読めます。
第 0 部・無料
クラウド自体がはじめての方へ
サーバー・ネットワーク・データベースの前提知識なしで読める 8 章。登録不要・無料。
無料
Databricks とレイクハウスの全体像
なぜこの製品が要るのか、何がどこに属するか
無料
データはどこに、どんな形で保存されるか
テーブルの実体と Delta Lake の内部
NicheeLab編集部
データエンジニアリング・クラウド資格の専門家。Databricks・Snowflake等の認定資格を保有し、実務経験に基づいた問題作成・解説を行っています。NicheeLab運営。
Databricks資格一覧|全8試験・難易度・勉強法
Databricks認定資格(全8試験)の一覧・出題範囲・合格ライン・難易度を徹底解説。2026年10月時点の公式情報に...
Databricks試験の難易度ランキング|7資格を徹底比較
Databricks認定試験のうち7資格の難易度をランキング形式で徹底比較。合格率・学習時間・出題傾向から難易度を分析。...
Databricks資格の勉強方法|最短合格ルートと学習時間の目安
Databricks認定資格に最短で合格するための勉強方法を完全ガイド。公式リソース・問題集・学習スケジュールを徹底解説...
Databricks Data Engineer Associate完全解説|出題範囲・問題例・合格戦略
Databricks Certified Data Engineer Associate試験を徹底解説。2026年5月版...
Databricks Data Engineer Professional完全解説|上級試験の攻略法
Databricks Certified Data Engineer Professional試験を徹底解説。2026年...