3 points par GN⁺ 2025-05-06 | 1 commentaires | Partager sur WhatsApp
  • Les LLM calculent une distribution de probabilité des tokens suivants puis en choisissent un, et l’échantillonnage ajoute une part d’aléatoire contrôlée à l’approche greedy pour ajuster la diversité de la sortie
  • temperature, la pénalité de répétition, DRY, Top-K/Top-P/Min-P modifient les logits ou la distribution de probabilité avant ou après la sélection du token afin de reconstruire l’éventail des candidats et leurs probabilités relatives
  • Chaque sampler conserve ou exclut des tokens selon des critères différents : nombre fixe, probabilité cumulée, ratio par rapport à la probabilité la plus élevée, entropie, répétition de n-grammes, surprisal, etc.
  • Dans un pipeline réel, l’ordre d’application du filtrage, des pénalités, de la temperature et des ajustements de distribution change fortement le résultat, et selon les combinaisons les effets peuvent se compléter ou se neutraliser
  • La taille du vocabulaire et le mode de segmentation du tokenizer modifient l’unité à laquelle le modèle attribue des probabilités ainsi que les motifs détectés par des samplers fondés sur les n-grammes comme DRY

Structure de base de la génération et de l’échantillonnage d’un LLM

  • Un LLM prend en entrée du texte, comme un prompt utilisateur, puis calcule le token correspondant au mot suivant
  • Le modèle possède un vocabulaire composé de tokens valides, qu’il consulte pendant l’entraînement et l’inférence
  • Pendant l’entraînement, il voit une grande quantité de texte et construit une carte interne de probabilités des tokens ; pendant l’inférence, il détermine le token suivant à partir de ces probabilités apprises
  • Le processus de génération se divise en deux étapes
    • Prédiction : calculer la distribution de probabilité de tous les tokens possibles à la position suivante
    • Sélection : choisir un token dans cette distribution et l’ajouter à la sortie
  • L’approche greedy choisit toujours le token le plus probable, ce qui produit facilement un texte répétitif et déterministe
  • L’échantillonnage introduit un aléatoire contrôlé dans l’étape de sélection afin de rendre la sortie plus variée

Pourquoi des tokens plutôt que des mots ou des caractères

  • Une tokenisation au niveau caractère transforme le même texte en une séquence bien plus longue ; tokenization peut ainsi devenir 12 tokens au lieu de 2 à 3 avec une approche en sous-mots
  • Les longues séquences demandent davantage de calcul pour la self-attention, et le modèle doit relier les informations de plusieurs positions comme t-h-e pour former un seul concept
  • Une tokenisation au niveau mot oblige à inclure tous les mots de l’anglais et de nombreuses autres langues, ce qui rend la matrice d’embedding très grande et coûteuse
  • Lorsqu’un mot nouveau ou rare apparaît, l’approche au niveau mot le remplace généralement par un token "unknown", ce qui fait perdre de l’information sémantique
  • La tokenisation en sous-mots permet de représenter un mot nouveau comme grompuficious à partir d’une combinaison de sous-mots existants
  • Pour un modèle de langage utilisant un nouveau tokenizer, on entraîne d’abord le tokenizer sur un échantillon représentatif des données d’apprentissage afin qu’il trouve les sous-mots fréquents, puis on fixe à l’avance la taille du vocabulaire

Les valeurs clés manipulées par les samplers

  • logits : scores non normalisés produits par le modèle pour chaque token du vocabulaire ; plus la valeur est élevée, plus le token a de chances d’être le suivant
  • softmax : transforme les logits en valeurs entre 0 et 1, puis en une distribution de probabilité dont la somme vaut 1
  • entropy : représente l’incertitude ou le caractère aléatoire de la distribution de probabilité ; plus elle est élevée, moins le modèle est sûr du token suivant
  • perplexity : mesure à quel point le modèle est surpris par le texte ; plus elle est faible, plus la confiance est élevée
  • n-gram : séquence de n tokens consécutifs ; "once upon a" est un 3-gram
  • context window : nombre maximal de tokens qu’un LLM peut traiter en une seule fois, en incluant le prompt et la sortie générée

