More

    Pipeline multimodal RAG : Extraction de données et IA

    France

    Imaginez un monde où trouver des informations dans un document est aussi simple que de poser une question et d’obtenir une réponse combinant texte et images de manière fluide. Cet article explore la création d’un pipeline multimodal d’Extraction-Augmentée (RAG) capable de réaliser cela. Vous apprendrez à extraire du texte et des images d’une présentation PDF en utilisant des outils comme LlamaParse, à créer des résumés contextuels pour améliorer la récupération des données, et à intégrer ces informations dans des modèles avancés comme GPT-4 pour répondre aux requêtes. En cours de route, nous examinerons comment la récupération contextuelle améliore la précision, optimiser les coûts grâce à la mise en cache des requêtes, et comparer les résultats entre les pipelines de base et améliorés. Préparez-vous à découvrir le potentiel du RAG avec ce guide étape par étape !

    Récupération contextuelle

    La récupération contextuelle a été initialement introduite comme une amélioration au RAG standard. Chaque fragment de texte est annoté avec un bref résumé qui le situe dans le contexte global du document. Cela permet d’inclure des concepts ou mots-clés de haut niveau qui aident à extraire ce fragment pour différents types de requêtes.

    Installation et configuration

    Vous aurez besoin d’installer ou de mettre à jour quelques packages :

    !pip install -U llama-index llama-parse

    Nous allons également configurer une intégration avec LlamaTrace.

    Analyse d’un rapport PDF

    Dans notre exemple, nous allons analyser le rapport ICONIQ 2024 sur l’état de l’IA. Ce PDF est disponible publiquement.

    !mkdir data
    !mkdir data_images_iconiq
    !wget "https://cdn.prod.website-files.com/65e1d7fb19a3e64b5c36fb38/66eb856e019e59758ef73759_ICONIQ%20Analytics%20%2B%20Insights%20-%20State%20of%20AI%20Sep24.pdf" -O data/iconiq_report.pdf

    Nous allons maintenant configurer les composants essentiels pour construire et mettre en œuvre notre pipeline RAG multimodal de manière efficace.

    Création des nœuds multimodaux

    Les nœuds multimodaux sont les éléments de base qui nous permettent de traiter et d’intégrer différents types de données comme le texte et les images. Dans cette étape, nous allons diviser les pages PDF en nœuds de texte plus petits et gérables.

    from pathlib import Path
    from llama_index.core.schema import TextNode
    from typing import Optional
    import re
    
    def get_page_number(file_name):
        match = re.search(r"-page_(\d+)\.jpg$", str(file_name))
        if match:
            return int(match.group(1))
        return 0
    
    def _get_sorted_image_files(image_dir):
        raw_files = [
            f for f in list(Path(image_dir).iterdir()) if f.is_file() and "-page" in str(f)
        ]
        return sorted(raw_files, key=get_page_number)
    
    def get_text_nodes(image_dir, json_dicts):
        nodes = []
        image_files = _get_sorted_image_files(image_dir)
        md_texts = [d["md"] for d in json_dicts]
        for idx, md_text in enumerate(md_texts):
            chunk_metadata = {
                "page_num": idx + 1,
                "image_path": str(image_files[idx]),
                "parsed_text_markdown": md_text,
            }
            node = TextNode(text="", metadata=chunk_metadata)
            nodes.append(node)
        return nodes
    
    text_nodes = get_text_nodes("data_images_iconiq", md_json_list)

    Récupération contextuelle et création de nœuds

    La récupération contextuelle attache un court résumé à chaque fragment, décrivant où il s’intègre dans le document global. Nous utiliserons le modèle LLM pour générer ces résumés et les stocker dans les métadonnées de chaque nœud.

    def create_contextual_nodes(nodes, llm):
        nodes_modified = []
        doc_text = "\n".join([n.get_content(metadata_mode="all") for n in nodes])
        for idx, node in enumerate(nodes):
            new_node = deepcopy(node)
            user_content = (f"{whole_doc_text.format(WHOLE_DOCUMENT=doc_text)}\n\n"
                            f"{chunk_text.format(CHUNK_CONTENT=node.get_content(metadata_mode='all'))}")
            messages = [
                ChatMessage(role="system", content="You are a helpful AI Assistant."),
                ChatMessage(role="user", content=user_content),
            ]
            new_response = llm.chat(messages)
            new_node.metadata["context"] = str(new_response)
            nodes_modified.append(new_node)
        return nodes_modified

    Intégration et requêtes

    Nous souhaitons maintenant construire un pipeline RAG qui peut répondre à des requêtes utilisant les nœuds textuels et les images. Par exemple, nous pouvons interroger notre pipeline sur l’utilisation de l’IA par département.

    response = query_engine.query("Which departments use GenAI the most and how are they using it?")

    Une réponse typique pourrait indiquer les départements qui utilisent le plus l’IA générative en fonction des résultats d’une enquête.

    Améliorations grâce à la récupération contextuelle

    En comparant les résultats obtenus avec et sans récupération contextuelle, nous pouvons constater que cette méthode offre des réponses plus précises et pertinentes, permettant d’affiner les résultats de recherche.

    Conclusion

    Ce guide complet vous fournit les outils et techniques nécessaires pour créer des solutions d’IA multimodales efficaces, pouvant être adaptées à n’importe quelle source de données externe, que ce soit une immense base de connaissances d’entreprise ou des documents internes.

    Pipeline Multimodal Rag | Pipeline Multimodal | Extraction De Données | Ia | Llamaparse | Gpt- | France
    source:https://www.analyticsvidhya.com/blog/2025/02/contextual-retrieval-for-multimodal-rag-on-slide-decks/

    LAISSER UN COMMENTAIRE

    S'il vous plaît entrez votre commentaire!
    S'il vous plaît entrez votre nom ici


    Actualités

    L’acteur de Friends, Matthew Perry, décède à 54 ans

    "Matthew Perry, célèbre pour son rôle de Chandler Bing dans Friends, décède à 54 ans. Acteur très apprécié, sa mort suscite l'émotion mondiale."

    Entité sioniste déploie des navires de guerre en Mer Rouge selon un expert militaire

    Entité sioniste déploie des navires de guerre en Mer Rouge pour contrer les Houthis au Yémen, une manœuvre vue comme une démonstration de force envers l'Iran.

    L’affaire des SMS entre Pfizer et la Commission européenne : ce qu’il faut savoir

    En avril 2021, le New York Times a révélé...

    Banque suisse : Credit Suisse en chute libre après la faillite de la SVB

    L'action de Credit Suisse a dévissé de plus de...

    Le Retour de Microsoft avec Bing et Edge : Une Menace pour Google ?

    Depuis moins de trois mois, ChatGPT a déjà créé...

    Interceptions au Koweït, Arabie saoudite et EAU; attaques en Irak

    Défenses aériennes ont intercepté missiles et drones au Koweït, Arabie saoudite et EAU; incidents et frappes signalés en Irak et Bahreïn.

    Guerre en Iran : quel dilemme stratégique pour la Chine ?

    Face à la guerre américano-israélienne contre l'Iran, la Chine privilégie prudence et diplomatie : le conflit teste sa stratégie et ses intérêts.

    Dirigeante du KMT accepte l’invitation de Xi et visitera la Chine

    La cheffe du KMT Cheng Li-wun accepte l'invitation de Xi Jinping pour une visite en Chine (7-12 avril) afin de promouvoir dialogue et paix avec Taïwan.

    Risque d’escalade en Iran : l’issue militaire paraît lointaine

    Un expert militaire juge improbable un règlement rapide en Iran et met en garde contre le risque d'une intervention terrestre et d'une escalade.

    Fermeture d’Al-Aqsa : quel projet d’occupation après un mois ?

    Après un mois de fermeture d'Al-Aqsa par Israël, inquiétudes sur la remise en cause du statut, les restrictions d'accès et les tentatives de contrôle.

    Jérusalem : interdiction historique de la messe des Rameaux

    Israël a empêché le patriarche latin d'entrer au Saint‑Sépulcre pour la messe des Rameaux, provoquant une indignation internationale. Pays: Israël, Palestine.

    Beyrouth: Israël frappe la banlieue sud, 6 soldats blessés

    Israël a frappé la banlieue sud de Beyrouth; six soldats israéliens blessés. Hezbollah affirme avoir riposté par tirs et drones vers Israël.

    Agence européenne de sécurité aérienne alerte sur le trafic aérien

    L'Agence européenne de sécurité aérienne alerte sur risques accrus (drones, missiles) et réorganisation des routes aériennes affectant l'UE, l'Iran et Israël.

    à Lire

    Categories