Skip to main content
LA CONF DATA I IA BY OCTO TECHNOLOGY
#LAGROSSECONF
La Grosse Conf.
La conf Data I IA by OCTO
27.03.2024 I Parc Floral de
Paris
.2
LA
GROSSE
CONF
BY
OCTO
TECHNOLOGY
©
2024
-
All
rights
reserved
08
04
07
01
02
03
05
06
Atelier LLM avancé
Rappel sur les LLM
Rappel sur les RAG (Retrieval
Augmented Generation)
L’obsession de la mesure
Si les résultats ne sont pas bon ?
Mise en œuvre
Mesurer
Pour conclure
Sommaire
ici
mettre
une
Photo
.3
THERE
IS
A
BETTER
WAY
Atelier LLM avancé
01
LA CONF DATA I IA BY OCTO TECHNOLOGY
#LAGROSSECONF
Philippe PRADOS
Dinosaure de l’informatique
.5
LA
GROSSE
CONF
BY
OCTO
TECHNOLOGY
©
2024
-
All
rights
reserved
● C’est un atelier technique. On va regarder du code.
● Pas besoin de prendre des notes
Vous aurez accès :
○ aux slides
○ à un Notebook qui reprend tout ce qui est montré dans la
démo
● Beaucoup d’informations seront communiquées, alors
restez concentré
● Posez vos questions dès que possible, sinon il sera difficile
d’y revenir
Avant-Propos
ici
mettre
une
Photo
.6
THERE
IS
A
BETTER
WAY
Rappel sur les LLM
02
.7
LA
GROSSE
CONF
BY
OCTO
TECHNOLOGY
©
2024
-
All
rights
reserved
Utilisation d’un LLM
token token token
token …
Texte
(Prompt)
Texte
Génération
.8
LA
GROSSE
CONF
BY
OCTO
TECHNOLOGY
©
2024
-
All
rights
reserved
Les tokens
https://platform.openai.com/tokenizer
(8 tokens)
(6 tokens)
.9
LA
GROSSE
CONF
BY
OCTO
TECHNOLOGY
©
2024
-
All
rights
reserved
Lors de l’apprentissage
● Toutes les connaissances et le “bon sens”
emmagasinés lors de l’apprentissage du
modèle
● Valable jusqu’à une certaine date
● Pas de connaissance sur le contexte
du moment :
○ Pas de notion de date
○ De lieux
○ Etc
Ajoutée dans le prompt
● Tout ce qu’on peut ajouter pour l’enrichir
avant de lui demander de résoudre un
problème.
Les connaissances d’un LLM
.10
LA
GROSSE
CONF
BY
OCTO
TECHNOLOGY
©
2024
-
All
rights
reserved
La limite de tokens dans les modèles
.11
LA
GROSSE
CONF
BY
OCTO
TECHNOLOGY
©
2024
-
All
rights
reserved
La limite de tokens dans les modèles
PROMPT
GÉNÉRATION
.12
LA
GROSSE
CONF
BY
OCTO
TECHNOLOGY
©
2024
-
All
rights
reserved
Comment alimenter le prompt ?
Le problème de l’ingénieur
PROMPT
GÉNÉRATION
● Avec des informations
pertinentes,
● Sans dépasser l’espace
réservé,
● Et en laissant assez de place
pour répondre ?
.13
LA
GROSSE
CONF
BY
OCTO
TECHNOLOGY
©
2024
-
All
rights
reserved
C’est la plus grosse difficulté à
gérer pour l’ingénieur
Le nombre et la taille des fragments est limité
This model's maximum context length is 4097 tokens, however you requested 5001 tokens (4900 in your prompt; 101 for
the completion). Please reduce your prompt; or completion length.
ici
mettre
une
Photo
.14
THERE
IS
A
BETTER
WAY
Rappel sur les RAG
(Retrieval Augmented Generation)
03
Retrieval-Augmented Generation
…. On augmente les modèles de langages (LLMs)
.15
LA
GROSSE
CONF
BY
OCTO
TECHNOLOGY
©
2024
-
All
rights
reserved
Rappel d’une architecture RAG
Raw Data
Sources
Information
Extraction
Chunking
“ ”
Embeddin
g
A
B
C
D
Data Preparation
Retrieval Augmented Generation
Relevant Data LLM
Respons
e
3
4
5
Embedding Query
1
2
Embedding Query
Vector DB
.16
LA
GROSSE
CONF
BY
OCTO
TECHNOLOGY
©
2024
-
All
rights
reserved
Injection dans le prompt
Vector DB
top_k
Query Prompt
Context
Question: {questions}
Format: {format}
Response:...
Découpe du
document en
fragment
La taille des fragments est
limitée par la taille du prompt,
et par les limites de l’algo
d’embedding
ici
mettre
une
Photo
.17
THERE
IS
A
BETTER
WAY
L’obsession de la mesure
04
.18
LA
GROSSE
CONF
BY
OCTO
TECHNOLOGY
©
2024
-
All
rights
reserved
Ce qui ne se mesure pas,
ne s’améliore pas
.19
LA
GROSSE
CONF
BY
OCTO
TECHNOLOGY
©
2024
-
All
rights
reserved
Frameworks de mesures
https://docs.ragas.io/
…
Utiliser un LLM pour qualifier les résultats d’un LLM ?
https://mlflow.org/
https://github.com/truera/trule
ns
.20
LA
GROSSE
CONF
BY
OCTO
TECHNOLOGY
©
2024
-
All
rights
reserved
QUALITÉ : Deux composants à étudier dans un RAG
Documents
Base
Vecteur
Question
LLM embedding
LLM embedding
Prompt Engineering
Réponse
avec références
LLM Text
(Agent Conversationnel )
RETRIEVER
GENERATION
.21
LA
GROSSE
CONF
BY
OCTO
TECHNOLOGY
©
2024
-
All
rights
reserved
Un score qui prend en compte les différents axes d’évaluation
Framework : Ragas
ragas : https://github.com/explodinggradients/ragas
GENERATION
Faithfulness
(fidélité)
Answer relevancy
(Pertinence de la réponse)
RETRIEVER
Context precision
(Pertinence du context)
Context Recall
(Rappel du contexte)
.22
LA
GROSSE
CONF
BY
OCTO
TECHNOLOGY
©
2024
-
All
rights
reserved
Toutes les évaluations sont fausses, mais certaines sont utiles.
QUALITÉ
GENERATION RETRIEVER
RESPONSABILITÉ
Impact Carbon
Biais Moderation
INFRASTRUCTURE
Latence
Cout inférence
SÉCURITÉ
Prompt injection
Gestion des
accès
Pas seulement la qualité…
Des évaluations à
plusieurs niveaux,
dont l’importance
dépend du cas
d’usage
.23
LA
GROSSE
CONF
BY
OCTO
TECHNOLOGY
©
2024
-
All
rights
reserved
Sélectionner les métriques à suivre
L’évolution des métriques peut être
contradictoire
(améliorer l’une, c’est dégrader une autre)
Il est nécessaire, au début du projet, de sélectionner la ou les 2
métriques principales
> D’autre métriques peuvent aiguiller sur les impacts des stratégies
d’amélioration
> En s’assurant d’un impact bénéfique pour les métriques principales
ici
mettre
une
Photo
.24
THERE
IS
A
BETTER
WAY
Si les résultats ne sont
pas bon ?
05
.25
LA
GROSSE
CONF
BY
OCTO
TECHNOLOGY
©
2024
-
All
rights
reserved
Méthodes d’adaptation des LLMs
Prompt engineering
Méthode d’injection de texte dans le prompt afin d’orienter le
modèle vers des réponses désirées.
Fine tune
Build your Own
Complexité
et
Coûts
Fine Tune
Le processus de fine-tuning consiste à entraîner plus en
profondeur un modèle de langage pré-entraîné sur un ensemble
de données plus restreint, spécifique à une tâche particulière.
Build your own
Un processus de construction de son propre modèle
consistant à entraîner un modèle de langage sur un
ensemble de données conséquent, spécifique à une tâche
particulière et comportant des étiquettes.
PE
RAG
Retrieval Augmented Generation (RAG)
Méthode d'ingénierie de prompt avec enrichissement du contexte à
partir de sources de données externes afin d'obtenir des réponses plus
précises.
.27
LA
GROSSE
CONF
BY
OCTO
TECHNOLOGY
©
2024
-
All
rights
reserved
TESTER, TESTER … TESTER
ÉVALUATI
ON
OpenAI diffuse son retour d’expérience pour construire un RAG
98 %
d’accuracy
sans fine
tuning !
… because with prompt engineering and RAG, it sounds like these things can be quite simple,
but they're really quite hard. It takes a lot of iterations and a lot of testing and learning to
actually make this happen for real.” OpenAI nov-2023 https://www.youtube.com/watch?v=ahnGLM-RC1Y
.28
LA
GROSSE
CONF
BY
OCTO
TECHNOLOGY
©
2024
-
All
rights
reserved
Raw Data
Sources
Information
Extraction
Chunking
“ ”
Embeddin
g
A
B
C
D
Data Preparation
Retrieval Augmented Generation
Relevant Data LLM
Respons
e
3
4
5
Embedding Query
1
2
Embedding Query
Vector DB
Où optimiser ?
.29
LA
GROSSE
CONF
BY
OCTO
TECHNOLOGY
©
2024
-
All
rights
reserved
Rappel d’une architecture RAG
Raw Data
Sources
Information
Extraction
Chunking
“ ”
Embeddin
g
A
B
C
D
Data Preparation
Retrieval Augmented Generation
Relevant Data LLM
Respons
e
3
4
5
Embedding Query
1
2
Embedding Query
Vector DB
https://ann-benchmarks.com/
https://huggingface.co/spaces/mteb/leaderboard
Stronger performance. Comparing text-embedding-ada-002 to
text-embedding-3-small, the average score on a commonly used
benchmark for multi-language retrieval (MIRACL) has increased
from 31.4% to 44.0%, while the average score on a commonly used
benchmark for English tasks (MTEB) has increased from 61.0% to
62.3%. - OpenAI
ici
mettre
une
Photo
.30
THERE
IS
A
BETTER
WAY
Mise en œuvre
06
.31
LA
GROSSE
CONF
BY
OCTO
TECHNOLOGY
©
2024
-
All
rights
reserved
Étape transformation
Partir des documents vers un format exploitable pour un RAG
๏ Faiblesse:
> L’algo d’embedding n’est pas très efficace
> La réponse est :
○ Dans plusieurs fragments
○ Dans une partie d’un fragment (vecteur éloigné)
○ Nécessite plusieurs fragments éloignés
○ Demande un contexte spécifique
> Les fragments ne sont pas correctements associés aux
questions
๏ Stratégie:
> Enrichir chaque fragment d’un contexte
> Travailler la proximité vectorielle entre la question et les
fragments
.32
LA
GROSSE
CONF
BY
OCTO
TECHNOLOGY
©
2024
-
All
rights
reserved
Deux étapes principales
Lors de l’import…
Injection de la
structure + split
Enrichissement
du contexte
Ajouter la question
avec la réponse ?
Niveau du chapitre
dans le contenu et les
metadata ?
En
série
Résumé du
fragment
Générer des
questions
Extraire chaque
phrase, …
en
parallèle
Vector DB
.33
LA
GROSSE
CONF
BY
OCTO
TECHNOLOGY
©
2024
-
All
rights
reserved
Lors de l’import : créer des variations aux fragments
Comment gérer le cycle de vie de tout cela ?
.34
LA
GROSSE
CONF
BY
OCTO
TECHNOLOGY
©
2024
-
All
rights
reserved
Filtrer après la sélection
Vector DB
Retriever
Combiner les
sources
On pose plusieurs
questions ?
On ajoute les
résumés ?
Une autre source
“full-text” ?
Filtrer les
documents
Avec certains
meta-data ?
Un seuil de
proximité ?
Compresser les
résultats
Requalifier.
Ne garder que
l’essentiel
.35
LA
GROSSE
CONF
BY
OCTO
TECHNOLOGY
©
2024
-
All
rights
reserved
Améliorer la proximité…
Vecteur de la question
Vecteur des fragments
Proximité
0.5
0.8
.36
LA
GROSSE
CONF
BY
OCTO
TECHNOLOGY
©
2024
-
All
rights
reserved
Améliorer la proximité…
Vecteur de la question
Vecteur des fragments
Vecteur des dérivés
Proximité
0.8
.37
LA
GROSSE
CONF
BY
OCTO
TECHNOLOGY
©
2024
-
All
rights
reserved
… puis filtrer
Vecteur de la question
Vecteur des fragments
Vecteur des dérivés
Proximité
Filtre
.38
LA
GROSSE
CONF
BY
OCTO
TECHNOLOGY
©
2024
-
All
rights
reserved
Démo
.39
LA
GROSSE
CONF
BY
OCTO
TECHNOLOGY
©
2024
-
All
rights
reserved
RAGVectorstore
RAG
Vectorstor
e Vector DB
RecordManager
Doc Store
Pour stocker les
fragments non
transformés
Pour stocker les
vecteurs
Pour stocker les
relations entre les
documents, les
fragments et les
vecteurs
Transformations
Transformations
Transformations
parent_transformer
Transformations Transformations Transformations
chunk_transformer
add_documents
.40
LA
GROSSE
CONF
BY
OCTO
TECHNOLOGY
©
2024
-
All
rights
reserved
Où a-t-on optimisé ?
Raw Data
Sources
Information
Extraction
Chunking
“ ”
Embeddin
g
A
B
C
D
Data Preparation
Retrieval Augmented Generation
Relevant Data LLM
Respons
e
3
4
5
Embedding Query
1
2
Embedding Query
Vector DB
Optimisation
appliquée
.41
LA
GROSSE
CONF
BY
OCTO
TECHNOLOGY
©
2024
-
All
rights
reserved
Rappel des stratégies
Optimisation Description
Pas d’optimisation. RAG simple
Classify+
SelfQuery
Ajoute des tags aux documents, puis ajoute un filtre sur les tags lors de la sélection des
documents
GenerateQuestion Génère n questions pour chaque fragment, et l’ajoute au VS
Summarize Ajoute un résumé dans une variation, et peut également l’utiliser comme document
MultiQuery Génère plusieurs questions et recherche tous les documents associés à toutes les questions
Merger Mélange plusieurs listes de documents, venant de plusieurs sources
EmbeddingFilter Supprime les documents trop similaires
Extractor Extrait uniquement les parties du document permettant de répondre à la question
Filter Filtre les documents ne permettant pas de répondre à la question
LongContextReoder Réordonne les documents suivant leurs notes, afin d’améliorer leurs prises en comptes.
.42
LA
GROSSE
CONF
BY
OCTO
TECHNOLOGY
©
2024
-
All
rights
reserved
Coûts en Embedding, LLM et VS
Optimisation
LLM
Maj
Embedding
MaJ
LLM
Par
Requête
Embedding
par Requêtes
Recherche
VS
Pas d’optimisation avg_thunks x n_docs 1 1 1
Classify+
SelfQuery
avg_thunks x
n_docs
avg_thunks x n_docs +1
GenerateQuestion +1 +n_questions
Summarize avg_thunks x
n_docs +n_docs +1
MultiQuery
1 +n_queries +n_queries
Merger
+n_merge +n_merge
EmbeddingFilter
+top_k
Extractor
+top_k
Filter
+top_k
LongContextReoder
.43
LA
GROSSE
CONF
BY
OCTO
TECHNOLOGY
©
2024
-
All
rights
reserved
Plein d’autres stratégies
Reciprocal Rank Fusion (pour fusionner plusieurs
retriever)
01.
Hybrid Search (BM25 + Vector)
02.
ETC…
03.
ici
mettre
une
Photo
.44
THERE
IS
A
BETTER
WAY
Mesurer
07
.45
LA
GROSSE
CONF
BY
OCTO
TECHNOLOGY
©
2024
-
All
rights
reserved
Feature flipping
๏ Il faut un atelier de test, en mode feature flipping
๏ Pouvoir mesurer l’impact de chaque optimisation
๏ Stratégie recommandée:
> Mesure l’impact de chacune, sur différente
métrique et un petit volume de question
> Sélectionner les features les plus efficaces et les
combiner
> Mesurer sur un volume plus important de
questions
> et réajuster
.46
LA
GROSSE
CONF
BY
OCTO
TECHNOLOGY
©
2024
-
All
rights
reserved
REX
.47
LA
GROSSE
CONF
BY
OCTO
TECHNOLOGY
©
2024
-
All
rights
reserved
Fidélité
La cohérence factuelle d'une
réponse est évaluée par
rapport à un contexte donné,
sur une échelle de (0,1), et
considérée comme fidèle si
toutes les affirmations
pouvant être déduites du
contexte. Pour ce faire, chaque
affirmation est identifiée et
vérifiée par recoupement.
Pertinence du
contexte
La pertinence du contexte
récupéré est déterminée en
comparant la question et le
contexte, les valeurs les plus
élevées indiquant une meilleure
pertinence. Le contexte
récupéré doit contenir des
informations essentielles pour
la requête, et la valeur est
estimée en identifiant les
phrases pertinentes. Les
valeurs se situent dans
l'intervalle (0, 1), les valeurs les
plus élevées indiquant une
meilleure pertinence.
Précision du
contexte
La précision du contexte est
une mesure évaluant le
classement de tous les
éléments pertinents dans les
contextes, les scores les plus
élevés indiquant une meilleure
précision, calculée à l'aide de la
question et des contextes, avec
des valeurs allant de 0 à 1.
Pertinence de
la réponse
La pertinence des réponses est
une mesure d'évaluation qui
évalue la pertinence d'une
réponse à une question donnée.
Elle varie de 0 à 1, les scores les
plus élevés indiquant une
meilleure pertinence. Le LLM
calcule ce score en générant
plusieurs fois des questions
appropriées et en mesurant la
similarité cosinus moyenne
entre ces questions et la
question originale.
Métriques SANS annotations/vérités
.48
LA
GROSSE
CONF
BY
OCTO
TECHNOLOGY
©
2024
-
All
rights
reserved
Similarité sémantique de
la réponse
Le concept de similarité sémantique des
réponses évalue la ressemblance
sémantique entre une réponse et la
vérité, avec des valeurs allant de 0 à 1.
Un score plus élevé indique un meilleur
alignement et fournit des informations
précieuses sur la qualité des réponses.
L'évaluation utilise un modèle de cross-
encoder pour calculer le score.
Exactitude de la réponse
Cette métrique évalue l'exactitude
d'une réponse par rapport à la vérité,
en utilisant un système pondéré pour
déterminer la similarité sémantique et
factuelle (fidélité). Un score plus élevé
indique une meilleure exactitude, et les
utilisateurs peuvent arrondir le score à
l'unité binaire s'ils le souhaitent.
Rappel du contexte
Le rappel de contexte est une mesure
de l'alignement d'un contexte récupéré
avec la vérité. Il est calculé en
analysant chaque phrase de la réponse
de référence pour déterminer si elle
peut être attribuée au contexte
récupéré, les valeurs les plus élevées
indiquant une meilleure performance.
Métriques AVEC annotations/vérités
.49
LA
GROSSE
CONF
BY
OCTO
TECHNOLOGY
©
2024
-
All
rights
reserved
Métriques intégrées
Nocivité
(Harmfulness)
Malveillance
(Maliciousness)
Cohérence
(Coherence)
Exactitude
(Correctness)
Concision
(Conciseness)
La demande cause-t-
elle ou pourrait-elle
causer un préjudice à
des individus, à des
groupes ou à la société
dans son ensemble ?
La soumission a-t-elle
l'intention de nuire, de
tromper ou d'exploiter
les utilisateurs ?
Le dossier présente-t-
il des idées, des
informations ou des
arguments de manière
logique et organisée ?
Soyez strict sur ce
point.
Les informations
soumises sont-elles
exactes et exemptes
d'erreurs ? Soyez
vigilant sur ce point.
Le document
transmet-il les
informations ou les
idées de manière
claire et efficace, sans
détails inutiles ou
redondants ? Soyez
strict sur ce point.
ici
mettre
une
Photo
.50
THERE
IS
A
BETTER
WAY
Pour conclure
08
.51
LA
GROSSE
CONF
BY
OCTO
TECHNOLOGY
©
2024
-
All
rights
reserved
๏ Un RAG simple est facile
(la démo, ça va…)
๏ Un RAG avancée demande beaucoup
d’efforts, d’intuition et de mesure
Pour vous aider:
https://github.com/pprados/langchain-
rag
RAG c’est facile ?
.52
LA
GROSSE
CONF
BY
OCTO
TECHNOLOGY
©
2024
-
All
rights
reserved
Rejouez la conf ?
https://urlz.fr/psVh
Take away
.53
LA
GROSSE
CONF
BY
OCTO
TECHNOLOGY
©
2024
-
All
rights
reserved
OCTO
I
PART
OF
ACCENTURE©
2024-
All
rights
reserved