다음을 통해 공유


ML용 Databricks Runtime 6.3(지원되지 않음)

Databricks는 2020년 1월에 이 이미지를 릴리스했습니다.

Machine Learning용 Databricks Runtime 6.3은 Databricks Runtime 6.3(지원되지 않음)을 기반으로 기계 학습 및 데이터 과학을 위한 즉시 사용할 수 있는 환경을 제공합니다. Databricks Runtime ML에는 TensorFlow, PyTorch, Keras, XGBoost를 포함하여 널리 사용되는 많은 기계 학습 라이브러리가 포함되어 있습니다. 또한 Horovod를 사용하여 분산 딥 러닝 학습을 지원합니다.

Databricks 런타임 ML 클러스터를 만들기 위한 지침을 비롯한 자세한 내용은 Databricks의 AI 및 Machine Learning을 참조 하세요.

새로운 기능

Databricks Runtime 6.3 ML은 Databricks Runtime 6.3을 기반으로 빌드됩니다. Databricks Runtime 6.3의 새로운 기능에 대한 자세한 내용은 Databricks Runtime 6.3(지원되지 않는) 릴리스 정보를 참조하세요.

향상된 기능

업그레이드된 기계 학습 라이브러리

  • PyTorch: 1.3.0~1.3.1
  • torchvision: 0.4.1~0.4.2 - 최적화된 비디오 판독기 백 엔드 포함
  • MLflow: 1.4.0 ~ 1.5.0
    • LightGBM, XGBoost 및 Gluon 버전에 대한 지원이 포함됩니다.
    • Databricks Runtime ML 클러스터에 대해 MLflow 프로젝트를 실행할 수 없는 버그가 수정되었습니다.
    • 자세한 내용은 MLflow 1.5.0 릴리스를 참조하세요.
  • Hyperopt: 0.2.1 ~ 0.2.2 - 업데이트 포함:
    • 알고리즘이 hp.choicehp.randint와 함께 제대로 작동하지 않는 ATPE(Adaptiv-TPE)의 버그가 수정되었습니다.

    • 진행률을 보고하기 위한 Python 모듈인 tqdm을 사용하는 일부 버그가 수정되었습니다. 예를 들어 병렬 fmin() 실행 시 진행률 표시줄이 잘못된 경우가 있습니다.

    • 이제 장기 실행 평가판에 대한 Spark 작업 재시도에 대해 경고합니다. 재시도가 활성화되고 평가판 실행이 느리게 진행되면 이 메시지가 인쇄됩니다.

      SparkTrials found that the Spark conf 'spark.task.maxFailures' is set to 4, which will make trials re-run automatically if they fail.
      If failures can occur from bad hyperparameter settings, or if trials are very long-running, then retries may not be a good idea.
      Consider setting spark.conf.set('spark.task.maxFailures', '1') to prevent retries.
      
    • 기타 작은 수정 사항 자세한 내용은 Hyperopt 0.2.2 릴리스를 참조하세요.

버그 수정

다중 GPU 노드가 있는 GPU 클러스터에서 자주 발생하는 일부 누락된 클러스터 메트릭을 발생시키는 문제를 해결했습니다.

시스템 환경

Databricks Runtime 6.3 ML의 시스템 환경은 다음과 같이 Databricks Runtime 6.3과 다릅니다.

  • DBUtils: 라이브러리 유틸리티(dbutils.library)(레거시)를 포함하지 않습니다.
  • GPU 클러스터의 경우 다음 NVIDIA GPU 라이브러리를 사용합니다.
    • CUDA 10.0
    • cuDNN 7.6.4
    • NCCL 2.4.8

라이브러리

다음 섹션에서는 Databricks Runtime 6.3에 포함된 라이브러리와 다른 Databricks Runtime 6.3 ML 라이브러리를 나열합니다.

이 섹션의 내용:

최상위 계층 라이브러리

