Provedení dávkového odvozování pomocí ai_query
Důležité
Tato funkce je ve verzi Public Preview.
Tento článek popisuje, jak provádět dávkové odvozování pomocí integrované funkce ai_query
Databricks SQL . Další podrobnosti o této funkci AI najdete v ai_query funkci.
Databricks doporučuje používat ai_query
se službou Model Serving pro dávkové odvozování. K rychlému experimentování ai_query
je možné použít koncové body s platbami za token.
Jakmile budete připraveni spustit dávkové odvozování velkých nebo produkčních dat, Databricks doporučuje používat zřízené koncové body propustnosti, aby se zrychlil výkon. ai_query
bylo ověřeno, aby spolehlivě a konzistentně zpracovávaly datové sady v rozsahu miliard tokenů. Informace o vytvoření koncového bodu zřízené propustnosti najdete v tématu Rozhraní API základního modelu zřízené propustnosti.
Pokud chcete začít s dávkovým odvozováním s LLMs v tabulkách katalogu Unity, podívejte se na příklady poznámkových bloků ve službě Batch inference pomocí rozhraní API základního modelu zřízené propustnosti.
Požadavky
- Podívejte se na požadavky funkce ai_query.
- Oprávnění dotazu na tabulku Delta v katalogu Unity obsahující data, která chcete použít.
Ukázkové dotazy na odvození služby Batch
Příklady v této části předpokládají, že máte model nasazený do existujícího koncového bodu, který chcete dotazovat. Pokud jste v uživatelském rozhraní obsluhy , můžete vybrat koncový bod a kliknout na tlačítko Použít v pravém horním rohu a vybrat možnost Použít pro dávkové odvozování. Tento výběr otevře editor SQL, kde můžete psát a spouštět dotaz SQL pro dávkové odvozování pomocí ai_query
.
Následuje obecný příklad použití a failOnError
modelParameters
s max_tokens
a temperature
. Tento příklad také ukazuje, jak zřetězení výzvy pro váš model a sloupec odvozování pomocí concat()
. Existuje několik způsobů, jak provést zřetězení, například pomocí ||
, concat()
nebo 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}
)
Následující příklad dotazuje model za llama_3_1_8b
koncovým bodem s comment_text
datovou sadou.
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
Následující příklad obsahuje kroky předběžného zpracování dat a kroky následného zpracování:
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
Naplánování úlohy
Jakmile budete mít připravený skript SQL, můžete naplánovat spuštění úlohy s libovolnou frekvencí, kterou potřebujete. Viz Vytvoření a správa naplánovaných úloh poznámkového bloku.