Realize a inferência de lotes usando ai_query
Prévia
Esse recurso está em Prévia Pública.
Este artigo descreve como realizar a inferência de lotes usando a função integrada Databricks SQL ai_query
. Consulte a função ai_query para obter mais detalhes sobre essa função de IA.
Databricks recomenda o uso de ai_query
com servindo modelo para inferência de lotes. Para uma rápida experimentação, o site ai_query
pode ser usado com o endpoint pay-per-tokens.
Quando o senhor estiver pronto para executar lotes de inferência em dados grandes ou de produção, o site Databricks recomenda o uso do endpoint de provisionamento Taxa de transferência para um desempenho mais rápido. Verificou-se que ai_query
processa de forma confiável e consistente um conjunto de dados na faixa de bilhões de tokens. Consulte o provisionamento Taxa de transferência Foundation Model APIs para saber como criar um provisionamento Taxa de transferência endpoint.
Para começar com a inferência de lotes com LLMs nas tabelas Unity Catalog, consulte os exemplos do Notebook em inferência de lotes usando o Foundation Model APIs provisionamento Taxa de transferência.
Requisitos
Veja os requisitos da função ai_query.
Permissão de consulta na tabela Delta no Unity Catalog que contém os dados que o senhor deseja usar.
consultas de exemplo de inferência de lotes
Os exemplos desta seção pressupõem que o senhor tenha um modelo implantado em um endpoint existente que deseja consultar. Se estiver na UI de serviço, o senhor pode selecionar o site endpoint e clicar no botão Use (Usar) no canto superior direito para selecionar Use for lotes inference (Usar para inferência de lotes). Essa seleção abre um editor SQL onde o senhor pode escrever e executar sua consulta SQL para inferência de lotes usando ai_query
.
Veja a seguir um exemplo geral usando failOnError
e modelParameters
com max_tokens
e temperature
. Esse exemplo também mostra como concatenar o prompt para seu modelo e a coluna de inferência usando concat()
. Há várias maneiras de realizar a concatenação, como usar ||
, concat()
ou 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}
)
O exemplo a seguir consulta o modelo por trás do llama_3_1_8b
endpoint com o comment_text
dataset.
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
O exemplo a seguir contém dados de pré-processamento dos passos e pós-processamento dos passos:
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
programar um trabalho
Depois de ter o script SQL pronto, o senhor pode programar um Job para executá-lo com a frequência que precisar. Consulte Criar e gerenciar o trabalho agendado do Notebook.