Udostępnij przez


Wywoływanie punktów końcowych modelu uczenia maszynowego z usługi Dataflow Gen2 (wersja zapoznawcza)

Ważne

Ta funkcja jest dostępna w wersji zapoznawczej.

Usługa Microsoft Fabric Dataflow Gen2 może wywoływać punkty końcowe modelu uczenia maszynowego, aby uzyskać przewidywania w czasie rzeczywistym podczas przekształcania danych. Ta integracja umożliwia wzbogacanie danych przez zastosowanie wytrenowanych modeli uczenia maszynowego w ramach potoku przepływu danych. Punkty końcowe modelu można wywoływać przy użyciu uwierzytelniania jednostki usługi za pomocą funkcji zapytań języka M.

Wymagania wstępne

Przed wywołaniem punktów końcowych modelu uczenia maszynowego z usługi Dataflow Gen2 upewnij się, że masz następujące elementy:

Konfigurowanie uprawnień jednostki usługi

Aby umożliwić jednostce usługi wywoływanie punktów końcowych modelu uczenia maszynowego, należy przyznać mu odpowiednie uprawnienia:

  1. Przejdź do obszaru roboczego zawierającego model uczenia maszynowego w usłudze Fabric.

  2. Wybierz pozycję Zarządzaj dostępem z menu obszaru roboczego.

  3. Wybierz pozycję Dodaj osoby lub grupy.

  4. Wyszukaj jednostkę usługi według nazwy aplikacji lub identyfikatora klienta.

  5. Przypisz tożsamości usługi co najmniej rolę Contributor, aby mogła uzyskiwać dostęp do punktów końcowych modelu i je wywoływać.

Pobieranie adresu URL punktu końcowego i szczegółów uwierzytelniania

Przed utworzeniem funkcji zapytania M zbierz następujące informacje:

  1. Adres URL punktu końcowego: przejdź do modelu uczenia maszynowego w usłudze Fabric i skopiuj adres URL punktu końcowego z sekcji Szczegóły punktu końcowego .

    Zrzut ekranu przedstawiający miejsce znalezienia adresu URL punktu końcowego modelu uczenia maszynowego.

  2. Identyfikator dzierżawy: znajdź swój identyfikator dzierżawy w witrynie Azure Portal w obszarze Microsoft Entra ID.

  3. Identyfikator klienta: znajdź identyfikator aplikacji (klienta) jednostki usługi w witrynie Azure Portal.

  4. Klucz tajny klienta: Utwórz lub pobierz klucz tajny klienta dla jednostki usługi w portalu Azure.

Tworzenie funkcji zapytania języka M w celu wywołania punktu końcowego

W usłudze Dataflow Gen2 można utworzyć niestandardową funkcję zapytania M, która uwierzytelnia się przy użyciu jednostki usługi i wywołuje punkt końcowy modelu uczenia maszynowego.

  1. W przepływie danych Gen2 wybierz Pobierz dane>Puste zapytanie.

  2. Możesz też pobrać dane, które chcesz wzbogacić, a następnie otworzyć Edytor zaawansowany na karcie Narzędzia główne .

  3. Zastąp zapytanie następującym kodem funkcji 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
    
  4. Zmień nazwę zapytania na CallMLEndpoint , klikając prawym przyciskiem myszy zapytanie w okienku Zapytania .

Używanie funkcji w przepływie danych

Po utworzeniu funkcji można jej użyć do wywołania punktu końcowego uczenia maszynowego dla każdego wiersza w danych:

  1. Załaduj dane źródłowe lub połącz się z nimi w przepływie danych.

  2. Dodaj kolumnę niestandardową, która wywołuje funkcję punktu końcowego uczenia maszynowego. Wybierz pozycję Dodaj kolumnę>Kolumna niestandardowa.

  3. Użyj następującej formuły, aby wywołać punkt końcowy (zastąp parametry rzeczywistymi wartościami):

    CallMLEndpoint(
        "<your-machine-learning-endpoint-url>",
        "<your-tenant-id>",
        "<your-client-id>",
        "<your-client-secret>",
        [input1 = [Column1], input2 = [Column2]]
    )
    
  4. Funkcja zwraca wynik przewidywania z modelu uczenia maszynowego, który można rozwinąć i użyć w kolejnych krokach przekształcania.

Najlepsze rozwiązania

  • Bezpieczne poświadczenia: rozważ użycie parametrów przepływu danych Gen2 lub integracji biblioteki zmiennych w celu przechowywania poufnych wartości, takich jak wpisy tajne klienta, zamiast ich trwałego kodowania.

  • Obsługa błędów: dodaj logikę obsługi błędów do zapytania języka M, aby bezpiecznie obsługiwać błędy punktu końcowego lub scenariusze przekroczenia limitu czasu.

  • Dostępność punktu końcowego: przed uruchomieniem przepływu danych upewnij się, że punkt końcowy modelu uczenia maszynowego jest aktywny. Nieaktywne punkty końcowe spowodują niepowodzenie odświeżania przepływu danych. Wyłącz funkcję automatycznego uśpienia, jeśli chcesz konsekwentnie wywoływać punkt końcowy.

  • Wydajność: Wywoływanie punktów końcowych uczenia maszynowego dla każdego wiersza może być powolne w przypadku dużych zestawów danych. Przed zastosowaniem przewidywań rozważ filtrowanie lub próbkowanie danych.

Uwagi i ograniczenia

  • Uwierzytelnianie jednostki usługi jest wymagane do wywoływania punktów końcowych uczenia maszynowego z usługi Dataflow Gen2.
  • Wywoływanie punktów końcowych uczenia maszynowego wiąże się z kosztami obliczeń przepływu danych i użycia punktu końcowego uczenia maszynowego. Odpowiednio monitoruj użycie pojemności sieci szkieletowej .