Utföra batchinferens 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 Sql-funktionen ai_query
Databricks . Mer information om den här AI-funktionen finns i ai_query funktion .
Databricks rekommenderar att du använder ai_query
med Modellservering för batchinferens. För snabbexperimentering ai_query
kan användas med pay-per-token-slutpunkter.
När du är redo att köra batchinferens på stora data eller produktionsdata rekommenderar Databricks att du använder etablerade dataflödesslutpunkter för snabbare prestanda. ai_query
har verifierats för att på ett tillförlitligt och konsekvent sätt bearbeta datauppsättningar i intervallet med miljarder token. Mer information om hur du skapar en etablerad dataflödesslutpunkt finns i Api:er för etablerad dataflödesmodell.
För att komma igång med batchinferens med LLM:er i Unity Catalog-tabeller, se notebook-exemplen i Batch-slutsatsdragning med foundation model-API:er som etablerats genom dataflöde.
Krav
- Se kraven för funktionen ai_query.
- Frågebehörighet i deltatabellen i Unity Catalog som innehåller de data som du vill använda.
Exempelfrågor för Batch-slutsatsdragning
Exemplen i det här avsnittet förutsätter att du har en modell distribuerad till en befintlig slutpunkt som du vill köra frågor mot. Om du är i användargränssnittet för servering kan du välja slutpunkten och klicka på knappen Använd längst upp till höger för att välja Använd för batchinferens. Det här valet öppnar en SQL-redigerare där du kan skriva och köra SQL-frågan för batchinferens med hjälp av ai_query
.
Följande är ett allmänt exempel med och failOnError
modelParameters
med max_tokens
och temperature
. Det här exemplet visar också hur du sammanfogar prompten för din modell och slutsatsdragningskolumnen 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}),
failOnError => True,
modelParameters => named_struct('max_tokens', ${num_output_tokens},'temperature', ${temperature})
) as response
FROM ${input_table_name}
LIMIT ${input_num_rows}
)
I följande exempel frågas modellen bakom llama_3_1_8b
slutpunkten med datamängden comment_text
.
WITH data AS (
SELECT *
FROM ml.sentiment.comments
LIMIT 10000
)
SELECT
comment_text,
ai_query(
'llama_3_1_8b_batch',
CONCAT('You are provided with text. Classify the text into one of these labels: "Positive", "Neutral", "Negative". Do not explain. Do not output any confidence score. Do not answer questions. Text: ', comment_text)
) AS label
FROM data
Följande exempel innehåller dataförbearbetningssteg och steg för efterbearbetning:
WITH temp AS (
SELECT *
FROM ml.sentiment.comments
LIMIT 10000
),
pre_process AS (
SELECT comment_text
FROM temp
WHERE length(comment_text) > 50
),
sentiment AS (
SELECT
comment_text,
ai_query(
'llama_3_1_8b_batch',
Concat('You are provided with text. Classify the text into one of these labels: "Positive", "Neutral", "Negative". Do not explain. Do not output any confidence score. Do not answer questions. Text: ', comment_text)
) AS label
FROM pre_process
)
SELECT
comment_text,
label,
CASE
WHEN label NOT IN ("Positive", "Neutral", "Negative") THEN True
ELSE FALSE
END AS error
FROM sentiment
Schemalägga ett jobb
När du har ditt SQL-skript klart kan du schemalägga ett jobb för att köra det med den frekvens du behöver. Se Skapa och hantera schemalagda notebook-jobb.