Escolher uma função de processamento de linguagem natural

Neste documento, você encontra uma comparação das funções de processamento de linguagem natural disponíveis no BigQuery ML, que são ML.GENERATE_TEXT, ML.TRANSLATE e ML.UNDERSTAND_TEXT.

ML.GENERATE_TEXT também pode realizar tarefas que as outras duas funções também podem realizar, como mostrado na imagem a seguir:

Diagrama mostrando fluxos de trabalho comuns para modelos remotos que usam modelos da Vertex AI ou serviços do Cloud AI.

Use as informações deste documento para decidir qual função usar nos casos em que as funções têm recursos sobrepostos.

De modo geral, a diferença entre essas funções é a seguinte:

  • ML.GENERATE_TEXT é uma boa opção para executar tarefas personalizadas de processamento de linguagem natural (PLN) a um custo menor. Essa função oferece mais suporte a linguagens, capacidade de processamento mais rápida e capacidade de ajuste de modelos, além de funcionar com modelos multimodais.
  • ML.TRANSLATE é uma boa opção para executar tarefas de PLN específicas de tradução, em que você precisa oferecer suporte a uma alta taxa de consultas por minuto.
  • ML.UNDERSTAND_TEXT é uma boa opção para executar tarefas de PLN com suporte da API Cloud Natural Language.

Modelos compatíveis

Os modelos compatíveis são os seguintes:

Tarefas compatíveis

As tarefas com suporte são estas:

  • ML.GENERATE_TEXT: é possível executar qualquer tarefa de PLN. A tarefa que o modelo executa é baseada no comando especificado. Por exemplo, para executar uma tarefa de responder a perguntas, forneça um comando semelhante a CONCAT("What are the key concepts in the following article?: ", article_text). Também é possível fornecer contexto como parte do comando. Por exemplo, CONCAT("context: Only output 'yes' or 'no' to the following question: ", question).
  • ML.TRANSLATE: é possível realizar as seguintes tarefas:

  • ML.UNDERSTAND_TEXT: é possível realizar as seguintes tarefas:

Contexto de dados

Ao escolher qual função usar, considere se os dados podem ser analisados isoladamente ou se exigem contexto adicional para dar suporte à análise. Caso seus dados precisem de mais contexto, usar ML.GENERATE_TEXT com um modelo da Vertex AI é a melhor opção, já que esses modelos permitem fornecer contexto como parte do comando enviado. Lembre-se de que fornecer mais contexto à medida que a entrada aumenta a contagem e o custo de tokens.

Se os dados puderem ser analisados sem que outro contexto seja considerado pelo modelo, por exemplo, traduzir uma string de texto sem saber por que ela foi escrito, o uso de ML.TRANSLATE ou ML.UNDERSTAND_TEXT poderá ser uma melhor escolha, desde que a tarefa que você quer realizar tenha suporte.

Estrutura de saída

ML.GENERATE_TEXT retorna resultados de maneira consistente na coluna de saída ml_generate_text_llm_result. Também é possível usar seu comando para definir a estrutura de saída. Por exemplo, é possível instruir o modelo a retornar o resultado como JSON com campos pais e filhos personalizados e fornecer um exemplo de como produzir esse resultado.

ML.TRANSLATE e ML.UNDERSTAND_TEXT produzem a mesma saída para um determinado tipo de tarefa em cada chamada bem-sucedida para a API. Além disso, a saída dessas funções inclui outros metadados sobre os resultados. Por exemplo, a saída ML.TRANSLATE inclui informações sobre o idioma de entrada, e a saída ML.UNDERSTAND_TEXT inclui informações sobre a magnitude do sentimento para tarefas de análise de sentimento. A geração desses metadados é possível com os modelos da Vertex AI, mas isso requer uma engenharia de comando significativa e provavelmente não fornecerá a mesma granularidade.

Preços

O preço é o seguinte:

Ajuste supervisionado

O suporte a ajustes supervisionados é o seguinte:

  • ML.GENERATE_TEXT: o ajuste supervisionado é compatível com alguns modelos.
  • ML.TRANSLATE: não há suporte para o ajuste supervisionado.
  • ML.UNDERSTAND_TEXT: não há suporte para o ajuste supervisionado.

Multimodalidade

O suporte a multimodalidade é o seguinte:

  • ML.GENERATE_TEXT: oferece suporte a entrada de texto e imagem + texto.
  • ML.TRANSLATE: oferece suporte à entrada de texto.
  • ML.UNDERSTAND_TEXT: oferece suporte à entrada de texto.

Limite de consultas por minuto (QPM)

Os limites de QPM são os seguintes:

Limite de tokens

Os limites de tokens são os seguintes:

Idiomas compatíveis

Os idiomas compatíveis são os seguintes:

  • ML.GENERATE_TEXT: oferece suporte aos mesmos idiomas de Gêmeos ou Embeddings, dependendo do modelo da Vertex AI escolhido para o endpoint do modelo remoto do BigQuery ML. Os modelos de texto do PaLM oferecem suporte nas mesmas linguagens dos modelos de embeddings.
  • ML.TRANSLATE: oferece suporte aos idiomas da API Cloud Translation.
  • ML.UNDERSTAND_TEXT: oferece suporte aos idiomas da API Cloud Natural Language.

Disponibilidade por região

A disponibilidade por região é a seguinte:

  • ML.GENERATE_TEXT: disponível em todas as regiões de IA generativa para a Vertex AI.
  • ML.TRANSLATE: disponível nas multirregiões EU e US.
  • ML.UNDERSTAND_TEXT: disponível nas multirregiões EU e US.