Usar o analisador de LLM

Nesta página, explicamos como usar o analisador de LLM do mecanismo de RAG da Vertex AI.

Introdução

O mecanismo RAG da Vertex AI usa LLMs para análise de documentos. Os LLMs conseguem processar documentos de forma eficaz das seguintes maneiras:

  • Entender e interpretar conteúdo semântico em vários formatos.
  • Recupere os trechos de documentos relevantes.
  • Extrair informações relevantes de documentos.
  • Identificar seções relevantes em 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.
  • Fornecer respostas mais precisas e com mais 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ó é compatível com modelos do Gemini. Se você tiver a API RAG ativada, terá acesso aos modelos compatíveis. Para uma lista de modelos de geração compatíveis, consulte Modelos generativos.

Tipos de arquivos compatíveis

O analisador de LLM aceita os 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 saber quais cotas se aplicam, consulte Solicitar cotas.

O analisador de LLM chama os modelos do Gemini para analisar seus documentos. Isso gera custos adicionais, que são cobrados do seu projeto. O custo pode ser estimado 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 média de um PDF tem 500 tokens, e precisamos de mais 100 para o comando. 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 o LlmParser ativado

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

  • PROJECT_ID: o ID do seu projeto do Google Cloud .
  • LOCATION: a região em que sua solicitação é processada.
  • RAG_CORPUS_RESOURCE: o ID do seu 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 o analisador de LLM usar na análise de 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 do seu projeto para definir 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 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,
  )

Comandos

O analisador de LLM do mecanismo de RAG da Vertex AI usa um comando predefinido e ajustado 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 mecanismo de RAG da Vertex AI adiciona um comando ao seu comando padrão do sistema.

Tabela de modelos de comandos

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

Instrução Declaração de modelo Exemplo
Especifique a função. Você é um [especifique a função, como um extrator de dados factuais ou um recuperador de informações]. Você é um recuperador de informações.
Especifique a tarefa. Extraia [especifique o tipo de informação, como declarações factuais, dados principais ou detalhes específicos] de [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 um formato de texto] e vincule ao [Especifique o local da fonte, como uma página, um parágrafo, uma tabela ou uma linha]. Apresente cada fato em uma lista estruturada e crie um link para a página de exemplo.
Destaque o que deve ser o foco do LLM. Extraia [Especifique os tipos de dados principais, como nomes, datas, números, atributos ou relacionamentos] exatamente como declarado. 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 seu comando e enviar ao analisador de LLM.

  • Específico: defina claramente a tarefa e o tipo de informação a ser extraída.
  • Detalhado: forneça instruções detalhadas sobre o formato de saída, a atribuição de fonte e o processamento de diferentes estruturas de dados.
  • Restrição: declare explicitamente o que a IA não deve 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 tópicos para facilitar a leitura.

Análise da qualidade da análise

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

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

O analisador do 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 a um modelo de IA generativa, o componente de recuperação na RAG pesquisa na base de conhecimento para encontrar informações relevantes para a consulta. Para um exemplo de como recuperar arquivos RAG de um corpus com base em um texto de consulta, consulte Consulta de recuperação.

A seguir