用于机器学习的 Databricks Runtime 9.1 LTS
Databricks 于 2021 年 9 月发布了此映像并声明其为长期支持 (LTS) 版本。
用于机器学习的 Databricks Runtime 9.1 LTS 基于 Databricks Runtime 9.1 LTS,为机器学习和数据科学提供了随时可用的环境。 Databricks Runtime ML 包含许多常用的机器学习库,包括 TensorFlow、PyTorch 和 XGBoost。 Databricks Runtime ML 包括 AutoML 工具,可用于自动训练机器学习管道。 Databricks Runtime ML 还支持使用 Horovod 进行分布式深度学习训练。
注意
LTS 表示此版本受长期支持。 请参阅 Databricks Runtime LTS 版本生命周期。
有关详细信息,包括有关如何创建 Databricks Runtime ML 群集的说明,请参阅 Databricks 上的 AI 和机器学习。
新增功能和改进
自动化 ML
Databricks Runtime 9.1 LTS ML 及更高版本中进行了以下改进。
AutoML 通过采样实现对较大的数据集的支持
AutoML 现在对可能超出内存限制的数据集进行采样,从而能够在更大的数据集上运行,减少出现内存不足错误的风险。 有关详细信息,请参阅对大型数据集采样。
AutoML 根据语义类型预处理列
AutoML 检测某些列的语义类型与其 Spark 或 pandas 数据类型不同。 然后,AutoML 根据检测到的语义类型转换和应用数据预处理步骤。 具体而言,AutoML 执行以下转换:
- 表示日期或时间戳数据的字符串列和整数列将转换为时间戳类型。
- 表示数值数据的字符串列将转换为数值类型。
对 AutoML 生成的笔记本的改进
日期和时间戳列的预处理步骤现在整合到了 databricks-automl-runtime
包中,从而简化了 AutoML 训练生成的笔记本。 Databricks Runtime 9.1 LTS ML 及更高版本中包含 databricks-automl-runtime
,databricks-automl-runtime
上也提供。
特征存储
Databricks Runtime 9.1 LTS ML 及更高版本中进行了以下改进。
- 在创建 TrainingSet 时,现在可以将
label=None
设置为支持非监督式学习应用程序。 - 现在可以在一个
FeatureLookup
中指定多个特征。 - 现在可以为特征表指定自定义路径。 在
create_feature_table()
中使用path
参数。 默认为数据库位置。 - 新增支持的 PySpark 数据类型:ArrayType 和 ShortType。
MLflow
从 Mlflow 版本 1.20.2 开始进行了以下改进,该版本包含在 Databricks Runtime 9.1 LTS ML 中。
- 现在,每当调用 scikit-learn 评估 API(例如
sklearn.metrics.mean_squared_error
)时,对 scikit-learn 进行的自动日志记录都会记录训练后的指标。 - 现在,每当调用模型评估 API(例如
Evaluator.evaluate()
)时,对 PySpark ML 进行的自动日志记录都会记录训练后的指标。 mlflow.*.log_model
和mlflow.*.save_model
现在具有pip_requirements
和extra_pip_requirements
参数,可用于直接指定要记录或保存的模型的 pip 要求。mlflow.*.log_model
和mlflow.*.save_model
现在会根据当前软件环境自动推断要记录或保存的模型的 pip 要求。- 现在 PySpark CrossValidator 自动日志记录期间会将
stdMetrics
项记录为训练指标。 - PyTorch Lightning 自动日志记录现在支持分布式执行。
Databricks 自动日志记录(公共预览版)
Databricks 自动日志记录公共预览版已在新区域推出。 Databricks 自动日志记录是一种无代码解决方案,它为 Azure Databricks 上的机器学习训练会话提供自动试验跟踪。 使用 Databricks 自动日志记录,在通过各种热门机器学习库训练模型时可自动捕获模型参数、指标、文件和世系信息。 训练会话记录为 MLflow 跟踪运行。 还会跟踪模型文件,从而可以轻松地将这些文件记录到 MLflow 模型注册表,并通过 MLflow 模型服务部署它们进行实时评分。
有关 Databricks 自动日志记录的详细信息,请参阅 Databricks 自动日志记录。
Databricks Runtime ML Python 环境的主要更改
升级的 Python 包
- automl 1.1.1 => 1.2.1
- feature_store 0.3.3 => 0.3.4.1
- holidays 0.10.5.2 => 0.11.2
- keras 2.5.0 => 2.6.0
- mlflow 1.19.0 => 1.20.2
- petastorm 0.11.1 => 0.11.2
- plotly 4.14.3 => 5.1.0
- spark-tensorflow-distributor 0.1.0 => 1.0.0
- sparkdl 2.2.0_db1 => 2.2.0_db3
- tensorboard 2.5.0 => 2.6.0
- tensorflow 2.5.0 => 2.6.0
添加的 Python 包
- databricks-automl-runtime 0.1.0
系统环境
Databricks Runtime 9.1 LTS ML 中的系统环境与 Databricks Runtime 9.1 LTS 不同,如下所示:
- DBUtils:Databricks Runtime ML 不包含库实用工具 (dbutils.library)(旧版)。
请改用
%pip
命令。 请参阅作用域为笔记本的 Python 库。 - 对于 GPU 群集,Databricks Runtime ML 包含以下 NVIDIA GPU 库:
- CUDA 11.0
- cuDNN 8.1.0.77
- NCCL 2.10.3
- TensorRT 7.2.2
库
以下部分列出了 Databricks Runtime 9.1 LTS ML 中包含的库,这些库与 Databricks Runtime 9.1 LTS 中包含的不同。
本节内容:
顶层库
Databricks Runtime 9.1 LTS ML 包含以下顶层库:
- AutoML
- GraphFrames
- Horovod 和 HorovodRunner
- MLflow
- PyTorch
- spark-tensorflow-connector
- TensorFlow
- TensorBoard
Python 库
Databricks Runtime 9.1 LTS ML 使用 Virtualenv 进行 Python 包管理,并且包含许多常用的 ML 包。
除了在以下部分中指定的包,Databricks Runtime 9.1 LTS ML 还包含以下包:
- hyperopt 0.2.5.db2
- sparkdl 2.2.0_db3
- feature_store 0.3.4.1
- automl 1.2.1
CPU 群集上的 Python 库
库 | 版本 | 库 | 版本 | 库 | 版本 |
---|---|---|---|---|---|
absl-py | 0.11.0 | Antergos Linux | 2015.10 (ISO-Rolling) | appdirs | 1.4.4 |
argon2-cffi | 20.1.0 | astor | 0.8.1 | astunparse | 1.6.3 |
async-generator | 1.10 | attrs | 20.3.0 | backcall | 0.2.0 |
bcrypt | 3.2.0 | bleach | 3.3.0 | boto3 | 1.16.7 |
botocore | 1.19.7 | Bottleneck | 1.3.2 | cachetools | 4.2.2 |
certifi | 2020.12.5 | cffi | 1.14.5 | chardet | 4.0.0 |
clang | 5.0 | 单击 | 7.1.2 | cloudpickle | 1.6.0 |
cmdstanpy | 0.9.68 | configparser | 5.0.1 | convertdate | 2.3.2 |
密码系统 | 3.4.7 | cycler | 0.10.0 | Cython | 0.29.23 |
databricks-automl-runtime | 0.1.0 | databricks-cli | 0.14.3 | dbu-python | 1.2.16 |
decorator | 5.0.6 | defusedxml | 0.7.1 | dill | 0.3.2 |
diskcache | 5.2.1 | distlib | 0.3.2 | distro-info | 0.23ubuntu1 |
entrypoints | 0.3 | ephem | 4.0.0.2 | facets-overview | 1.0.0 |
filelock | 3.0.12 | Flask | 1.1.2 | flatbuffers | 1.12 |
fsspec | 0.9.0 | future | 0.18.2 | gast | 0.4.0 |
gitdb | 4.0.7 | GitPython | 3.1.12 | google-auth | 1.22.1 |
google-auth-oauthlib | 0.4.2 | google-pasta | 0.2.0 | grpcio | 1.39.0 |
gunicorn | 20.0.4 | h5py | 3.1.0 | hijri-converter | 2.2.1 |
holidays | 0.11.2 | horovod | 0.22.1 | htmlmin | 0.1.12 |
idna | 2.10 | ImageHash | 4.2.1 | importlib-metadata | 3.10.0 |
ipykernel | 5.3.4 | ipython | 7.22.0 | ipython-genutils | 0.2.0 |
ipywidgets | 7.6.3 | isodate | 0.6.0 | itsdangerous | 1.1.0 |
jedi | 0.17.2 | Jinja2 | 2.11.3 | jmespath | 0.10.0 |
joblib | 1.0.1 | joblibspark | 0.3.0 | jsonschema | 3.2.0 |
jupyter-client | 6.1.12 | jupyter-core | 4.7.1 | jupyterlab-pygments | 0.1.2 |
jupyterlab-widgets | 1.0.0 | keras | 2.6.0 | Keras-Preprocessing | 1.1.2 |
kiwisolver | 1.3.1 | koalas | 1.8.1 | korean-lunar-calendar | 0.2.1 |
lightgbm | 3.1.1 | llvmlite | 0.37.0 | LunarCalendar | 0.0.9 |
Mako | 1.1.3 | Markdown | 3.3.3 | MarkupSafe | 1.1.1 |
matplotlib | 3.4.2 | missingno | 0.5.0 | mistune | 0.8.4 |
mleap | 0.17.0 | mlflow-skinny | 1.20.2 | multimethod | 1.4 |
nbclient | 0.5.3 | nbconvert | 6.0.7 | nbformat | 5.1.3 |
nest-asyncio | 1.5.1 | networkx | 2.5 | nltk | 3.6.1 |
笔记本 | 6.3.0 | numba | 0.54.0 | numpy | 1.19.2 |
oauthlib | 3.1.0 | opt-einsum | 3.3.0 | 打包 | 20.9 |
pandas | 1.2.4 | pandas-profiling | 3.0.0 | pandocfilters | 1.4.3 |
paramiko | 2.7.2 | parso | 0.7.0 | patsy | 0.5.1 |
petastorm | 0.11.2 | pexpect | 4.8.0 | phik | 0.12.0 |
pickleshare | 0.7.5 | Pillow | 8.2.0 | pip | 21.0.1 |
plotly | 5.1.0 | prometheus-client | 0.10.1 | prompt-toolkit | 3.0.17 |
prophet | 1.0.1 | protobuf | 3.17.2 | psutil | 5.8.0 |
psycopg2 | 2.8.5 | ptyprocess | 0.7.0 | pyarrow | 4.0.0 |
pyasn1 | 0.4.8 | pyasn1-modules | 0.2.8 | pycparser | 2.20 |
pydantic | 1.8.2 | Pygments | 2.8.1 | PyGObject | 3.36.0 |
PyMeeus | 0.5.11 | PyNaCl | 1.3.0 | pyodbc | 4.0.30 |
pyparsing | 2.4.7 | pyrsistent | 0.17.3 | pystan | 2.19.1.1 |
python-apt | 2.0.0+ubuntu0.20.4.6 | python-dateutil | 2.8.1 | python-editor | 1.0.4 |
pytz | 2020.5 | PyWavelets | 1.1.1 | PyYAML | 5.4.1 |
pyzmq | 20.0.0 | regex | 2021.4.4 | 请求 | 2.25.1 |
requests-oauthlib | 1.3.0 | requests-unixsocket | 0.2.0 | rsa | 4.7.2 |
s3transfer | 0.3.7 | scikit-learn | 0.24.1 | scipy | 1.6.2 |
seaborn | 0.11.1 | Send2Trash | 1.5.0 | setuptools | 52.0.0 |
setuptools-git | 1.2 | shap | 0.39.0 | simplejson | 3.17.2 |
6 | 1.15.0 | slicer | 0.0.7 | smmap | 3.0.5 |
spark-tensorflow-distributor | 1.0.0 | sqlparse | 0.4.1 | ssh-import-id | 5.10 |
statsmodels | 0.12.2 | tabulate | 0.8.7 | tangled-up-in-unicode | 0.1.0 |
tenacity | 6.2.0 | tensorboard | 2.6.0 | tensorboard-data-server | 0.6.1 |
tensorboard-plugin-wit | 1.8.0 | tensorflow-cpu | 2.6.0 | tensorflow-estimator | 2.6.0 |
termcolor | 1.1.0 | terminado | 0.9.4 | testpath | 0.4.4 |
threadpoolctl | 2.1.0 | torch | 1.9.0+cpu | torchvision | 0.10.0+cpu |
tornado | 6.1 | tqdm | 4.59.0 | traitlets | 5.0.5 |
typing-extensions | 3.7.4.3 | ujson | 4.0.2 | unattended-upgrades | 0.1 |
urllib3 | 1.25.11 | virtualenv | 20.4.1 | visions | 0.7.1 |
wcwidth | 0.2.5 | webencodings | 0.5.1 | websocket-client | 0.57.0 |
Werkzeug | 1.0.1 | wheel | 0.36.2 | widgetsnbextension | 3.5.1 |
wrapt | 1.12.1 | xgboost | 1.4.2 | zipp | 3.4.1 |
GPU 群集上的 Python 库
库 | 版本 | 库 | 版本 | 库 | 版本 |
---|---|---|---|---|---|
absl-py | 0.11.0 | Antergos Linux | 2015.10 (ISO-Rolling) | appdirs | 1.4.4 |
argon2-cffi | 20.1.0 | astor | 0.8.1 | astunparse | 1.6.3 |
async-generator | 1.10 | attrs | 20.3.0 | backcall | 0.2.0 |
bcrypt | 3.2.0 | bleach | 3.3.0 | boto3 | 1.16.7 |
botocore | 1.19.7 | Bottleneck | 1.3.2 | cachetools | 4.2.2 |
certifi | 2020.12.5 | cffi | 1.14.5 | chardet | 4.0.0 |
clang | 5.0 | 单击 | 7.1.2 | cloudpickle | 1.6.0 |
cmdstanpy | 0.9.68 | configparser | 5.0.1 | convertdate | 2.3.2 |
密码系统 | 3.4.7 | cycler | 0.10.0 | Cython | 0.29.23 |
databricks-automl-runtime | 0.1.0 | databricks-cli | 0.14.3 | dbu-python | 1.2.16 |
decorator | 5.0.6 | defusedxml | 0.7.1 | dill | 0.3.2 |
diskcache | 5.2.1 | distlib | 0.3.2 | distro-info | 0.23ubuntu1 |
entrypoints | 0.3 | ephem | 4.0.0.2 | facets-overview | 1.0.0 |
filelock | 3.0.12 | Flask | 1.1.2 | flatbuffers | 1.12 |
fsspec | 0.9.0 | future | 0.18.2 | gast | 0.4.0 |
gitdb | 4.0.7 | GitPython | 3.1.12 | google-auth | 1.22.1 |
google-auth-oauthlib | 0.4.2 | google-pasta | 0.2.0 | grpcio | 1.39.0 |
gunicorn | 20.0.4 | h5py | 3.1.0 | hijri-converter | 2.2.1 |
holidays | 0.11.2 | horovod | 0.22.1 | htmlmin | 0.1.12 |
idna | 2.10 | ImageHash | 4.2.1 | importlib-metadata | 3.10.0 |
ipykernel | 5.3.4 | ipython | 7.22.0 | ipython-genutils | 0.2.0 |
ipywidgets | 7.6.3 | isodate | 0.6.0 | itsdangerous | 1.1.0 |
jedi | 0.17.2 | Jinja2 | 2.11.3 | jmespath | 0.10.0 |
joblib | 1.0.1 | joblibspark | 0.3.0 | jsonschema | 3.2.0 |
jupyter-client | 6.1.12 | jupyter-core | 4.7.1 | jupyterlab-pygments | 0.1.2 |
jupyterlab-widgets | 1.0.0 | keras | 2.6.0 | Keras-Preprocessing | 1.1.2 |
kiwisolver | 1.3.1 | koalas | 1.8.1 | korean-lunar-calendar | 0.2.1 |
lightgbm | 3.1.1 | llvmlite | 0.37.0 | LunarCalendar | 0.0.9 |
Mako | 1.1.3 | Markdown | 3.3.3 | MarkupSafe | 1.1.1 |
matplotlib | 3.4.2 | missingno | 0.5.0 | mistune | 0.8.4 |
mleap | 0.17.0 | mlflow-skinny | 1.20.2 | multimethod | 1.4 |
nbclient | 0.5.3 | nbconvert | 6.0.7 | nbformat | 5.1.3 |
nest-asyncio | 1.5.1 | networkx | 2.5 | nltk | 3.6.1 |
笔记本 | 6.3.0 | numba | 0.54.0 | numpy | 1.19.2 |
oauthlib | 3.1.0 | opt-einsum | 3.3.0 | 打包 | 20.9 |
pandas | 1.2.4 | pandas-profiling | 3.0.0 | pandocfilters | 1.4.3 |
paramiko | 2.7.2 | parso | 0.7.0 | patsy | 0.5.1 |
petastorm | 0.11.2 | pexpect | 4.8.0 | phik | 0.12.0 |
pickleshare | 0.7.5 | Pillow | 8.2.0 | pip | 21.0.1 |
plotly | 5.1.0 | prompt-toolkit | 3.0.17 | prophet | 1.0.1 |
protobuf | 3.17.2 | psutil | 5.8.0 | psycopg2 | 2.8.5 |
ptyprocess | 0.7.0 | pyarrow | 4.0.0 | pyasn1 | 0.4.8 |
pyasn1-modules | 0.2.8 | pycparser | 2.20 | pydantic | 1.8.2 |
Pygments | 2.8.1 | PyGObject | 3.36.0 | PyMeeus | 0.5.11 |
PyNaCl | 1.3.0 | pyodbc | 4.0.30 | pyparsing | 2.4.7 |
pyrsistent | 0.17.3 | pystan | 2.19.1.1 | python-apt | 2.0.0+ubuntu0.20.4.6 |
python-dateutil | 2.8.1 | python-editor | 1.0.4 | pytz | 2020.5 |
PyWavelets | 1.1.1 | PyYAML | 5.4.1 | pyzmq | 20.0.0 |
regex | 2021.4.4 | 请求 | 2.25.1 | requests-oauthlib | 1.3.0 |
requests-unixsocket | 0.2.0 | rsa | 4.7.2 | s3transfer | 0.3.7 |
scikit-learn | 0.24.1 | scipy | 1.6.2 | seaborn | 0.11.1 |
Send2Trash | 1.5.0 | setuptools | 52.0.0 | setuptools-git | 1.2 |
shap | 0.39.0 | simplejson | 3.17.2 | 6 | 1.15.0 |
slicer | 0.0.7 | smmap | 3.0.5 | spark-tensorflow-distributor | 1.0.0 |
sqlparse | 0.4.1 | ssh-import-id | 5.10 | statsmodels | 0.12.2 |
tabulate | 0.8.7 | tangled-up-in-unicode | 0.1.0 | tenacity | 6.2.0 |
tensorboard | 2.6.0 | tensorboard-data-server | 0.6.1 | tensorboard-plugin-wit | 1.8.0 |
tensorflow | 2.6.0 | tensorflow-estimator | 2.6.0 | termcolor | 1.1.0 |
terminado | 0.9.4 | testpath | 0.4.4 | threadpoolctl | 2.1.0 |
torch | 1.9.0+cu111 | torchvision | 0.10.0+cu111 | tornado | 6.1 |
tqdm | 4.59.0 | traitlets | 5.0.5 | typing-extensions | 3.7.4.3 |
ujson | 4.0.2 | unattended-upgrades | 0.1 | urllib3 | 1.25.11 |
virtualenv | 20.4.1 | visions | 0.7.1 | wcwidth | 0.2.5 |
webencodings | 0.5.1 | websocket-client | 0.57.0 | Werkzeug | 1.0.1 |
wheel | 0.36.2 | widgetsnbextension | 3.5.1 | wrapt | 1.12.1 |
xgboost | 1.4.2 | zipp | 3.4.1 |
包含 Python 模块的 Spark 包
Spark 包 | Python 模块 | 版本 |
---|---|---|
graphframes | graphframes | 0.8.1-db3-spark3.1 |
R 库
R 库与 Databricks Runtime 9.1 LTS 中的 R 库完全相同。
Java 库和 Scala 库(Scala 2.12 群集)
除了 Databricks Runtime 9.1 LTS 中的 Java 库和 Scala 库之外,Databricks Runtime 9.1 LTS ML 还包含以下 JAR:
CPU 群集
组 ID | 项目 ID | 版本 |
---|---|---|
com.typesafe.akka | akka-actor_2.12 | 2.5.23 |
ml.combust.mleap | mleap-databricks-runtime_2.12 | 0.17.0-4882dc3 |
ml.dmlc | xgboost4j-spark_2.12 | 1.4.1 |
ml.dmlc | xgboost4j_2.12 | 1.4.1 |
org.graphframes | graphframes_2.12 | 0.8.1-db2-spark3.1 |
org.mlflow | mlflow-client | 1.20.2 |
org.mlflow | mlflow-spark | 1.20.2 |
org.scala-lang.modules | scala-java8-compat_2.12 | 0.8.0 |
org.tensorflow | spark-tensorflow-connector_2.12 | 1.15.0 |
GPU 群集
组 ID | 项目 ID | 版本 |
---|---|---|
com.typesafe.akka | akka-actor_2.12 | 2.5.23 |
ml.combust.mleap | mleap-databricks-runtime_2.12 | 0.17.0-4882dc3 |
ml.dmlc | xgboost4j-gpu_2.12 | 1.4.1 |
ml.dmlc | xgboost4j-spark-gpu_2.12 | 1.4.1 |
org.graphframes | graphframes_2.12 | 0.8.1-db2-spark3.1 |
org.mlflow | mlflow-client | 1.20.2 |
org.mlflow | mlflow-spark | 1.20.2 |
org.scala-lang.modules | scala-java8-compat_2.12 | 0.8.0 |
org.tensorflow | spark-tensorflow-connector_2.12 | 1.15.0 |