Scegli una funzione di elaborazione del linguaggio naturale

Questo documento fornisce un confronto delle funzioni di elaborazione del linguaggio naturale disponibili in BigQuery ML, ovvero ML.GENERATE_TEXT, ML.TRANSLATE e ML.UNDERSTAND_TEXT.

ML.GENERATE_TEXT può eseguire le stesse attività delle altre due funzioni, come mostrato nell'immagine seguente:

Diagramma che mostra i flussi di lavoro comuni per i modelli remoti che utilizzano modelli Vertex AI o servizi Cloud AI.

Puoi utilizzare le informazioni contenute in questo documento per decidere quale funzione utilizzare nei casi in cui le funzioni abbiano funzionalità sovrapposte.

A livello generale, la differenza tra queste funzioni è la seguente:

  • ML.GENERATE_TEXT è una buona scelta per eseguire attività di elaborazione del linguaggio naturale (NLP) personalizzate a un costo inferiore. Questa funzione offre un maggiore supporto per le lingue, un throughput più elevato e la possibilità di ottimizzare i modelli. Inoltre, funziona con i modelli multimodali.
  • ML.TRANSLATE è una buona scelta per eseguire attività di NLP specifiche per la traduzione in cui devi supportare un'elevata frequenza di query al minuto.
  • ML.UNDERSTAND_TEXT è una buona scelta per eseguire attività di NLP supportate dall'API Cloud Natural Language.

Modelli supportati

I modelli supportati sono i seguenti:

Attività supportate

Le attività supportate sono le seguenti:

  • ML.GENERATE_TEXT: puoi eseguire qualsiasi attività di NLP. L'attività svolta dal modello dipende dal prompt specificato. Ad esempio, per eseguire un'attività di risposta alle domande, puoi fornire un prompt simile aCONCAT("What are the key concepts in the following article?: ", article_text). Puoi anche fornire il contesto all'interno del prompt. Ad esempio, CONCAT("context: Only output 'yes' or 'no' to the following question: ", question).
  • ML.TRANSLATE: puoi eseguire le seguenti attività:

  • ML.UNDERSTAND_TEXT: puoi eseguire le seguenti attività:

Contesto dei dati

Quando scegli la funzione da utilizzare, valuta se i dati possono essere analizzati singolarmente o se richiedono un contesto aggiuntivo per supportare l'analisi. Se i tuoi dati richiedono un contesto aggiuntivo, l'utilizzo di ML.GENERATE_TEXT con un modello Vertex AI è una scelta migliore, in quanto questi modelli ti consentono di fornire il contesto nell'ambito del prompt inviato. Tieni presente che fornire un contesto aggiuntivo come input aumenta il conteggio e il costo dei token.

Se i tuoi dati possono essere analizzati senza che il modello prenda in considerazione altro contesto, ad esempio la traduzione di una stringa di testo senza sapere perché è stata scritta, l'utilizzo di ML.TRANSLATE o ML.UNDERSTAND_TEXT potrebbe essere una scelta migliore, a condizione che l'attività che vuoi eseguire sia supportata.

Struttura di output

ML.GENERATE_TEXT restituisce costantemente risultati nella colonna di output ml_generate_text_llm_result. Puoi anche utilizzare il prompt per definire la struttura di output. Ad esempio, puoi indicare al modello di restituire il risultato come JSON con campi principali e secondari personalizzati e fornire un esempio di come produrre questo risultato.

ML.TRANSLATE e ML.UNDERSTAND_TEXT producono lo stesso output per un determinato tipo di attività per ogni chiamata riuscita all'API. Inoltre, l'output di queste funzioni include metadati aggiuntivi sui relativi risultati. Ad esempio, ML.TRANSLATE include informazioni sulla lingua di input, mentre ML.UNDERSTAND_TEXT include informazioni sull'intensità del sentiment per le attività di analisi del sentiment. La generazione di questi metadati è possibile con i modelli Vertex AI, ma richiede un'ingegneria dei prompt significativa e probabilmente non fornisce la stessa granularità.

Prezzi

I prezzi sono i seguenti:

Ottimizzazione supervisionata

L'ottimizzazione supervisionata è supportata come segue:

  • ML.GENERATE_TEXT: l'ottimizzazione supervisionata è supportata per alcuni modelli.
  • ML.TRANSLATE: l'ottimizzazione supervisionata non è supportata.
  • ML.UNDERSTAND_TEXT: l'ottimizzazione supervisionata non è supportata.

Multimodalità

Il supporto della multimodalità è il seguente:

  • ML.GENERATE_TEXT: supporta l'input di testo e di testo + immagine.
  • ML.TRANSLATE: supporta l'inserimento di testo.
  • ML.UNDERSTAND_TEXT: supporta l'inserimento di testo.

Limite di query al minuto (QPM)

I limiti QPM sono i seguenti:

Limite di token

I limiti per i token sono i seguenti:

Lingue supportate

Le lingue supportate sono:

  • ML.GENERATE_TEXT: supporta le stesse lingue di Gemini o Embeddings, a seconda del modello Vertex AI scelto per l'endpoint del modello remoto BigQuery ML. I modelli di testo PaLM supportano le stesse lingue dei modelli di embedding.
  • ML.TRANSLATE: supporta le lingue dell'API Cloud Translation.
  • ML.UNDERSTAND_TEXT: supporta le lingue dell'API Cloud Natural Language.

Disponibilità per regione

La disponibilità per regione è la seguente:

  • ML.GENERATE_TEXT: disponibile in tutte le regioni di Generative AI per Vertex AI.
  • ML.TRANSLATE: disponibile nelle regioni multiple EU e US.
  • ML.UNDERSTAND_TEXT: disponibile nelle regioni multiple EU e US.