다음을 통해 공유


일괄 처리 엔드포인트를 사용하여 Fabric에서 Azure Machine Learning 모델 실행(미리 보기)

적용 대상:Azure CLI ml 확장 v2(현재)Python SDK azure-ai-ml v2(현재)

이 문서에서는 Microsoft Fabric에서 Azure Machine Learning 일괄 처리 배포를 사용하는 방법을 알아봅니다. 이 워크플로는 일괄 처리 엔드포인트에 배포된 모델을 사용하지만 Fabric에서 일괄 처리 파이프라인 배포를 사용하는 것도 지원합니다.

Important

이 기능은 현재 공개 미리 보기로 제공됩니다. 이 미리 보기 버전은 서비스 수준 계약 없이 제공되며, 프로덕션 워크로드에는 권장되지 않습니다. 특정 기능이 지원되지 않거나 기능이 제한될 수 있습니다.

자세한 내용은 Microsoft Azure Preview에 대한 추가 사용 약관을 참조하세요.

필수 조건

  • Microsoft Fabric 구독을 구매합니다. 또는 무료 Microsoft Fabric 평가판에 등록하세요.
  • Microsoft Fabric에 로그인합니다.
  • Azure 구독 Azure 구독이 아직 없는 경우 시작하기 전에 체험 계정을 만듭니다. Azure Machine Learning 평가판 또는 유료 버전을 사용해 보세요.
  • Azure Machine Learning 작업 영역 작업 영역이 없으면 작업 영역 관리 방법의 단계에서 새로 만듭니다.
    • 작업 영역에 다음 권한이 있는지 확인합니다.
      • 일괄 처리 엔드포인트 및 배포 만들기/관리: Microsoft.MachineLearningServices/workspaces/batchEndpoints/*를 허용하는 소유자, 기여자 역할 또는 사용자 지정 역할을 사용합니다.
      • 작업 영역 리소스 그룹에서 ARM 배포 만들기: 작업 영역이 배포된 리소스 그룹에서 Microsoft.Resources/deployments/write를 허용하는 역할 소유자, 기여자 또는 사용자 지정 역할을 사용합니다.
  • 일괄 처리 엔드포인트에 배포된 모델. 모델이 없는 경우 일괄 처리 엔드포인트에서 채점을 위한 모델 배포 단계를 사용하여 모델을 만듭니다.
  • 채점에 사용할 ‘heart-unlabeled.csv’ 샘플 데이터 세트를 다운로드합니다.

아키텍처

Azure Machine Learning은 Fabric의 OneLake에 저장된 데이터에 직접 액세스할 수 없습니다. 그러나 OneLake의 기능을 사용하여 레이크하우스 내에서 바로 가기를 만들어 Azure Data Lake Gen2에 저장된 데이터를 읽고 쓸 수 있습니다. Azure Machine Learning은 Azure Data Lake Gen2 스토리지를 지원하므로 이 설정을 통해 Fabric과 Azure Machine Learning을 함께 사용할 수 있습니다. 데이터 아키텍처는 다음과 같습니다.

A diagram showing how Azure Storage accounts are used to connect Fabric with Azure Machine Learning.

데이터 액세스 구성

Fabric과 Azure Machine Learning이 복사하지 않고도 동일한 데이터를 읽고 쓸 수 있도록 하려면 OneLake 바로 가기Azure Machine Learning 데이터 저장소를 활용할 수 있습니다. OneLake 바로 가기 및 데이터 저장소에서 동일한 스토리지 계정을 가리키면 Fabric과 Azure Machine Learning이 동일한 기본 데이터를 읽고 쓸 수 있습니다.

이 섹션에서는 일괄 처리 엔드포인트에서 사용하고 Fabric 사용자가 OneLake에서 볼 수 있는 정보를 저장하는 데 사용할 스토리지 계정을 만들거나 식별합니다. Fabric은 Azure Data Lake Gen2와 같이 계층적 이름을 사용하도록 설정된 스토리지 계정만 지원합니다.

스토리지 계정에 대한 OneLake 바로 가기 만들기

  1. Fabric에서 Synapse Data Engineering 환경을 엽니다.

  2. 왼쪽 패널에서 Fabric 작업 영역을 선택하여 엽니다.

  3. 연결을 구성하는 데 사용할 레이크하우스를 엽니다. 레이크하우스가 아직 없는 경우 데이터 엔지니어링 환경의 레이크하우스 만들기로 이동합니다. 이 예제에서는 trusted라는 레이크하우스를 사용합니다.

  4. 왼쪽 탐색 모음에서 파일의 ‘추가 옵션’을 연 다음 새 바로 가기를 선택하여 마법사를 불러옵니다.

    A screenshot showing how to create a new shortcut in a lakehouse.

  5. Azure Data Lake Storage Gen2 옵션을 선택합니다.

    A screenshot showing how to create an Azure Data Lake Storage Gen2 shortcut.

  6. 연결 설정 섹션에서 Azure Data Lake Gen2 스토리지 계정과 연결된 URL을 붙여 넣습니다.

    A screenshot showing how to configure the URL of the shortcut.

  7. 연결 자격 증명 섹션에서 다음을 수행합니다.

    1. 연결에서 새 연결 만들기를 선택합니다.
    2. 연결 이름은 채워진 기본값을 유지합니다.
    3. 인증 종류에서 조직 계정 선택하여 OAuth 2.0을 통해 연결된 사용자의 자격 증명을 사용합니다.
    4. 로그인을 선택하여 로그인합니다.
  8. 다음을 선택합니다.

  9. 필요한 경우 스토리지 계정을 기준으로 바로 가기 경로를 구성합니다. 이 설정을 사용하여 바로 가기가 가리킬 폴더를 구성합니다.

  10. 바로 가기의 이름을 구성합니다. 이 이름은 레이크하우스 내부의 경로가 됩니다. 이 예제에서는 바로 가기의 이름을 datasets로 지정합니다.

  11. 변경 내용을 저장합니다.

스토리지 계정을 가리키는 데이터 저장소 만들기

  1. Azure Machine Learning 스튜디오를 엽니다.

  2. Azure Machine Learning 작업 영역으로 이동합니다.

  3. 데이터 섹션으로 이동합니다.

  4. 데이터 저장소 탭을 선택합니다.

  5. 만들기를 실행합니다.

  6. 다음과 같이 데이터 저장소를 구성합니다.

    1. 데이터 저장소 이름trusted_blob을 입력합니다.

    2. 데이터 저장소 유형에서 Azure Blob Storage를 선택합니다.

      Azure Data Lake Gen2 대신 Azure Blob Storage를 구성해야 하는 이유는 무엇인가요? 일괄 처리 엔드포인트는 Blob Storage 계정에만 예측을 쓸 수 있습니다. 그러나 모든 Azure Data Lake Gen2 스토리지 계정은 Blob Storage 계정이기도 합니다. 따라서 서로 바꿔 사용할 수 있습니다.

    3. 구독 ID, 스토리지 계정BLOB 컨테이너(파일 시스템)를 사용하여 마법사에서 스토리지 계정을 선택합니다.

      A screenshot showing how to configure the Azure Machine Learning data store.

    4. 만들기를 실행합니다.

  7. 일괄 처리 엔드포인트가 실행 중인 컴퓨팅에 이 스토리지 계정에 데이터를 탑재할 수 있는 권한이 있는지 확인합니다. 액세스 권한은 엔드포인트를 호출하는 ID에 의해 계속 부여되지만 일괄 처리 엔드포인트가 실행되는 컴퓨팅에는 제공한 스토리지 계정을 탑재할 수 있는 권한이 있어야 합니다. 자세한 내용은 스토리지 서비스 액세스를 참조하세요.

샘플 데이터 세트 업로드

엔드포인트에 입력으로 사용할 몇 가지 샘플 데이터를 업로드합니다.

  1. Fabric 작업 영역으로 이동합니다.

  2. 바로 가기를 만든 레이크하우스를 선택합니다.

  3. datasets 바로 가기로 이동합니다.

  4. 채점하려는 샘플 데이터 세트를 저장할 폴더를 만듭니다. 폴더의 이름을 ‘uci-heart-unlabeled’로 지정합니다.

  5. 데이터 가져오기 옵션을 사용하고 파일 업로드를 선택하여 샘플 데이터 세트 ‘heart-unlabeled.csv’를 업로드합니다.

    A screenshot showing how to upload data to an existing folder in OneLake.

  6. 샘플 데이터 세트를 업로드합니다.

    A screenshot showing how to upload a file to OneLake.

  7. 샘플 파일을 사용할 준비가 되었습니다. 파일을 저장한 위치의 경로를 기록해 둡니다.

추론 파이프라인을 일괄 처리할 Fabric 만들기

이 섹션에서는 기존 Fabric 작업 영역에서 Fabric-일괄 처리 추론 파이프라인을 만들고 일괄 처리 엔드포인트를 호출합니다.

  1. 홈페이지 왼쪽 아래 모서리에 있는 환경 선택기 아이콘을 사용하여 데이터 엔지니어링 환경으로 돌아갑니다(이미 다른 위치로 이동한 경우).

  2. Fabric 작업 영역을 엽니다.

  3. 홈페이지의 새로 만들기 섹션에서 데이터 파이프라인을 선택합니다.

  4. 파이프라인의 이름을 지정하고 만들기를 선택합니다.

    A screenshot showing where to select the data pipeline option.

  5. 디자이너 캔버스의 도구 모음에서 활동 탭을 선택합니다.

  6. 탭의 끝에서 추가 옵션을 선택하고 Azure Machine Learning을 선택합니다.

    A screenshot showing how to add the Azure Machine Learning activity to a pipeline.

  7. 설정 탭으로 이동하여 다음과 같이 활동을 구성합니다.

    1. Azure Machine Learning 연결 옆에 있는 새로 만들기를 선택하여 배포가 포함된 Azure Machine Learning 작업 영역에 대한 새 연결을 만듭니다.

      A screenshot of the configuration section of the activity showing how to create a new connection.

    2. 만들기 마법사의 연결 설정 섹션에서 구독 ID, 리소스 그룹 이름 및 엔드포인트가 배포된 작업 영역 이름의 값을 지정합니다.

      A screenshot showing examples of the values for subscription ID, resource group name, and workspace name.

    3. 연결 자격 증명 섹션에서 연결에 대한 인증 종류 값으로 조직 계정을 선택합니다. ‘조직 계정’은 연결된 사용자의 자격 증명을 사용합니다. 또는 ‘서비스 주체’를 사용할 수도 있습니다. 프로덕션 설정에서는 서비스 주체를 사용하는 것이 좋습니다. 인증 유형에 관계없이 연결과 연결된 ID에 배포한 일괄 처리 엔드포인트를 호출할 수 있는 권한이 있어야 확인합니다.

      A screenshot showing how to configure the authentication mechanism in the connection.

    4. 연결을 저장합니다. 연결이 선택되면 Fabric은 선택된 작업 영역에서 사용 가능한 일괄 처리 엔드포인트를 자동으로 채웁니다.

  8. 일괄 처리 엔드포인트에서 호출하려는 일괄 처리 엔드포인트를 선택합니다. 이 예제에서는 heart-classifier-...를 선택합니다.

    A screenshot showing how to select an endpoint once a connection is configured.

    일괄 배포 섹션은 엔드포인트에서 사용 가능한 배포가 자동으로 채워집니다.

  9. 필요한 경우 일괄 배포에 목록에서 특정 배포를 선택합니다. 배포를 선택하지 않으면 Fabric은 엔드포인트 아래의 기본 배포를 호출하므로 일괄 처리 엔드포인트 생성자가 호출되는 배포를 결정할 수 있습니다. 대부분의 시나리오에서는 이 기본 동작을 유지합니다.

    A screenshot showing how to configure the endpoint to use the default deployment.

일괄 처리 엔드포인트 입력 및 출력 구성

이 섹션에서는 일괄 처리 엔드포인트의 입력 및 출력을 구성합니다. 일괄 처리 엔드포인트에 대한 입력은 프로세스를 실행하는 데 필요한 데이터 및 매개 변수를 제공합니다. Fabric의 Azure Machine Learning 일괄 처리 파이프라인은 모델 배포파이프라인 배포를 모두 지원합니다. 입력의 수 및 유형은 배포 유형에 따라 달라집니다. 이 예제에서는 정확히 하나의 입력이 필요하고 하나의 출력을 생성하는 모델 배포를 사용합니다.

일괄 처리 엔드포인트 입력 및 출력에 대한 자세한 내용은 일괄 처리 엔드포인트의 입력 및 출력 이해를 참조하세요.

입력 섹션 구성

다음과 같이 작업 입력 섹션을 구성합니다.

  1. 작업 입력 섹션을 확장합니다.

  2. 새로 만들기를 선택하여 엔드포인트에 새 입력을 추가합니다.

  3. 입력의 이름을 input_data로 지정합니다. 모델 배포를 사용하므로 어떤 이름도 사용할 수 있습니다. 그러나 파이프라인 배포의 경우 모델이 예상하는 입력의 정확한 이름을 지정해야 합니다.

  4. 방금 추가한 입력 옆에 있는 드롭다운 메뉴를 선택하여 입력의 속성(이름 및 값 필드)을 엽니다.

  5. 이름 필드에 JobInputType을 입력하여 만드는 입력 유형을 나타냅니다.

  6. 필드에 UriFolder를 입력하여 입력이 폴더 경로임을 나타냅니다. 이 필드에 지원되는 다른 값은 UriFile(파일 경로) 또는 리터럴(문자열 또는 정수와 같은 리터럴 값)입니다. 배포에 필요한 올바른 형식을 사용해야 합니다.

  7. 속성 옆에 있는 더하기 기호를 선택하여 이 입력에 대한 다른 속성을 추가합니다.

  8. 이름 필드에 Uri를 입력하여 데이터 경로를 나타냅니다.

  9. 필드에 데이터를 찾을 경로인 azureml://datastores/trusted_blob/datasets/uci-heart-unlabeled를 입력합니다. 여기서는 패브릭의 OneLake와 Azure Machine Learning 모두에 연결된 스토리지 계정으로 이어지는 경로를 사용합니다. azureml://datastores/trusted_blob/datasets/uci-heart-unlabeled는 일괄 처리 엔드포인트에 배포된 모델에 대한 예상 입력 데이터가 있는 CSV 파일의 경로입니다. 스토리지 계정에 대한 직접 경로(예: https://<storage-account>.dfs.azure.com)를 사용할 수도 있습니다.

    A screenshot showing how to configure inputs in the endpoint.

    입력이 리터럴 형식인 경우 속성 Uri를 '값'으로 바꿉니다.

엔드포인트에 더 많은 입력이 필요한 경우 각 입력에 대해 이전 단계를 반복합니다. 이 예제에서는 모델 배포에 정확히 하나의 입력이 필요합니다.

출력 섹션 구성

다음과 같이 작업 출력 섹션을 구성합니다.

  1. 작업 출력 섹션을 확장합니다.

  2. 새로 만들기를 선택하여 엔드포인트에 새 출력을 추가합니다.

  3. 출력의 이름을 output_data으로 지정합니다. 모델 배포를 사용하므로 어떤 이름도 사용할 수 있습니다. 그러나 파이프라인 배포의 경우 모델이 생성하는 출력의 정확한 이름을 지정해야 합니다.

  4. 방금 추가한 출력 옆에 있는 드롭다운 메뉴를 선택하여 출력의 속성(이름 및 값 필드)을 엽니다.

  5. 이름 필드에 JobOutputType을 입력하여 만드는 출력 유형을 나타냅니다.

  6. 필드에 UriFile를 입력하여 출력이 파일 경로임을 나타냅니다. 이 필드에 지원되는 다른 값은 UriFolder(폴더 경로)입니다. 작업 입력 섹션과 달리 리터럴(문자열 또는 정수와 같은 리터럴 값)은 출력으로 지원되지 않습니다.

  7. 속성 옆에 있는 더하기 기호를 선택하여 이 출력에 대한 다른 속성을 추가합니다.

  8. 이름 필드에 Uri를 입력하여 데이터 경로를 나타냅니다.

  9. 필드에 출력을 배치할 경로인 @concat(@concat('azureml://datastores/trusted_blob/paths/endpoints', pipeline().RunId, 'predictions.csv')를 입력합니다. Azure Machine Learning 일괄 처리 엔드포인트는 데이터 저장소 경로만 출력으로 사용할 수 있습니다. 충돌을 방지하기 위해 출력이 고유해야 하므로 경로를 구성하는 동적 식 @concat(@concat('azureml://datastores/trusted_blob/paths/endpoints', pipeline().RunId, 'predictions.csv')를 사용했습니다.

    A screenshot showing how to configure outputs in the endpoint

엔드포인트가 더 많은 출력을 반환하는 경우 각 출력에 대해 이전 단계를 반복합니다. 이 예제에서는 모델 배포가 정확히 하나의 출력을 생성합니다.

(선택 사항) 작업 설정 구성

다음 속성을 추가하여 작업 설정을 구성할 수도 있습니다.

모델 배포의 경우:

설정 설명
MiniBatchSize 일괄 처리의 크기입니다.
ComputeInstanceCount 배포에서 요청할 컴퓨팅 인스턴스 수입니다.

파이프라인 배포의 경우:

설정 설명
ContinueOnStepFailure 파이프라인이 실패 후 노드 처리를 중지해야 하는지를 나타냅니다.
DefaultDatastore 출력에 사용할 기본 데이터 저장소를 나타냅니다.
ForceRun 이전 실행에서 출력을 추론할 수 있더라도 파이프라인이 모든 구성 요소를 강제로 실행해야 하는지 여부를 나타냅니다.

구성을 마쳤으면 파이프라인을 테스트할 수 있습니다.