Del via


Kald maskinlæringsmodel-endpoints fra Dataflow Gen2 (Forhåndsvisning)

Vigtigt!

Denne funktion er i prøveversion.

Microsoft Fabric Dataflow Gen2 kan kalde maskinlæringsmodel-endpoints for at få realtidsforudsigelser under datatransformation. Denne integration gør det muligt for dig at berige dine data ved at anvende trænede maskinlæringsmodeller som en del af din dataflow-pipeline. Du kan påkalde modelendepunkter ved hjælp af service principal authentication via M-forespørgselsfunktioner.

Forudsætninger

Før du kan kalde ML-modelendepunkter fra Dataflow Gen2, skal du sikre dig, at du har følgende:

Opsæt service principal-tilladelser

For at tillade din serviceprincipal at kalde maskinlæringsmodel-endpoints, skal du give den de relevante tilladelser:

  1. Navigér til arbejdsområdet, der indeholder din maskinlæringsmodel i Fabric.

  2. Vælg Administrer adgang fra arbejdsområdemenuen.

  3. Vælg Tilføj personer eller grupper.

  4. Søg efter din serviceprincipal efter dens applikationsnavn eller klient-ID.

  5. Tildel tjenesteprincipalen mindst bidragyderrollen til at tilgå og påkalde modelendepunkter.

Få endpoint-URL'en og autentificeringsdetaljerne

Før du opretter din M-forespørgselsfunktion, skal du indsamle følgende information:

  1. Endpoint URL: Navigér til din maskinlæringsmodel i Fabric og kopier endpoint-URL'en fra sektionen Endpoint detaljer .

    Skærmbillede, der viser, hvor man kan finde maskinlæringsmodellens endpoint-URL.

  2. Lejer-ID: Find dit lejer-ID i Azure-portalen under Microsoft Entra ID.

  3. Klient-ID: Find din service principals applikations-ID (klient-) ID i Azure-portalen.

  4. Klienthemmelighed: Opret eller hent en klienthemmelighed for din tjenesteprincipal fra Azure-portalen.

Opret en M-forespørgselsfunktion til at kalde endepunktet

I Dataflow Gen2 kan du oprette en brugerdefineret M-forespørgselsfunktion, der autentificerer ved hjælp af service principal og kalder ML-modellens endepunkt.

  1. I din Dataflow Gen2 vælger du Get data>Blank-forespørgsel.

  2. Eller få de data, du vil berige og derefter åbne Advanced Editor fra fanen Hjem .

  3. Erstat forespørgslen med følgende M-funktionskode:

    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. Omdøb forespørgslen til CallMLEndpoint ved at højreklikke på forespørgslen i forespørgselspanelet .

Brug funktionen i dit dataflow

Når du har oprettet funktionen, kan du bruge den til at kalde ML-endpointet for hver række i dine data:

  1. Indlæs eller forbind til dine kildedata i dataflowet.

  2. Tilføj en brugerdefineret kolonne, der kalder ML-endpointfunktionen. Vælg Tilføj kolonne>Brugerdefineret kolonne.

  3. Brug følgende formel til at kalde dit endpoint (erstat parametrene med dine faktiske værdier):

    CallMLEndpoint(
        "<your-machine-learning-endpoint-url>",
        "<your-tenant-id>",
        "<your-client-id>",
        "<your-client-secret>",
        [input1 = [Column1], input2 = [Column2]]
    )
    
  4. Funktionen returnerer forudsigelsesresultatet fra maskinlæringsmodellen, som du kan udvide og bruge i efterfølgende transformationstrin.

Anbefalede fremgangsmåder

  • Sikre legitimationsoplysninger: Overvej at bruge Dataflow Gen2-parametre eller variabelbibliotekintegration til at gemme følsomme værdier som klienthemmeligheder i stedet for at hardkode dem.

  • Fejlhåndtering: Tilføj fejlhåndteringslogik til din M-forespørgsel for elegant at håndtere endpoint-fejl eller timeout-scenarier.

  • Endpoint-tilgængelighed: Sørg for, at dit maskinlæringsmodel-endpoint er aktivt, før du kører dataflowet. Inaktive endpoints vil få dataflow-opdateringen til at fejle. Deaktiver auto-sleep-funktionen, hvis du vil kunne kalde endpointet konsekvent.

  • Ydeevne: Kald på maskinlæringsendepunkter for hver række kan være langsomt for store datasæt. Overvej filtrering eller udtagning af data, før du anvender forudsigelser.

Overvejelser og begrænsninger

  • Service principal-autentificering er påkrævet for at kalde maskinlæringsendepunkter fra Dataflow Gen2.
  • Kald af maskinlæringsendepunkter medfører omkostninger både for dataflow-beregningen og forbruget af maskinlæringsendepunkter. Overvåg dit Fabric-kapacitetsforbrug derefter.