Recherche au moment de l’inférence (Inference-Time Search)
La recherche au moment de l’inférence, ou Inference-Time Search en anglais, désigne l’ensemble des techniques algorithmiques utilisées pour explorer l’espace des sorties possibles d’un modèle d’apprentissage automatique, typiquement un modèle génératif de séquences, au moment où celui-ci est utilisé pour faire une prédiction (inférence), afin de sélectionner la sortie la plus probable ou la plus adéquate selon certains critères.
Les concepts fondamentaux reposent sur le fonctionnement des modèles génératifs séquentiels, tels que les modèles de langage ou les systèmes de traduction automatique neuronale. Ces modèles prédisent généralement une distribution de probabilité sur le prochain élément (mot, token, pixel) d’une séquence, étant donné les éléments précédents. Une approche simple, dite gloutonne (greedy search), consiste à choisir systématiquement l’élément le plus probable à chaque étape. Cependant, cette approche myope ne garantit pas que la séquence complète résultante soit optimale (par exemple, la plus probable globalement ou la plus fluide). La recherche au moment de l’inférence introduit donc des stratégies pour explorer plusieurs chemins possibles dans l’arbre des séquences potentielles, en utilisant les probabilités fournies par le modèle comme guide, mais en considérant des séquences plus longues pour prendre une décision. L’objectif est de trouver une séquence qui maximise une certaine fonction de score, souvent liée à la probabilité jointe de la séquence entière, ou d’autres métriques de qualité.
L’importance de la recherche au moment de l’inférence est considérable dans de nombreux domaines de l’intelligence artificielle, notamment le traitement automatique du langage naturel (TALN) et la vision par ordinateur. Elle est cruciale pour améliorer significativement la qualité des sorties générées par les modèles. Sans ces techniques de recherche, les modèles pourraient produire des séquences grammaticalement incorrectes, incohérentes, non pertinentes ou répétitives, même si le modèle lui-même a bien été entraîné. En permettant une exploration plus large de l’espace des sorties, ces méthodes conduisent à des traductions plus fluides, des résumés plus informatifs, des dialogues plus engageants et des descriptions d’images plus précises, améliorant ainsi directement la performance perçue et l’utilité des systèmes d’IA.
Les applications pratiques de la recherche au moment de l’inférence sont nombreuses. En traduction automatique, des algorithmes comme la recherche en faisceau (Beam Search) sont quasi systématiquement utilisés pour générer des traductions plus naturelles et précises que celles obtenues par une approche gloutonne. Dans la génération de texte (résumé, écriture créative, dialogue), différentes stratégies de recherche, y compris l’échantillonnage (Top-k sampling, Nucleus sampling/Top-p sampling), permettent non seulement d’améliorer la cohérence mais aussi d’introduire de la diversité et de la créativité dans les textes générés. Pour le sous-titrage automatique d’images, la recherche aide à trouver la description textuelle la plus pertinente et grammaticalement correcte pour une image donnée. Elle est également employée dans la génération de code source, la reconnaissance vocale (pour trouver la séquence de mots la plus probable correspondant à un signal audio) et même en bio-informatique pour la prédiction de structures de protéines.
Il existe plusieurs nuances et variations dans les stratégies de recherche au moment de l’inférence. La plus connue est la recherche en faisceau (Beam Search), qui maintient un nombre fixe (la largeur du faisceau, ‘beam width’) des séquences partielles les plus probables à chaque étape. Une largeur de faisceau plus grande permet une exploration plus large mais augmente le coût computationnel. Les méthodes d’échantillonnage, comme le Top-k (considérant les k options les plus probables) et le Nucleus Sampling (Top-p, considérant le plus petit ensemble d’options dont la probabilité cumulée dépasse p), introduisent une part de stochasticité, favorisant la diversité au détriment potentiel de la probabilité pure. D’autres variations incluent la recherche en faisceau diversifiée (Diverse Beam Search) qui encourage explicitement la génération de sorties différentes, ou des approches itératives qui raffinent une séquence générée. Le choix de la stratégie et de ses paramètres (largeur du faisceau, k, p, température pour moduler les probabilités) dépend fortement de l’application et de l’équilibre souhaité entre qualité, diversité, et coût computationnel.
Plusieurs concepts sont étroitement liés à la recherche au moment de l’inférence. Le terme « stratégie de décodage » (Decoding Strategy) est souvent utilisé comme synonyme ou terme englobant. La « génération de séquences » est le problème général que ces techniques cherchent à résoudre. Les algorithmes spécifiques comme la « recherche en faisceau » (Beam Search), l' »échantillonnage Top-k », l' »échantillonnage Nucleus (Top-p) » et la « recherche gloutonne » (Greedy Search) sont des instances de stratégies de recherche au moment de l’inférence. Des concepts comme la « probabilité conditionnelle », la « distribution de probabilité », et la « perplexité » (une mesure de la qualité d’un modèle de langage) sont fondamentaux pour comprendre comment ces recherches fonctionnent et sont évaluées. Il est important de distinguer la recherche au moment de l’inférence (recherche dans l’espace des sorties du modèle) de la recherche d’information (trouver des documents pertinents) ou de la recherche pendant l’entraînement (optimisation des hyperparamètres ou de l’architecture du modèle).
L’origine de ces techniques de recherche est antérieure aux réseaux de neurones profonds modernes, trouvant ses racines dans les algorithmes de recherche heuristique de l’intelligence artificielle classique (comme A*). Cependant, leur proéminence a explosé avec le succès des modèles séquence-à-séquence (Sequence-to-Sequence models) dans les années 2010, en particulier pour la traduction automatique neuronale. La recherche en faisceau est rapidement devenue la méthode standard pour améliorer les performances de ces modèles. Plus récemment, avec l’avènement des grands modèles de langage (LLMs), les limites de la recherche en faisceau (manque de diversité, tendance à générer des textes génériques) ont conduit à une adoption croissante des méthodes d’échantillonnage pour des tâches de génération plus ouvertes et créatives.
Les avantages principaux de la recherche au moment de l’inférence résident dans sa capacité à améliorer considérablement la qualité globale des séquences générées par rapport à une simple approche gloutonne. Elle permet d’explorer des hypothèses alternatives et de trouver des solutions qui sont meilleures selon une perspective plus globale (probabilité de la séquence entière, fluidité, cohérence). Les méthodes d’échantillonnage offrent également un contrôle sur la diversité des sorties. Cependant, ces techniques présentent des inconvénients notables. Le principal est l’augmentation du coût computationnel et de la latence, car elles nécessitent d’évaluer le modèle pour plusieurs candidats à chaque étape. La complexité réside aussi dans le réglage fin des paramètres (largeur du faisceau, k, p, température), qui peut être empirique et dépendant de la tâche. De plus, la recherche peut parfois amplifier les biais ou les erreurs du modèle sous-jacent, et n’est pas une garantie absolue d’optimalité ou de qualité, pouvant parfois mener à des résultats sous-optimaux ou à des problèmes comme la répétition excessive, surtout avec certains réglages ou modèles moins performants. La recherche ne peut pas non plus compenser fondamentalement les lacunes d’un modèle mal entraîné.