Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье показано, как использовать Azure OpenAI в Fabric с SynapseML. SynapseML — это библиотека с открытым кодом, которая обеспечивает распределенную обработку больших наборов данных с помощью средств Foundry. Сценарии с одним или небольшим набором данных см. в статье "Использование Azure OpenAI" с пакетом SDK для Python или использование Azure OpenAI с функциями искусственного интеллекта.
Зачем использовать SynapseML?
SynapseML предлагает несколько преимуществ для работы с Azure OpenAI в Fabric:
- Открытый исходный код: доступно по адресу https://github.com/microsoft/SynapseML
- Настройка клиента не требуется: проверка подлинности обрабатывается автоматически в Fabric
- Распределенная обработка: эффективнее обрабатывать миллионы строк с минимальными затратами. Используйте функции искусственного интеллекта Fabric для проверенных преобразований текста в масштабе.
- Быстрые пакетные рабочие нагрузки: оптимизировано для крупномасштабных операций
Предпосылки
Замечание
SynapseML следует запускать в средах выполнения PySpark Fabric Runtime 1.3 и более поздних версий.
import synapse.ml.core
from synapse.ml.services.openai import *
Преобразователь OpenAIPrompt обеспечивает большую гибкость, включая поддержку API завершения чата или ответов, отслеживание использования и структурированные выходные данные. Для более точного управления используйте OpenAIChatCompletions или OpenAIResponses преобразователи напрямую. Дополнительные сведения см. в SynapseML GitHub Example Notebook
Использование API завершения чата
from synapse.ml.services.openai import OpenAIPrompt
# Create a DataFrame with prompts
df = spark.createDataFrame([
("Explain quantum computing in simple terms.",),
("What are the benefits of exercise?",),
("Describe the water cycle.",)
]).toDF("prompt")
# Configure OpenAIPrompt with chat_completions API
prompt_completion = (
OpenAIPrompt()
.setDeploymentName("gpt-4.1")
.setApiType("chat_completions") # Accepts "chat_completions" or "responses"
.setPromptCol("prompt")
.setUsageCol("usage") # Track token usage
.setOutputCol("completions")
)
# Transform and display results
display(prompt_completion.transform(df).select("prompt", "completions", "usage"))
Использование API ответов
API ответов обеспечивает улучшенное качество отклика и улучшенную обработку структурированных выходных данных.
from synapse.ml.services.openai import OpenAIPrompt
# Configure OpenAIPrompt with responses API
prompt_responses = (
OpenAIPrompt()
.setDeploymentName("gpt-4.1")
.setApiType("responses")
.setPromptCol("prompt")
.setUsageCol("usage") # Track token usage
.setStore(False) # Fabric LLM endpoint does not support storage
.setOutputCol("responses")
)
# Transform and display results
display(prompt_responses.transform(df).select("prompt", "responses", "usage"))
Замечание
Конечная точка LLM Fabric не поддерживает параметр store, установленный на True, или параметр previous_response_id.
Структурированные выходные данные с помощью OpenAIPrompt
Запрос структурированных выходных данных JSON с помощью setResponseFormat метода. Формат ответа принимает следующие параметры:
| Формат | Description |
|---|---|
None (по умолчанию) |
Позвольте LLM решить формат отклика на основе инструкций и входных данных, которые могут отличаться в каждой строке. Ответы могут быть обычным текстом или словарем JSON с различными полями. |
"text" или {"type": "text"} |
Заставляет использовать простой текст для всех строк. |
"json_object" или {"type": "json_object"} |
Возвращает словарь JSON в текстовой форме, где LLM решает поля. Требуется слово "json" в запросе. |
{"type": "json_schema", ...} |
Возвращает словарь JSON, соответствующий пользовательской схеме JSON. Обеспечивает точный контроль над структурой ответа. |
from synapse.ml.services.openai import OpenAIPrompt
# Create a DataFrame with prompts requiring structured output
df = spark.createDataFrame([
("List three programming languages with their main use cases.",),
]).toDF("prompt")
# Configure OpenAIPrompt with JSON response format
prompt_json = (
OpenAIPrompt()
.setDeploymentName("gpt-4.1")
.setApiType("chat_completions")
.setPromptCol("prompt")
.setUsageCol("usage")
.setResponseFormat({"type": "json_object"}) # Request JSON output
.setOutputCol("completions")
)
# Transform and display results
display(prompt_json.transform(df).select("prompt", "completions", "usage"))
Эмбеддинги с помощью OpenAIEmbedding
Внедрение — это специальный формат представления данных моделями и алгоритмами машинного обучения. Внедрение представляет собой представление семантического значения фрагмента текста с высокой информационной плотностью. Каждое внедрение представляет собой такой вектор чисел с плавающей запятой, что расстояние между двумя внедрениями в векторном пространстве коррелирует с семантическим сходством между двумя входными значениями в исходном формате. Например, если два текста похожи, их векторные представления также должны быть похожи.
df = spark.createDataFrame(
[
("Once upon a time",),
("Best programming language award goes to",),
("SynapseML is ",)
]
).toDF("text")
embedding = (
OpenAIEmbedding()
.setDeploymentName("text-embedding-ada-002")
.setTextCol("text")
.setOutputCol("out")
)
display(embedding.transform(df))
Доступные модели и ставки
Сведения о доступных моделях и нормах расхода см. в разделе «Нормы расхода для инструментов Foundry».
Связанный контент
- Использование Azure OpenAI с функциями ИИ для крупномасштабных преобразований набора данных в Fabric для Pandas или PySpark DataFrames
- Используйте Azure OpenAI с OpenAI Python SDK для питоничного управления отдельными вызовами API с помощью OpenAI Python SDK
- Использование Azure OpenAI с REST API для прямых вызовов REST API к конечной точке LLM