Поделиться через


Настройка функций ИИ с помощью PySpark

Функции ИИ предназначены для работы с полем с базовой моделью и параметрами, настроенными по умолчанию. Однако пользователи, которые хотят более гибких конфигураций, могут настраивать свои решения с помощью нескольких дополнительных строк кода.

Это важно

  • Функции ИИ предназначены для использования в Fabric Runtime 1.3 (Spark 3.5) и более поздних версий.
  • Ознакомьтесь с предварительными требованиями в этой обзорной статье, включая установки библиотек , которые необходимы для временного использования функций ИИ.
  • Хотя базовая модель может обрабатывать несколько языков, большинство функций ИИ оптимизированы для использования на английском языке текстов.

Замечание

  • В этой статье описывается настройка функций ИИ с помощью PySpark. Сведения о настройке функций ИИ с помощью pandas см. в этой статье.
  • Ознакомьтесь со всеми функциями ИИ в этой статье.

Configurations

Если вы работаете с функциями искусственного интеллекта в PySpark, можно использовать OpenAIDefaults класс для настройки базовой модели ИИ, используемой всеми функциями. Параметры, которые могут применяться только для каждого вызова функции, указаны в следующем разделе.

Параметр Description По умолчанию
concurrency Int, указывающий максимальное количество строк для обработки параллельно с асинхронными запросами к модели. Более высокие значения ускоряют время обработки (если у вас достаточно ресурса для этого). Его можно настроить до 1000. Это значение должно быть задано для каждого отдельного вызова функции ИИ. В Spark это значение параллелизма предназначено для каждого рабочего узла. 50
deployment_name Строковое значение, указывающее имя базовой модели. Вы можете выбрать модели, поддерживаемые Fabric. Это значение также можно задать для развертывания пользовательской модели в Azure OpenAI или Azure AI Foundry. На портале Azure это значение отображается в разделе"Развертывания модели> ресурсами". На портале Azure AI Foundry значение отображается на странице Развертывания. gpt-4.1-mini
embedding_deployment_name Строковое значение, указывающее имя модели развертывания, которая поддерживает функции ИИ. text-embedding-ada-002
reasoning_effort Часть OpenAIDefaults. Используется моделями серии GPT-5 для количества токенов рассуждений, которые они должны применять. Можно задать значение None или строковое значение "минимальный", "низкий", "средний" или "высокий". None
subscription_key Ключ API, используемый для проверки подлинности с ресурсом крупной языковой модели (LLM). На портале Azure это значение отображается в разделе Ключи и конечная точка. N/A
temperature Числовое значение между 0,0 и 1.0. Более высокие температуры увеличивают случайность и творческость выходных данных модели. 0.0
top_p Часть OpenAIDefaults. Плавающее значение от 0 до 1. Более низкое значение (например, 0.1) ограничивает модель только наиболее вероятными маркерами, что делает выходные данные более детерминированными. Более высокое значение (например, 0.9) позволяет использовать более разнообразные и творческие выходные данные, включая более широкий диапазон маркеров. None
URL URL-адрес, указывающий конечную точку ресурса LLM. На портале Azure это значение отображается в разделе Ключи и конечная точка. Например: https://your-openai-endpoint.openai.azure.com/. N/A
verbosity Часть OpenAIDefaults. Используется моделями серии gpt-5 для определения длительности выходных данных. Можно задать значение None или строковое значение "low", "medium" или "high". None

В следующем примере кода показано, как настроить concurrency для отдельного вызова функции.

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)

В следующем примере кода показано, как настроить gpt-5 и другие модели причин для всех функций.

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")

Вы можете извлечь и распечатать каждый из параметров с помощью следующего OpenAIDefaults примера кода:

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

Вы также можете сбросить параметры так же легко, как они были изменены. Следующий пример кода сбрасывает библиотеку функций ИИ, чтобы она использовала конечную точку Fabric LLM по умолчанию.

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

Пользовательские модели

Выберите другую поддерживаемую языковую модель

Установите deployment_name на одну из моделей, поддерживаемых Fabric.

  • Глобально в объекте OpenAIDefaults() :

    from synapse.ml.services.openai import OpenAIDefaults
    default_conf = OpenAIDefaults()
    default_conf.set_deployment_name("<model deployment name>")
    
  • Отдельно в каждом вызове функции ИИ:

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

Выбор другой поддерживаемой модели внедрения

Установите embedding_deployment_name на одну из моделей, поддерживаемых Fabric при использовании функций ai.embed или ai.similarity.

  • Глобально в объекте OpenAIDefaults() :

    from synapse.ml.services.openai import OpenAIDefaults
    default_conf = OpenAIDefaults()
    default_conf.set_embedding_deployment_name("<embedding deployment name>")
    
  • Отдельно в каждом вызове функции ИИ:

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

Настройка конечной точки пользовательской модели

По умолчанию функции ИИ используют API конечной точки Fabric LLM для единого выставления счетов и простой настройки. Вы можете использовать собственную конечную точку модели, настроив клиент Azure OpenAI или AsyncOpenAI, совместимый с конечной точкой и ключом. В следующем примере кода используются значения заполнителей, чтобы показать, как переопределить встроенную конечную точку ИИ Fabric с помощью собственных развертываний модели ресурсов Microsoft AI Foundry (ранее — 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>")

В следующем примере кода используются значения заполнителей, чтобы показать, как переопределить встроенную конечную точку ИИ Fabric с помощью настраиваемого ресурса Microsoft AI Foundry для использования моделей за пределами OpenAI:

Это важно

  • Поддержка моделей Microsoft AI Foundry ограничена моделями, поддерживающими Chat Completions API и принимающее response_format параметр с помощью схемы JSON
  • Выходные данные могут отличаться в зависимости от поведения выбранной модели ИИ. Ознакомьтесь с возможностями других моделей с соответствующей осторожностью
  • Функции ИИ ai.embed и ai.similarity, основанные на встраивании, не поддерживаются при использовании ресурса AI Foundry.
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")