중요합니다
이 기능은 프리뷰 상태입니다.
Microsoft Fabric Dataflow Gen2는 기계 학습 모델 엔드포인트를 호출하여 데이터 변환 중에 실시간 예측을 가져올 수 있습니다. 이 통합을 통해 학습된 기계 학습 모델을 데이터 흐름 파이프라인의 일부로 적용하여 데이터를 보강할 수 있습니다. M 쿼리 함수를 통해 서비스 주체 인증을 사용하여 모델 엔드포인트를 호출할 수 있습니다.
필수 조건
Dataflow Gen2에서 ML 모델 엔드포인트를 호출하기 전에 다음이 있는지 확인합니다.
- Microsoft Fabric 작업 영역의 활성 기계 학습 모델 엔드포인트
- Microsoft Entra ID에서 생성된 서비스 주체
- 서비스 주체는 패브릭에서 기계 학습 모델 엔드포인트에 액세스할 수 있는 적절한 권한이 있어야 합니다.
- M 쿼리 언어 및 Dataflow Gen2에 대한 기본 숙지
서비스 주체 권한 설정
서비스 주체가 기계 학습 모델 엔드포인트를 호출할 수 있도록 하려면 적절한 권한을 부여해야 합니다.
Fabric에서 기계 학습 모델이 포함된 작업 영역으로 이동합니다.
작업 영역 메뉴에서 액세스 관리를 선택합니다.
사람 또는 그룹 추가를 선택합니다.
애플리케이션 이름 또는 클라이언트 ID로 서비스 주체를 검색합니다.
모델 엔드포인트에 액세스하고 호출하려면 적어도 기여자 역할을 서비스 주체에 할당합니다.
엔드포인트 URL 및 인증 세부 정보 가져오기
M 쿼리 함수를 만들기 전에 다음 정보를 수집합니다.
엔드포인트 URL: 패브릭에서 기계 학습 모델로 이동하고 엔드포인트 세부 정보 섹션에서 엔드포인트 URL을 복사합니다.
테넌트 ID: Microsoft Entra ID 아래의 Azure Portal에서 테넌트 ID를 찾습니다.
클라이언트 ID: Azure Portal에서 서비스 주체의 애플리케이션(클라이언트) ID를 찾습니다.
클라이언트 암호: Azure Portal에서 서비스 주체에 대한 클라이언트 비밀을 만들거나 검색합니다.
엔드포인트를 호출하는 M 쿼리 함수 만들기
Dataflow Gen2에서 서비스 주체를 사용하여 인증하고 ML 모델 엔드포인트를 호출하는 사용자 지정 M 쿼리 함수를 만들 수 있습니다.
Dataflow Gen2에서 데이터 가져오기>빈 쿼리를 선택합니다.
또는 보강하려는 데이터를 가져와서 홈 탭에서 고급 편집기를 엽니다.
쿼리를 다음 M 함수 코드로 바꿉다.
let CallMLEndpoint = (endpointUrl as text, tenantId as text, clientId as text, clientSecret as text, inputData as any) => let // Get access token using service principal tokenUrl = "https://login.microsoftonline.com/" & tenantId & "/oauth2/v2.0/token", tokenBody = "client_id=" & clientId & "&scope=https://api.fabric.microsoft.com/.default" & "&client_secret=" & clientSecret & "&grant_type=client_credentials", tokenResponse = Web.Contents( tokenUrl, [ Headers = [#"Content-Type" = "application/x-www-form-urlencoded"], Content = Text.ToBinary(tokenBody) ] ), tokenJson = Json.Document(tokenResponse), accessToken = tokenJson[access_token], // Call ML endpoint with bearer token requestBody = Json.FromValue(inputData), response = Web.Contents( endpointUrl, [ Headers = [ #"Content-Type" = "application/json", #"Authorization" = "Bearer " & accessToken ], Content = requestBody ] ), result = Json.Document(response) in result in CallMLEndpoint쿼리 창에서 쿼리를 마우스 오른쪽 단추로 클릭하여 쿼리 이름을 CallMLEndpoint 로 바꿉 니다 .
데이터 흐름에서 함수 사용
함수를 만든 후에는 이 함수를 사용하여 데이터의 각 행에 대한 ML 엔드포인트를 호출할 수 있습니다.
데이터 흐름에서 원본 데이터를 로드하거나 연결합니다.
ML 엔드포인트 함수를 호출하는 사용자 지정 열을 추가합니다. 열 추가>사용자 지정 열을 선택합니다.
다음 수식을 사용하여 엔드포인트를 호출합니다(매개 변수를 실제 값으로 대체).
CallMLEndpoint( "<your-machine-learning-endpoint-url>", "<your-tenant-id>", "<your-client-id>", "<your-client-secret>", [input1 = [Column1], input2 = [Column2]] )이 함수는 기계 학습 모델의 예측 결과를 반환하며, 이후 변환 단계에서 확장하고 사용할 수 있습니다.
모범 사례
보안 자격 증명: Dataflow Gen2 매개 변수 또는 변수 라이브러리 통합 을 사용하여 하드 코딩하는 대신 클라이언트 비밀과 같은 중요한 값을 저장하는 것이 좋습니다.
오류 처리: M 쿼리에 오류 처리 논리를 추가하여 엔드포인트 오류 또는 시간 제한 시나리오를 정상적으로 처리합니다.
엔드포인트 가용성: 데이터 흐름을 실행하기 전에 기계 학습 모델 엔드포인트가 활성 상태인지 확인합니다. 비활성 엔드포인트로 인해 데이터 흐름 새로 고침이 실패합니다. 엔드포인트를 일관되게 호출하려면 자동 절전 모드 기능을 사용하지 않도록 설정합니다.
성능: 큰 데이터 세트의 경우 각 행에 대한 기계 학습 엔드포인트 호출 속도가 느려질 수 있습니다. 예측을 적용하기 전에 데이터를 필터링하거나 샘플링하는 것이 좋습니다.
고려사항 및 제한사항
- Dataflow Gen2에서 기계 학습 엔드포인트를 호출하려면 서비스 주체 인증이 필요합니다.
- 기계 학습 엔드포인트를 호출하면 데이터 흐름 컴퓨팅과 기계 학습 엔드포인트 사용량 모두에 대한 비용이 발생합니다. 그에 따라 패브릭 용량 사용량을 모니터링합니다.
관련 콘텐츠
- 기계 학습 모델 엔드포인트에 대해 자세히 알아보기
- Dataflow Gen2 개요 살펴보기
- Data Factory의 서비스 주체 지원에 대해 알아보기
- Dataflow Gen2 매개 변수에 대해 알아보기