Dela via


Utföra batch-LLM-slutsatsdragning med hjälp av ai_query

Viktigt!

Den här funktionen finns som allmänt tillgänglig förhandsversion.

Den här artikeln beskriver hur du utför batchinferens med hjälp av den inbyggda Databricks SQL-funktionen ai_query med en slutpunkt som använder Foundation Model-API:er som etablerats genom dataflöde. Exemplen och vägledningen i den här artikeln rekommenderas för batchinferensarbetsbelastningar som använder stora språkmodeller (LLM) för att bearbeta flera indata.

Du kan använda ai_query med antingen SQL eller PySpark för att köra batchinferensarbetsbelastningar. Om du vill köra batchinferens på dina data anger du följande i ai_query:

  • Unity Catalog-indatatabellen och utdatatabellen
  • Det etablerade dataflödesslutpunktens namn
  • Modellprompten och eventuella modellparametrar

Mer information om den här AI-funktionen finns i ai_query funktion .

Krav

  • En arbetsyta i en Foundation Model API:er som stöds.
  • Något av följande:
    • All-purpose compute med beräkningsstorlek i3.2xlarge eller större som kör Databricks Runtime 15.4 ML LTS eller senare med minst två arbetare.
    • SQL Warehouse medium och större.
  • En befintlig modell som betjänar slutpunkten. Se API:er för grundmodell för etablerat dataflöde för att skapa en etablerad dataflödesslutpunkt.
  • Frågebehörighet i deltatabellen i Unity Catalog som innehåller de data som du vill använda.
  • Ange pipelines.channel i tabellegenskaperna som "förhandsversion" för att använda ai_query(). Se Exempel för en exempelfråga.

Använda ai_query och SQL

Följande är ett exempel på batchinferens med hjälp av ai_query och SQL. Det här exemplet innehåller modelParameters med max_tokens och temperature och visar hur du sammanfogar prompten för din modell och indatakolumnen med hjälp av concat(). Det finns flera sätt att utföra sammanfogning, till exempel att använda ||, concat()eller 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}
)

Använda ai_query och PySpark

Om du föredrar att använda Python kan du också köra batchinferens med ai_query och PySpark enligt följande:

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)

Exempel på batchinferens för notebook-filer med Python

I följande exempel notebook-fil skapas en etablerad dataflödesslutpunkt och kör batch-LLM-slutsatsdragning med hjälp av Python och Meta Llama 3.1 70B-modellen. Den har också vägledning för att utvärdera prestandan hos din batchinferensarbetsbelastning och skapa en modell för förutbestämd genomströmningskapacitet som servar en slutpunkt.

LLM-batchinferens med en etablerad dataflödesslutpunktsanteckningsbok

Hämta bärbar dator

Följande exempelanteckningsbok skapar en etablerad dataflödesslutpunkt och kör batch-LLM-slutsatsdragning med hjälp av Python och ditt val av inbäddningsmodellen GTE Large (engelska) eller BGE Large (engelska).

LLM-batchinferensinbäddningar med en etablerad dataflödesslutpunktsanteckningsbok

Hämta bärbar dator