Batchdeductie uitvoeren met behulp van ai_query
Belangrijk
Deze functie is beschikbaar als openbare preview.
In dit artikel wordt beschreven hoe u batchdeductie uitvoert met behulp van de ingebouwde Databricks SQL-functie ai_query
. Zie ai_query functie voor meer informatie over deze AI-functie.
Databricks raadt het gebruik aan ai_query
met Model Serving voor batchdeductie. Voor snelle experimenten ai_query
kan worden gebruikt met eindpunten voor betalen per token.
Wanneer u klaar bent om batchdeductie uit te voeren op grote of productiegegevens, raadt Databricks aan om ingerichte doorvoereindpunten te gebruiken voor snellere prestaties. ai_query
is geverifieerd om gegevenssets betrouwbaar en consistent te verwerken in het bereik van miljarden tokens. Zie Ingerichte doorvoer Foundation Model-API's voor het maken van een ingerichte doorvoereindpunt.
Als u aan de slag wilt gaan met batchdeductie met LLM's in Unity Catalog-tabellen, raadpleegt u de notebookvoorbeelden in Batch-deductie met behulp van de ingerichte doorvoer van Foundation Model-API's.
Vereisten
- Zie de vereisten van de functie ai_query.
- Querymachtiging voor de Delta-tabel in Unity Catalog die de gegevens bevat die u wilt gebruiken.
Voorbeeldquery's voor batchdeductie
In de voorbeelden in deze sectie wordt ervan uitgegaan dat u een model hebt geïmplementeerd op een bestaand eindpunt waarop u een query wilt uitvoeren. Als u zich in de gebruikersinterface bevindt, kunt u uw eindpunt selecteren en op de knop Gebruiken in de rechterbovenhoek klikken om Gebruiken voor batchdeductie te selecteren. Met deze selectie wordt een SQL-editor geopend waarin u uw SQL-query kunt schrijven en uitvoeren voor batchdeductie met behulp van ai_query
.
Hier volgt een algemeen voorbeeld van het gebruik van en failOnError
modelParameters
met max_tokens
en temperature
. In dit voorbeeld ziet u ook hoe u de prompt voor uw model en de deductiekolom kunt samenvoegen met behulp van concat()
. Er zijn meerdere manieren om samenvoeging uit te voeren, zoals het gebruik ||
, concat()
of 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}
)
In het volgende voorbeeld wordt het model achter het llama_3_1_8b
eindpunt opgevraagd met de comment_text
gegevensset.
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
Het volgende voorbeeld bevat stappen voor het vooraf verwerken van gegevens en naverwerkingsstappen:
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
Een taak plannen
Nadat u uw SQL-script klaar hebt, kunt u een taak plannen om de taak uit te voeren met de frequentie die u nodig hebt. Zie Geplande notebooktaken maken en beheren.