Databricks AutoML

중요

이 기능은 공개 미리 보기 상태입니다.

Databricks AutoML을 사용하면 데이터 세트에 기계 학습을 자동으로 적용할 수 있습니다. 모델 학습을 위해 데이터 세트를 준비한 다음, 여러 모델을 생성, 조정 및 평가하는 일련의 평가판을 수행하고 기록합니다. 결과를 표시하고 각 평가판 실행에 대한 소스 코드가 포함된 Python Notebook을 제공하므로 코드를 검토, 재현 및 수정할 수 있습니다. AutoML은 또한 데이터 세트에 대한 요약 통계를 계산하고 나중에 검토할 수 있는 Notebook에 이 정보를 저장합니다.

AutoML은 클러스터의 작업자 노드에 하이퍼매개 튜닝 평가판을 자동으로 배포합니다.

각 모델은 오픈 소스 구성 요소에서 생성되며 기계 학습 파이프라인에 쉽게 편집하고 통합할 수 있습니다. 회귀, 분류 및 예측 문제에 Databricks AutoML을 사용할 수 있습니다. scikit-learn,xgboostLightGBM 패키지의 알고리즘을 기반으로 모델을 평가합니다.

UI 또는 Python API를 사용하여 AutoML을 실행할 수 있습니다.

요구 사항

  • Databricks Runtime 8.3 ML 이상.
  • 계열 예측의 경우 10.0 ML 이상을 Databricks Runtime.
  • Databricks Runtime ML 런타임과 함께 제공되는 라이브러리 이외의 추가 라이브러리는 클러스터에 설치할 수 없습니다.

AutoML 알고리즘

Databricks AutoML은 다음 알고리즘을 기반으로 모델을 만들고 평가합니다.

큰 데이터 세트 샘플링

참고

샘플링은 예측 문제에 적용되지 않습니다.

AutoML은 클러스터의 작업자 노드에 하이퍼매개 튜닝 평가판을 배포하는 동안 각 모델은 단일 작업자 노드에서 학습됩니다. Databricks Runtime 9.1 LTS ML 이상에서는 AutoML이 너무 커서 단일 작업자 노드의 메모리에 맞지 않는 경우 자동으로 데이터 세트를 샘플링합니다. AutoML은 데이터 세트를 로드하고 학습하는 데 필요한 메모리를 예측하고 샘플링이 필요한 경우 샘플링 분수를 자동으로 결정합니다. 샘플링된 데이터 세트는 모델 학습에 사용됩니다.

분류 문제의 경우 AutoML은 계층화된 샘플링에 PySpark sampleBysampleBy 사용하여 대상 레이블 분포를 유지합니다.

회귀 문제의 경우 AutoML은 PySpark 메서드 를 samplesample사용합니다.

의미 체계 형식 검색

참고

의미 체계 형식 검색은 예측 문제에 적용되지 않습니다.

Databricks Runtime 9.1 LTS ML 이상에서 AutoML은 열에 Spark 또는 pandas 데이터 형식과 다른 의미 체계 형식이 테이블 스키마에 있는지 검색하려고 합니다. AutoML은 이러한 열을 검색된 의미 체계 형식으로 처리합니다. 이러한 검색은 최상의 노력이며 경우에 따라 의미 체계 형식의 존재가 누락될 수 있습니다. 열의 의미 체계 형식을 수동으로 설정하거나 주석을 사용하여열에 의미 체계 형식 검색을 적용하지 않도록 AutoML에 지시할 수도 있습니다.

특히 AutoML은 다음과 같은 조정을 수행합니다.

  • 날짜 또는 타임스탬프 데이터를 나타내는 문자열 및 정수 열은 타임스탬프 형식으로 처리됩니다.
  • 숫자 데이터를 나타내는 문자열 열은 숫자 형식으로 처리됩니다.

Databricks Runtime 10.1 ML 이상에서 AutoML은 다음과 같은 조정도 수행합니다.

  • 범주 ID를 포함하는 숫자 열은 범주 기능으로 처리됩니다.
  • 영어 텍스트가 포함된 문자열 열은 텍스트 기능으로 처리됩니다.

