Durchführen von Batch-Ableitungen mithilfe von ai_query
Wichtig
Dieses Feature befindet sich in der Public Preview.
In diesem Artikel wird beschrieben, wie Sie die Batchableitung mithilfe der integrierten SQL-Funktion ai_query
Databricks durchführen. Weitere Informationen zu dieser KI-Funktion finden Sie unter ai_query Funktion .
Databricks empfiehlt die Verwendung ai_query
mit Model Serving für batchinference. Für schnelle Experimente ai_query
können Sie mit Endpunkten für Pay-per-Token verwendet werden.
Wenn Sie bereit sind, Batchableitungen für große oder Produktionsdaten auszuführen, empfiehlt Databricks die Verwendung von bereitgestellten Durchsatzendpunkten für eine schnellere Leistung. ai_query
wurde überprüft, um zuverlässig und konsistent Datasets im Bereich von Milliarden von Token zu verarbeiten. Informationen zum Erstellen eines bereitgestellten Durchsatzendpunkts finden Sie unter Bereitgestellte Foundation Model-APIs .
Erste Schritte mit batchinference with LLMs on Unity Catalog tables see the notebook examples in Batch inference using Foundation Model APIs provisioned throughput.
Anforderungen
- Siehe die Anforderungen der funktion ai_query.
- Abfrageberechtigung für die Delta-Tabelle im Unity-Katalog, die die daten enthält, die Sie verwenden möchten.
Batch-Ableitungsbeispielabfragen
In den Beispielen in diesem Abschnitt wird davon ausgegangen, dass Sie ein Modell für einen vorhandenen Endpunkt bereitgestellt haben, den Sie abfragen möchten. Wenn Sie sich in der Benutzeroberfläche "Dienen" befinden, können Sie Ihren Endpunkt auswählen und oben rechts auf die Schaltfläche "Verwenden" klicken, um "Für Batchzuleitung verwenden" auszuwählen. Mit dieser Auswahl wird ein SQL-Editor geöffnet, in dem Sie Ihre SQL-Abfrage für die Batchausleitung schreiben ai_query
und ausführen können.
Im Folgenden sehen Sie ein allgemeines Beispiel für die Verwendung von failOnError
und modelParameters
mit max_tokens
und temperature
. In diesem Beispiel wird auch veranschaulicht, wie Sie die Eingabeaufforderung für Ihr Modell und die Rückschlussspalte mithilfe von concat()
. verketten. Es gibt mehrere Möglichkeiten zum Ausführen von Verkettung, z. B. verwenden ||
, concat()
oder 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}
)
Im folgenden Beispiel wird das Modell hinter dem llama_3_1_8b
Endpunkt mit dem comment_text
Dataset abfragen.
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
Das folgende Beispiel enthält Datenvorverarbeitungsschritte und Postverarbeitungsschritte:
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
Planen eines Auftrags
Nachdem Sie ihr SQL-Skript fertig gestellt haben, können Sie einen Auftrag planen, um ihn mit jeder benötigten Häufigkeit auszuführen. Weitere Informationen finden Sie unter Erstellen und Verwalten geplanter Notebookaufträge.