Usar o analisador de LLM

Esta página explica como usar o analisador LLM do mecanismo RAG da Vertex AI.

Introdução

O mecanismo de RAG da Vertex AI usa LLMs para analisar documentos. Os LLMs têm a capacidade de processar documentos de maneira eficaz das seguintes maneiras:

  • Entender e interpretar o conteúdo semântico em vários formatos.
  • Extrair blocos de documentos relevantes.
  • Extrair informações significativas de documentos.
  • Identifique seções relevantes nos documentos.
  • Resumir documentos complexos com precisão.
  • Entender e interagir com recursos visuais.
  • Extrair dados de gráficos e diagramas.
  • Descrever imagens.
  • Entender as relações entre gráficos e texto.
  • Ofereça respostas mais precisas e ricas em contexto.

Os recursos do mecanismo de RAG da Vertex AI melhoram significativamente a qualidade das respostas geradas.

Modelos compatíveis

O analisador de LLM só oferece suporte a modelos Gemini. Se você tiver a API RAG ativada, terá acesso aos modelos compatíveis. Para conferir uma lista de modelos de geração com suporte, consulte Modelos generativos.

Tipos de arquivos compatíveis

O analisador LLM oferece suporte aos seguintes tipos de arquivo:

  • application/pdf
  • image/png
  • image/jpeg
  • image/webp
  • image/heic
  • image/heif

Preços e cotas

Para detalhes sobre preços, consulte Preços da Vertex AI.

Para cotas aplicáveis, consulte Solicitar cotas.

O analisador de LLM chama os modelos do Gemini para analisar seus documentos. Isso cria custos adicionais, que são cobrados no seu projeto. O custo pode ser estimado aproximadamente usando esta fórmula:

cost = number_of_document_files * average_pages_per_document *
(average_input_tokens * input_token_pricing_of_selected_model +
average_output_tokens * output_token_pricing_of_selected_model)

Por exemplo, você tem 1.000 arquivos PDF, e cada um deles tem 50 páginas. A página de PDF média tem 500 tokens, e precisamos de mais 100 tokens para instruções. A saída média é de 100 tokens.

O Gemini 2.0 Flash-Lite é usado na sua configuração para análise e custa US $0,075 por 1 milhão de tokens de entrada e US $0,3 por tokens de texto de saída.

cost = 1,000 * 50 * (600 * 0.075 / 1M + 100 * 0.3 / 1M) = 3.75

O custo é de US $3,75.

Importar arquivos com LlmParser ativado

Substitua os valores nas seguintes variáveis usadas nos exemplos de código:

  • PROJECT_ID: o ID do projeto Google Cloud .
  • LOCATION: a região em que sua solicitação é processada.
  • RAG_CORPUS_RESOURCE: o ID do corpus.
  • GCS_URI: o URI do Cloud Storage dos arquivos que você quer importar.
  • GOOGLE_DRIVE_URI: o URI do Google Drive dos arquivos que você quer importar.
  • MODEL_NAME: o nome do recurso do modelo usado para análise.

    Formato: projects/{project_id}/locations/{location}/publishers/google/models/{model_id}

  • CUSTOM_PARSING_PROMPT: opcional, comando personalizado configurado pelo cliente para que o analisador de LLM seja usado para analisar documentos.
  • MAX_PARSING_REQUESTS_PER_MIN: opcional. O número máximo de solicitações que o job pode fazer ao modelo da Vertex AI por minuto. Para mais informações, consulte Limites de taxa da IA generativa na Vertex AI e a página Cotas e limites do sistema para que seu projeto defina um valor adequado.

REST

  curl -X POST \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_RESOURCE/ragFiles:import" -d '{
    "import_rag_files_config": {
      "gcs_source": {
        "uris":  ["GCS_URI", "GOOGLE_DRIVE_URI"]
      },
      "rag_file_chunking_config": {
        "chunk_size": 512,
        "chunk_overlap": 102
      },
      "rag_file_parsing_config": {
        "llm_parser": {
          "model_name": "MODEL_NAME",
          "custom_parsing_prompt": "CUSTOM_PARSING_PROMPT"
          "max_parsing_requests_per_min": "MAX_PARSING_REQUESTS_PER_MIN"
        }
      }
    }
  }'

Python

Para saber como instalar o SDK da Vertex AI para Python, consulte Instalar o SDK da Vertex AI para Python. Para mais informações, consulte a documentação de referência da API Python.

  from vertexai.preview import rag
  import vertexai

  PROJECT_ID = "PROJECT_ID"
  CORPUS_NAME = "RAG_CORPUS_RESOURCE"
  LOCATION = "LOCATION"
  MODEL_ID = "MODEL_ID"
  MODEL_NAME = "projects/{PROJECT_ID}/locations/{LOCATION}/publishers/google/models/{MODEL_ID}"
  MAX_PARSING_REQUESTS_PER_MIN = MAX_PARSING_REQUESTS_PER_MIN # Optional
  CUSTOM_PARSING_PROMPT = "Your custom prompt" # Optional

  PATHS = ["https://drive.google.com/file/123", "gs://my_bucket/my_files_dir"]

  # Initialize Vertex AI API once per session
  vertexai.init(project={PROJECT_ID}, location={LOCATION})

  transformation_config = rag.TransformationConfig(
      chunking_config=rag.ChunkingConfig(
          chunk_size=1024, # Optional
          chunk_overlap=200, # Optional
      ),
  )

  llm_parser_config = rag.LlmParserConfig(
      model_name = MODEL_NAME,
      max_parsing_requests_per_min=MAX_PARSING_REQUESTS_PER_MIN, # Optional
      custom_parsing_prompt=CUSTOM_PARSING_PROMPT, # Optional
  )

  rag.import_files(
      CORPUS_NAME,
      PATHS,
      llm_parser=llm_parser_config,
      transformation_config=transformation_config,
  )

