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_query
SQL 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.