의미 체계 형식 주석

Databricks Runtime 10.1 ML 이상에서는 열에 의미 체계 형식 주석을 배치하여 할당된 의미 체계 형식을 수동으로 제어할 수 있습니다. 열의 의미 체계 형식에 로 수동으로 주석을 추가하려면 <column_name><semantic_type> 다음 구문을 사용합니다.

metadata_dict = df.schema["<column_name>"].metadata
metadata_dict["spark.contentAnnotation.semanticType"] = "<semantic_type>"
df = df.withMetadata("<column_name>", metadata_dict)

<semantic_type> 는 다음 중 하나일 수 있습니다.

  • categorical: 열에 범주 값(예: ID로 처리해야 하는 숫자 값)이 포함됩니다.
  • numeric: 열에 숫자 값(예: 숫자로 구문 분석할 수 있는 문자열 값)이 포함됩니다.
  • datetime: 열에 타임스탬프 값(타임스탬프로 변환할 수 있는 문자열, 숫자 또는 날짜 값)이 포함됩니다.
  • text: 문자열 열에 영어 텍스트가 포함되어 있습니다.

열에서 의미 체계 형식 검색을 사용하지 않도록 설정하려면 특수 키워드 주석 을 native 사용합니다.

AutoML UI

AutoML UI는 데이터 세트에서 모델을 학습하는 프로세스를 안내합니다. UI에 액세스하려면 다음을 수행합니다.

  1. 왼쪽 사이드바의 맨 위에 있는 persona switcher에서 Machine Learning 선택합니다.

  2. 사이드바에서 AutoML 만들기를클릭합니다.

    실험 페이지 에서 새 AutoML 실험을 만들 수도 있습니다.

    AutoML 실험 구성 페이지가 표시됩니다. 이 페이지에서는 AutoML 프로세스를 구성하고, 예측할 데이터 세트, 문제 유형, 대상 또는 레이블 열을 지정하고, 실험 실행을 평가하고 점수를 매기는 데 사용할 메트릭을 지정하고, 조건을 중지합니다.

UI에서 분류 또는 회귀 문제 설정

  1. 컴퓨팅 필드에서 Databricks Runtime 8.3 ML 이상을 실행하는 클러스터를 선택합니다.
  2. ML 문제 유형 드롭다운 메뉴에서 회귀 또는 분류를선택합니다. 연간 소득과 같은 각 관찰에 대한 연속 숫자 값을 예측하려는 경우 회귀를 선택합니다. 좋은 신용 위험 또는 잘못된 신용 위험과 같은 개별 클래스 집합 중 하나에 각 관찰을 할당하려는 경우 분류를 선택합니다.
  3. 데이터 세트아래에서 찾아보기를클릭합니다. 사용 가능한 데이터베이스 및 테이블을 나열하는 대화 상자가 나타납니다. 사용하려는 테이블로 이동하고 선택을클릭합니다. 테이블 스키마가 나타납니다.
  4. 예측 대상 필드를 클릭합니다. 스키마에 표시된 열을 나열하는 드롭다운이 나타납니다. 모델에서 예측할 열을 선택합니다.
  5. 실험 이름 필드에는 기본 이름이 표시됩니다. 변경하려면 필드에 새 이름을 입력합니다.
  6. 고급 구성(선택 사항)에서 추가 구성 옵션을 지정할 수 있습니다.
    • 평가 메트릭은 실행 점수를 매기는 데 사용되는 기본 메트릭입니다.
    • 기본 중지 조건을 편집할 수 있습니다. 기본적으로 실험은 60분 후 또는 200개 실행을 완료한 후에 중지됩니다.
    • 데이터 디렉터리 필드에서 AutoML 프로세스 중에 생성된 Notebook이 저장되는 DBFS 위치를 입력할 수 있습니다. 필드를 비워 두면 Notebook이 MLflow 아티팩트 로 저장됩니다.

