Anpassa AI-funktioner med PySpark

AI-funktioner är utformade för att fungera direkt, med den underliggande modellen och inställningarna konfigurerade som standard. Användare som vill ha mer flexibla konfigurationer kan dock anpassa sina lösningar med några extra kodrader.

Viktigt!

  • AI-funktioner är till för användning i Fabric Runtime 1.3 (Spark 3.5) och senare.
  • Granska förutsättningarna i denna översiktsartikel, inklusive den biblioteksinstallation som tillfälligt krävs för att använda AI-funktioner.
  • Även om den underliggande modellen kan hantera flera språk är de flesta AI-funktionerna optimerade för användning på engelskspråkiga texter.

Anmärkning

Configurations

Om du arbetar med AI-funktioner i PySpark kan du använda OpenAIDefaults klassen för att konfigurera den underliggande AI-modellen som används av alla funktioner. Inställningar som endast kan tillämpas per funktionsanrop anges i följande avsnitt.

Parameter Description Förinställning
concurrency Ett int som anger det maximala antalet rader som ska bearbetas parallellt med asynkrona begäranden till modellen. Högre värden påskyndar bearbetningstiden (om din kapacitet kan hantera den). Den kan ställas in på 1 000. Det här värdet måste anges per enskilt AI-funktionsanrop. I spark är det här samtidighetsvärdet för varje arbetare. 50
deployment_name Ett strängvärde som anger namnet på den underliggande modellen. Du kan välja mellan modeller som stöds av Fabric. Det här värdet kan också anges till en anpassad modelldistribution i Azure OpenAI eller Azure AI Foundry. I Azure-portalen visas det här värdet under Distributioner av resurshanteringsmodell>. I Azure AI Foundry-portalen visas värdet på sidan Distributioner. gpt-4.1-mini
embedding_deployment_name Ett strängvärde som anger namnet på den inbäddningsmodelldistribution som driver AI-funktioner. text-embedding-ada-002
reasoning_effort En del av OpenAIDefaults. Används av gpt-5-seriemodeller för antal resonemangstoken som de ska använda. Kan anges till Ingen eller ett strängvärde på "minimal", "låg", "medel" eller "hög". None
subscription_key En API-nyckel som används för autentisering med din resurs för storspråksmodell (LLM). I Azure-portalen visas det här värdet i avsnittet nycklar och slutpunkter. N/A
temperature Ett numeriskt värde mellan 0,0 och 1,0. Högre temperaturer ökar slumpmässigheten eller kreativiteten i den underliggande modellens utdata. 0.0
top_p En del av OpenAIDefaults. En float mellan 0 och 1. Ett lägre värde (till exempel 0,1) begränsar modellen till att endast ta hänsyn till de mest sannolika token, vilket gör utdata mer deterministiska. Ett högre värde (till exempel 0,9) möjliggör mer mångsidiga och kreativa utdata genom att inkludera ett bredare utbud av token. None
URL En URL som anger slutpunkten för din LLM-resurs. I Azure-portalen visas det här värdet i avsnittet nycklar och slutpunkter. Till exempel: https://your-openai-endpoint.openai.azure.com/. N/A
verbosity En del av OpenAIDefaults. Används av gpt-5-seriens modeller för utdatalängd. Kan anges till Ingen eller ett strängvärde på "låg", "medel" eller "hög". None

Följande kodexempel visar hur du konfigurerar concurrency för ett enskilt funktionsanrop.

df = spark.createDataFrame([
        ("There are an error here.",),
        ("She and me go weigh back. We used to hang out every weeks.",),
        ("The big picture are right, but you're details is all wrong.",),
    ], ["text"])

results = df.ai.fix_grammar(input_col="text", output_col="corrections", concurrency=200)
display(results)

Följande kodexempel visar hur du konfigurerar gpt-5 och andra resonemangsmodeller för alla funktioner.

from synapse.ml.services.openai import OpenAIDefaults
default_conf = OpenAIDefaults()

