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


Выполняйте пакетную инференцию 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 (английский).

Внедрение пакетного вывода LLM с подготовленной записной книжкой конечной точки пропускной способности

Возьми записную книжку