Utiliser l'analyseur LLM

Cette page explique comment utiliser l'analyseur LLM du moteur RAG Vertex AI.

Introduction

Le moteur RAG Vertex AI utilise des LLM pour l'analyse des documents. Les LLM peuvent traiter efficacement les documents de différentes manières :

  • Comprendre et interpréter le contenu sémantique dans différents formats.
  • Récupérer les blocs de documents pertinents.
  • Extraire des informations pertinentes à partir de documents
  • Identifier les sections pertinentes dans les documents.
  • Résumer avec précision des documents complexes
  • comprendre les éléments visuels et interagir avec eux ;
  • Extraire des données à partir de graphiques et de diagrammes
  • Décrivez les images.
  • comprendre les relations entre les graphiques et le texte ;
  • fournir des réponses plus précises et plus riches en contexte ;

Les capacités du moteur RAG de Vertex AI améliorent considérablement la qualité des réponses générées.

Modèles compatibles

L'analyseur LLM n'est compatible qu'avec les modèles Gemini. Si l'API RAG est activée, vous avez accès aux modèles compatibles. Pour obtenir la liste des modèles de génération compatibles, consultez Modèles génératifs.

Types de fichiers compatibles

Le parseur LLM accepte les types de fichiers suivants :

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

Tarifs et quotas

Pour en savoir plus sur les tarifs, consultez la page Tarifs de Vertex AI.

Pour connaître les quotas applicables, consultez Quotas de demandes.

L'analyseur LLM appelle les modèles Gemini pour analyser vos documents. Cela entraîne des coûts supplémentaires, qui sont facturés à votre projet. Le coût peut être estimé approximativement à l'aide de la formule suivante :

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)

Par exemple, vous disposez de 1 000 fichiers PDF, chacun comportant 50 pages. Une page PDF moyenne contient 500 jetons, et nous avons besoin de 100 jetons supplémentaires pour l'incitation. La sortie moyenne est de 100 jetons.

Gemini 2.0 Flash-Lite est utilisé dans votre configuration pour l'analyse. Il coûte 0,075 $pour un million de jetons d'entrée et 0,3 $pour les jetons de texte de sortie.

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

Le coût est de 3,75 $.

Importer des fichiers avec LlmParser activé

Remplacez les valeurs des variables suivantes utilisées dans les exemples de code :

  • PROJECT_ID : ID de votre projet Google Cloud .
  • LOCATION : région dans laquelle votre requête est traitée.
  • RAG_CORPUS_RESOURCE : ID de votre corpus.
  • GCS_URI : URI Cloud Storage des fichiers que vous souhaitez importer.
  • GOOGLE_DRIVE_URI : URI Google Drive des fichiers que vous souhaitez importer.
  • MODEL_NAME : nom de ressource du modèle utilisé pour l'analyse.

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

  • CUSTOM_PARSING_PROMPT : facultatif, invite personnalisée configurée par le client pour que l'analyseur LLM l'utilise pour analyser les documents.
  • MAX_PARSING_REQUESTS_PER_MIN : facultatif : nombre maximal de requêtes que le job peut envoyer au modèle Vertex AI par minute. Pour en savoir plus, consultez Limites de débit de l'IA générative sur Vertex AI et la page Quotas et limites du système de votre projet pour définir une valeur appropriée.

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

Pour savoir comment installer ou mettre à jour le SDK Vertex AI pour Python, consultez la section Installer le SDK Vertex AI pour Python. Pour en savoir plus, consultez la documentation de référence de l'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,
  )

Requêtes

L'analyseur LLM du moteur RAG Vertex AI utilise une invite prédéfinie et ajustée pour analyser les documents. Toutefois, si vous disposez de documents spécialisés qui ne conviennent pas à une requête générale, vous pouvez spécifier votre requête d'analyse personnalisée lorsque vous utilisez l'API. Lorsque vous demandez à Gemini d'analyser vos documents, le moteur RAG Vertex AI ajoute une requête à votre requête système par défaut.

Tableau des modèles de requêtes

Pour vous aider à analyser les documents, le tableau suivant fournit un exemple de modèle de requête. Il vous guidera dans la création de requêtes que le moteur RAG de Vertex AI pourra utiliser pour analyser vos documents :

