Résumez cet article avec :
-
LongLLMLingua s'impose pour le RAG : 10x de compression tout en conservant 71,8 % de précision sur du QA à 20 documents, contre 72,3 % sans aucune compression
-
LLMLingua-2 est le meilleur choix polyvalent : 8x de compression en 150 ms, indépendant du modèle et multilingue grâce à sa base XLM-RoBERTa
-
RECOMP extractif est le plus rapide, à 80 ms, et restitue les phrases mot pour mot, ce qu'exigent les textes juridiques et de conformité
-
Un re-ranking top-5 suivi de LongLLMLingua réduit la dépense en tokens de 95 % tout en gardant 97 % de la qualité non compressée
-
Le code résiste à la compression : toutes les méthodes au niveau du token perdent la structure, et RECOMP tombe à 68,9 % de réponses correctes sur du QA de base de code
La compression de prompt est passée du statut de curiosité de recherche à celui d'outil concret de réduction des coûts. Trois approches dominent : LLMLingua (compression de tokens du grossier au fin), LongLLMLingua (compression pilotée par la question pour les documents longs) et RECOMP (résumé extractif en guise de compression).
Chacune convient à une charge de travail différente, et se tromper coûte soit des tokens gaspillés, soit des réponses dégradées. Cet article les compare sur des benchmarks et propose un cadre de décision.
Comment fonctionne chaque méthode
LLMLingua / LLMLingua-2
Approche : compression du grossier au fin, à l'aide d'un modèle plus petit qui note l'importance de chaque token.
-
Compression grossière : retirer les tokens manifestement redondants (mots vides, répétitions)
-
Compression fine : utiliser un petit modèle (par exemple XLM-RoBERTa-large) pour noter l'importance de chaque token restant
-
Allocation du budget : conserver les N % de tokens les mieux notés
from llmlingua import PromptCompressor
compressor = PromptCompressor(
model_name="microsoft/llmlingua-2-hubert-large",
use_llmlingua2=True
)
result = compressor.compress_prompt(
"Votre prompt tres long ici...",
target_token=1000,
use_context_level=True
)
Idéal pour : la compression de prompt polyvalente, les prompts système, les instructions
LongLLMLingua
Approche : compression pilotée par la question, qui préserve l'information pertinente pour une requête donnée.
-
Conditionnement par la question : utiliser la question pour déterminer ce qui compte
-
Notation par document : évaluer la pertinence de chaque document ou paragraphe vis-à-vis de la question
-
Compression intra-document : compresser encore chaque document en ne gardant que les parties utiles à la requête
result = compressor.compress_prompt(
documents, # liste des documents recuperes
question="Qu'est-ce qui cause la decoherence quantique ?",
target_token=2000,
condition_in_question=True, # cle : compression pilotee par la requete
use_context_level=True
)
Idéal pour : les pipelines RAG, le QA multi-documents, la synthèse de recherche
RECOMP (Retrieval Compression)
Approche : résumé extractif, c'est-à-dire sélectionner mot pour mot les phrases les plus informatives.
-
Notation des phrases : évaluer la quantité d'information de chaque phrase
-
Optimisation de la couverture : retenir les phrases qui couvrent le plus de terrain avec le moins de redondance
-
Extraction verbatim : la sortie est toujours constituée de phrases exactes de l'original, sans reformulation
from recomp import AbstractiveRecomp, ExtractiveRecomp
recomp = ExtractiveRecomp(model_name="recomp/extractive-recomp")
compressed = recomp.compress(
documents=["texte doc1...", "texte doc2..."],
query="Qu'est-ce que le machine learning ?",
max_length=500 # tokens vises
)
Idéal pour : le résumé de documents, l'extraction de preuves, les textes juridiques
Benchmarks comparatifs
Tâche RAG (Natural Questions + HotpotQA)
| Méthode | Taux de compression | Score EM | Score F1 | Latence |
|---|---|---|---|---|
| Sans compression | 1x | 42,1 | 51,3 | référence |
| LLMLingua-2 | 8x | 38,7 | 48,2 | 150 ms |
| LongLLMLingua | 10x | 40,8 | 50,1 | 200 ms |
| RECOMP (extractif) | 5x | 39,2 | 49,0 | 80 ms |
| RECOMP (abstractif) | 8x | 41,5 | 50,8 | 350 ms |
QA multi-documents (20 documents, raisonnement complexe)
| Méthode | Documents conservés | Précision | Tokens économisés |
|---|---|---|---|
| Sans compression (tous les documents) | 20 | 72,3 % | 0 % |
| LLMLingua-2 (uniforme) | 20 (compressés) | 65,1 % | 85 % |
| LongLLMLingua (piloté par la requête) | 20 (compressés) | 71,8 % | 87 % |
| RECOMP (extractif) | 20 (résumés) | 68,4 % | 80 % |
| Re-ranking top-5 (sans compression) | 5 | 69,2 % | 75 % |
| Top-5 + LongLLMLingua | 5 (compressés) | 70,1 % | 92 % |
Compréhension de code (QA sur base de code GitHub)
| Méthode | Compression | Réponses correctes | Latence |
|---|---|---|---|
| Sans compression | 1x | 78,5 % | 2,1 s |
| LLMLingua-2 | 5x | 72,3 % | 2,3 s |
| LongLLMLingua | 5x | 76,1 % | 2,5 s |
| RECOMP | 3x | 68,9 % | 1,8 s |
| Résumé manuel du code | 4x | 74,2 % | 1,5 s |
Constat clé : le code est plus difficile à compresser que la langue naturelle. Les méthodes de compression au niveau du token perdent l'information structurelle.
Cadre de décision
| Cas d'usage | Meilleure méthode | Pourquoi |
|---|---|---|
| Compression de prompt généraliste | LLMLingua-2 | Rapide, indépendant du modèle, bonne qualité |
| RAG avec beaucoup de documents | LongLLMLingua | Piloté par la requête, meilleure performance RAG |
| Résumé de documents | RECOMP (abstractif) | Meilleure qualité de résumé |
| Texte juridique ou de conformité | RECOMP (extractif) | Extraction verbatim, aucune reformulation |
| Applications temps réel | LLMLingua-2 ou RECOMP | Latence la plus basse |
| Conversations multi-tours | LLMLingua-2 | Gère la structure du dialogue |
| Contenu multilingue | LLMLingua-2 | Modèle de base XLM-RoBERTa |
| Code et données structurées | Manuel ou RECOMP | La compression de tokens abîme la structure |
Mise en œuvre : combiner les méthodes
Les meilleurs résultats viennent souvent de la combinaison de plusieurs approches :
def smart_compress(documents: list, query: str, budget: int) -> str:
"""Compression multi-etapes pour le RAG."""
# Etape 1 : re-ranking vers les K meilleurs documents (peu couteux, fort impact)
ranked = rerank_documents(documents, query, top_k=8)
# Etape 2 : LongLLMLingua pour une compression pilotee par la requete
compressed = compressor.compress_prompt(
ranked,
question=query,
target_token=budget,
condition_in_question=True
)
# Etape 3 : verifier que la compression n'a pas perdu de faits cles
if budget > 2000: # uniquement pour les budgets importants
compressed = verify_key_facts(compressed, query, ranked)
return compressed
Impact sur les coûts
Pour un système RAG traitant 100 000 requêtes par jour avec 20 documents chacune :
| Approche | Tokens moyens/requête | Coût mensuel (GPT-4o) | Qualité |
|---|---|---|---|
| Sans compression | 50 000 | 125 000 $ | 72,3 % |
| Re-ranking top-5 | 12 500 | 31 250 $ | 69,2 % |
| LLMLingua-2 (tous documents) | 6 250 | 15 625 $ | 65,1 % |
| LongLLMLingua (top-5) | 2 500 | 6 250 $ | 70,1 % |
| Top-5 + LongLLMLingua | 2 500 | 6 250 $ | 70,1 % |
Combiner le re-ranking et LongLLMLingua économise 95 % tout en conservant 97 % de la qualité non compressée.
À retenir
-
LLMLingua-2 est le meilleur compresseur polyvalent : rapide, précis, indépendant du modèle
-
LongLLMLingua l'emporte sur le RAG : la compression pilotée par la requête préserve l'information pertinente
-
RECOMP est le meilleur pour le résumé et l'extraction de preuves : sortie verbatim pour la conformité
-
Combiner re-ranking et compression offre le meilleur compromis coût/qualité
-
Le code et les données structurées se compressent mal : privilégier des approches spécialisées
-
95 % de réduction des coûts sont atteignables avec une compression bien choisie dans un pipeline RAG
Quel que soit le compresseur retenu, il se place devant le modèle que vous appelez : garder ce modèle interchangeable est ce qui rend l'économie durable. Une API unifiée permet de comparer un compresseur sur plusieurs fournisseurs sans réécrire l'intégration.
You can find them at Eden AI.
Login to the platform to test it yourself.
FAQ
Quelle est la meilleure méthode de compression de prompt en 2026 ?
Il n'y a pas de gagnant unique, car la bonne méthode dépend de la tâche. LongLLMLingua domine sur la génération augmentée par récupération grâce à sa compression pilotée par la requête, LLMLingua-2 est la meilleure option polyvalente, et RECOMP s'impose quand la sortie doit être verbatim. Testez chacune sur vos propres données avant de choisir.
Quelle est la différence entre LLMLingua et LongLLMLingua ?
LLMLingua compresse un prompt sans savoir ce qu'on va lui demander, en notant l'importance de chaque token isolément. LongLLMLingua se conditionne à la question, et conserve donc les passages qui y répondent réellement en écartant le reste. Sur du QA à 20 documents, cet écart vaut 6,7 points de précision : 71,8 % contre 65,1 %.
Quelle précision perd-on avec la compression de prompt ?
Moins que ce que la plupart des équipes imaginent. Sur Natural Questions et HotpotQA, LongLLMLingua à 10x de compression obtient 40,8 en exact match contre 42,1 sans compression, soit environ 3 % de perte. Une méthode mal choisie coûte bien plus cher, et c'est pourquoi le choix de la méthode compte davantage que le taux de compression.
La compression de prompt fonctionne-t-elle sur du code ?
Mal, comparée à la prose. Les méthodes au niveau du token retirent l'information structurelle dont le code dépend : les réponses correctes sur du QA de base de code chutent de 78,5 % sans compression à 72,3 % avec LLMLingua-2 et 68,9 % avec RECOMP. Pour le code, un résumé manuel à 4x reste meilleur qu'une compression automatique au même taux.
De combien la compression de prompt réduit-elle les coûts LLM ?
Pour un système RAG traitant 100 000 requêtes par jour sur 20 documents chacune, passer de l'absence de compression au re-ranking top-5 combiné à LongLLMLingua fait tomber la dépense mensuelle d'environ 125 000 $ à environ 6 250 $. Soit 95 % de réduction, en conservant 97 % de la qualité non compressée.
Quand faut-il utiliser RECOMP plutôt que LLMLingua ?
Utilisez RECOMP quand la sortie doit rester traçable jusqu'à la source. Son mode extractif sélectionne des phrases entières mot pour mot au lieu de les reformuler, donc rien n'est paraphrasé, ce qui compte pour le juridique, le médical et la conformité. C'est aussi l'option la moins latente, à 80 ms.
.jpg)


