Pourquoi les latences moyennes semblent-elles bonnes alors que l’IA interactive paraît lente ?

Eva Wong est la rédactrice technique et bricoleuse résidente chez ZimaSpace. Geek depuis toujours, passionnée par les homelabs et les logiciels open source, elle se spécialise dans la traduction de concepts techniques complexes en guides accessibles et pratiques. Eva croit que l’auto-hébergement doit être amusant, pas intimidant. À travers ses tutoriels, elle donne à la communauté les moyens de démystifier les configurations matérielles, depuis la construction de leur premier NAS jusqu’à la maîtrise des conteneurs Docker.

Les moyennes de latence peuvent sembler bonnes alors que l’IA interactive paraît lente, car les rares attentes prolongées et les pauses en série dominent les échanges dont les utilisateurs se souviennent.

Neuf requêtes locales peuvent commencer en 300 millisecondes tandis que la dixième attend cinq secondes le chargement du modèle ou l’exécution d’un outil. La moyenne reste inférieure à une seconde, mais la conversation semble régulièrement interrompue. La qualité de l’interaction dépend de la distribution et de la séquence des délais, et non d’une seule valeur centrale calculée sur des types de requêtes sans rapport avec l’interaction dont la personne se souvient.

La moyenne masque la forme de la distribution des délais

Une moyenne arithmétique regroupe toutes les requêtes en un seul nombre. Quelques échanges très lents peuvent être dilués par de nombreux accès au cache ou des invites courtes. Les percentiles révèlent à quelle fréquence les utilisateurs dépassent un seuil de délai, même si le p95 peut masquer le pour cent le plus lent.

La traîne de latence explique qu’une petite fraction de composants lents peut dominer la latence de l’ensemble d’une requête dans les systèmes à exécution parallèle. L’IA interactive attend de la même manière son étape obligatoire la plus lente.

La composition de la charge compte également. Les vérifications d’état et les appels de statut mis en cache ne devraient pas être inclus dans la même moyenne de latence que les échanges vocaux, la récupération RAG ou les actions d’outils. Une valeur agrégée faible peut être mathématiquement correcte et opérationnellement insignifiante.

Les utilisateurs perçoivent des étapes et des blocages, pas seulement l’achèvement

Un échange de chat comporte plusieurs horloges : attente en file, récupération, premier jeton, cadence des jetons, attente d’un outil et réponse finale. Un temps total court avec un long silence initial peut sembler pire qu’une réponse légèrement plus longue qui commence rapidement et s’affiche de manière régulière.

Une analyse de la latence distingue le temps jusqu’au premier jeton du temps de réponse complet, car ces mesures représentent différentes facettes du comportement du modèle. Les deux sont nécessaires pour décrire un échange interactif.

Les pauses visibles ont également un ordre. Un blocage d’outil après plusieurs jetons interrompt l’attention différemment de la même attente avant le premier jeton. Une moyenne calculée sur toutes les phases efface cette structure d’interaction et oriente l’optimisation vers le mauvais composant.

Quand les percentiles restent trompeurs

Les percentiles deviennent trompeurs lorsque l’outil de mesure cesse d’émettre des requêtes pendant les blocages, échantillonne uniquement les requêtes terminées ou agrège des fenêtres temporelles sans rapport. Cette omission coordonnée peut sous-estimer précisément les délais rencontrés par les utilisateurs sous charge.

L’analyse de Gil Tene sur l’omission coordonnée montre pourquoi les tests de charge doivent respecter le calendrier prévu des requêtes au lieu de ralentir les soumissions lorsque le système ralentit. Sinon, les distributions de latence semblent artificiellement bonnes.

L’explication de la latence de queue cesse également de s’appliquer si chaque trace de phase est rapide, mais que les utilisateurs signalent toujours une lenteur. Le rendu de l’interface, la mise en tampon du réseau ou un retour retardé peuvent se situer en dehors de la limite du serveur mesurée. Ajouter des tableaux de bord de percentiles ne sert à rien lorsque l’horloge démarre trop tard ou s’arrête trop tôt.

-15% OFF

Suivez les étapes que les utilisateurs attendent réellement

Instrumentez la mise en file, le début de l’exécution, la fin de la récupération, le premier jeton, chaque appel d’outil, le dernier jeton et le rendu côté client avec un identifiant de trace monotone unique. Indiquez p50, p95, p99, le maximum et le taux de dépassement des seuils par type d’interaction et selon qu’il s’agit d’un état à froid ou à chaud.

Utilisez les traces des démarrages à froid de l’IA pour distinguer le chargement à froid de l’inférence en régime stable. Conservez les échanges échoués et annulés dans l’ensemble de données au lieu d’exclure leurs temps d’attente.

Rejouez les requêtes selon un calendrier prévu fixe et comparez les étapes visibles côté client à celles visibles côté serveur. Optimisez la phase responsable du percentile lent. Si les traces serveur et client divergent, examinez le transport et le rendu ; si seuls les échanges à froid présentent un pic, corrigez le chargement plutôt que la génération en régime stable.

Centre Tech & IA

Plus à lire

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.