Databricks Runtime 7.0 ML (EoS)
Nota
O suporte para esta versão do Databricks Runtime terminou. Para obter a data de fim do suporte, consulte Histórico de fim do suporte. Para todas as versões suportadas do Databricks Runtime, consulte Versões e compatibilidade das notas de versão do Databricks Runtime.
A Databricks lançou esta versão em junho de 2020.
O Databricks Runtime 7.0 for Machine Learning fornece um ambiente pronto para uso para aprendizado de máquina e ciência de dados com base no Databricks Runtime 7.0 (EoS). O Databricks Runtime ML contém muitas bibliotecas populares de aprendizado de máquina, incluindo TensorFlow, PyTorch e XGBoost. Ele também suporta treinamento distribuído de aprendizagem profunda usando Horovod.
Para obter mais informações, incluindo instruções para criar um cluster de ML do Databricks Runtime, consulte IA e aprendizado de máquina no Databricks.
Novos recursos e grandes mudanças
O Databricks Runtime 7.0 ML é construído sobre o Databricks Runtime 7.0. Para obter informações sobre o que há de novo no Databricks Runtime 7.0, incluindo Apache Spark MLlib e SparkR, consulte as notas de versão do Databricks Runtime 7.0 (EoS ).
Agendamento com reconhecimento de GPU
O Databricks Runtime 7.0 ML suporta agendamento com reconhecimento de GPU a partir do Apache Spark 3.0. O Azure Databricks configura-o automaticamente para si. Consulte Agendamento de GPU.
Principais alterações no ambiente ML Python
Esta seção descreve as principais alterações no ambiente ML Python pré-instalado em comparação com o Databricks Runtime 6.6 ML (EoS). Você também deve revisar as principais alterações no ambiente Python base no Databricks Runtime 7.0 (EoS). Para obter uma lista completa dos pacotes Python instalados e suas versões, consulte Bibliotecas Python.
Pacotes Python atualizados
- TensorFlow 1.15.0 -> 2.2.0
- TensorBoard 1.15.0 -> 2.2.2
- Pitocha 1.4.0 -> 1.5.0
- XGboost 0.90 -> 1.1.1
- Faísca 1.6.0-DB1 -> 2.1.0-DB1
- hiperopt 0.2.2.db1 -> 0.2.4.db1
Pacotes Python adicionados
- LightGBM: 2.3.0
- NLTK: 3.4.5
- Petastorm: 0.9.2
- Enredo: 4.5.2
Pacotes Python removidos
- argparse
- boto (use
boto3
em vez disso) - colorama
- preterido
- et-xmlfile
- fusepy
- html5lib
- jdcal
- keras (utilizar
tensorflow.keras
em vez disso) - keras-applications (use
tensorflow.keras.applications
em vez disso) - llvmlite
- lxml
- nariz
- nariz-excluir
- numba
- openpyxl
- pathlib2
- ply
- Pymongo
- singledispatch
- tensorboardX (use
torch.utils.tensorboard
em vez disso) - virtualenv
- WebEncodings
Principais alterações no ambiente ML R
O Databricks Runtime 7.0 ML inclui uma versão não modificada do RStudio Server Open Source v1.2.5033 para a qual o código-fonte pode ser encontrado no GitHub. Leia mais sobre o RStudio Server no Azure Databricks.
Alterações em pacotes ML Spark, bibliotecas Java e Scala
Os seguintes pacotes são atualizados. Alguns são atualizados para versões compatíveis com o SNAPSHOT
Apache Spark 3.0:
- Gráficos: 0.7.0-DB1-Spark2.4 -> 0.8.0-DB2-Spark3.0
- conector spark-tensorflow: 1.15.0 (Scala 2.11) -> 1.15.0 (Scala 2.12)
- xgboost4j e xgboost4j-faísca: 0.90 -> 1.0.0
- mleap-databricks-runtime: 0.17.0-4882dc3 (INSTANTÂNEO)
Os seguintes pacotes são removidos:
- TensorFlow (Java)
- TensorFrames
- Pipelines de Deep Learning para Apache Spark (HorovodRunner está disponível em Python)
Adicionados comandos conda e pip para suportar bibliotecas Python com escopo de notebook (visualização pública)
A partir do Databricks Runtime 7.0 ML, você pode usar %pip
comandos para %conda
gerenciar bibliotecas Python instaladas em uma sessão de notebook.
Você também pode usar esses comandos para criar um ambiente personalizado para um bloco de anotações e reproduzir esse ambiente entre blocos de anotações.
Para habilitar esse recurso, nas configurações de cluster, defina a configuração spark.databricks.conda.condaMagic.enabled true
do Spark .
Para obter mais informações, consulte Bibliotecas Python com escopo de bloco de anotações.
Descontinuações e recursos sem suporte
O Databricks Runtime 7.0 ML não suporta controle de acesso à tabela. Se você precisar de controle de acesso à tabela, recomendamos que use o Databricks Runtime 7.0.
Problemas conhecidos
- Se você estiver registrando um modelo MLlib no formato mleap, quando o
sample_input
argumento for passado paramlflow.spark.log_model
ele falhará com um AttributeError. Esse problema é causado por uma alteração de API para mleap. Para contornar esse problema, atualize para MLflow 1.9.0. Você pode instalar o MLflow 1.9.0 usando bibliotecas Python com escopo de notebook.
Ambiente do sistema
O ambiente do sistema no Databricks Runtime 7.0 ML difere do Databricks Runtime 7.0 da seguinte forma:
- DBUtils: Databricks Runtime ML não contém o utilitário Biblioteca (dbutils.library) (legado).
Você pode usar
%pip
e%conda
comandos em vez disso. Veja Bibliotecas em Python com âmbito de bloco de notas. - Para clusters de GPU, as seguintes bibliotecas de GPU NVIDIA:
- CUDA 10.1 Atualização 2
- cuDNN 7.6.5
- NCCL 2.7.3
- TensorRT 6.0.1
Bibliotecas
As seções a seguir listam as bibliotecas incluídas no Databricks Runtime 7.0 ML que diferem daquelas incluídas no Databricks Runtime 7.0.
Nesta secção:
- Bibliotecas de nível superior
- Bibliotecas Python
- Bibliotecas R
- Bibliotecas Java e Scala (cluster Scala 2.12)
Bibliotecas de nível superior
O Databricks Runtime 7.0 ML inclui as seguintes bibliotecas de camada superior:
- GraphFrames
- Horovod e HorovodRunner
- MLflow
- PyTorch
- conector spark-tensorflow;
- TensorFlow
- TensorBoard
Bibliotecas Python
O Databricks Runtime 7.0 ML usa o Conda para gerenciamento de pacotes Python e inclui muitos pacotes ML populares. A seção a seguir descreve o ambiente Conda para Databricks Runtime 7.0 ML.
Python em clusters de CPU
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 em clusters de GPU
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
Pacotes Spark contendo módulos Python
Pacote Spark | Módulo Python | Versão |
---|---|---|
quadros gráficos | quadros gráficos | 0.8.0-DB2-Faísca3.0 |
Bibliotecas R
As bibliotecas R são idênticas às bibliotecas R no Databricks Runtime 7.0 Beta.
Bibliotecas Java e Scala (cluster Scala 2.12)
Além das bibliotecas Java e Scala no Databricks Runtime 7.0, o Databricks Runtime 7.0 ML contém os seguintes JARs:
ID do Grupo | ID do Artefacto | Versão |
---|---|---|
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-cliente | 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 |