Condividi tramite


Eseguire l'inferenza batch LLM usando ai_query

Importante

Questa funzionalità è disponibile in anteprima pubblica.

Questo articolo descrive come eseguire l'inferenza batch usando la funzione SQL predefinita di Databricks ai_query con un endpoint che usa le API dei modelli di base con provisioning della velocità effettiva di. Gli esempi e le linee guida in questo articolo sono consigliati per carichi di lavoro di inferenza batch che usano modelli di linguaggio di grandi dimensioni (LLM) per elaborare più input.

È possibile usare ai_query con SQL o PySpark per eseguire carichi di lavoro di inferenza batch. Per eseguire l'inferenza batch sui dati, specificare quanto segue in ai_query:

  • L'input Catalog e l'output table di Unity table
  • Nome dell'endpoint per la velocità effettiva fornita
  • Richiesta del modello e qualsiasi modello parameters

Per altre informazioni su questa funzione di intelligenza artificiale, vedere ai_query funzione .

Requisiti

  • Un'area di lavoro in un'area supportata API modello foundation.
  • Uno dei seguenti:
    • Calcolo a uso generico con dimensione di calcolo i3.2xlarge o superiore, eseguendo Databricks Runtime 15.4 ML LTS o versione successiva, con almeno due nodi di lavoro.
    • SQL Warehouse medio e più grande.
  • Un endpoint di servizio di un modello esistente. Per creare un endpoint di throughput predefinito, vedere API del Modello Fondamentale.
  • Richiedi l'autorizzazione di query sulla Delta table in Unity Catalog che contiene i dati che vuoi utilizzare.
  • Set il pipelines.channel nelle proprietà di table come 'anteprima' per usare ai_query(). Vedere Esempi per un esempio di query.

Usare ai_query e SQL

Di seguito è riportato un esempio di inferenza batch che usa ai_query e SQL. Questo esempio include modelParameters con max_tokens e temperature e illustra come concatenare il prompt per il modello e l'input column usando concat(). Esistono diversi modi per eseguire la concatenazione, ad esempio usando ||, concat()o 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}
)

Usare ai_query e PySpark

Se si preferisce usare Python, è anche possibile eseguire l'inferenza batch con ai_query e PySpark, come illustrato di seguito:

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)

Notebook di esempio di inferenza batch con Python

Il notebook di esempio seguente crea un endpoint di velocità effettiva con provisioning ed esegue l'inferenza LLM batch usando Python e il modello Meta Llama 3.1 70B. Fornisce anche indicazioni sul benchmarking del carico di lavoro di inferenza batch e sulla creazione di un modello di throughput previsto per servire l'endpoint.

Inferenza batch LLM con un notebook dell'endpoint a velocità effettiva fornita

Get taccuino

Il seguente notebook di esempio crea un endpoint con throughput fornito ed esegue l'inferenza LLM batch utilizzando Python e il modello di embeddings GTE Large (inglese) o BGE Large (inglese).

Incorporamenti di inferenza batch LLM con un notebook sull'endpoint a velocità effettiva preconfigurata

Get taccuino