Les samplers de base qui ajustent directement la distribution de probabilité

  • Temperature agit comme un « bouton de créativité » pour le LLM
    • Une temperature faible rend les tokens aux scores les plus élevés encore plus probables, ce qui augmente la prévisibilité
    • Une temperature plus élevée, comme 0,7 à 1,0, permet aussi de sélectionner les 3e ou 4e candidats, ce qui augmente la diversité mais aussi le risque d’erreur
    • Une temperature très élevée, au-delà de 1,0, peut rendre la sortie brute et imprévisible si elle n’est pas utilisée avec un autre mécanisme comme Min-P
    • Techniquement, on divise les logits par la valeur de temperature avant d’appliquer softmax
  • Presence Penalty applique une pénalité fixe à un token qui est déjà apparu au moins une fois
    • On soustrait la valeur de la pénalité aux logits des tokens déjà utilisés, indépendamment de leur nombre d’occurrences
    • Comme il existe de meilleures stratégies de pénalisation, ce mécanisme n’est généralement pas recommandé
  • Frequency Penalty augmente la pénalité proportionnellement au nombre d’occurrences d’un token
    • Si un token est apparu trois fois, ses logits diminuent de 3 × frequency penalty
    • Plus le même token se répète, plus sa probabilité d’être à nouveau choisi diminue progressivement
  • Repetition Penalty s’applique aux tokens présents à la fois dans le prompt et dans la sortie générée
    • Les logits positifs sont divisés par la pénalité, tandis que les logits négatifs sont multipliés par la pénalité pour devenir encore plus négatifs
    • C’est utile pour casser les boucles de répétition, mais des valeurs agressives peuvent nuire à la cohérence