UI에서 예측 문제 설정

  1. 컴퓨팅 필드에서 Databricks Runtime 10.0 ML 이상을 실행하는 클러스터를 선택합니다.
  2. ML 문제 유형 드롭다운 메뉴에서 예측을선택합니다.
  3. 데이터 세트아래에서 찾아보기를클릭합니다. 사용 가능한 데이터베이스 및 테이블을 나열하는 대화 상자가 나타납니다. 사용하려는 테이블로 이동하고 선택을클릭합니다. 테이블 스키마가 나타납니다.
  4. 예측 대상 필드를 클릭합니다. 스키마에 표시된 열을 나열하는 드롭다운이 나타납니다. 모델에서 예측할 열을 선택합니다.
  5. 시간 열 필드를 클릭합니다. 또는 형식의 데이터 세트 열을 보여 주는 드롭다운이 timestampdate 나타납니다. 계열의 기간이 포함된 열을 선택합니다.
  6. 다중 시리즈 예측의 경우 Time Series 식별자 드롭다운에서 개별 Time Series를 식별하는 열을 선택합니다. AutoML은 이러한 열별로 데이터를 서로 다른 Time Series로 그룹화하고 각 계열에 대한 모델을 독립적으로 훈련합니다. 이 필드를 비워 두면 AutoML은 데이터 세트에 단일 Time Series가 포함되어 있다고 가정합니다.
  7. 예측 기간 및 빈도 필드에서 AutoML이 예측 값을 계산해야 하는 미래의 기간 수를 지정합니다. 왼쪽 상자에 예측할 기간의 정수를 입력합니다. 오른쪽 상자에서 단위를 선택합니다.
  8. 실험 이름 필드에는 기본 이름이 표시됩니다. 변경하려면 필드에 새 이름을 입력합니다.
  9. 고급 구성(선택 사항)에서 추가 구성 옵션을 지정할 수 있습니다.
    • 평가 메트릭은 실행 점수를 매기는 데 사용되는 기본 메트릭입니다.
    • 기본 중지 조건을 편집할 수 있습니다. 기본적으로 실험은 120분 후에 중지됩니다.
    • 데이터 디렉터리 필드에서 AutoML 프로세스 중에 생성된 Notebook이 저장되는 DBFS 위치를 입력할 수 있습니다. 필드를 비워 두면 Notebook이 MLflow 아티팩트 로 저장됩니다.

실험 실행 및 결과 모니터링

AutoML 실험을 시작하려면 AutoML 시작을클릭합니다. 실험이 실행되고 AutoML 학습 페이지가 나타납니다. 실행 테이블을 새로 고치려면 새로 고침 단추클릭합니다.

이 페이지에서 다음을 수행할 수 있습니다.

  • 언제든지 실험을 중지합니다.
  • 데이터 탐색 Notebook을 엽니다.
  • 실행을 모니터링합니다.
  • 모든 실행에 대한 실행 페이지로 이동합니다.

Databricks Runtime 10.1 ML 이상에서 AutoML은 지원되지 않는 열 형식 또는 높은 카디널리티 열과 같은 데이터 세트의 잠재적 문제에 대한 경고를 표시합니다.

참고

Databricks는 잠재적 오류 또는 문제를 나타내기 위해 최선을 다합니다. 그러나 이는 포괄적이지 않을 수 있으며 검색할 수 있는 문제 또는 오류를 캡처하지 못할 수 있습니다. 사용자 고유의 검토도 수행해야 합니다.

데이터 세트에 대한 경고를 보려면 학습 페이지 또는 실험이 완료된 후 실험 페이지에서 경고 탭을 클릭합니다.

AutoML 경고

