Freigeben über


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_queryDatabricks 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_queryund 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.