Solicitações de prompt

O analisador LLM do mecanismo de RAG da Vertex AI usa uma solicitação predefinida e ajustada para analisar documentos. No entanto, se você tiver documentos especializados que não sejam adequados para um comando geral, poderá especificar seu comando de análise personalizado ao usar a API. Ao solicitar que o Gemini analise seus documentos, o Vertex AI RAG Engine anexa uma solicitação ao comando padrão do sistema.

Tabela de modelos de comando

Para ajudar na análise de documentos, a tabela a seguir mostra um exemplo de modelo de comando para orientar você na criação de comandos que a Vertex AI RAG Engine pode usar para analisar seus documentos:

Instrução Declaração de modelo Exemplo
Especifique a função. Você é um [especificar o papel, como um extrator de dados factuais ou um extrator de informações]. Você é um coletor de informações.
Especifique a tarefa. Extraia [especifique o tipo de informação, como declarações factuais, dados importantes ou detalhes específicos] da [especifique a fonte do documento, como um documento, texto, artigo, imagem, tabela]. Extraia os dados principais do arquivo sample.txt.
Explique como você quer que o LLM gere a saída de acordo com seus documentos. Apresente cada fato em um [Especifique o formato de saída, como uma lista estruturada ou formato de texto] e vincule ao [Especifique o local da origem, como uma página, parágrafo, tabela ou linha]. Apresente cada fato em uma lista estruturada e inclua um link para a página de exemplo.
Destaque o que deve ser o foco do LLM. Extraia [especifique os principais tipos de dados, como nomes, datas, números, atributos ou relacionamentos] exatamente como indicado. Extrair nomes e datas.
Destaque o que você quer que o LLM evite. [Liste as ações a serem evitadas, como análise, interpretação, resumo, inferência ou opiniões]. Extraia apenas o que o documento diz explicitamente. Não dê opiniões. Extraia apenas o que o documento diz explicitamente.

Diretrizes gerais

Siga estas diretrizes para escrever o comando a ser enviado ao analisador de LLM.

  • Específico: defina claramente a tarefa e o tipo de informação a ser extraída.
  • Detalhados: forneça instruções detalhadas sobre o formato de saída, a atribuição de origem e o processamento de diferentes estruturas de dados.
  • Restrição: especifique explicitamente o que a IA não pode fazer, como análise ou interpretação.
  • Clara: use uma linguagem clara e direta.
  • Estruturado: organize as instruções de maneira lógica usando listas numeradas ou marcadores para facilitar a leitura.

Análise de qualidade de análise

Esta tabela lista os resultados dos cenários que os clientes executaram usando o mecanismo RAG da Vertex AI. O feedback mostra que o analisador LLM melhora a qualidade da análise de documentos.

Cenário Result
Como analisar informações em slides e vincular seções O analisador de LLM vinculou os títulos das seções em um slide às informações detalhadas apresentadas nos slides seguintes.
Como entender e extrair informações de tabelas O analisador de LLM relacionou corretamente as colunas e os cabeçalhos em uma tabela grande para responder a perguntas específicas.
Como interpretar fluxogramas O analisador de LLM conseguiu seguir a lógica de um fluxograma e extrair a sequência correta de ações e informações correspondentes.
Extrair dados de gráficos O analisador de LLM pode interpretar diferentes tipos de gráficos, como gráficos de linhas, e extrair pontos de dados específicos com base na consulta.
Capturar relações entre títulos e texto O analisador LLM, orientado pelo comando, prestou atenção às estruturas de título e conseguiu recuperar todas as informações relevantes associadas a um determinado tópico ou seção.
Possibilidade de superar as limitações de incorporação com a engenharia de comando Embora inicialmente prejudicada pelas limitações do modelo de incorporação em alguns casos de uso, outros experimentos demonstraram que um comando de analisador de LLM bem elaborado pode atenuar esses problemas e recuperar as informações corretas, mesmo quando a compreensão semântica é um desafio para o modelo de incorporação.

O analisador de LLM melhora a capacidade do LLM de entender e raciocinar sobre o contexto em um documento, o que leva a respostas mais precisas e abrangentes.

Consultar recuperação

Depois que você insere um comando enviado para um modelo de IA generativa, o componente de recuperação no RAG pesquisa na base de conhecimento para encontrar informações relevantes para a consulta. Para conferir um exemplo de como extrair arquivos RAG de um corpus com base em um texto de consulta, consulte Consulta de recuperação.

A seguir