Microsoft Fabric의 기계 학습 실험
기계 학습 실험은 모든 관련 기계 학습 실행에 대한 조직 및 제어의 기본 단위입니다. 실행은 모델 코드의 단일 실행에 해당합니다. MLflow에서 추적은 실험과 실행을 기반으로 합니다.
기계 학습 실험을 통해 데이터 과학자는 기계 학습 코드를 실행할 때 매개 변수, 코드 버전, 메트릭 및 출력 파일을 기록할 수 있습니다. 실험을 통해 실행을 시각화, 검색 및 비교할 수 있을 뿐만 아니라 실행 파일 및 다른 도구에서 분석하기 위한 메타데이터를 다운로드할 수도 있습니다.
이 문서에서는 데이터 과학자가 기계 학습 실험과 상호 작용하고 사용하여 개발 프로세스를 구성하고 여러 실행을 추적하는 방법에 대해 자세히 알아봅니다.
필수 조건
- Power BI Premium 구독. 없는 경우 Power BI Premium을 구입하는 방법을 참조하세요.
- 프리미엄 용량이 할당된 Power BI 작업 영역입니다.
실험 만들기
Power BI UI(사용자 인터페이스)의 데이터 과학 홈페이지에서 직접 또는 MLflow API를 사용하는 코드를 작성하여 기계 학습 실험을 만들 수 있습니다.
UI를 사용하여 실험 만들기
UI에서 기계 학습 실험을 만들려면:
새 데이터 과학 작업 영역을 만들거나 기존 데이터 작업 영역을 선택합니다.
"새로 만들기" 섹션에서 실험을 선택합니다.
실험의 이름을 입력하고 만들기를 선택합니다. 이 작업은 작업 영역 내에서 빈 실험을 만듭니다.
실험을 만든 후 실행 메트릭 및 매개 변수를 추적하는 실행 추가를 시작할 수 있습니다.
MLflow API를 사용하여 실험 만들기
mlflow.create_experiment()
또는 mlflow.set_experiment()
API를 사용하여 제작 환경에서 직접 기계 학습 실험을 만들 수도 있습니다. 다음 코드에서 <EXPERIMENT_NAME>
을(를) 실험의 이름으로 변경합니다.
import mlflow
# This will create a new experiment with the provided name.
mlflow.create_experiment("<EXPERIMENT_NAME>")
# This will set the given experiment as the active experiment.
# If an experiment with this name does not exist, a new experiment with this name is created.
mlflow.set_experiment("<EXPERIMENT_NAME>")
실험 내에서 실행 관리
기계 학습 실험에는 간소화된 추적 및 비교를 위한 실행 컬렉션이 포함되어 있습니다. 실험 내에서 데이터 과학자는 다양한 실행을 탐색하고 기본 매개 변수 및 메트릭을 탐색할 수 있습니다. 데이터 과학자는 기계 학습 실험 내의 실행을 비교하여 원하는 모델 성능을 생성하는 매개 변수의 하위 집합을 식별할 수도 있습니다.
실행 추적
기계 학습 실행은 모델 코드의 단일 실행에 해당합니다.
각 실행에는 다음 정보가 포함됩니다.
- 원본: 실행을 만든 Notebook의 이름입니다.
- 등록된 버전: 실행이 기계 학습 모델로 저장되었는지를 나타냅니다.
- 시작 날짜: 실행의 시작 시간입니다.
- 상태: 실행 진행률입니다.
- 하이퍼 매개 변수: 키-값 페어링으로 저장된 하이퍼 매개 변수입니다. 키와 값은 모두 문자열입니다.
- 메트릭: 키-값 쌍으로 저장된 실행 메트릭입니다. 값은 숫자입니다.
- 출력 파일: 모든 형식의 파일을 출력합니다. 예를 들어 이미지, 환경, 모델 및 데이터 파일을 기록할 수 있습니다.
최근 실행 보기
작업 영역 목록 보기에서 직접 실험에 대한 최근 실행을 볼 수도 있습니다. 이 보기를 사용하면 최근 활동을 추적하고, 관련 Spark 애플리케이션으로 빠르게 이동하고, 실행 상태에 따라 필터를 적용할 수 있습니다.
실행 비교 및 필터링
기계 학습 실행의 품질을 비교하고 평가하려면 실험 내에서 선택한 실행 간에 매개 변수, 메트릭 및 메타데이터를 비교할 수 있습니다.
실행 시각적 비교
기존 실험 내에서 실행을 시각적으로 비교하고 필터링할 수 있습니다. 시각적 비교를 사용하면 여러 실행 간에 쉽게 탐색하고 여러 실행 간에 정렬할 수 있습니다.
실행을 비교하는 방법:
- 여러 실행이 포함된 기존 기계 학습 실험을 선택합니다.
- 보기 탭을 선택한 다음 실행 목록 보기로 이동합니다. 또는 실행 세부 정보 보기에서 직접 실행 목록을 보는 옵션을 선택할 수 있습니다.
- 열 사용자 지정 창을 확장하여 테이블 내의 열을 사용자 지정합니다. 여기에서 보려는 속성, 메트릭 및 하이퍼 매개 변수를 선택할 수 있습니다.
- 필터 창을 확장하여 선택한 특정 조건에 따라 결과의 범위를 좁힐 수 있습니다.
- 메트릭 비교 창에서 결과를 비교하려면 여러 실행을 선택합니다. 이 창에서 차트 제목, 시각화 유형, X축, Y축 등을 변경하여 차트를 사용자 지정할 수 있습니다.
MLflow API를 사용하여 실행 비교
데이터 과학자는 MLflow를 사용하여 실험 내 실행하는 사이에 쿼리 및 검색할 수도 있습니다. MLflow 설명서를 참조하여 실행을 검색, 필터링 및 비교하기 위해 더 많은 MLflow API를 탐색할 수 있습니다.
모든 실행 가져오기
다음 코드에서 mlflow.search_runs()
을(를) 실험 이름으로 바꾸거나 <EXPERIMENT_NAME>
을(를) 실험 ID로 바꿔서 MLflow 검색 API <EXPERIMENT_ID>
을(를) 사용하여 실험의 모든 실행을 가져올 수 있습니다.
import mlflow
# Get runs by experiment name:
mlflow.search_runs(experiment_names=["<EXPERIMENT_NAME>"])
# Get runs by experiment ID:
mlflow.search_runs(experiment_ids=["<EXPERIMENT_ID>"])
팁
experiment_ids
매개 변수에 실험 ID 목록을 제공하여 여러 실험에서 검색할 수 있습니다. 마찬가지로 experiment_names
매개 변수에 실험 이름 목록을 제공하면 MLflow가 여러 실험에서 검색할 수 있습니다. 이는 여러 실험 내의 실행 간에 비교하려는 경우에 유용할 수 있습니다.
실행 순서 및 제한
반환되는 실행 수를 제한하려면 search_runs
의 max_results
매개 변수를 사용합니다. order_by
매개 변수를 사용하면 순서에 따라 열을 나열할 수 있으며 선택적 DESC
또는 ASC
값을 포함할 수 있습니다. 예를 들어 다음 예에서는 실험의 마지막 실행을 반환합니다.
mlflow.search_runs(experiment_ids=[ "1234-5678-90AB-CDEFG" ], max_results=1, order_by=["start_time DESC"])
Fabric Notebook 내에서 실행 비교
Fabric Notebook 내에서 MLFlow 작성 위젯을 사용하여 각 Notebook 셀 내에서 생성된 MLflow 실행을 추적할 수 있습니다. 위젯을 사용하면 실행, 관련 메트릭, 매개 변수 및 속성을 개별 셀 수준까지 바로 추적할 수 있습니다.
시각적 비교를 얻으려면 실행 비교 보기로 전환할 수도 있습니다. 이 보기는 데이터를 그래픽으로 표시하여 여러 실행에서 패턴 또는 편차를 빠르게 식별할 수 있습니다.
기계 학습 모델로 실행 저장
실행에서 원하는 결과가 생성되면 ML 모델로 저장을 선택하여 향상된 모델 추적 및 모델 배포를 위한 모델로 실행을 저장할 수 있습니다.