실험이 완료되면 다음을 수행할 수 있습니다.

  • MLflow를 통해 모델 중 하나를 등록하고 배포합니다.
  • 최상의 모델 편집을 클릭하여 최상의 모델을 만든 Notebook을 검토하고 편집합니다.
  • 데이터 탐색 Notebook을 엽니다.
  • 실행 테이블에서 실행을 검색, 필터링 및 정렬합니다.
  • 실행에 대한 세부 정보를 참조하세요.
    • 평가판 실행에 대한 소스 코드가 포함된 Notebook을 열려면 원본 열을 클릭합니다.
    • 평가판 실행에 대한 세부 정보가 있는 실행 페이지를 보려면 시작 시간 열을 클릭합니다.
    • 예측을 위한 코드 조각을 포함하여 생성된 모델에 대한 정보를 보려면 모델 열을 클릭합니다.

나중에 이 AutoML 실험으로 돌아가려면 실험 페이지의 테이블에서 찾습니다.

AutoML UI에서 모델 등록 및 배포

  1. 등록할 모델에 대한 모델 열의 링크를 클릭합니다. 실행이 완료되면 가장 적합한 모델(기본 메트릭 기반)이 맨 위 행입니다.

    모델을 만든 실행에 대한 실행 페이지의 아티팩트 섹션이 표시됩니다.

  2. 모델 등록 단추를 클릭하여 모델 레지스트리 에 모델을 등록합니다.

  3. 사이드바에서 모델 아이콘모델을 클릭하여 모델 레지스트리로 이동합니다.

  4. 모델 테이블에서 모델 이름을 클릭합니다. 등록된 모델 페이지가 표시됩니다. 이 페이지에서 모델을 제공할수 있습니다.

AutoML Python API

  1. Notebook을 만들고 Databricks Runtime 8.3 ML 이상을 실행하는 클러스터에 연결합니다.

  2. 기존 데이터 원본에서 Spark 또는 pandas DataFrame을 로드하거나 DBFS에 데이터 파일을 업로드하고 Notebook에 데이터를 로드합니다.

    df = spark.read.parquet("<folder-path>")
    
  3. AutoML 실행을 시작하려면 DataFrame을 AutoML에 전달합니다. 자세한 내용은 API 사양을 참조하세요.

  4. AutoML 실행이 시작되면 MLflow 실험 URL이 콘솔에 표시됩니다. 이 URL을 사용하여 실행 진행 상황을 모니터링합니다. MLflow 실험을 새로 고쳐 평가판이 완료되면 확인합니다.

  5. AutoML 실행이 완료된 후:

    • 출력 요약의 링크를 사용하여 MLflow 실험 또는 최상의 결과를 생성한 Notebook으로 이동합니다.
    • 데이터 탐색 Notebook에 대한 링크를 사용하여 AutoML에 전달된 데이터에 대한 인사이트를 얻을 수 있습니다. 이 Notebook을 동일한 클러스터에 연결하고 Notebook을 다시 실행하여 결과를 재현하거나 추가 데이터 분석을 수행할 수도 있습니다.
    • AutoML 호출에서 반환된 요약 개체를 사용하여 평가판에 대한 자세한 내용을 탐색하거나 지정된 평가판에서 학습된 모델을 로드합니다. 자세한 내용은 API 문서를 참조하세요.
    • 평가판에서 생성된 Notebook을 복제하고 동일한 클러스터에 연결하여 결과를 재현하여 Notebook을 다시 실행합니다. 필요한 편집을 하고 다시 실행하여 추가 모델을 학습시키고 동일한 실험에 기록할 수도 있습니다.

Python API 사양

Python API는 분류 및 회귀 AutoML 실행을 시작하는 함수를 제공합니다. 각 함수 호출은 모델 집합을 훈련하고 각 모델에 대한 평가판 Notebook을 생성합니다.

분류

databricks.automl.classify(
  dataset: Union[pyspark.DataFrame, pandas.DataFrame],
  *,
  target_col: str,
  primary_metric: Optional[str],
  data_dir: Optional[str],
  timeout_minutes: Optional[int],
  max_trials: Optional[int]
) -> AutoMLSummary

회귀

databricks.automl.regress(
  dataset: Union[pyspark.DataFrame, pandas.DataFrame],
  *,
  target_col: str,
  primary_metric: Optional[str],
  data_dir: Optional[str],
  timeout_minutes: Optional[int],
  max_trials: Optional[int]
) -> AutoMLSummary

