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.
- All-purpose compute med beräkningsstorlek
- 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ändaai_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
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).