Databricks Runtime 7.0 ML (EoS)
Hinweis
Die Unterstützung für diese Databricks-Runtime-Version wurde beendet. Den End-of-Support-Termin finden Sie im Verlauf des Supportendes. Alle unterstützten Versionen von Databricks Runtime finden Sie unter Versionshinweise, Versionen und Kompatibilität von Databricks Runtime.
Diese Version wurde von Databricks im Juni 2020 veröffentlicht.
Databricks Runtime 7.0 für Machine Learning bietet eine sofort einsatzbereite Umgebung für maschinelles Lernen und Data Science auf Basis von Databricks Runtime 7.0 (EoS). Databricks Runtime ML enthält viele beliebte Machine Learning-Bibliotheken, einschließlich TensorFlow, PyTorch und XGBoost. Zudem wird ein verteiltes Deep Learning-Training mit Horovod unterstützt.
Weitere Informationen, einschließlich Anweisungen zum Erstellen eines Databricks Runtime ML-Clusters, finden Sie unter KI und Machine Learning in Databricks.
Neue Features und wichtige Änderungen
Databricks Runtime 7.0 ML basiert auf Databricks Runtime 7.0. Informationen zu den Neuerungen in Databricks Runtime 7.0, einschließlich Apache Spark MLlib und SparkR, finden Sie in den Versionshinweisen zu Databricks Runtime 7.0 (EoS).
GPU-fähige Planung
Databricks Runtime 7.0 ML unterstützt die GPU-fähige Planung in Apache Spark 3.0. Sie wird automatisch von Azure Databricks konfiguriert. Weitere Informationen finden Sie unter GPU-Planung.
Wichtige Änderungen an der ML-Python-Umgebung
In diesem Abschnitt werden die wichtigsten Änderungen an der vorinstallierten ML-Python-Umgebung im Vergleich zu Databricks Runtime 6.6 ML (EoS) beschrieben. Sie sollten sich auch über die wichtigsten Änderungen an der Python-Basisumgebung in Databricks Runtime 7.0 (EoS) informieren. Eine vollständige Liste der installierten Python-Pakete und deren Versionen finden Sie unter Python-Bibliotheken.
Python-Pakete, die ein Upgrade erhalten haben
- tensorflow 1.15.0 > 2.2.0
- tensorboard 1.15.0 > 2.2.2
- pytorch 1.4.0 > 1.5.0
- xgboost 0.90 > 1.1.1
- sparkdl 1.6.0-db1 > 2.1.0-db1
- hyperopt 0.2.2.db1 > 0.2.4.db1
Hinzugefügte Python-Pakete
- lightgbm: 2.3.0
- nltk: 3.4.5
- petastorm: 0.9.2
- plotly: 4.5.2
Entfernte Python-Pakete
- argparse
- boto (stattdessen
boto3
verwenden) - colorama
- veraltet
- et-xmlfile
- fusepy
- html5lib
- jdcal
- keras (stattdessen
tensorflow.keras
verwenden) - keras-applications (stattdessen
tensorflow.keras.applications
verwenden) - llvmlite
- lxml
- nose
- nose-exclude
- numba
- openpyxl
- pathlib2
- ply
- pymongo
- singledispatch
- tensorboardX (stattdessen
torch.utils.tensorboard
verwenden) - virtualenv
- webencodings
Wichtige Änderungen an der ML-R-Umgebung
Databricks Runtime 7.0 ML enthält eine unveränderte Version von RStudio Server Open Source v1.2.5033. Den entsprechenden Quellcode finden Sie auf GitHub. Informieren Sie sich weiter über RStudio Server in Azure Databricks.
Änderungen an ML-Spark-Paketen sowie Java- und Scala-Bibliotheken
Für die folgenden Pakete ist ein Upgrade verfügbar. Einige werden auf SNAPSHOT
-Releases aktualisiert, die mit Apache Spark 3.0 kompatibel sind:
- graphframes: 0.7.0-db1-spark2.4 > 0.8.0-db2-spark3.0
- spark-tensorflow-connector: 1.15.0 (Scala 2.11) > 1.15.0 (Scala 2.12)
- xgboost4j und xgboost4j-spark: 0.90 > 1.0.0
- mleap-databricks-runtime: 0.17.0-4882dc3 (SNAPSHOT)
Die folgenden Pakete werden entfernt:
- TensorFlow (Java)
- TensorFrames
- Deep-Learning-Pipelines für Apache Spark (HorovodRunner ist in Python verfügbar)
Hinzugefügte Conda- und PIP-Befehle zur Unterstützung von auf Notebooks beschränkte Python-Bibliotheken (Public Preview)
Ab Databricks Runtime 7.0 ML können Sie die Befehle %pip
und %conda
verwenden, um in einer Notebooksitzung installierte Python-Bibliotheken zu verwalten.
Sie können diese Befehle auch verwenden, um eine benutzerdefinierte Umgebung für ein Notebook zu erstellen und diese Umgebung zwischen Notebooks zu reproduzieren.
Um dieses Feature zu aktivieren, legen Sie in den Clustereinstellungen die Spark-Konfiguration spark.databricks.conda.condaMagic.enabled true
fest.
Weitere Informationen finden Sie unter Auf Notebooks beschränkte Python-Bibliotheken.
Veraltete und nicht unterstützte Features
Databricks Runtime 7.0 ML unterstützt keine Tabellenzugriffssteuerung. Es wird empfohlen, Databricks Runtime 7.0 zu verwenden, wenn Sie die Tabellenzugriffssteuerung benötigen.
Bekannte Probleme
- Wenn Sie ein MLlib-Modell im mleap-Format protokollieren, schlägt das
sample_input
-Argument bei der Weitergabe anmlflow.spark.log_model
mit einem AttributeError fehl. Dieses Problem wird durch eine API-Änderung in mleap verursacht. Um dieses Problem zu umgehen, führen Sie ein Upgrade auf MLflow 1.9.0 durch. Sie können MLflow 1.9.0 mit Notebook-bezogenen Python-Bibliotheken installieren.
Systemumgebung
Die Systemumgebung in Databricks Runtime 7.0 ML unterscheidet sich wie folgt von Databricks Runtime 7.0:
- DBUtils: Databricks Runtime ML enthält kein Bibliothekshilfsprogramm (dbutils.library) (Legacy).
Sie können stattdessen die Befehle
%pip
und%conda
verwenden. Informationen finden Sie unter Python-Bibliotheken im Notebook-Bereich. - Für GPU-Cluster sind die folgenden NVIDIA-GPU-Bibliotheken verfügbar:
- CUDA 10.1 Update 2
- cuDNN 7.6.5
- NCCL 2.7.3
- TensorRT 6.0.1
Bibliotheken
In den folgenden Abschnitten sind die Bibliotheken aufgelistet, die in Databricks Runtime 7.0 ML enthalten sind und sich von den in Databricks Runtime 7.0 enthaltenen Bibliotheken unterscheiden.
Inhalt dieses Abschnitts:
- Bibliotheken der obersten Ebene
- Python-Bibliotheken
- R-Bibliotheken
- Java- und Scala-Bibliotheken (Scala 2.12-Cluster)
Bibliotheken der obersten Ebene
Databricks Runtime 7.0 ML enthält die folgenden Bibliotheken der obersten Ebene:
- GraphFrames
- Horovod und HorovodRunner
- MLflow
- PyTorch
- spark-tensorflow-connector
- TensorFlow
- TensorBoard
Python-Bibliotheken
Databricks Runtime 7.0 ML verwendet Conda für die Python-Paketverwaltung und enthält viele beliebte ML-Pakete. Im folgenden Abschnitt wird die Conda-Umgebung für Databricks Runtime 7.0 ML beschrieben.
Python in CPU-Clustern
name: databricks-ml
channels:
- pytorch
- defaults
dependencies:
- _libgcc_mutex=0.1=main
- absl-py=0.9.0=py37_0
- asn1crypto=1.3.0=py37_0
- astor=0.8.0=py37_0
- backcall=0.1.0=py37_0
- backports=1.0=py_2
- bcrypt=3.1.7=py37h7b6447c_1
- blas=1.0=mkl
- blinker=1.4=py37_0
- boto3=1.12.0=py_0
- botocore=1.15.0=py_0
- c-ares=1.15.0=h7b6447c_1001
- ca-certificates=2020.1.1=0
- cachetools=4.1.0=py_1
- certifi=2020.4.5.1=py37_0
- cffi=1.14.0=py37h2e261b9_0
- chardet=3.0.4=py37_1003
- click=7.0=py37_0
- cloudpickle=1.3.0=py_0
- configparser=3.7.4=py37_0
- cpuonly=1.0=0
- cryptography=2.8=py37h1ba5d50_0
- cycler=0.10.0=py37_0
- cython=0.29.15=py37he6710b0_0
- decorator=4.4.1=py_0
- dill=0.3.1.1=py37_1
- docutils=0.15.2=py37_0
- entrypoints=0.3=py37_0
- flask=1.1.1=py_1
- freetype=2.9.1=h8a8886c_1
- future=0.18.2=py37_1
- gast=0.3.3=py_0
- gitdb2=2.0.6=py_0
- gitpython=3.0.5=py_0
- google-auth=1.11.2=py_0
- google-auth-oauthlib=0.4.1=py_2
- google-pasta=0.2.0=py_0
- grpcio=1.27.2=py37hf8bcb03_0
- gunicorn=20.0.4=py37_0
- h5py=2.10.0=py37h7918eee_0
- hdf5=1.10.4=hb1b8bf9_0
- icu=58.2=he6710b0_3
- idna=2.8=py37_0
- intel-openmp=2020.0=166
- ipykernel=5.1.4=py37h39e3cac_0
- ipython=7.12.0=py37h5ca1d4c_0
- ipython_genutils=0.2.0=py37_0
- itsdangerous=1.1.0=py37_0
- jedi=0.14.1=py37_0
- jinja2=2.11.1=py_0
- jmespath=0.9.4=py_0
- joblib=0.14.1=py_0
- jpeg=9b=h024ee3a_2
- jupyter_client=5.3.4=py37_0
- jupyter_core=4.6.1=py37_0
- kiwisolver=1.1.0=py37he6710b0_0
- krb5=1.16.4=h173b8e3_0
- ld_impl_linux-64=2.33.1=h53a641e_7
- libedit=3.1.20181209=hc058e9b_0
- libffi=3.2.1=hd88cf55_4
- libgcc-ng=9.1.0=hdf63c60_0
- libgfortran-ng=7.3.0=hdf63c60_0
- libpng=1.6.37=hbc83047_0
- libpq=11.2=h20c2e04_0
- libprotobuf=3.11.4=hd408876_0
- libsodium=1.0.16=h1bed415_0
- libstdcxx-ng=9.1.0=hdf63c60_0
- libtiff=4.1.0=h2733197_0
- lightgbm=2.3.0=py37he6710b0_0
- lz4-c=1.8.1.2=h14c3975_0
- mako=1.1.2=py_0
- markdown=3.1.1=py37_0
- markupsafe=1.1.1=py37h7b6447c_0
- matplotlib-base=3.1.3=py37hef1b27d_0
- mkl=2020.0=166
- mkl-service=2.3.0=py37he904b0f_0
- mkl_fft=1.0.15=py37ha843d7b_0
- mkl_random=1.1.0=py37hd6b4f25_0
- ncurses=6.2=he6710b0_1
- networkx=2.4=py_0
- ninja=1.9.0=py37hfd86e86_0
- nltk=3.4.5=py37_0
- numpy=1.18.1=py37h4f9e942_0
- numpy-base=1.18.1=py37hde5b4d6_1
- oauthlib=3.1.0=py_0
- olefile=0.46=py37_0
- openssl=1.1.1g=h7b6447c_0
- packaging=20.1=py_0
- pandas=1.0.1=py37h0573a6f_0
- paramiko=2.7.1=py_0
- parso=0.5.2=py_0
- patsy=0.5.1=py37_0
- pexpect=4.8.0=py37_0
- pickleshare=0.7.5=py37_0
- pillow=7.0.0=py37hb39fc2d_0
- pip=20.0.2=py37_3
- plotly=4.5.2=py_0
- prompt_toolkit=3.0.3=py_0
- protobuf=3.11.4=py37he6710b0_0
- psutil=5.6.7=py37h7b6447c_0
- psycopg2=2.8.4=py37h1ba5d50_0
- ptyprocess=0.6.0=py37_0
- pyasn1=0.4.8=py_0
- pyasn1-modules=0.2.7=py_0
- pycparser=2.19=py37_0
- pygments=2.5.2=py_0
- pyjwt=1.7.1=py37_0
- pynacl=1.3.0=py37h7b6447c_0
- pyodbc=4.0.30=py37he6710b0_0
- pyopenssl=19.1.0=py37_0
- pyparsing=2.4.6=py_0
- pysocks=1.7.1=py37_0
- python=3.7.6=h0371630_2
- python-dateutil=2.8.1=py_0
- python-editor=1.0.4=py_0
- pytorch=1.5.0=py3.7_cpu_0
- pytz=2019.3=py_0
- pyzmq=18.1.1=py37he6710b0_0
- readline=7.0=h7b6447c_5
- requests=2.22.0=py37_1
- requests-oauthlib=1.3.0=py_0
- retrying=1.3.3=py37_2
- rsa=4.0=py_0
- s3transfer=0.3.3=py37_0
- scikit-learn=0.22.1=py37hd81dba3_0
- scipy=1.4.1=py37h0b6359f_0
- setuptools=45.2.0=py37_0
- simplejson=3.17.0=py37h7b6447c_0
- six=1.14.0=py37_0
- smmap2=2.0.5=py37_0
- sqlite=3.31.1=h62c20be_1
- sqlparse=0.3.0=py_0
- statsmodels=0.11.0=py37h7b6447c_0
- tabulate=0.8.3=py37_0
- tk=8.6.8=hbc83047_0
- torchvision=0.6.0=py37_cpu
- tornado=6.0.3=py37h7b6447c_3
- tqdm=4.42.1=py_0
- traitlets=4.3.3=py37_0
- unixodbc=2.3.7=h14c3975_0
- urllib3=1.25.8=py37_0
- wcwidth=0.1.8=py_0
- websocket-client=0.56.0=py37_0
- werkzeug=1.0.0=py_0
- wheel=0.34.2=py37_0
- wrapt=1.11.2=py37h7b6447c_0
- xz=5.2.4=h14c3975_4
- zeromq=4.3.1=he6710b0_3
- zlib=1.2.11=h7b6447c_3
- zstd=1.3.7=h0b5b093_0
- pip:
- astunparse==1.6.3
- databricks-cli==0.11.0
- diskcache==4.1.0
- docker==4.2.1
- gorilla==0.3.0
- horovod==0.19.1
- hyperopt==0.2.4.db1
- keras-preprocessing==1.1.2
- mleap==0.16.0
- mlflow==1.8.0
- opt-einsum==3.2.1
- petastorm==0.9.2
- pyarrow==0.15.1
- pyyaml==5.3.1
- querystring-parser==1.2.4
- seaborn==0.10.0
- sparkdl==2.1.0-db1
- tensorboard==2.2.2
- tensorboard-plugin-wit==1.6.0.post3
- tensorflow-cpu==2.2.0
- tensorflow-estimator==2.2.0
- termcolor==1.1.0
- xgboost==1.1.1
prefix: /databricks/conda/envs/databricks-ml
Python in GPU-Clustern
name: databricks-ml-gpu
channels:
- pytorch
- defaults
dependencies:
- _libgcc_mutex=0.1=main
- absl-py=0.9.0=py37_0
- asn1crypto=1.3.0=py37_0
- astor=0.8.0=py37_0
- backcall=0.1.0=py37_0
- backports=1.0=py_2
- bcrypt=3.1.7=py37h7b6447c_1
- blas=1.0=mkl
- blinker=1.4=py37_0
- boto3=1.12.0=py_0
- botocore=1.15.0=py_0
- c-ares=1.15.0=h7b6447c_1001
- ca-certificates=2020.1.1=0
- cachetools=4.1.0=py_1
- certifi=2020.4.5.2=py37_0
- cffi=1.14.0=py37h2e261b9_0
- chardet=3.0.4=py37_1003
- click=7.0=py37_0
- cloudpickle=1.3.0=py_0
- configparser=3.7.4=py37_0
- cryptography=2.8=py37h1ba5d50_0
- cudatoolkit=10.1.243=h6bb024c_0
- cycler=0.10.0=py37_0
- cython=0.29.15=py37he6710b0_0
- decorator=4.4.1=py_0
- dill=0.3.1.1=py37_1
- docutils=0.15.2=py37_0
- entrypoints=0.3=py37_0
- flask=1.1.1=py_1
- freetype=2.9.1=h8a8886c_1
- future=0.18.2=py37_1
- gast=0.3.3=py_0
- gitdb2=2.0.6=py_0
- gitpython=3.0.5=py_0
- google-auth=1.11.2=py_0
- google-auth-oauthlib=0.4.1=py_2
- google-pasta=0.2.0=py_0
- grpcio=1.27.2=py37hf8bcb03_0
- gunicorn=20.0.4=py37_0
- h5py=2.10.0=py37h7918eee_0
- hdf5=1.10.4=hb1b8bf9_0
- icu=58.2=he6710b0_3
- idna=2.8=py37_0
- intel-openmp=2020.0=166
- ipykernel=5.1.4=py37h39e3cac_0
- ipython=7.12.0=py37h5ca1d4c_0
- ipython_genutils=0.2.0=py37_0
- itsdangerous=1.1.0=py37_0
- jedi=0.14.1=py37_0
- jinja2=2.11.1=py_0
- jmespath=0.9.4=py_0
- joblib=0.14.1=py_0
- jpeg=9b=h024ee3a_2
- jupyter_client=5.3.4=py37_0
- jupyter_core=4.6.1=py37_0
- kiwisolver=1.1.0=py37he6710b0_0
- krb5=1.16.4=h173b8e3_0
- ld_impl_linux-64=2.33.1=h53a641e_7
- libedit=3.1.20181209=hc058e9b_0
- libffi=3.2.1=hd88cf55_4
- libgcc-ng=9.1.0=hdf63c60_0
- libgfortran-ng=7.3.0=hdf63c60_0
- libpng=1.6.37=hbc83047_0
- libpq=11.2=h20c2e04_0
- libprotobuf=3.11.4=hd408876_0
- libsodium=1.0.16=h1bed415_0
- libstdcxx-ng=9.1.0=hdf63c60_0
- libtiff=4.1.0=h2733197_0
- lightgbm=2.3.0=py37he6710b0_0
- lz4-c=1.8.1.2=h14c3975_0
- mako=1.1.2=py_0
- markdown=3.1.1=py37_0
- markupsafe=1.1.1=py37h7b6447c_0
- matplotlib-base=3.1.3=py37hef1b27d_0
- mkl=2020.0=166
- mkl-service=2.3.0=py37he904b0f_0
- mkl_fft=1.0.15=py37ha843d7b_0
- mkl_random=1.1.0=py37hd6b4f25_0
- ncurses=6.2=he6710b0_1
- networkx=2.4=py_0
- ninja=1.9.0=py37hfd86e86_0
- nltk=3.4.5=py37_0
- numpy=1.18.1=py37h4f9e942_0
- numpy-base=1.18.1=py37hde5b4d6_1
- oauthlib=3.1.0=py_0
- olefile=0.46=py37_0
- openssl=1.1.1g=h7b6447c_0
- packaging=20.1=py_0
- pandas=1.0.1=py37h0573a6f_0
- paramiko=2.7.1=py_0
- parso=0.5.2=py_0
- patsy=0.5.1=py37_0
- pexpect=4.8.0=py37_0
- pickleshare=0.7.5=py37_0
- pillow=7.0.0=py37hb39fc2d_0
- pip=20.0.2=py37_3
- plotly=4.5.2=py_0
- prompt_toolkit=3.0.3=py_0
- protobuf=3.11.4=py37he6710b0_0
- psutil=5.6.7=py37h7b6447c_0
- psycopg2=2.8.4=py37h1ba5d50_0
- ptyprocess=0.6.0=py37_0
- pyasn1=0.4.8=py_0
- pyasn1-modules=0.2.7=py_0
- pycparser=2.19=py37_0
- pygments=2.5.2=py_0
- pyjwt=1.7.1=py37_0
- pynacl=1.3.0=py37h7b6447c_0
- pyodbc=4.0.30=py37he6710b0_0
- pyopenssl=19.1.0=py37_0
- pyparsing=2.4.6=py_0
- pysocks=1.7.1=py37_0
- python=3.7.6=h0371630_2
- python-dateutil=2.8.1=py_0
- python-editor=1.0.4=py_0
- pytorch=1.5.0=py3.7_cuda10.1.243_cudnn7.6.3_0
- pytz=2019.3=py_0
- pyzmq=18.1.1=py37he6710b0_0
- readline=7.0=h7b6447c_5
- requests=2.22.0=py37_1
- requests-oauthlib=1.3.0=py_0
- retrying=1.3.3=py37_2
- rsa=4.0=py_0
- s3transfer=0.3.3=py37_0
- scikit-learn=0.22.1=py37hd81dba3_0
- scipy=1.4.1=py37h0b6359f_0
- setuptools=45.2.0=py37_0
- simplejson=3.17.0=py37h7b6447c_0
- six=1.14.0=py37_0
- smmap2=2.0.5=py37_0
- sqlite=3.31.1=h62c20be_1
- sqlparse=0.3.0=py_0
- statsmodels=0.11.0=py37h7b6447c_0
- tabulate=0.8.3=py37_0
- tk=8.6.8=hbc83047_0
- torchvision=0.6.0=py37_cu101
- tornado=6.0.3=py37h7b6447c_3
- tqdm=4.42.1=py_0
- traitlets=4.3.3=py37_0
- unixodbc=2.3.7=h14c3975_0
- urllib3=1.25.8=py37_0
- wcwidth=0.1.8=py_0
- websocket-client=0.56.0=py37_0
- werkzeug=1.0.0=py_0
- wheel=0.34.2=py37_0
- wrapt=1.11.2=py37h7b6447c_0
- xz=5.2.4=h14c3975_4
- zeromq=4.3.1=he6710b0_3
- zlib=1.2.11=h7b6447c_3
- zstd=1.3.7=h0b5b093_0
- pip:
- astunparse==1.6.3
- databricks-cli==0.11.0
- diskcache==4.1.0
- docker==4.2.1
- gorilla==0.3.0
- horovod==0.19.1
- hyperopt==0.2.4.db1
- keras-preprocessing==1.1.2
- mleap==0.16.0
- mlflow==1.8.0
- opt-einsum==3.2.1
- petastorm==0.9.2
- pyarrow==0.15.1
- pyyaml==5.3.1
- querystring-parser==1.2.4
- seaborn==0.10.0
- sparkdl==2.1.0-db1
- tensorboard==2.2.2
- tensorboard-plugin-wit==1.6.0.post3
- tensorflow-estimator==2.2.0
- tensorflow-gpu==2.2.0
- termcolor==1.1.0
- xgboost==1.1.1
prefix: /databricks/conda/envs/databricks-ml-gpu
Spark-Pakete mit Python-Modulen
Spark-Paket | Python-Modul | Version |
---|---|---|
graphframes | graphframes | 0.8.0-db2-spark3.0 |
R-Bibliotheken
Die R-Bibliotheken sind mit den R-Bibliotheken in Databricks Runtime 7.0 Beta identisch.
Java- und Scala-Bibliotheken (Scala 2.12-Cluster)
Zusätzlich zu Java- und Scala-Bibliotheken in Databricks Runtime 7.0 enthält Databricks Runtime 7.0 ML die folgenden JAR-Dateien:
Gruppen-ID | Artefakt-ID | Version |
---|---|---|
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.0.0 |
ml.dmlc | xgboost4j_2.12 | 1.0.0 |
org.mlflow | mlflow-client | 1.8.0 |
org.scala-lang.modules | scala-java8-compat_2.12 | 0.8.0 |
org.tensorflow | spark-tensorflow-connector_2.12 | 1.15.0 |