Udostępnij za pośrednictwem


Wykonywanie wnioskowania wsadowego przy użyciu polecenia ai_query

Ważne

Ta funkcja jest dostępna w publicznej wersji zapoznawczej.

W tym artykule opisano sposób wnioskowania wsadowego przy użyciu wbudowanej funkcji ai_querySQL usługi Databricks . Aby uzyskać więcej informacji na temat tej funkcji sztucznej inteligencji, zobacz ai_query funkcji .

Usługa Databricks zaleca używanie funkcji ai_query z obsługą modelu na potrzeby wnioskowania wsadowego. W przypadku szybkiego eksperymentowania ai_query można używać z punktami końcowymi płatności za token.

Gdy wszystko będzie gotowe do uruchamiania wnioskowania wsadowego na dużych lub produkcyjnych danych, usługa Databricks zaleca używanie aprowiowanych punktów końcowych przepływności w celu uzyskania szybszej wydajności. ai_query został zweryfikowany w celu niezawodnego i spójnego przetwarzania zestawów danych w zakresie miliardów tokenów. Zobacz Aprowizowanie interfejsów API modelu modelu przepływności, aby dowiedzieć się, jak utworzyć aprowizowany punkt końcowy przepływności.

Aby rozpocząć wnioskowanie wsadowe za pomocą funkcji LLMs w tabelach wykazu aparatu Unity, zobacz przykłady notesów w wnioskowaniu w usłudze Batch przy użyciu aprowizowanych przepływności interfejsów API modelu foundation.

Wymagania

  • Zobacz wymagania funkcji ai_query.
  • Uprawnienie do wykonywania zapytań w tabeli delty w wykazie aparatu Unity zawierające dane, których chcesz użyć.

Przykładowe zapytania wnioskowania wsadowego

W przykładach w tej sekcji założono, że masz model wdrożony w istniejącym punkcie końcowym, który chcesz wykonać zapytanie. Jeśli korzystasz z interfejsu użytkownika obsługującego, możesz wybrać punkt końcowy i kliknąć przycisk Użyj w prawym górnym rogu, aby wybrać pozycję Użyj do wnioskowania wsadowego. To zaznaczenie otwiera edytor SQL, w którym można napisać i uruchomić zapytanie SQL na potrzeby wnioskowania wsadowego przy użyciu polecenia ai_query.

Poniżej przedstawiono ogólny przykład użycia elementów failOnError i i modelParameters max_tokens .temperature W tym przykładzie pokazano również, jak połączyć monit o model i kolumnę wnioskowania przy użyciu polecenia concat(). Istnieje wiele sposobów łączenia, takich jak używanie ||metody , concat()lub 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}
)

W poniższym przykładzie model znajduje się za llama_3_1_8b punktem końcowym z zestawem comment_text danych.

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

Poniższy przykład zawiera kroki przetwarzania wstępnego danych i kroki przetwarzania końcowego:

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

Planowanie zadania

Po dokonaniu gotowości skryptu SQL możesz zaplanować uruchomienie zadania z dowolną potrzebną częstotliwością. Zobacz Tworzenie zaplanowanych zadań notesu i zarządzanie nimi.