예측

databricks.automl.forecast(
  dataset: Union[pyspark.sql.dataframe.DataFrame, pandas.core.frame.DataFrame, pyspark.pandas.DataFrame],
  *,
  target_col: str,
  time_col: str,
  identity_col: Union[str, List[str], NoneType],
  horizon: int,
  frequency: int,
  data_dir: Union[str, NoneType],
  primary_metric: str,
  timeout_minutes: int
) -> AutoMLSummary

매개 변수

분류 및 회귀

필드 이름 Type Description
데이터 세트 pyspark. DataFrame pandas. DataFrame 학습 기능 및 대상이 포함된 입력 데이터 프레임입니다.
primary_metric str 모델 성능을 평가하고 순위를 매기는 데 사용되는 메트릭입니다. 회귀에 대해 지원되는 메트릭: "r2"(기본값), "입력", "rmse", "mse" 분류에 대해 지원되는 메트릭: "f1"(기본값), "log_loss", "정밀도", "정확도", "roc_auc"
target_col str 대상 레이블의 열 이름입니다.
data_dir 형식의 str
dbfs:/<folder-name>
중간 데이터를 저장하는 데 사용되는 DBFS 경로입니다. 이 경로는 드라이버 노드와 작업자 노드 모두에 표시됩니다. 비어 있는 경우 AutoML은 중간 데이터를 MLflow 아티팩트로 저장합니다.
timeout_minutes int (선택 사항) AutoML 평가판이 완료되기를 기다리는 최대 시간입니다. 더 긴 시간 제한으로 AutoML은 더 많은 평가판을 실행하고 더 나은 정확도로 모델을 식별할 수 있습니다.

기본값: 없음(시간 제한 없음)

최소값: 5분

제한 시간이 너무 짧아 하나 이상의 평가판을 완료할 수 없는 경우 오류가 보고됩니다.
max_trials int (선택 사항) 실행할 최대 평가판 수입니다.

기본값: 20

timeout_minutes=None인 경우 AutoML은 최대 평가판 수를 실행합니다.

예측

필드 이름 Type Description
데이터 세트 pyspark. DataFrame pandas. DataFrame 학습 기능 및 대상이 포함된 입력 데이터 프레임입니다.
primary_metric str 모델 성능을 평가하고 순위를 매기는 데 사용되는 메트릭입니다. 지원되는 메트릭: "smape"(기본값) "mse", "rmse", "입력" 또는 "mdape".
target_col str 대상 레이블의 열 이름입니다.
data_dir 형식의 str
dbfs:/<folder-name>
중간 데이터를 저장하는 데 사용되는 DBFS 경로입니다. 이 경로는 드라이버 노드와 작업자 노드 모두에 표시됩니다. 비어 있는 경우 AutoML은 중간 데이터를 MLflow 아티팩트로 저장합니다.
timeout_minutes int (선택 사항) AutoML 평가판이 완료되기를 기다리는 최대 시간입니다. 더 긴 시간 제한으로 AutoML은 더 많은 평가판을 실행하고 더 나은 정확도로 모델을 식별할 수 있습니다.

기본값: 없음(시간 제한 없음)

최소값: 5분

제한 시간이 너무 짧아 하나 이상의 평가판을 완료할 수 없는 경우 오류가 보고됩니다.
max_trials int (선택 사항) 실행할 최대 평가판 수입니다.

기본값: 20

timeout_minutes=None인 경우 AutoML은 최대 평가판 수를 실행합니다.
time_col str 예측을 위한 시간 열의 이름입니다.
identity_col Union[str, list] (선택 사항) 다중 시리즈 예측에 대한 계열을 식별하는 열입니다. AutoML은 예측을 위해 이러한 열과 시간 열을 그룹화합니다.
frequency str 예측에 대한 계열의 빈도입니다. 이 기간은 이벤트가 발생할 것으로 예상되는 기간입니다. 가능한 값은 다음과 같습니다.

"W"(주)

"D" / "days" / "day"

"hours" / "hour" / "hr" / "h"

