Поделиться через


Databricks Runtime 6.0 для машинного обучения (EoS)

Примечание.

Поддержка этой версии databricks Runtime закончилась. Сведения о дате окончания поддержки см . в журнале завершения поддержки. Все поддерживаемые версии среды выполнения Databricks см. в заметках о выпуске Databricks Runtime и совместимости.

Этот образ Databricks выпущен в октябре 2019 г.

Databricks Runtime 6.0 для Машинное обучение предоставляет готовую среду для машинного обучения и обработки и анализа данных на основе Databricks Runtime 6.0 (EoS). Databricks Runtime ML содержит множество популярных библиотек машинного обучения, включая TensorFlow, PyTorch, Keras и XGBoost. Эта среда также поддерживает распределенное глубокое обучение с использованием Horovod.

Дополнительные сведения, включая инструкции по созданию кластера Databricks Runtime ML, см. в статье ИИ и Машинное обучение в Databricks.

Новые возможности

В основе Databricks Runtime 6.0 ML лежит Databricks Runtime 6.0. Дополнительные сведения о новых возможностях Databricks Runtime 6.0 см. в заметках о выпуске Databricks Runtime 6.0 (EoS).

Запрос данных экспериментов MLflow в нужном масштабе с помощью нового источника данных Spark для MLflow

Источник данных Spark для экспериментов MLflow теперь предоставляет стандартный API для загрузки данных запуска экспериментов MLflow. Это позволяет выполнять запросы большого масштаба и анализ данных экспериментов MLflow с помощью API кадров данных. Кадр данных для эксперимента содержит такие данные, как run_ids, метрики, параметры, теги, start_time, end_time, статус и artifact_uri для артефактов. См. статью Эксперимент MLflow.

Усовершенствования

  • Hyperopt в общедоступной версии

    Выпущена общедоступная версия Hyperopt для Azure Databricks. К важным улучшениям в ней относятся: возможность ведение журнала MLflow в рабочих областях Spark, правильная обработка переменных вещания PySpark, а также новое руководство по выбору модели с помощью Hyperopt. Кроме того, мы устранили незначительные ошибки в сообщениях журнала, алгоритме обработки ошибок и пользовательском интерфейсе, а также отредактировали документацию. Дополнительные сведения см. в документации по Hyperopt.

    В Azure Databricks изменился способ ведения журналов для экспериментов Hyperopt. Теперь вы можете регистрировать пользовательскую метрику для них, передавая ее в функцию mlflow.log_metric (см. log_metric). Это полезно, если требуется регистрировать пользовательские метрики в дополнение к потере, которая регистрируется по умолчанию при вызове функции hyperopt.fmin.

  • MLflow

    • Добавлен клиент Java для MLflow версии 1.2.0
    • Теперь MLflow считается библиотекой верхнего уровня
  • Обновлены библиотеки машинного обучения:

    • Horovod с версии 0.16.4 до версии 0.18.1
    • MLflow с версии 1.0.0 до версии 1.2.0
  • Дистрибутив Anaconda обновлен с версии 5.2.0 до версии 2019.03

Удаление

  • Удалена функция экспорта модели Машинного обучения Databricks. Вместо нее используйте MLeap для импорта и экспорта моделей.

  • В библиотеке Hyperopt удалены следующие свойства hyperopt.SparkTrials:

    • SparkTrials.successful_trials_count
    • SparkTrials.failed_trials_count
    • SparkTrials.cancelled_trials_count
    • SparkTrials.total_trials_count

    Они заменены следующими функциями:

    • SparkTrials.count_successful_trials()
    • SparkTrials.count_failed_trials()
    • SparkTrials.count_cancelled_trials()
    • SparkTrials.count_total_trials()

Системная среда

Ниже описаны отличия системной среды в Databricks Runtime 6.0 ML от Databricks Runtime 6.0.

Библиотеки

В следующих разделах перечислены библиотеки, входящие в состав Databricks Runtime 6.0 ML и отличающиеся от тех, что входят в состав Databricks Runtime 6.0.

