Delen via


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.