Parallélisation
La parallélisation exécute plusieurs appels de LLM en même temps et agrège les résultats. Deux variantes : le sectionnement (diviser une tâche en sous-tâches indépendantes exécutées en parallèle) et le vote (exécuter la même tâche plusieurs fois pour améliorer la fiabilité ou la couverture). Elle réduit la latence et peut améliorer la qualité.
Problème
Exécuter des sous-tâches indépendantes les unes après les autres fait perdre du temps, et un échantillon unique d'une tâche difficile peut s'avérer peu fiable.
Quand l'utiliser
Utilisez la parallélisation lorsque les sous-tâches sont indépendantes (sectionnement), ou lorsque plusieurs tentatives pour une même tâche améliorent la confiance ou la couverture (vote).
Solution
Sectionnement : diviser le travail en parties indépendantes, les exécuter simultanément et combiner les résultats. Vote : exécuter le même prompt plusieurs fois (ou avec des variantes) et agréger par majorité, union ou via un juge.
Les deux approches réduisent le temps d'exécution réel par rapport à une exécution séquentielle ; le vote permet en outre d'échanger un coût supplémentaire contre une plus grande fiabilité sur les tâches où un échantillon unique est risqué.
Composants
Avantages
- Latence réduite en exécutant les appels de manière concurrente.
- Le vote améliore la fiabilité et la couverture.
- Chaque appel parallèle reste simple et ciblé.
Risques
- Le vote multiplie le coût en jetons.
- La logique d'agrégation peut être difficile à mettre au point.
- Des sous-tâches supposées indépendantes peuvent en réalité interagir.
Quand ne pas l'utiliser
- Lorsque les sous-tâches dépendent du résultat les unes des autres — enchaînez-les.
- Lorsque le budget est serré et qu'un seul appel suffit.
- Lorsque les résultats ne peuvent pas être agrégés de manière significative.
Technologies
Exemples
- Résumer plusieurs documents à la fois, puis fusionner les résumés.
- Exécuter un contrôle de sécurité en parallèle de la réponse principale.
- Échantillonner une réponse plusieurs fois et retenir la majorité.
KPI
- Réduction de la latence par rapport au séquentiel
- Temps réel économisé en exécutant les appels de manière concurrente ; c'est tout l'intérêt de ce pattern.
- Qualité de l'agrégation
- Le fait que la fusion des résultats parallèles préserve ou non l'exactitude — la difficulté réside dans la jointure, pas dans la distribution (fan-out).
- Coût de la concurrence
- Total des jetons sur l'ensemble des branches parallèles ; vous échangez de l'argent contre de la vitesse, surveillez donc le multiplicateur.
- Taux de dépassement des limites de requêtes (rate-limit / throttle)
- Fréquence à laquelle les appels parallèles atteignent les limites de requêtes du fournisseur, ce qui les sérialise silencieusement ou les fait échouer.
Modes de défaillance observés
- Erreurs d'agrégation : les résultats parallèles sont corrects individuellement mais mal combinés (double comptage, contradictions).
- La limitation du débit (rate limiting) transforme la parallélisation prévue en appels séquentiels lents.
- Surprise sur les coûts : N branches parallèles coûtent N fois plus cher, même si un seul résultat est utilisé.
- Gestion des échecs partiels : une branche échoue et l'agrégateur bloque ou l'ignore silencieusement.
Leçons apprises
- Concevez d'abord l'étape d'agrégation — bien combiner les résultats est plus difficile que de diviser le travail.
- Respectez les limites de requêtes du fournisseur avec du traitement par lots (batching) ou du backoff, sous peine de voir la parallélisation s'évaporer.
- Ne parallélisez que les sous-tâches indépendantes ; les dépendances imposent de toute façon un enchaînement séquentiel.
- Décidez explicitement de la manière dont les échecs partiels sont gérés avant qu'ils ne surviennent en production.
FAQ
- Quelle est la différence entre le sectionnement et le vote ?
- Le sectionnement divise une tâche en différentes sous-tâches indépendantes ; le vote exécute la même tâche plusieurs fois afin d'agréger les résultats pour plus de fiabilité.
- Le vote améliore-t-il toujours la qualité ?
- Souvent, sur les tâches où les échantillons varient, mais cela multiplie les coûts. Réservez-le aux étapes à enjeux élevés où un échantillon unique est risqué.
- Comment combiner les résultats parallèles ?
- Selon le cas : concaténer les sections, procéder à un vote majoritaire, unir les résultats ou utiliser un modèle juge pour faire la synthèse.