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


Выполняйте пакетную инференцию LLM с помощью ai_query

Внимание

Эта функция предоставляется в режиме общедоступной предварительной версии.

В этой статье описывается, как выполнять пакетный вывод данных с помощью встроенной функции Databricks SQL ai_query с конечной точкой, использующей API модели Foundation , обеспеченные пропускной способностью. Примеры и рекомендации в этой статье рекомендуются для рабочих нагрузок пакетного вывода, использующих большие языковые модели (LLM) для обработки нескольких входных данных.

Вы можете использовать ai_query с SQL или PySpark для выполнения пакетных инференсных задач. Чтобы выполнить пакетную обработку данных, укажите следующее в ai_query:

  • Входные tableCatalog Unity table и выходные table
  • Имя выделенной конечной точки пропускной способности
  • Запрос модели и любая модель parameters

Дополнительные сведения об этой функции ИИ см. в ai_query.

Требования

  • Рабочая область в регионе, поддерживаемом API-интерфейсами модели Foundation.
  • Одно из следующих элементов:
    • Все универсальные вычислительные ресурсы с размером i3.2xlarge или больше, работающие под управлением Databricks Runtime 15.4 ML LTS или более поздней версии, с по крайней мере двумя рабочими узлами.
    • Хранилище SQL среднего и большего размера.
  • Существующую конечную точку обслуживания модели. Для создания конечной точки с предоставленной пропускной способностью см. раздел API-интерфейсы моделей базовой конфигурации.
  • Запросите разрешение на использование Delta table в Unity Catalog, которая содержит нужные данные.
  • Set pipelines.channel в свойствах table в качестве предварительной версии для использования ai_query(). См. примеры для примера запроса.

Использование ai_query и SQL

Ниже приведен пример пакетного вывода с помощью ai_query и SQL. Этот пример включает modelParameters с max_tokens и temperature и показывает, как объединить запрос для модели и входные column с помощью 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 с выделенной пропускной способностью на конечной точке в ноутбуке-средстве.

Get записная книжка