Update app.py
Browse files
app.py
CHANGED
@@ -86,27 +86,27 @@ with gr.Blocks(title="Requêter Wikipedia en temps réel 🔍") as demo:
|
|
86 |
|
87 |
Ce démonstrateur permet de requêter un corpus composé des 250K paragraphes les plus consultés du Wikipédia francophone.
|
88 |
Les résultats sont renvoyés en temps réel via un pipeline tournant sur un CPU 🚀
|
89 |
-
Nous nous sommes grandement inspirés du Space [quantized-retrieval](https://huggingface.co/spaces/sentence-transformers/quantized-retrieval) conçu par [Tom Aarsen](https://huggingface.co/tomaarsen)
|
90 |
Si vous voulez en savoir plus sur le processus complet derrière ce démonstrateur, n'hésitez pas à déplier les liens ci-dessous.
|
91 |
|
92 |
<details><summary>1. Détails sur les données</summary>
|
93 |
-
Le corpus utilisé correspond au 250 000 premières lignes du jeu de données
|
94 |
Comme son nom l'indique il s'agit d'un jeu de données datant de décembre 2022. Cette information est à prendre en compte lorsque vous effectuez votre requête.
|
95 |
De même il s'agit ici d'un sous-ensemble du jeu de données total, à savoir les 250 000 paragraphes les plus consultés à cette date-là.
|
96 |
Ainsi, si vous effectuez une recherche pointue sur un sujet peu consulté, ce démonstrateur ne reverra probablement rien de pertinent.
|
97 |
A noter également que Cohere a effectué un prétraitement sur les données ce qui a conduit à la suppression de dates par exemple.
|
98 |
Ce jeu de données n'est donc pas optimal. L'idée était de pouvoir proposer quelque chose en peu de temps.
|
99 |
-
Dans un deuxième temps, ce démonstrateur sera étendu à l'ensemble du jeu de données
|
100 |
-
Il n'est pas exclus d'ensuite utiliser une version plus récente de Wikipedia (on peut penser par exemple à
|
101 |
</details>
|
102 |
|
103 |
<details><summary>2. Détails le pipeline</summary>
|
104 |
-
1. La requête est enchâssée en float32 à l'aide du modèle
|
105 |
-
2. La requête est quantizée en binaire à l'aide de la fonction `quantize_embeddings` de la bibliothèque
|
106 |
-
3. Un index binaire (250K
|
107 |
-
4. Les
|
108 |
-
5. Les
|
109 |
-
6. Les
|
110 |
|
111 |
Ce processus est conçu pour être rapide et efficace en termes de mémoire : l'index binaire étant suffisamment petit pour tenir dans la mémoire et l'index int8 étant chargé en tant que vue pour économiser de la mémoire.
|
112 |
Au total, ce processus nécessite de conserver 1) le modèle en mémoire, 2) l'index binaire en mémoire et 3) l'index int8 sur le disque.
|
|
|
86 |
|
87 |
Ce démonstrateur permet de requêter un corpus composé des 250K paragraphes les plus consultés du Wikipédia francophone.
|
88 |
Les résultats sont renvoyés en temps réel via un pipeline tournant sur un CPU 🚀
|
89 |
+
Nous nous sommes grandement inspirés du Space [quantized-retrieval](https://huggingface.co/spaces/sentence-transformers/quantized-retrieval) conçu par [Tom Aarsen](https://huggingface.co/tomaarsen) 🤗
|
90 |
Si vous voulez en savoir plus sur le processus complet derrière ce démonstrateur, n'hésitez pas à déplier les liens ci-dessous.
|
91 |
|
92 |
<details><summary>1. Détails sur les données</summary>
|
93 |
+
Le corpus utilisé correspond au 250 000 premières lignes du jeu de données <a href="https://hf.co/datasets/Cohere/wikipedia-22-12-fr-embeddings"><i>wikipedia-22-12-fr-embeddings</i></a> mis en ligne par Cohere.
|
94 |
Comme son nom l'indique il s'agit d'un jeu de données datant de décembre 2022. Cette information est à prendre en compte lorsque vous effectuez votre requête.
|
95 |
De même il s'agit ici d'un sous-ensemble du jeu de données total, à savoir les 250 000 paragraphes les plus consultés à cette date-là.
|
96 |
Ainsi, si vous effectuez une recherche pointue sur un sujet peu consulté, ce démonstrateur ne reverra probablement rien de pertinent.
|
97 |
A noter également que Cohere a effectué un prétraitement sur les données ce qui a conduit à la suppression de dates par exemple.
|
98 |
Ce jeu de données n'est donc pas optimal. L'idée était de pouvoir proposer quelque chose en peu de temps.
|
99 |
+
Dans un deuxième temps, ce démonstrateur sera étendu à l'ensemble du jeu de données <i>wikipedia-22-12-fr-embeddings</i> (soit 13M de paragraphes).
|
100 |
+
Il n'est pas exclus d'ensuite utiliser une version plus récente de Wikipedia (on peut penser par exemple à <a href="https://hf.co/datasets/wikimedia/wikipedia"><i>wikimedia/wikipedia</i></a>
|
101 |
</details>
|
102 |
|
103 |
<details><summary>2. Détails le pipeline</summary>
|
104 |
+
1. La requête est enchâssée en float32 à l'aide du modèle <a href="https://hf.co/OrdalieTech/Solon-embeddings-large-0.1">Solon-embeddings-large-0.1</a> d'Ordalie.
|
105 |
+
2. La requête est quantizée en binaire à l'aide de la fonction `quantize_embeddings` de la bibliothèque <a href="https://sbert.net/">SentenceTransformers</a>.
|
106 |
+
3. Un index binaire (250K <i>embeddings</i> binaires pesant 32MB de mémoire/espace disque) est requêté (en binaire si l'option approximative est sélectionnée, en int8 si l'option exacte est sélectionnée).
|
107 |
+
4. Les <i>n</i> textes demandés par l'utilisateur jugés les plus pertinents sont chargés à la volée à partir d'un index int8 sur disque (250K <i>embeddings</i> int8 ; 0 bytes de mémoire, 293MB d'espace disque).
|
108 |
+
5. Les <i>n</i> textes sont rescorés en utilisant la requête en float32 et les enchâssements en int8.
|
109 |
+
6. Les <i>n</i> premiers textes sont triés par score et affichés. Le "Score_ind" correspond au score individuel de chaque paragraphe d'être pertinant vis-à-vis de la requête. Le "Score_sum" correspond à la somme de tous les scores individuels des paragraphes issus d'un même article Wikipedia. L'objectif est alors de mettre en avant l'article source plutôt qu'un bout de texte le composant.
|
110 |
|
111 |
Ce processus est conçu pour être rapide et efficace en termes de mémoire : l'index binaire étant suffisamment petit pour tenir dans la mémoire et l'index int8 étant chargé en tant que vue pour économiser de la mémoire.
|
112 |
Au total, ce processus nécessite de conserver 1) le modèle en mémoire, 2) l'index binaire en mémoire et 3) l'index int8 sur le disque.
|