Databricks Runtime 6.3 ML에는 다음과 같은 최상위 계층 라이브러리가 포함되어 있습니다.

Python 라이브러리

Databricks Runtime 6.3 ML은 Python 패키지 관리에 Conda를 사용하며 많은 인기 있는 ML 패키지를 포함합니다. 다음 섹션에서는 Databricks Runtime 6.3 ML용 Conda 환경에 대해 설명합니다.

CPU 클러스터의 Python

name: databricks-ml
channels:
  - Databricks
  - pytorch
  - defaults
dependencies:
  - _libgcc_mutex=0.1=main
  - _py-xgboost-mutex=2.0=cpu_0
  - _tflow_select=2.3.0=mkl
  - absl-py=0.8.1=py37_0
  - asn1crypto=0.24.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_0
  - blas=1.0=mkl
  - boto=2.49.0=py37_0
  - boto3=1.9.162=py_0
  - botocore=1.12.163=py_0
  - c-ares=1.15.0=h7b6447c_1001
  - ca-certificates=2019.1.23=0
  - certifi=2019.3.9=py37_0
  - cffi=1.12.2=py37h2e261b9_1
  - chardet=3.0.4=py37_1003
  - click=7.0=py_0
  - cloudpickle=0.8.0=py37_0
  - colorama=0.4.1=py_0
  - configparser=3.7.4=py37_0
  - cpuonly=1.0=0
  - cryptography=2.6.1=py37h1ba5d50_0
  - cycler=0.10.0=py37_0
  - cython=0.29.6=py37he6710b0_0
  - decorator=4.4.0=py37_1
  - docutils=0.14=py37_0
  - entrypoints=0.3=py37_0
  - et_xmlfile=1.0.1=py37_0
  - flask=1.0.2=py37_1
  - freetype=2.9.1=h8a8886c_1
  - future=0.17.1=py37_0
  - gast=0.2.2=py37_0
  - gitdb2=2.0.6=py_0
  - gitpython=2.1.11=py37_0
  - google-pasta=0.1.8=py_0
  - grpcio=1.16.1=py37hf8bcb03_1
  - gunicorn=19.9.0=py37_0
  - h5py=2.9.0=py37h7918eee_0
  - hdf5=1.10.4=hb1b8bf9_0
  - html5lib=1.0.1=py_0
  - icu=58.2=h9c2bf20_1
  - idna=2.8=py37_0
  - intel-openmp=2019.3=199
  - ipykernel=5.1.0=py37h39e3cac_0
  - ipython=7.4.0=py37h39e3cac_0
  - ipython_genutils=0.2.0=py37_0
  - itsdangerous=1.1.0=py_0
  - jdcal=1.4=py37_0
  - jedi=0.13.3=py37_0
  - jinja2=2.10=py37_0
  - jmespath=0.9.4=py_0
  - jpeg=9b=h024ee3a_2
  - jupyter_client=5.2.4=py37_0
  - jupyter_core=4.4.0=py37_0
  - keras-applications=1.0.8=py_0
  - keras-preprocessing=1.1.0=py_1
  - kiwisolver=1.0.1=py37hf484d3e_0
  - krb5=1.16.1=h173b8e3_7
  - libedit=3.1.20181209=hc058e9b_0
  - libffi=3.2.1=hd88cf55_4
  - libgcc-ng=8.2.0=hdf63c60_1
  - libgfortran-ng=7.3.0=hdf63c60_0
  - libpng=1.6.36=hbc83047_0
  - libpq=11.2=h20c2e04_0
  - libprotobuf=3.11.2=hd408876_0
  - libsodium=1.0.16=h1bed415_0
  - libstdcxx-ng=8.2.0=hdf63c60_1
  - libtiff=4.0.10=h2733197_2
  - libxgboost=0.90=he6710b0_1
  - libxml2=2.9.9=hea5a465_1
  - libxslt=1.1.33=h7d1a2b0_0
  - llvmlite=0.28.0=py37hd408876_0
  - lxml=4.3.2=py37hefd8a0e_0
  - mako=1.0.10=py_0
  - markdown=3.1.1=py37_0
  - markupsafe=1.1.1=py37h7b6447c_0
  - mkl=2019.3=199
  - mkl_fft=1.0.10=py37ha843d7b_0
  - mkl_random=1.0.2=py37hd81dba3_0
  - ncurses=6.1=he6710b0_1
  - networkx=2.2=py37_1
  - ninja=1.9.0=py37hfd86e86_0
  - nose=1.3.7=py37_2
  - numba=0.43.1=py37h962f231_0
  - numpy=1.16.2=py37h7e9f1db_0
  - numpy-base=1.16.2=py37hde5b4d6_0
  - olefile=0.46=py_0
  - openpyxl=2.6.1=py37_1
  - openssl=1.1.1b=h7b6447c_1
  - opt_einsum=3.1.0=py_0
  - pandas=0.24.2=py37he6710b0_0
  - paramiko=2.4.2=py37_0
  - parso=0.3.4=py37_0
  - pathlib2=2.3.3=py37_0
  - patsy=0.5.1=py37_0
  - pexpect=4.6.0=py37_0
  - pickleshare=0.7.5=py37_0
  - pillow=5.4.1=py37h34e0f95_0
  - pip=19.0.3=py37_0
  - ply=3.11=py37_0
  - prompt_toolkit=2.0.9=py37_0
  - protobuf=3.11.2=py37he6710b0_0
  - psutil=5.6.1=py37h7b6447c_0
  - psycopg2=2.7.6.1=py37h1ba5d50_0
  - ptyprocess=0.6.0=py37_0
  - py-xgboost=0.90=py37he6710b0_1
  - py-xgboost-cpu=0.90=py37_1
  - pyasn1=0.4.8=py_0
  - pycparser=2.19=py_0
  - pygments=2.3.1=py37_0
  - pymongo=3.8.0=py37he6710b0_1
  - pynacl=1.3.0=py37h7b6447c_0
  - pyopenssl=19.0.0=py37_0
  - pyparsing=2.3.1=py37_0
  - pysocks=1.6.8=py37_0
  - python=3.7.3=h0371630_0
  - python-dateutil=2.8.0=py37_0
  - python-editor=1.0.4=py_0
  - pytorch=1.3.1=py3.7_cpu_0
  - pytz=2018.9=py37_0
  - pyyaml=5.1=py37h7b6447c_0
  - pyzmq=18.0.0=py37he6710b0_0
  - readline=7.0=h7b6447c_5
  - requests=2.21.0=py37_0
  - s3transfer=0.2.1=py37_0
  - scikit-learn=0.20.3=py37hd81dba3_0
  - scipy=1.2.1=py37h7c811a0_0
  - setuptools=40.8.0=py37_0
  - simplejson=3.16.0=py37h14c3975_0
  - singledispatch=3.4.0.3=py37_0
  - six=1.12.0=py37_0
  - smmap2=2.0.5=py_0
  - sqlite=3.27.2=h7b6447c_0
  - sqlparse=0.3.0=py_0
  - statsmodels=0.9.0=py37h035aef0_0
  - tabulate=0.8.3=py37_0
  - tensorboard=1.15.0+db2=pyhb230dea_0
  - tensorflow=1.15.0+db2=mkl_py37hc5fbf04_0
  - tensorflow-base=1.15.0+db2=mkl_py37h2ae1e84_0
  - tensorflow-estimator=1.15.1+db2=pyh2649769_0
  - tensorflow-mkl=1.15.0+db2=h4fcabd2_0
  - termcolor=1.1.0=py37_1
  - tk=8.6.8=hbc83047_0
  - torchvision=0.4.2=py37_cpu
  - tornado=6.0.2=py37h7b6447c_0
  - tqdm=4.31.1=py37_1
  - traitlets=4.3.2=py37_0
  - urllib3=1.24.1=py37_0
  - virtualenv=16.0.0=py37_0
  - wcwidth=0.1.7=py37_0
  - webencodings=0.5.1=py37_1
  - websocket-client=0.56.0=py37_0
  - werkzeug=0.14.1=py37_0
  - wheel=0.33.1=py37_0
  - wrapt=1.11.1=py37h7b6447c_0
  - xz=5.2.4=h14c3975_4
  - yaml=0.1.7=had09818_2
  - zeromq=4.3.1=he6710b0_3
  - zlib=1.2.11=h7b6447c_3
  - zstd=1.3.7=h0b5b093_0
  - pip:
    - argparse==1.4.0
    - databricks-cli==0.9.1
    - deprecated==1.2.7
    - docker==4.1.0
    - fusepy==2.0.4
    - gorilla==0.3.0
    - horovod==0.18.2
    - hyperopt==0.2.2.db1
    - keras==2.2.5
    - matplotlib==3.0.3
    - mleap==0.8.1
    - mlflow==1.5.0
    - nose-exclude==0.5.0
    - pyarrow==0.13.0
    - querystring-parser==1.2.4
    - seaborn==0.9.0
    - tensorboardx==1.9
