Выполняйте пакетную инференцию LLM с помощью ai_query
Внимание
Эта функция предоставляется в режиме общедоступной предварительной версии.
В этой статье описывается, как выполнять пакетный вывод данных с помощью встроенной функции Databricks SQL ai_query
с конечной точкой, использующей API модели Foundation , обеспеченные пропускной способностью. Примеры и рекомендации в этой статье рекомендуются для рабочих нагрузок пакетного вывода, использующих большие языковые модели (LLM) для обработки нескольких входных данных.
Вы можете использовать ai_query
с SQL или PySpark для выполнения пакетных инференсных задач. Чтобы выполнить пакетную обработку данных, укажите следующее в ai_query
:
- Входная таблица и выходная таблица каталога Unity
- Имя выделенной конечной точки пропускной способности
- Запрос модели и все параметры модели
Дополнительные сведения об этой функции ИИ см. в ai_query.
Требования
- Рабочая область в регионе, поддерживаемом API-интерфейсами модели Foundation.
- Одно из следующих элементов:
- Все универсальные вычислительные ресурсы с размером
i3.2xlarge
или больше, работающие под управлением Databricks Runtime 15.4 ML LTS или более поздней версии, с по крайней мере двумя рабочими узлами. - Хранилище SQL среднего и большего размера.
- Все универсальные вычислительные ресурсы с размером
- Существующую конечную точку обслуживания модели. Для создания конечной точки с предоставленной пропускной способностью см. раздел API-интерфейсы моделей базовой конфигурации.
- Разрешение запроса на таблицу Delta в каталоге Unity, содержащую данные, которые вы хотите использовать.
- Задайте
pipelines.channel
в свойствах таблицы как «предпросмотр», чтобы использоватьai_query()
. См. примеры для примера запроса.
Использование ai_query
и SQL
Ниже приведен пример пакетного вывода с помощью ai_query
и SQL. Этот пример включает modelParameters
с max_tokens
и temperature
и показывает, как объединить запрос для вашей модели и входной столбец с помощью concat()
. Существует несколько способов объединения, таких как использование ||
, concat()
или format_string()
.
CREATE OR REPLACE TABLE ${output_table_name} AS (
SELECT
${input_column_name},
AI_QUERY(
"${endpoint}",
CONCAT("${prompt}", ${input_column_name}),
modelParameters => named_struct('max_tokens', ${num_output_tokens},'temperature', ${temperature})
) as response
FROM ${input_table_name}
LIMIT ${input_num_rows}
)
Использование ai_query
и PySpark
Если вы предпочитаете использовать Python, можно также запустить пакетный вывод с помощью ai_query
и PySpark, как показано ниже.
df_out = df.selectExpr("ai_query('{endpoint_name}', CONCAT('{prompt}', {input_column_name}), modelParameters => named_struct('max_tokens', ${num_output_tokens},'temperature', ${temperature})) as {output_column_name}")
df_out.write.mode("overwrite").saveAsTable(output_table_name)
Примеры записных книжек для пакетного вывода с использованием Python
В следующем примере блокнот создает выделенную конечную точку производительности и выполняет пакетное выполнение вывода LLM с помощью Python и модели Meta Llama 3.1 70B. Он также содержит рекомендации по тестированию рабочей нагрузки пакетного вывода и созданию подготовленной модели пропускной способности, обслуживающей конечную точку.
Пакетный инференс LLM с выделенной пропускной способностью на конечной точке в ноутбуке-средстве.
В следующем примере блокнот создает выделенную конечную точку пропускной способности и выполняет пакетный инференс для LLM с использованием языка программирования Python, а также выбор модели встраивания GTE Large (английский) или BGE Large (английский).