Instruction Énoncé du modèle Exemple
Indiquez le rôle. Vous êtes un/une [spécifiez le rôle, par exemple un extracteur de données factuelles ou un récupérateur d'informations]. Vous êtes un outil de récupération d'informations.
Spécifiez la tâche. Extrais [spécifie le type d'informations, comme des déclarations factuelles, des données clés ou des détails spécifiques] de [spécifie la source du document, comme un document, un texte, un article, une image ou un tableau]. Extrayez les données clés du fichier sample.txt.
Expliquez comment vous souhaitez que le LLM génère le résultat en fonction de vos documents. Présente chaque fait dans un [spécifie le format de sortie, par exemple une liste structurée ou un format texte], et crée un lien vers sa [spécifie l'emplacement de la source, par exemple une page, un paragraphe, un tableau ou une ligne]. Présentez chaque fait dans une liste structurée et ajoutez un lien vers sa page d'exemple.
Mettez en évidence ce sur quoi le LLM doit se concentrer. Extrais [spécifie les types de données clés, comme les noms, les dates, les nombres, les attributs ou les relations] exactement tels qu'ils sont indiqués. Extrayez les noms et les dates.
Mettez en surbrillance ce que vous souhaitez que le LLM évite. [Listez les actions à éviter, comme l'analyse, l'interprétation, la synthèse, l'inférence ou l'expression d'opinions.] N'extrais que ce qui est explicitement indiqué dans le document. Ne pas donner d'avis. N'extrais que ce qui est explicitement indiqué dans le document.

Conseils généraux

Suivez ces consignes pour rédiger votre requête à envoyer au parseur LLM.

  • Spécifique : définissez clairement la tâche et le type d'informations à extraire.
  • Détaillé : fournit des instructions détaillées sur le format de sortie, l'attribution des sources et la gestion des différentes structures de données.
  • Contrainte : indiquez explicitement ce que l'IA ne doit pas faire, comme une analyse ou une interprétation.
  • Clair : utilisez un langage clair et directif.
  • Structurées : organisez les instructions de manière logique à l'aide de listes numérotées ou à puces pour faciliter la lecture.

Analyse de la qualité de l'analyse syntaxique

Ce tableau présente les résultats de scénarios exécutés par les clients à l'aide du moteur RAG Vertex AI. Les commentaires montrent que l'analyseur LLM améliore la qualité de l'analyse des documents.

Scénario Résultat
Analyser les informations dans les diapositives et associer des sections L'analyseur LLM a réussi à associer les titres de section d'une diapositive aux informations détaillées présentées sur les diapositives suivantes.
Comprendre et extraire des informations à partir de tableaux L'analyseur LLM a correctement associé les colonnes et les en-têtes d'un grand tableau pour répondre à des questions spécifiques.
Interpréter les organigrammes L'analyseur LLM a pu suivre la logique d'un organigramme et extraire la séquence d'actions correcte ainsi que les informations correspondantes.
Extraire des données à partir de graphiques L'analyseur LLM peut interpréter différents types de graphiques, tels que des graphiques linéaires, et extraire des points de données spécifiques en fonction de la requête.
Capturer les relations entre les titres et le texte Le parseur LLM, guidé par la requête, a prêté attention aux structures de titres et a pu récupérer toutes les informations pertinentes associées à un sujet ou à une section spécifiques.
Possibilité de surmonter les limites d'intégration grâce à l'ingénierie des requêtes Bien qu'initialement entravées par les limites du modèle d'embedding dans certains cas d'utilisation, des expériences supplémentaires ont démontré qu'une requête de l'analyseur LLM bien conçue pouvait potentiellement atténuer ces problèmes et récupérer les informations correctes, même lorsque la compréhension sémantique est difficile pour le modèle d'embedding seul.

Le parseur LLM améliore la capacité du LLM à comprendre le contexte d'un document et à raisonner à son sujet, ce qui permet d'obtenir des réponses plus précises et plus complètes.

Requête de récupération

Après avoir saisi une requête qui est envoyée à un modèle d'IA générative, le composant de récupération de RAG effectue une recherche dans sa base de connaissances afin de trouver des informations pertinentes pour la requête. Pour obtenir un exemple de récupération de fichiers RAG à partir d'un corpus en fonction d'un texte de requête, consultez Requête de récupération.

Étapes suivantes