FLARE (Forward-Looking Active REtrieval)
iaDéfinition
FLARE (Forward-Looking Active REtrieval) est une technique RAG iterative proposee par Jiang et al. (2023) ou le LLM genere du texte et declenche dynamiquement un retrieval uniquement quand sa confiance dans les tokens generes est faible. Contrairement au RAG standard (retrieval avant generation), FLARE interleave retrieval et generation. Le mecanisme : le LLM genere du texte jusqu'a ce qu'il rencontre un token avec une probabilite faible (< seuil, ex: 0.5). A ce moment, la phrase en cours de generation est utilisee comme requete de retrieval pour recuperer des documents supplementaires. Le LLM regenère ensuite ce segment avec le contexte supplémentaire, puis continue la generation. L'avantage de FLARE par rapport au RAG standard : en ne declenchant le retrieval que pour les tokens incertains, FLARE reduit la quantite d'information irrelevante dans le contexte LLM. Pour les textes ou le modele est confiant (narration, style), pas de retrieval ; pour les parties factuelles incertaines, retrieval cible. Les limitations de FLARE : la latence est plus elevee que le RAG standard car plusieurs iterations de generation + retrieval sont necessaires. Les faibles probabilites de tokens ne sont pas toujours un bon indicateur d'hallucination (un modele peut generer des hallucinations avec haute confiance). La mise en oeuvre necessite acces aux logits du LLM (impossible avec certaines APIs cloud). FLARE est le precurseur de Self-RAG (qui entraine explicitement le modele a decider quand retriever) et des approches d'Agentic RAG ou un agent decide dynamiquement de la strategie. Il est moins utilise en production car les nouvelles approches plus robustes (CRAG, Self-RAG) l'ont generalement supplante.
Implementation FLARE simplifiee
def flare_generate(model, prompt, retriever, threshold=0.5, max_tokens=500):
context = ''
generated = ''
while len(generated.split()) < max_tokens:
# Generer le prochain token avec probabilites
next_token, prob = model.generate_next_token(prompt + context + generated)
if prob < threshold:
# Confiance faible : retrieval avec la phrase courante comme requete
query = extract_current_sentence(generated)
new_docs = retriever.retrieve(query, k=3)
context = format_context(new_docs)
# Regenérer depuis la derniere phrase
generated = regenerate_last_sentence(model, prompt, context, generated)
else:
generated += next_token
return generated
Articles liés
Expert en cybersécurité offensive et intelligence artificielle. Pentest, audit et développement IA sur-mesure.
Services
- Audit Infrastructure
- Audit Kubernetes
- Audit Microsoft 365
- Audit Sécurité Réseau
- Analyse de Risques
- Audit Active Directory
- Audit Application Web
- Audit Cloud (AWS/Azure/GCP)
- Audit Messagerie
- Audit API (OWASP Top 10)
- Audit DevSecOps & CI/CD
- Audit Code Source (SAST)
- Audit Postes de Travail
- Audit Sauvegarde & Résilience
- Audit OT/SCADA (IEC 62443)
- Développement IA
- Formations
Ressources
Projets & Outils
© 2026 Ayi NEDJIMI Consultants. Tous droits réservés.
Un projet cybersécurité ?
Expert dispo · Réponse 24h