default_conf.set_deployment_name("gpt-5")
default_conf.set_temperature(1)  # gpt-5 only accepts default value of temperature
default_conf.set_top_p(1)  # gpt-5 only accepts default value of top_p
default_conf.set_verbosity("low")
default_conf.set_reasoning_effort("low")

Du kan hämta och skriva ut var och en av parametrarna OpenAIDefaults med följande kodexempel:

print(default_conf.get_deployment_name())
print(default_conf.get_subscription_key())
print(default_conf.get_URL())
print(default_conf.get_temperature())

Du kan också återställa parametrarna lika enkelt som du ändrade dem. Följande kodexempel återställer AI-funktionsbiblioteket så att det använder standard Fabric LLM-slutpunkten:

default_conf.reset_deployment_name()
default_conf.reset_subscription_key()
default_conf.reset_URL()
default_conf.reset_temperature()

Anpassade modeller

Välj en annan stor språkmodell som stöds

Ange deployment_name till en av de modeller som stöds av Fabric.

  • Globalt i objektet OpenAIDefaults() :

    from synapse.ml.services.openai import OpenAIDefaults
    default_conf = OpenAIDefaults()
    default_conf.set_deployment_name("<model deployment name>")
    
  • Individuellt i varje AI-funktionsanrop:

    results = df.ai.translate(
        to_lang="spanish",
        input_col="text",
        output_col="out",
        error_col="error_col",
        deploymentName="<model deployment name>",
    )
    

Välj en annan inbäddningsmodell som stöds

embedding_deployment_name Sätt till en av de modeller som stöds av Fabric när du använder ai.embed- eller ai.similarity-funktioner.

  • Globalt i objektet OpenAIDefaults() :

    from synapse.ml.services.openai import OpenAIDefaults
    default_conf = OpenAIDefaults()
    default_conf.set_embedding_deployment_name("<embedding deployment name>")
    
  • Individuellt i varje AI-funktionsanrop:

    results = df.ai.embed(
        input_col="english",
        output_col="out",
        deploymentName="<embedding deployment name>",
    )
    

Konfigurera en slutpunkt för anpassad modell

Som standard använder AI-funktioner FABRIC LLM-slutpunkts-API:et för enhetlig fakturering och enkel konfiguration. Du kan välja att använda din egen modellslutpunkt genom att konfigurera en Azure OpenAI- eller AsyncOpenAI-kompatibel klient med slutpunkten och nyckeln. I följande kodexempel används platshållarvärden för att visa hur du åsidosätter den inbyggda slutpunkten för Fabric AI med modellimplementeringar för din egen Microsoft AI Foundry-resurs (tidigare Azure OpenAI):

from synapse.ml.services.openai import OpenAIDefaults
default_conf = OpenAIDefaults()

default_conf.set_URL("https://<ai-foundry-resource>.openai.azure.com/")
default_conf.set_subscription_key("<API_KEY>")

I följande kodexempel används platshållarvärden för att visa hur du åsidosätter den inbyggda Fabric AI-slutpunkten med en anpassad Microsoft AI Foundry-resurs för att använda modeller utöver OpenAI:

Viktigt!

  • Stöd för Microsoft AI Foundry-modeller är begränsat till modeller som stöder Chat Completions API och accepterar response_format parametern med JSON-schema
  • Utdata kan variera beroende på beteendet för den valda AI-modellen. Utforska funktionerna i andra modeller med lämplig försiktighet
  • Inbäddningsbaserade AI-funktioner ai.embed och ai.similarity stöds inte när du använder en AI Foundry-resurs
import synapse.ml.spark.aifunc.DataFrameExtensions
from synapse.ml.services.openai import OpenAIDefaults

default_conf = OpenAIDefaults()
default_conf.set_URL("https://<ai-foundry-resource>.services.ai.azure.com")  # Use your AI Foundry Endpoint
default_conf.set_subscription_key("<API_KEY>")
default_conf.set_deployment_name("grok-4-fast-non-reasoning")