Scegli una funzione di elaborazione del linguaggio naturale

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

ML.GENERATE_TEXT può svolgere anche attività che possono essere svolte dalle altre due funzioni, come mostrato nell'immagine seguente:

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

Puoi utilizzare le informazioni in questo documento per decidere quale funzione utilizzare nei casi in cui le funzioni hanno capacità che si sovrappongono.

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

  • ML.GENERATE_TEXT è un'ottima scelta per eseguire attività di elaborazione del linguaggio naturale (NLP) personalizzate a un costo inferiore. Questa funzione offre più supporto linguistico, velocità effettiva più elevata, capacità di ottimizzazione del modello e funziona con i modelli multimodali.
  • ML.TRANSLATE è un'ottima scelta per eseguire attività NLP specifiche di traduzione in cui è necessario supportare un'elevata frequenza di query al minuto.
  • ML.UNDERSTAND_TEXT è una buona scelta per eseguire attività 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à NLP. L'attività eseguita dal modello è basata sul prompt specificato. Ad esempio, per eseguire un'attività di risposta a domande, puoi fornire un prompt simile a CONCAT("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 quale funzione utilizzare, valuta se i tuoi dati possono essere analizzati in modo isolato 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, poiché questi modelli ti consentono di fornire contesto come parte del prompt inviato. Tieni presente che fornire contesto aggiuntivo all'input aumenta il numero e il costo dei token.

Se i tuoi dati possono essere analizzati senza che il modello prenda in considerazione altro contesto, ad esempio tradurre una stringa di testo senza sapere perché è stato scritto, l'uso 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 i risultati nella colonna di output ml_generate_text_llm_result. Puoi anche utilizzare il prompt per definire la struttura dell'output. Ad esempio, puoi indicare al modello di restituire il tuo risultato in formato JSON con campi padre e figlio personalizzati e fornire un esempio su come produrre questo risultato.

ML.TRANSLATE e ML.UNDERSTAND_TEXT producono lo stesso output per un determinato tipo di attività per ogni chiamata all'API riuscita. Inoltre, l'output di queste funzioni include metadati aggiuntivi relativi ai risultati. Ad esempio, l'output ML.TRANSLATE include informazioni sulla lingua di input, mentre l'output ML.UNDERSTAND_TEXT include informazioni sull'entità del sentiment per le attività di analisi del sentiment. La generazione di questi metadati è possibile con i modelli Vertex AI, ma ciò richiede una significativa progettazione del prompt ed è improbabile che fornisca la stessa granularità.

Prezzi

I prezzi sono i seguenti:

Addestramento del modello

Le opzioni di assistenza per l'addestramento personalizzato sono le seguenti:

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

Multimodalità

Il supporto della multimodale è il seguente:

  • ML.GENERATE_TEXT: supporta l'input di testo e 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 di QPM sono i seguenti:

Limite di token

I limiti dei token sono i seguenti:

Lingue supportate

Le lingue supportate sono le seguenti:

  • ML.GENERATE_TEXT: supporta l'IA generativa per i lingue di Vertex AI.
  • 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 le regioni è la seguente:

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