prefix: /databricks/conda/envs/databricks-ml

GPU 클러스터의 Python

name: databricks-ml-gpu
channels:
  - Databricks
  - pytorch
  - defaults
dependencies:
  - _libgcc_mutex=0.1=main
  - _py-xgboost-mutex=1.0=gpu_0
  - _tflow_select=2.1.0=gpu
  - absl-py=0.8.1=py37_0
  - asn1crypto=0.24.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_0
  - blas=1.0=mkl
  - boto=2.49.0=py37_0
  - boto3=1.9.162=py_0
  - botocore=1.12.163=py_0
  - c-ares=1.15.0=h7b6447c_1001
  - ca-certificates=2019.1.23=0
  - certifi=2019.3.9=py37_0
  - cffi=1.12.2=py37h2e261b9_1
  - chardet=3.0.4=py37_1003
  - click=7.0=py_0
  - cloudpickle=0.8.0=py37_0
  - colorama=0.4.1=py_0
  - configparser=3.7.4=py37_0
  - cryptography=2.6.1=py37h1ba5d50_0
  - cudatoolkit=10.0.130=0
  - cudnn=7.6.4=cuda10.0_0
  - cupti=10.0.130=0
  - cycler=0.10.0=py37_0
  - cython=0.29.6=py37he6710b0_0
  - decorator=4.4.0=py37_1
  - docutils=0.14=py37_0
  - entrypoints=0.3=py37_0
  - et_xmlfile=1.0.1=py37_0
  - flask=1.0.2=py37_1
  - freetype=2.9.1=h8a8886c_1
  - future=0.17.1=py37_0
  - gast=0.2.2=py37_0
  - gitdb2=2.0.6=py_0
  - gitpython=2.1.11=py37_0
  - google-pasta=0.1.8=py_0
  - grpcio=1.16.1=py37hf8bcb03_1
  - gunicorn=19.9.0=py37_0
  - h5py=2.9.0=py37h7918eee_0
  - hdf5=1.10.4=hb1b8bf9_0
  - html5lib=1.0.1=py_0
  - icu=58.2=h9c2bf20_1
  - idna=2.8=py37_0
  - intel-openmp=2019.3=199
  - ipykernel=5.1.0=py37h39e3cac_0
  - ipython=7.4.0=py37h39e3cac_0
  - ipython_genutils=0.2.0=py37_0
  - itsdangerous=1.1.0=py_0
  - jdcal=1.4=py37_0
  - jedi=0.13.3=py37_0
  - jinja2=2.10=py37_0
  - jmespath=0.9.4=py_0
  - jpeg=9b=h024ee3a_2
  - jupyter_client=5.2.4=py37_0
  - jupyter_core=4.4.0=py37_0
  - keras-applications=1.0.8=py_0
  - keras-preprocessing=1.1.0=py_1
  - kiwisolver=1.0.1=py37hf484d3e_0
  - krb5=1.16.1=h173b8e3_7
  - libedit=3.1.20181209=hc058e9b_0
  - libffi=3.2.1=hd88cf55_4
  - libgcc-ng=8.2.0=hdf63c60_1
  - libgfortran-ng=7.3.0=hdf63c60_0
  - libpng=1.6.36=hbc83047_0
  - libpq=11.2=h20c2e04_0
  - libprotobuf=3.11.2=hd408876_0
  - libsodium=1.0.16=h1bed415_0
  - libstdcxx-ng=8.2.0=hdf63c60_1
  - libtiff=4.0.10=h2733197_2
  - libxgboost=0.90=h688424c_0
  - libxml2=2.9.9=hea5a465_1
  - libxslt=1.1.33=h7d1a2b0_0
  - llvmlite=0.28.0=py37hd408876_0
  - lxml=4.3.2=py37hefd8a0e_0
  - mako=1.0.10=py_0
  - markdown=3.1.1=py37_0
  - markupsafe=1.1.1=py37h7b6447c_0
  - mkl=2019.3=199
  - mkl_fft=1.0.10=py37ha843d7b_0
  - mkl_random=1.0.2=py37hd81dba3_0
  - ncurses=6.1=he6710b0_1
  - networkx=2.2=py37_1
  - ninja=1.9.0=py37hfd86e86_0
  - nose=1.3.7=py37_2
  - numba=0.43.1=py37h962f231_0
  - numpy=1.16.2=py37h7e9f1db_0
  - numpy-base=1.16.2=py37hde5b4d6_0
  - olefile=0.46=py_0
  - openpyxl=2.6.1=py37_1
  - openssl=1.1.1b=h7b6447c_1
  - opt_einsum=3.1.0=py_0
  - pandas=0.24.2=py37he6710b0_0
  - paramiko=2.4.2=py37_0
  - parso=0.3.4=py37_0
  - pathlib2=2.3.3=py37_0
  - patsy=0.5.1=py37_0
  - pexpect=4.6.0=py37_0
  - pickleshare=0.7.5=py37_0
  - pillow=5.4.1=py37h34e0f95_0
  - pip=19.0.3=py37_0
  - ply=3.11=py37_0
  - prompt_toolkit=2.0.9=py37_0
  - protobuf=3.11.2=py37he6710b0_0
  - psutil=5.6.1=py37h7b6447c_0
  - psycopg2=2.7.6.1=py37h1ba5d50_0
  - ptyprocess=0.6.0=py37_0
  - py-xgboost=0.90=py37h688424c_0
  - py-xgboost-gpu=0.90=py37h28bbb66_0
  - pyasn1=0.4.8=py_0
  - pycparser=2.19=py_0
  - pygments=2.3.1=py37_0
  - pymongo=3.8.0=py37he6710b0_1
  - pynacl=1.3.0=py37h7b6447c_0
  - pyopenssl=19.0.0=py37_0
  - pyparsing=2.3.1=py37_0
  - pysocks=1.6.8=py37_0
  - python=3.7.3=h0371630_0
  - python-dateutil=2.8.0=py37_0
  - python-editor=1.0.4=py_0
  - pytorch=1.3.1=py3.7_cuda10.0.130_cudnn7.6.3_0
  - pytz=2018.9=py37_0
  - pyyaml=5.1=py37h7b6447c_0
  - pyzmq=18.0.0=py37he6710b0_0
  - readline=7.0=h7b6447c_5
  - requests=2.21.0=py37_0
  - s3transfer=0.2.1=py37_0
  - scikit-learn=0.20.3=py37hd81dba3_0
  - scipy=1.2.1=py37h7c811a0_0
  - setuptools=40.8.0=py37_0
  - simplejson=3.16.0=py37h14c3975_0
  - singledispatch=3.4.0.3=py37_0
  - six=1.12.0=py37_0
  - smmap2=2.0.5=py_0
  - sqlite=3.27.2=h7b6447c_0
  - sqlparse=0.3.0=py_0
  - statsmodels=0.9.0=py37h035aef0_0
  - tabulate=0.8.3=py37_0
  - tensorboard=1.15.0+db2=pyhb230dea_0
  - tensorflow=1.15.0+db2=gpu_py37h9fd0ff8_0
  - tensorflow-base=1.15.0+db2=gpu_py37hd56f5dd_0
  - tensorflow-estimator=1.15.1+db2=pyh2649769_0
  - tensorflow-gpu=1.15.0+db2=h0d30ee6_0
  - termcolor=1.1.0=py37_1
  - tk=8.6.8=hbc83047_0
  - torchvision=0.4.2=py37_cu100
  - tornado=6.0.2=py37h7b6447c_0
  - tqdm=4.31.1=py37_1
  - traitlets=4.3.2=py37_0
  - urllib3=1.24.1=py37_0
  - virtualenv=16.0.0=py37_0
  - wcwidth=0.1.7=py37_0
  - webencodings=0.5.1=py37_1
  - websocket-client=0.56.0=py37_0
  - werkzeug=0.14.1=py37_0
  - wheel=0.33.1=py37_0
  - wrapt=1.11.1=py37h7b6447c_0
  - xz=5.2.4=h14c3975_4
  - yaml=0.1.7=had09818_2
  - zeromq=4.3.1=he6710b0_3
  - zlib=1.2.11=h7b6447c_3
  - zstd=1.3.7=h0b5b093_0
  - pip:
    - argparse==1.4.0
    - databricks-cli==0.9.1
    - deprecated==1.2.7
    - docker==4.1.0
    - fusepy==2.0.4
    - gorilla==0.3.0
    - horovod==0.18.2
    - hyperopt==0.2.2.db1
    - keras==2.2.5
    - matplotlib==3.0.3
    - mleap==0.8.1
    - mlflow==1.5.0
    - nose-exclude==0.5.0
    - pyarrow==0.13.0
    - querystring-parser==1.2.4
    - seaborn==0.9.0
    - tensorboardx==1.9
