100% ont trouvé ce document utile (1 vote)
71 vues4 pages

RAG Python

Introduction RAG

Transféré par

elyahfrisco7
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
100% ont trouvé ce document utile (1 vote)
71 vues4 pages

RAG Python

Introduction RAG

Transféré par

elyahfrisco7
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Système de Question-Réponse basé sur un

Document en Python
Votre Nom
November 14, 2024

Contents
1 Introduction 2

2 Étapes principales 2
2.1 Charger la leçon . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.2 Indexer les passages . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.2.1 Division du texte en segments . . . . . . . . . . . . . . . . 2
2.2.2 Création des embeddings . . . . . . . . . . . . . . . . . . 3
2.3 Faire des requêtes sur l’index . . . . . . . . . . . . . . . . . . . . 3
2.4 Générer la réponse . . . . . . . . . . . . . . . . . . . . . . . . . . 3

3 IA Utilisées 4

4 Conclusion 4

1
1 Introduction
Ce document décrit les étapes nécessaires pour créer un système de question-
réponse basé sur un document en utilisant Python. Ce système extrait des
réponses d’un texte donné (par exemple, une leçon) en utilisant des modèles
de traitement du langage naturel (NLP) et des techniques de récupération
d’information.

2 Étapes principales
2.1 Charger la leçon
La première étape consiste à charger le texte ou le document sur lequel le système
répondra aux questions. Dans cet exemple, nous utilisons un court extrait de
texte pour démontrer le processus.

Charger la leçon

1 lecon = """
2 L ’ intelligence artificielle ( IA ) est la simulation de
processus d ’ intelligence humaine par des machines ,
3 surtout des s y s t m e s informatiques . Elle inclut l ’
apprentissage automatique , le traitement du langage
naturel ,
4 et la reconnaissance des formes .
5 """

2.2 Indexer les passages


Pour faciliter la recherche de réponses, le texte est divisé en segments appelés
passages, puis converti en vecteurs numériques (embeddings) pour permettre
une recherche rapide par similarité.

2.2.1 Division du texte en segments


Le texte est divisé en phrases en utilisant la bibliothèque nltk.

Division du texte en segments

1 import nltk
2

3 nltk . download ( ’ punkt ’)


4 passages = nltk . tokenize . sent_tokenize ( lecon )

2
2.2.2 Création des embeddings
Nous utilisons le modèle sentence-transformers/all-MiniLM-L6-v2 pour créer
des embeddings pour chaque passage.

Création des embeddings

1 from transformers import AutoTokenizer , AutoModel


2 import torch
3

4 model_name = " sentence - transformers / all - MiniLM - L6 - v2 "


5 tokenizer = AutoTokenizer . from_pretrained ( model_name )
6 model = AutoModel . from_pretrained ( model_name )
7

8 def embed_texts ( texts ) :


9 inputs = tokenizer ( texts , padding = True , truncation =
True , return_tensors = " pt " )
10 with torch . no_grad () :
11 embeddings = model (** inputs ) . last_hidden_state .
mean ( dim =1)
12 return embeddings . numpy ()
13

14 embeddings = embed_texts ( passages )

2.3 Faire des requêtes sur l’index


Avec les embeddings créés, nous utilisons la bibliothèque FAISS pour indexer
les passages et faciliter la recherche de similarités avec la question posée.

Indexation avec FAISS

1 import faiss
2

3 index = faiss . IndexFlatL2 ( embeddings . shape [1])


4 index . add ( embeddings )
5

6 def r e t r i e v e _ r e l e v a n t _ p a s s a g e s ( question , k =2) :


7 question_embedding = embed_texts ([ question ])
8 _ , indices = index . search ( question_embedding , k )
9 return [ passages [ idx ] for idx in indices [0]]

2.4 Générer la réponse


Pour générer une réponse en fonction des passages les plus pertinents, nous
combinons ces passages en un seul contexte et utilisons un modèle de question-
réponse.

3
Générer la réponse avec un modèle de question-réponse

1 from transformers import pipeline


2

3 qa_pipeline = pipeline ( " question - answering " , model = "


deepset / roberta - base - squad2 " )
4

5 def answer_question ( question ) :


6 relevant_passages = r e t r i e v e _ r e l e v a n t _ p a s s a g e s (
question )
7 context = " " . join ( relevant_passages )
8 result = qa_pipeline ( question = question , context =
context )
9 return result [ ’ answer ’]
10

11 question = " Qu ’est - ce que l ’ intelligence artificielle ?


"
12 print ( " Question : " , question )
13 print ( " R p o n s e : " , answer_question ( question ) )

3 IA Utilisées
• Modèle d’embedding : Utilisé pour transformer chaque passage en
vecteur numérique.
• FAISS : Permet une recherche rapide et efficace des passages pertinents
en fonction des embeddings.

• Modèle de question-réponse : Utilisé pour générer des réponses basées


sur le contexte extrait.

4 Conclusion
En utilisant ces étapes, nous avons créé un système de question-réponse capable
d’extraire des informations spécifiques d’un document. Cette approche combine
le traitement du langage naturel avec des techniques de recherche d’information
pour fournir des réponses précises en fonction du contexte.

Vous aimerez peut-être aussi