Realize a inferência de lotes LLM 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
com um endpoint que usa o Foundation Model APIs provisionamento Taxa de transferência. Os exemplos e as orientações deste artigo são recomendados para cargas de trabalho de inferência de lotes que usam modelos de linguagem grandes (LLM) para processar várias entradas.
O senhor pode usar ai_query
com SQL ou PySpark para executar muitas cargas de trabalho de inferência. Para executar a inferência de lotes em seus dados, especifique o seguinte em ai_query
:
Tabela de entrada e tabela de saída do Unity Catalog
O provisionamento Taxa de transferência endpoint name
O prompt do modelo e quaisquer parâmetros do modelo
Consulte a funçãoai_query para obter mais detalhes sobre essa função AI.
Requisitos
Um workspace em uma região com suporte do Foundation Model APIs .
Um dos seguintes:
compute para todos os fins com compute tamanho
i3.2xlarge
ou maior, executando Databricks Runtime 15.4 ML LTS ou acima com pelo menos dois trabalhadores.SQL warehouse médio e maior.
Um modelo de serviço existente endpoint. Consulte o provisionamento Taxa de transferência Foundation Model APIs para criar um provisionamento Taxa de transferência endpoint.
Permissão de consulta na tabela Delta no Unity Catalog que contém os dados que o senhor deseja usar.
Defina o
pipelines.channel
nas propriedades da tabela como 'visualização' para usarai_query()
. Veja exemplos para ver um exemplo de consulta.
Use ai_query
e SQL
A seguir, um exemplo de inferência de lotes usando ai_query
e SQL. Esse exemplo inclui modelParameters
com max_tokens
e temperature
e mostra como concatenar o prompt para seu modelo e a coluna de entrada 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}),
modelParameters => named_struct('max_tokens', ${num_output_tokens},'temperature', ${temperature})
) as response
FROM ${input_table_name}
LIMIT ${input_num_rows}
)
Use ai_query
e PySpark
Se preferir usar Python, o senhor também pode executar lotes de inferência com ai_query
e PySpark, conforme mostrado a seguir:
df_out = df.selectExpr("ai_query('{endpoint_name}', CONCAT('{prompt}', {input_column_name}), modelParameters => named_struct('max_tokens', ${num_output_tokens},'temperature', ${temperature})) as {output_column_name}")
df_out.write.mode("overwrite").saveAsTable(output_table_name)
exemplo de inferência de lotes Notebook usando Python
O exemplo do Notebook cria um provisionamento Taxa de transferência endpoint e execução lotes LLM inferência usando Python e o modelo Meta Llama 3.1 70B. Ele também oferece orientação sobre o benchmarking de sua carga de trabalho de inferência de lotes e a criação de um provisionamento Taxa de transferência servindo o modelo endpoint.