"m" / "minute" / "min" / "minutes" / "T"

"S" / "seconds" / "sec" / "second"
수평선 int 예측을 반환해야 하는 미래의 기간 수입니다. 단위는 시간 계열 빈도입니다.

반환

AutoMLSummary

각 평가판의 메트릭, 매개 변수 및 기타 세부 정보를 설명하는 AutoML 분류 실행에 대한 요약 개체입니다. 또한 이 개체를 사용하여 특정 평가판에서 학습된 모델을 로드합니다.

속성 Type Description
실험 mlflow.entities.Experiment 평가판을 기록하는 데 사용되는 MLflow 실험입니다.
재판 List[TrialInfo] 실행된 모든 평가판에 대한 정보가 포함된 목록입니다.
best_trial TrialInfo 기본 메트릭에 대한 가중치가 가장 좋은 점수를 생성한 평가판에 대한 정보입니다.
metric_distribution str 모든 평가판에서 기본 메트릭에 대한 가중치 점수의 분포입니다.

TrialInfo

각 개별 평가판에 대한 요약 개체입니다.

속성 Type Description
notebook_path str 작업 영역에서 이 평가판에 대해 생성된 Notebook의 경로입니다.
notebook_url str 이 평가판에 대해 생성된 Notebook의 URL입니다.
mlflow_run_id str 이 평가판 실행과 연결된 MLflow 실행 ID입니다.
메트릭 Dict[str, float] 이 평가판에 대해 MLflow에 기록된 메트릭입니다.
params Dict[str, str] 이 평가판에 사용된 MLflow에 기록된 매개 변수입니다.
model_path str 이 평가판에서 학습된 모델의 MLflow 아티팩트 URL입니다.
model_description str 이 모델을 학습하는 데 사용되는 모델 및 하이퍼매개에 대한 간단한 설명입니다.
duration str 학습 기간(분)입니다.
전처리기 str 모델을 학습하기 전에 실행되는 전처리기에 대한 설명입니다.
evaluation_metric_score float 유효성 검사 데이터 세트에 대해 평가된 기본 메트릭의 점수입니다.
메서드 Description
load_model() MLflow 아티팩트로 기록된 이 평가판에서 생성된 모델을 로드합니다.

API 예제

이러한 Notebook을 검토하여 AutoML을 시작합니다.

AutoML 분류 예제 Notebook

Notebook 가져오기

AutoML 회귀 예제 Notebook

Notebook 가져오기

AutoML 예측 예제 Notebook

Notebook 가져오기

databricks-automl-runtime 패키지

Databricks Runtime 9.1 LTS ML 이상에서 databricks-automl-runtime AutoML은 AutoML 외부에서 유용한 구성 요소를 포함하는 패키지에 따라 달라지며 AutoML 학습에서 생성된 Notebook을 간소화하는 데도 도움이 됩니다. databricks-automl-runtimedatabricks-automl-runtime에서 사용할 수 있습니다.

제한 사항

  • 다음 기능 유형만 지원됩니다.

    • 숫자( ByteType , ShortType , , , IntegerTypeLongTypeFloatTypeDoubleType )
    • 부울
    • 문자열(범주 또는 영어 텍스트)
    • 타임스탬프( TimestampType , DateType )
  • 위에 나열되지 않은 기능 유형은 지원되지 않습니다. 예를 들어 이미지는 지원되지 않습니다.

  • Databricks Runtime 9.0 ML 이하에서는 AutoML 학습이 단일 노드에서 전체 학습 데이터 세트를 사용합니다. 학습 데이터 세트는 단일 작업자 노드의 메모리에 맞춰야 합니다. 메모리 부족 문제가 발생하면 메모리가 더 많은 작업자 노드를 사용해 보세요. 클러스터 만들기를참조하세요.

    또는 가능하면 Databricks Runtime 9.1 LTS ML 이상을 사용합니다. 여기서 AutoML은 너무 커서 단일 작업자 노드의 메모리에 맞지 않는 경우 자동으로 데이터 세트를 샘플링합니다.