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
- Para saber mais sobre o mecanismo RAG da Vertex AI, consulte Visão geral do mecanismo RAG da Vertex AI.
- Para saber mais sobre o mecanismo de RAG da Vertex AI, consulte a API Mecanismo de RAG da Vertex AI.