prefix: /databricks/conda/envs/databricks-ml-gpu

Python 모듈이 포함된 Spark 패키지

Spark 패키지 Python 모듈 버전
graphframes graphframes 0.7.0-db1-spark2.4
spark-deep-learning sparkdl 1.5.0-db12-spark2.4
tensorframes tensorframes 0.8.2-s_2.11

R 라이브러리

R 라이브러리는 Databricks Runtime 6.3의 R 라이브러리와 동일합니다.

Java 및 Scala 라이브러리(Scala 2.11 클러스터)

Databricks Runtime 6.3의 Java 및 Scala 라이브러리 외에도 Databricks Runtime 6.3 ML에는 다음 JAR이 포함되어 있습니다.

그룹 ID 아티팩트 ID 버전
com.databricks spark-deep-learning 1.5.0-db12-spark2.4
com.typesafe.akka akka-actor_2.11 2.3.11
ml.combust.mleap mleap-databricks-runtime_2.11 0.15.0
ml.dmlc xgboost4j 0.90
ml.dmlc xgboost4j-spark 0.90
org.graphframes graphframes_2.11 0.7.0-db1-spark2.4
org.mlflow mlflow-client 1.4.0
org.tensorflow libtensorflow 1.15.0
org.tensorflow libtensorflow_jni 1.15.0
org.tensorflow spark-tensorflow-connector_2.11 1.15.0
org.tensorflow tensorflow 1.15.0
org.tensorframes tensorframes 0.8.2-s_2.11