Библиотеки верхнего уровня

Databricks Runtime 6.0 ML включает следующие библиотеки верхнего уровня:

Библиотеки Python

Databricks Runtime 6.0 ML использует Conda для управления пакетами Python и включает множество популярных пакетов ML. В следующем разделе описывается среда Conda для Databricks Runtime 6.0 ML.

Python 3 на кластерах ЦП

name: databricks-ml
channels:
  - pytorch
  - defaults
dependencies:
  - _libgcc_mutex=0.1=main
  - _py-xgboost-mutex=2.0=cpu_0
  - _tflow_select=2.3.0=mkl
  - absl-py=0.7.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.6=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=py37_0
  - cloudpickle=0.8.0=py37_0
  - colorama=0.4.1=py37_0
  - configparser=3.7.4=py37_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.5=py37_0
  - gitpython=2.1.11=py37_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
  - ipython=7.4.0=py37h39e3cac_0
  - ipython_genutils=0.2.0=py37_0
  - itsdangerous=1.1.0=py37_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
  - keras=2.2.4=0
  - keras-applications=1.0.8=py_0
  - keras-base=2.2.4=py37_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.8.0=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_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
  - mock=3.0.5=py37_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=py37_0
  - openpyxl=2.6.1=py37_1
  - openssl=1.1.1b=h7b6447c_1
  - 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.8.0=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_0
  - py-xgboost-cpu=0.90=py37_0
  - pyasn1=0.4.6=py_0
  - pycparser=2.19=py37_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-cpu=1.1.0=py3.7_cpu_0
  - pytz=2018.9=py37_0
  - pyyaml=5.1=py37h7b6447c_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=py37_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.13.1=py37hf484d3e_0
  - tensorflow=1.13.1=mkl_py37h54b294f_0
  - tensorflow-base=1.13.1=mkl_py37h7ce6ba3_0
  - tensorflow-estimator=1.13.0=py_0
  - tensorflow-mkl=1.13.1=h4fcabd2_0
  - termcolor=1.1.0=py37_1
  - tk=8.6.8=hbc83047_0
  - torchvision-cpu=0.3.0=py37_cuNone_1
  - 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
  - zlib=1.2.11=h7b6447c_3
  - zstd=1.3.7=h0b5b093_0
  - pip:
    - argparse==1.4.0
    - databricks-cli==0.9.0
    - docker==4.0.2
    - fusepy==2.0.4
    - gorilla==0.3.0
    - horovod==0.18.1
    - hyperopt==0.1.2.db8
    - matplotlib==3.0.3
    - mleap==0.8.1
    - mlflow==1.2.0
    - nose-exclude==0.5.0
    - pyarrow==0.13.0
    - querystring-parser==1.2.4
    - seaborn==0.9.0
    - tensorboardx==1.8
prefix: /databricks/conda/envs/databricks-ml

Пакеты Spark, содержащие модули Python

Пакет Spark Модуль Python Версия
graphframes graphframes 0.7.0-db1-spark2.4
spark-deep-learning sparkdl 1.5.0-db5-spark2.4
tensorframes tensorframes 0.7.0-s_2.11

Библиотеки R

Библиотеки R идентичны библиотекам R в Databricks Runtime 6.0.

Библиотеки Java и Scala (кластер Scala 2.11)

Помимо библиотек Java и Scala в Databricks Runtime 6.0, среда Databricks Runtime 6.0 ML также включает следующие пакеты JAR:

ИД группы Идентификатор артефакта Версия
com.databricks spark-deep-learning 1.5.0-db5-spark2.4
com.typesafe.akka akka-actor_2.11 2.3.11
ml.combust.mleap mleap-databricks-runtime_2.11 0.14.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.2.0
org.tensorflow libtensorflow 1.13.1
org.tensorflow libtensorflow_jni 1.13.1
org.tensorflow spark-tensorflow-connector_2.11 1.13.1
org.tensorflow tensorflow 1.13.1
org.tensorframes tensorframes 0.7.0-s_2.11