Usar o analisador de LLM

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

Introdução

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

  • Entender e interpretar conteúdo semântico em vários formatos.
  • Recuperar blocos de documentos relevantes.
  • Extrair informações significativas 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 RAG da Vertex AI melhoram significativamente a qualidade das respostas geradas.

Modelos compatíveis

Os seguintes modelos são compatíveis com o analisador de LLM do mecanismo RAG da Vertex AI:

Tipos de arquivos compatíveis

O analisador de LLM é compatível com 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 as cotas aplicáveis, consulte Cotas de taxa.

O analisador de LLM chama modelos do Gemini para analisar seus documentos. Isso cria custos adicionais, que são cobrados do 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 média de PDF tem 500 tokens, e precisamos de mais 100 tokens para comandos. 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 para 1 milhão de tokens de entrada e US $0,3 para 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 seu Google Cloud projeto.
  • 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 para o 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 RAG da Vertex AI usa um comando predefinido e ajustado para analisar documentos. No entanto, se você tiver documentos especializados que talvez 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 RAG da Vertex AI anexa um comando ao 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 do modelo Exemplo
Especificar papel. Você é um/uma [especifique o papel, como um extrator de dados factuais ou um recuperador de informações]. Você é um recuperador de informações.
Especificar tarefa. Extraia [especifique o tipo de informação, como declarações factuais , dados importantes ou detalhes específicos] do [especifique a fonte do documento , como um documento, texto, artigo, imagem, tabela]. Extraia dados importantes 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-o ao [especifique o local de origem, como uma página, parágrafo, tabela ou linha]. Apresente cada fato em uma lista estruturada e vincule-o à página de exemplo.
Destaque o que deve ser o foco do LLM. Extraia [especifique os tipos de dados importantes, como nomes, datas, números, atributos ou relações] exatamente como declarado. Extraia 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.
  • Detalhado: forneça instruções detalhadas sobre o formato de saída, a atribuição de origem e o tratamento de diferentes estruturas de dados.
  • Restritivo: declare explicitamente o que a IA não deve fazer, como análise ou interpretação.
  • Claro: use uma linguagem clara e diretiva.
  • Estruturado: organize as instruções de maneira lógica usando listas numeradas ou marcadores 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 RAG da Vertex AI. O feedback mostra que o analisador de LLM melhora a qualidade da análise de documentos.

Cenário Result
Análise de informações em slides e seções de vinculação 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.
Interpretação de fluxogramas O analisador de LLM conseguiu seguir a lógica de um fluxograma e extrair a sequência correta de ações e as informações correspondentes.
Extração de dados de gráficos O analisador de LLM conseguiu interpretar diferentes tipos de gráficos, como gráficos de linhas, e extrair pontos de dados específicos com base na consulta.
Captura de relações entre títulos e texto O analisador de 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 prejudicados 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 é desafiadora para o modelo de incorporação sozinho.

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 de inserir um comando enviado a 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 um exemplo de recuperação de arquivos RAG de um corpus com base em um texto de consulta, consulte Consultar recuperação.

A seguir