bourdoiscatie commited on
Commit
9026ec3
1 Parent(s): 3b6e12f

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +7 -7
app.py CHANGED
@@ -58,13 +58,13 @@ def search(query, top_k: int = 20, rescore_multiplier: int = 1, use_approx: bool
58
  top_k_indices = binary_ids[indices]
59
  top_k_scores = scores[indices]
60
  top_k_titles, top_k_texts = zip(*[(wikipedia_dataset[idx]["title"], wikipedia_dataset[idx]["text"]) for idx in top_k_indices.tolist()])
61
- df = pd.DataFrame({"Score_ind": [round(value, 2) for value in top_k_scores], "Titre": top_k_titles, "Texte": top_k_texts})
62
- score_sum = df.groupby('Titre')['Score_ind'].sum().reset_index()
63
  df = pd.merge(df, score_sum, on='Titre', how='left')
64
- df.rename(columns={'Score_ind_y': 'Score_sum'}, inplace=True)
65
- df.rename(columns={'Score_ind_x': 'Score_ind'}, inplace=True)
66
- df = df[["Score_sum", "Score_ind", "Titre", "Texte"]]
67
- df = df.sort_values('Score_sum', ascending=False)
68
  # df = df.groupby('Titre')[['Score', 'Texte']].agg({'Score': 'sum', 'Texte': '\n\n'.join}).reset_index().sort_values('Score', ascending=False)
69
  sort_time = time.time() - start_time
70
 
@@ -106,7 +106,7 @@ Il n'est pas exclus d'ensuite utiliser une version plus récente de Wikipedia (o
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.
 
58
  top_k_indices = binary_ids[indices]
59
  top_k_scores = scores[indices]
60
  top_k_titles, top_k_texts = zip(*[(wikipedia_dataset[idx]["title"], wikipedia_dataset[idx]["text"]) for idx in top_k_indices.tolist()])
61
+ df = pd.DataFrame({"Score_paragraphe": [round(value, 2) for value in top_k_scores], "Titre": top_k_titles, "Texte": top_k_texts})
62
+ score_sum = df.groupby('Titre')['Score_paragraphe'].sum().reset_index()
63
  df = pd.merge(df, score_sum, on='Titre', how='left')
64
+ df.rename(columns={'Score_paragraphe_y': 'Score_article'}, inplace=True)
65
+ df.rename(columns={'Score_paragraphe_x': 'Score_paragraphe'}, inplace=True)
66
+ df = df[["Score_article", "Score_paragraphe", "Titre", "Texte"]]
67
+ df = df.sort_values('Score_article', ascending=False)
68
  # df = df.groupby('Titre')[['Score', 'Texte']].agg({'Score': 'sum', 'Texte': '\n\n'.join}).reset_index().sort_values('Score', ascending=False)
69
  sort_time = time.time() - start_time
70
 
 
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_paragraphe" correspond au score individuel de chaque paragraphe d'être pertinant vis-à-vis de la requête. Le "Score_article" 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.