DRY pour bloquer les motifs répétitifs

  • DRY(Don't Repeat Yourself) détecte des motifs répétitifs plus larges qu’une simple répétition de mots
  • Il repère les répétitions de n-grammes dans la séquence de tokens générée et pénalise les tokens qui prolongeraient ce motif
  • Si un motif comme "the cat sat on the" est déjà apparu et que le même enchaînement recommence, le token qui le suivait précédemment devient moins susceptible d’être choisi
  • Plus le motif répétitif est long, plus la pénalité appliquée est forte
  • Les principaux paramètres sont le multiplier, qui détermine l’intensité de la pénalité, le base, qui régit sa progression selon la longueur du n-gramme, ainsi que les longueurs minimale et maximale de n-grammes, le sequence breaker et le range limit
  • Des sequence breakers comme la ponctuation peuvent réinitialiser la détection des motifs, et une limitation de portée peut aussi restreindre l’analyse au texte récent pour des raisons d’efficacité
  • C’est particulièrement utile dans des domaines comme l’écriture créative, où les formules répétées paraissent artificielles

Les samplers de filtrage qui éliminent des candidats

  • Top-K ne conserve que les K meilleurs tokens au lieu de tout le vocabulaire
    • Si K vaut 40, la sélection se fait uniquement parmi les 40 candidats les plus probables
    • Tous les autres logits sont fixés à -∞, ce qui ramène effectivement leur probabilité à 0 après softmax
  • Top-P(Nucleus) conserve non pas un nombre fixe, mais le plus petit ensemble de candidats dont la probabilité cumulée dépasse le seuil P
    • Si P vaut 0,9, on inclut les meilleurs candidats jusqu’à atteindre 90 % de probabilité cumulée
    • Quand le modèle est confiant, il reste peu de candidats ; quand il est incertain, il en reste davantage
    • Le token le plus probable est toujours conservé afin qu’il y ait au moins un candidat
  • Min-P définit un seuil de qualité en proportion du token le plus probable
    • Si la probabilité maximale est de 0,6 et Min-P de 0,1, le seuil vaut 0,06
    • Les tokens dont la probabilité est trop faible par rapport au meilleur candidat sont exclus
    • Il est souvent utilisé avec une temperature élevée, autour de 1,0 à 1,2, et avec une valeur Min-P très basse, de l’ordre de 0,1
    • Il est plus efficace que Top-K ou Top-P, car il ne nécessite pas de trier l’ensemble du vocabulaire
  • Top-A utilise un seuil proportionnel au carré de la probabilité maximale
    • Plus le modèle est confiant, plus l’effet du carré relève fortement le seuil et réduit le nombre de candidats
    • Cette approche est antérieure à Min-P ; techniquement, Min-P est linéaire alors que Top-A repose sur un carré
  • Epsilon Cutoff supprime les tokens situés sous un seuil de probabilité fixe
    • Il applique le même critère quelles que soient les caractéristiques de la distribution
    • C’est simple et prévisible, mais moins adaptatif que Eta Cutoff

Les samplers qui exploitent la forme de la distribution et l’incertitude

  • Top-N-Sigma construit un seuil statistique à partir du logit maximal et de l’écart-type
    • Le critère est logit maximal - N × écart-type
    • Il tient compte non seulement des valeurs absolues, mais aussi de la dispersion générale des scores
  • Tail-Free Sampling(TFS) observe la courbure de la distribution de probabilité pour repérer le point où commence la longue traîne
    • Il trie les logits par ordre décroissant, les convertit en probabilités, puis calcule la valeur absolue de la seconde différence
    • Les tokens situés au-delà du point où la distribution cumulée de courbure dépasse un seuil sont supprimés
    • Cette méthode se concentre sur la forme de la distribution plutôt que sur les probabilités absolues
  • Eta Cutoff utilise à la fois la probabilité individuelle et l’entropie globale
    • Quand l’entropie est faible et que le modèle est confiant, le cutoff devient plus strict
    • Quand l’entropie est élevée et que le modèle est incertain, le cutoff devient plus permissif
    • Le seuil est défini comme le minimum entre eta et sqrt(eta) * exp(neg_entropy)
  • Locally Typical Sampling examine non pas la probabilité brute, mais l’écart à la surprisal moyenne
    • Les tokens trop prévisibles comme les tokens trop surprenants sont considérés comme moins « typiques »
    • Les tokens sont triés selon l’écart de surprisal, puis typical-p détermine la quantité de probabilité cumulée à conserver
  • Quadratic Sampling n’effectue pas un filtrage, mais une transformation non linéaire de l’ensemble de la distribution des logits
    • Il ajuste, par des termes quadratiques et cubiques, l’écart entre les autres logits et le token au score maximal
    • Le smoothing factor contrôle l’intensité de l’ajustement, et la smoothing curve pilote la forme de la transformation
    • Si s est positif, la distribution devient plus pointue ; si k est positif, elle tend à s’aplatir

Méthodes avancées pour contrôler prévisibilité et diversité

  • XTC(eXclude Top Choices) s’active de manière probabiliste et exclut délibérément certains choix trop prévisibles
    • Il utilise comme paramètres une probabilité d’activation et un seuil d’exclusion
    • Parmi les meilleurs candidats au-dessus du seuil, il exclut celui dont le score est le plus faible et supprime les autres candidats à forte probabilité
    • Contrairement aux filtres classiques qui éliminent les faibles probabilités, il vise les choix les plus évidents
  • Mirostat est une méthode de feedback qui s’ajuste dynamiquement pour maintenir une surprisal cible
    • Il filtre d’abord les tokens trop surprenants à l’aide du seuil courant mu
    • Après la sélection d’un token, il calcule la surprisal réelle puis la compare à la cible tau
    • eta est un learning rate qui détermine la rapidité d’ajustement de mu
    • La formule de mise à jour est mu_{t+1} = mu_t - η × (surprisal_t - τ)
    • C’est une méthode d’autorégulation visant à maintenir une perplexity stable pendant la génération
  • Dynamic Temperature Sampling fait varier la temperature en fonction de l’entropie de la distribution courante
    • Quand l’entropie est faible, il augmente la temperature pour injecter de la diversité
    • Quand l’entropie est élevée, il réduit la temperature pour concentrer davantage la sortie
    • L’utilisateur définit une temperature minimale, une temperature maximale et un exponent
    • La formule est temperature = min_temp + (max_temp - min_temp) * (normalized_entropy ^ exponent)

Beam Search et Contrastive Search

  • Beam Search maintient plusieurs séquences candidates en parallèle et cherche le chemin ayant la probabilité globale la plus élevée
    • Il conserve autant de séquences candidates que la beam width, puis étend ces séquences à chaque étape de décodage avant de ne garder que les meilleures
    • En général, on échantillonne 2k candidats à chaque étape afin d’en conserver suffisamment après exclusion des séquences déjà terminées
    • Le score correspond à la somme des logprob de tous les tokens de la séquence
    • Pour une même entrée, il produit de façon déterministe la même sortie ; comme il coûte cher et qu’il existe aujourd’hui de meilleures méthodes d’échantillonnage, il est moins utilisé
  • Contrastive Search optimise à la fois la forte probabilité et l’évitement des motifs répétitifs dans le contexte
    • Il sélectionne d’abord les candidats Top-K
    • Il compare ensuite les représentations cachées du contexte existant et de chaque continuation candidate afin de calculer une degeneration penalty fondée sur la similarité
    • Le score final est score(x) = α * P(x) - (1-α) * sim(x, context)
    • α règle l’équilibre entre probabilité et diversité
    • Comme Beam Search, cette méthode n’est pas largement utilisée

Comment l’ordre d’application des samplers change le résultat

  • Dans les implémentations réelles de LLM, les techniques d’échantillonnage sont souvent appliquées séquentiellement ; certaines bibliothèques permettent de modifier cet ordre par requête, mais la plupart ne le font pas
  • Un pipeline classique suit généralement cet ordre
    • Le modèle génère les logits bruts
    • Il filtre ou interdit les tokens à ne pas prendre en compte
    • Il applique les pénalités de répétition, de fréquence et de présence
    • Il applique des mécanismes fondés sur les motifs comme DRY
    • Il applique le scaling de temperature
    • Il applique des techniques d’ajustement de distribution comme Top-K, Top-P ou Min-P
    • Il échantillonne un token dans la distribution finale
  • Selon l’implémentation, la temperature peut être appliquée au tout début ou à la toute fin, en dehors des pénalités et des samplers post-softmax
    • Pour la plupart des tâches, la temperature est appliquée en premier
    • Pour l’écriture créative, elle est souvent appliquée en dernier
  • Chaque sampler modifie le paysage probabiliste que verra le sampler suivant
    • Les pénalités abaissent les pics des tokens déjà utilisés et rehaussent relativement les autres candidats
    • Une temperature faible rend la distribution plus tranchée, tandis qu’une temperature élevée l’aplatit
    • Des filtres comme Top-K ou Top-P éliminent les tokens à faible probabilité et renormalisent les probabilités restantes

Interactions dépendantes de l’ordre et combinaisons

  • L’ordre Temperature → Filtering reconfigure d’abord toute la distribution, puis applique le filtrage
    • Une temperature faible concentre la masse de probabilité sur peu de tokens avant même le filtrage
    • Une temperature élevée l’étale plus largement avant le filtrage
  • L’ordre Filtering → Temperature commence par couper des candidats, puis la temperature n’ajuste que les probabilités relatives entre les tokens restants
    • Même avec une temperature élevée, les tokens supprimés par le filtre initial ne reviennent pas
    • Avec Top-K 40 et temperature 1,5, si le filtre est appliqué en premier, seuls les 40 meilleurs candidats d’origine subsistent
  • Penalties → Temperature diminue d’abord la probabilité des tokens répétitifs, puis la temperature amplifie ou atténue cet ajustement
    • Avec une temperature élevée, l’effet des pénalités peut pratiquement s’effacer
    • Avec une temperature faible, les pénalités peuvent être exagérément amplifiées
  • Temperature → Penalties fait agir les pénalités sur une distribution déjà reconfigurée par la temperature, ce qui peut produire un effet plus équilibré et plus prévisible
  • DRY est sensible à sa position dans le pipeline
    • Appliqué tôt, il lutte plus fortement contre les répétitions, mais des samplers ultérieurs peuvent réhabiliter les tokens pénalisés
    • Appliqué tard, il peut être moins puissant parce que des candidats auront déjà été éliminés, mais il constitue une dernière ligne de défense juste avant la sélection du token
  • Certaines combinaisons sont complémentaires
    • Top-K + Top-P : Top-K impose une limite dure et Top-P s’adapte au niveau de confiance du modèle
    • Temperature + Min-P : une temperature élevée aplatit la distribution, et Min-P fixe un plancher de qualité par rapport au meilleur candidat
  • D’autres combinaisons entrent en conflit
    • High Temperature + Low Top-K : un Top-K faible restreint fortement les candidats et écrase en grande partie l’effet de la temperature
    • Utilisation simultanée de plusieurs filtres : si l’on emploie Top-K, Top-P, Min-P et TFS ensemble, la méthode la plus restrictive domine et les autres peuvent devenir redondantes
    • XTC + Top-A : comme les deux cherchent, de manières différentes, à exclure les choix de tête, ils peuvent resserrer excessivement l’espace d’échantillonnage

Comment le tokenizer façonne l’espace d’échantillonnage

  • Le tokenizer détermine ce à quoi le modèle attribue des probabilités et quels candidats les samplers manipulent
  • Les algorithmes en sous-mots offrent un compromis entre les longues séquences de l’approche caractère par caractère et les énormes vocabulaires accompagnés du problème unknown de l’approche au niveau mot
  • BPE(Byte Pair Encoding) part d’un vocabulaire fondé sur les caractères ou les bytes, puis fusionne de manière répétée les paires de symboles adjacents les plus fréquentes dans le corpus d’apprentissage
    • Les fusions se poursuivent jusqu’à atteindre la taille de vocabulaire souhaitée
    • Des tailles de vocabulaire de 32000 ou 128256 unités sont données en exemple
    • Le BPE standard peut nécessiter une pré-tokenisation basée sur les espaces et la ponctuation, et le traitement des whitespaces peut varier selon les implémentations
  • SentencePiece traite directement le texte comme une séquence de caractères Unicode, sans segmentation préalable
    • Il peut encoder les espaces comme faisant partie des tokens
    • Comme il opère sur l’Unicode brut, il peut encoder explicitement les whitespaces avec U+2581, ce qui rend la tokenization et la de-tokenization réversibles et sans perte
    • En interne, il peut implémenter BPE ou un modèle de langage unigram
    • Il est populaire dans les LLM modernes en raison de son indépendance vis-à-vis des langues et de sa réversibilité

Effets de la taille du vocabulaire, des frontières de tokens et des mots rares

  • Le tokenizer possède une taille de vocabulaire fixe ; un grand vocabulaire contient davantage de mots complets, tandis qu’un plus petit s’appuie davantage sur les sous-mots
  • Si "sampling" ou "probability" est un token unique, le modèle prédit d’un seul coup la probabilité du concept entier
    • Dans les formulations fréquentes, cela permet une sortie plus directe et plus prévisible
    • Pour les mots rares, cela peut entraîner un problème de <UNK> ou des combinaisons maladroites de sous-mots
  • Si "sampling" est découpé en sampl + ing, le modèle prédit à un niveau plus fin
    • Si des samplers comme temperature l’autorisent, il peut basculer de sampling à sampler
    • Les mots rares peuvent être construits à partir de fragments
    • Si le modèle se fixe sur un préfixe de sous-mot fréquent, la sortie peut devenir moins cohérente ou se retrouver bloquée
    • Des pénalités comme DRY doivent alors suivre des séquences plus courtes et sémantiquement moins claires
  • Une même expression peut être segmentée différemment selon le tokenizer
    • "State-of-the-art" peut devenir State + - + of + - + the + - + art, ou dans un style SentencePiece State + _of + _the + _art
    • Si l’expression est très fréquente, elle peut aussi devenir un token unique
  • Les frontières de tokens affectent directement les samplers à base de n-grammes comme DRY
    • Si "once upon a time" correspond à 4 tokens, DRY détecte facilement le 4-gram
    • Si l’expression tient dans un seul token, il devient difficile d’appliquer la même pénalité sans rollback de la sortie
  • Les mots rares ou nouveaux peuvent être décomposés en fragments connus avec BPE et SentencePiece
    • Si un <UNK> est produit, le sampler perd une option sémantiquement utile
    • Une approche en sous-mots peut combiner les fragments de façon créative, mais comme la création d’un mot rare exige plusieurs étapes d’échantillonnage, le risque de dévier en cours de route est plus élevé qu’avec un seul token connu

1 commentaires

 
GN⁺ 2025-05-06
Commentaires sur Hacker News
  • À ce sujet, notre article sur min_p s’est classé 18e sur 12 000 soumissions à l’ICLR et a été retenu pour une présentation orale
    https://iclr.cc/virtual/2025/oral/31888
    Le poster a aussi eu beaucoup de succès : https://iclr.cc/media/PosterPDFs/ICLR%202025/30358.png?t=174...
    La présentation orale est visible ici. Il y a un passage où l’on tacle Yoshua Bengio sur ce sujet, et il devient la première personne à poser une question. Le deuxième intervenant commence vers 19:30, avec les slides de présentation, et c’est assez drôle : https://iclr.cc/virtual/2025/session/31936
    Article : https://arxiv.org/abs/2407.01082
    En tant que l’un des auteurs de min_p, je peux confirmer qu’à l’heure actuelle, le meilleur échantillonneur généraliste, et de loin, est Top N sigma. La temperature peut et devrait aussi être réglée bien plus haut qu’aujourd’hui. Avec des techniques comme min_p ou top N sigma, une temperature de 100 est parfaitement acceptable
    Autre point : la combinaison top_k = 2 et temperature ultra-élevée, que les auteurs déconseillent en fin d’article, est en elle-même très intéressante. Elle produit des fautes d’orthographe environ tous les 10 mots, mais semble aussi faire émerger une créativité assez intéressante

    • Je me demande s’il existe, en pratique, des échantillonneurs non gloutons. Autrement dit, des approches qui font réellement de la recherche arborescente
      Je sais que le facteur de branchement est absurdement élevé et que le coût d’expansion des nœuds est lui aussi important, mais j’ai toujours trouvé étrange qu’on ne fasse pas vraiment de recherche
  • Un point qui manque ici, c’est que l’échantillonneur n’a pas accès à l’état interne du modèle. Il ne fait qu’appliquer des maths de base à la distribution de sortie, et même si cette distribution contient techniquement un peu de sémantique, elle est indéchiffrable à moins d’être aussi intelligent que le modèle
    Cela vaut aussi pour les échantillonneurs comme les pénalités de répétition ou DRY décrits ici. Un modèle peut se répéter de mille façons différentes, et la seule manière de toutes les empêcher est un meilleur entraînement, pas une recherche de n-grammes ni des méthodes classiques de traitement automatique du langage naturel. C’est comme essayer de boucher tous les trous avec ses doigts : combien de doigts a-t-on ?
    En bidouillant le processus autorégressif, on peut obtenir des améliorations ou des astuces malignes avec des fruits à portée de main comme Min-P, mais si l’objectif est de transformer un mauvais modèle en bon modèle, ce n’est pas la bonne direction

    • Non, l’objectif est de transformer un modèle peu créatif en modèle créatif. À cause de l’idée selon laquelle l’échantillonnage n’a pas d’importance ou irait à l’encontre de la bitter lesson, il a fallu dire explicitement, lors de la présentation orale à l’ICLR, que tout le domaine avait un énorme angle mort sur ce type de recherche
      Top n sigma existe depuis mi-2024, min_p depuis 2023, et pourtant, en dehors de l’open source, c’est-à-dire hors HF/vllm, on attend encore que ces innovations soient intégrées. Si les fournisseurs d’API avancent volontairement lentement, c’est parce qu’ils ne veulent pas assumer le risque que les modèles deviennent trop créatifs, et il est aussi très probable qu’une temperature élevée casse le watermarking
      Autre point : il est très facile de faire connaître au modèle ses paramètres d’échantillonnage. Il suffit de les réinjecter dans le modèle à chaque token ou à chaque génération. On peut le faire par exemple avec de la génération structurée. Le modèle peut contrôler ses propres paramètres d’échantillonnage et, avec un tout petit peu de programmation supplémentaire, « accéder à son état interne ». Désormais, ce code peut même être écrit par le modèle lui-même
    • Le point central de ce guide semble être l’efficacité et la prévention de l’explosion de complexité
  • J’ai aussi récemment écrit un petit guide de l’échantillonnage pour Ollama/llama.cpp ; les retours et propositions de correction sont les bienvenus : https://smcleod.net/2025/04/comprehensive-guide-to-llm-sampl...

  • J’aime le fait que l’ensemble soit bien structuré et expliqué simplement, car cela ouvre des pistes sur les endroits où de nouvelles expérimentations pourraient être efficaces
    Par exemple, pourquoi ne pas utiliser des mots entiers comme tokens ? On pourrait créer un « robot » doté d’un « dialecte de robot » limité. Il n’aurait pas la capacité de gérer des mots nouveaux ou rares, mais on pourrait modifier les données d’entraînement et d’entrée pour traduire ces mots dans le vocabulaire existant. On obtiendrait alors un mapping beaucoup plus petit, littéralement plus robotique, et l’utilisateur aurait, comme avec C-3PO, une idée des types de réponses auxquelles s’attendre de la part de ce robot

    • Les tokenizers uniquement basés sur les mots sont ce que les gens faisaient à l’époque des RNN/LSTM. Ils n’apportent rien de mieux fonctionnellement que des méthodes de tokenisation comme BPE ou WordPiece/SentencePiece, et ils rendent plus difficile l’utilisation d’indices sémantiques importants comme la ponctuation, ce qui dégrade aussi la qualité
  • Si l’on tente de faire en sorte qu’un LLM produise non pas simplement le « token suivant », mais des idées, alors le processus de sélection sur le vecteur de logits semble casser cette idée initiale. Si l’idée est déjà complète, on ne devrait pas avoir besoin d’échantillonnage sur les logits
    Dans ce cadre, l’échantillonnage ne devrait pas se faire à un niveau proche de la sortie, c’est-à-dire sur « quel est le prochain mot à dire »

    • Les LLM sont entraînés à maximiser la probabilité de prédire le token suivant, pas des « idées ». On ne peut pas définir les idées comme objectif de perte d’entraînement
  • Il y a quelques semaines, j’ai créé un article interactif sur un sujet connexe, l’échantillonnage contraint. Celui-ci est toutefois beaucoup plus exhaustif
    http://michaelgiba.com/grammar-based/index.html

  • Un modèle LLM pourrait-il faire implicitement la tokenisation ? Je veux dire : sans créer de tokenizer séparé, accepter une chaîne arbitraire, puis laisser le réseau neuronal la convertir en tokens et entraîner les poids de ce réseau avec le reste du LLM.

    • C’est déjà ce qui se fait. Un réseau neuronal ne peut pas manipuler directement des tokens ; il ne peut recevoir que des vecteurs de nombres réels et des entrées différentiables[0]. Donc on ne lui donne pas tels quels les tokens 123 et 456 : il faut convertir chaque token en vecteur encodé en one-hot. C’est un vecteur où seule la position indiquée par l’ID du token vaut 1, et toutes les autres valent 0.
      Ces vecteurs one-hot passent par une couche linéaire qui les compresse à la taille de l’état caché du modèle. Par exemple, le vocabulaire de tokens peut contenir de 10 000 à 100 000 entrées, tandis que la taille de l’état caché peut être de l’ordre de 500 à 2 000. Tout le reste du modèle fonctionne dans l’espace des états cachés[1], qui contient de nombreux concepts de haut niveau.
      Si l’on supprimait la tokenisation, l’encodeur devrait travailler davantage pour atteindre l’espace d’états cachés auquel nous sommes habitués. Il pourrait peut-être trouver un encodage plus efficace de bytes non appariés vers l’espace caché, mais cela paraît peu probable, étant donné que la tokenisation de la plupart des modèles repose déjà sur les propriétés statistiques du jeu d’apprentissage. Si l’on ne combine pas automatiquement « anti » ou « ism » en un seul token avant de les transmettre au modèle, les têtes d’attention des couches basses du modèle devront faire le même travail.
      Autrefois, on entraînait des modèles sur des séquences de caractères, puis on est passé à la tokenisation pour des raisons d’efficacité ; il est donc très probable que ce compromis n’en vaille pas la peine.
      [0] On ne peut pas simplement fournir une liste d’ID de tokens. Le token 123,25 n’a pas de signification mathématique, et augmenter ou diminuer l’ID d’un token n’a pas de sens non plus.
      [1] Les performances s’améliorent, mais l’interprétabilité devient plus difficile. En particulier, les vecteurs de base de l’espace caché ne correspondent pas directement à des mots ou à des concepts, et chaque concept existe en quelque sorte sur un tore à N dimensions.
  • Qualifier de moderne une mise à jour de techniques pour utiliser des méthodes inventées il y a seulement quelques années relève presque d’un problème de littératie. Moderne par opposition à quoi, l’échantillonnage classique des LLM ?

    • Avant de formuler ce genre de critique, mieux vaut commencer par consulter un dictionnaire.
      modern, adj. designed and made using the most recent ideas and methods
      https://dictionary.cambridge.org/us/dictionary/english/moder...
      Ce que décrit cet article correspond exactement à cette définition. Ces quelque sept dernières années, ce domaine a beaucoup progressé, et par exemple GPT 1, 2 et 3 sont clairement très anciens selon les critères actuels, et ne sont pas modernes au sens de la définition ci-dessus.
    • Une bonne partie de ces algorithmes ont été inventés vers 2019, par exemple TFS, ou sont encore plus anciens, comme temperature.
    • Les LLM sont bien plus anciens. Les prix Nobel concernés montrent aussi comment des percées remontant à plusieurs décennies ont été réalisées.
      ChatGPT n’a été que la percée grand public. Même avant cela, les claviers de smartphones utilisaient des LLM depuis 10 ans.
  • Document vraiment utile. Les explications sont très claires et le périmètre couvert est large.
    Quelqu’un sait qui l’a écrit ? L’auteur n’est pas indiqué et le texte est publié sur un pastebin Markdown gratuit.
    La partie sur la pénalité de répétition DRY m’a intéressé. Je veux souvent que les LLM recopient volontairement et exactement l’entrée dans leur sortie. Par exemple, quand je résume une longue conversation, je demande généralement des citations exactes qui illustrent le mieux les points abordés, car il est alors facile de les rechercher dans le texte original pour vérifier les faits.
    La pénalité DRY semble aller à l’encontre de cet objectif.

    • Je ne savais pas que l’auteur n’était pas indiqué. C’est un texte de @AlpinDale.