[
  {
    "id": "bahdanau-attention",
    "date": "2014-09-01",
    "category": "architecture",
    "essential": false,
    "title": {
      "fr": "L’attention avant le Transformer",
      "en": "Attention before the Transformer"
    },
    "summary": {
      "fr": "Le décodeur peut consulter différentes parties de la phrase source à chaque étape.",
      "en": "The decoder can consult different parts of the source sentence at every step."
    },
    "mechanism": {
      "fr": "Un réseau attribue des scores aux états de l’encodeur puis les combine en une somme pondérée. Cette attention souple évite de comprimer toute la phrase dans un seul vecteur.",
      "en": "A network scores encoder states and combines them into a weighted sum. This soft attention avoids compressing the entire sentence into a single vector."
    },
    "tradeoff": {
      "fr": "Le modèle reste récurrent : son calcul séquentiel limite le parallélisme.",
      "en": "The model remains recurrent, so sequential computation limits parallelism."
    },
    "origin": {
      "fr": "Traduction neuronale de Bahdanau, Cho et Bengio ; précurseur, pas Transformer.",
      "en": "Neural translation by Bahdanau, Cho and Bengio; a precursor, not a Transformer."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/1409.0473",
        "title": "Neural Machine Translation by Jointly Learning to Align and Translate"
      }
    ],
    "related": [
      "transformer"
    ],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Pour traduire, consulter les passages utiles plutôt que résumer toute la phrase une seule fois.",
        "en": "Translation can consult useful passages instead of squeezing the whole sentence into one fixed representation."
      },
      "problem": {
        "fr": "Une phrase longue perd des détails si tout doit tenir dans une seule représentation numérique.",
        "en": "A long sentence loses details if everything must fit into one numerical representation."
      },
      "idea": {
        "fr": "À chaque mot produit, le modèle attribue un score aux positions de la phrase source et combine leurs informations selon ces scores.",
        "en": "For each output word, the model scores positions in the source sentence and combines their information according to those scores."
      },
      "example": {
        "fr": "Pour traduire « le chat noir », il peut donner davantage de poids à « noir » au moment de produire la couleur.",
        "en": "When translating “the black cat”, it may give “black” more weight when producing the color word."
      },
      "gain": {
        "fr": "La traduction peut réutiliser des informations précises de la phrase source.",
        "en": "Translation can reuse specific information from the source sentence."
      },
      "limit": {
        "fr": "Le traitement avance encore étape par étape, ce qui limite les calculs simultanés.",
        "en": "Processing still proceeds step by step, limiting how much calculation can happen at once."
      }
    }
  },
  {
    "id": "adam",
    "date": "2014-12-22",
    "category": "training",
    "essential": true,
    "title": {
      "fr": "Adam : adapter les pas d’apprentissage",
      "en": "Adam: adaptive learning steps"
    },
    "summary": {
      "fr": "Adam facilite l’optimisation de réseaux comportant beaucoup de paramètres.",
      "en": "Adam makes networks with many parameters easier to optimize."
    },
    "mechanism": {
      "fr": "Il conserve des moyennes mobiles du gradient et de son carré pour adapter le pas de chaque poids. Une correction compense le biais de ces estimations au démarrage.",
      "en": "It tracks moving averages of gradients and squared gradients to adapt each weight’s update. A correction compensates for initial bias in these estimates."
    },
    "tradeoff": {
      "fr": "Les états supplémentaires consomment de la mémoire ; les réglages restent importants.",
      "en": "Extra optimizer states consume memory, and hyperparameters still matter."
    },
    "origin": {
      "fr": "Kingma et Ba : expériences sur plusieurs réseaux, sans premier LLM nommé.",
      "en": "Kingma and Ba: experiments on several networks, without a named first LLM."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/1412.6980",
        "title": "Adam: A Method for Stochastic Optimization"
      }
    ],
    "related": [
      "adafactor",
      "zero"
    ],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Adapter la taille des corrections pendant l’apprentissage.",
        "en": "Adjust the size of corrections during learning."
      },
      "problem": {
        "fr": "Corriger toutes les valeurs apprises avec le même pas peut rendre l’entraînement difficile.",
        "en": "Changing every learned value by the same step size can make training difficult."
      },
      "idea": {
        "fr": "Adam conserve un historique récent de la direction et de la taille des corrections. Il utilise ces moyennes pour ajuster le pas de chaque valeur apprise, appelée paramètre.",
        "en": "Adam keeps recent averages of correction directions and sizes. It uses them to adjust the step for each learned value, called a parameter."
      },
      "example": {
        "fr": "Une valeur qui reçoit régulièrement de grandes corrections peut recevoir un pas plus prudent.",
        "en": "A value that repeatedly receives large corrections can be assigned a more cautious step."
      },
      "gain": {
        "fr": "Cette adaptation facilite l’entraînement de nombreux réseaux.",
        "en": "This adjustment makes many networks easier to train."
      },
      "limit": {
        "fr": "Ces historiques occupent de la mémoire et ne rendent pas directement les réponses plus rapides après l’entraînement.",
        "en": "The histories take memory and do not directly make answers faster after training."
      }
    }
  },
  {
    "id": "bpe",
    "date": "2015-08-31",
    "category": "data",
    "essential": true,
    "title": {
      "fr": "BPE : représenter les mots par sous-unités",
      "en": "BPE: representing words with subword units"
    },
    "summary": {
      "fr": "Un vocabulaire de fragments permet de représenter des mots rares ou inconnus.",
      "en": "A vocabulary of fragments can represent rare or previously unseen words."
    },
    "mechanism": {
      "fr": "En partant de caractères, BPE fusionne les paires fréquentes pour construire un vocabulaire limité. Un mot nouveau est alors découpé en unités connues au lieu de devenir un symbole inconnu.",
      "en": "Starting with characters, BPE merges frequent pairs to build a limited vocabulary. New words can then be split into known units instead of becoming an unknown symbol."
    },
    "tradeoff": {
      "fr": "Le nombre de tokens dépend de la langue et du vocabulaire appris.",
      "en": "Token counts depend on the language and the learned vocabulary."
    },
    "origin": {
      "fr": "Sennrich et al., traduction neuronale ; prépublication 2015, publication ACL 2016.",
      "en": "Sennrich et al., neural translation; 2015 preprint, ACL publication in 2016."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/1508.07909",
        "title": "Neural Machine Translation of Rare Words with Subword Units"
      }
    ],
    "related": [
      "gpt2",
      "t5"
    ],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Découper les mots en fragments réutilisables.",
        "en": "Split words into reusable text pieces."
      },
      "problem": {
        "fr": "Un vocabulaire contenant seulement des mots entiers représente mal les mots rares ou nouveaux.",
        "en": "A vocabulary containing only whole words struggles with rare or new words."
      },
      "idea": {
        "fr": "La méthode commence par des caractères et regroupe progressivement les paires fréquentes. Le modèle utilise ensuite ce répertoire de morceaux de texte, appelés tokens.",
        "en": "The method starts with characters and repeatedly merges frequent pairs. The model then uses this vocabulary of text pieces, called tokens."
      },
      "example": {
        "fr": "Découpage fictif : « jardinage » devient « jardin » et « age », deux morceaux déjà connus.",
        "en": "Fictional split: “gardening” becomes “garden” and “ing”, two pieces already in the vocabulary."
      },
      "gain": {
        "fr": "Un vocabulaire limité peut ainsi représenter beaucoup de mots.",
        "en": "A limited vocabulary can represent many different words."
      },
      "limit": {
        "fr": "Le découpage varie selon les langues et les données : un mot ne correspond pas toujours à un seul morceau.",
        "en": "Splitting depends on languages and training data: one word does not always correspond to one piece."
      }
    }
  },
  {
    "id": "activation-checkpointing",
    "date": "2016-04-21",
    "category": "training",
    "essential": true,
    "title": {
      "fr": "Recalculer des activations pour économiser la mémoire",
      "en": "Recomputing activations to save memory"
    },
    "summary": {
      "fr": "Le checkpointing échange du calcul supplémentaire contre moins de mémoire pendant l’entraînement.",
      "en": "Checkpointing trades extra computation for less memory during training."
    },
    "mechanism": {
      "fr": "Au lieu de conserver toutes les activations du passage avant, on garde certains points de contrôle. Les activations manquantes sont recalculées lors de la rétropropagation, quand elles deviennent nécessaires.",
      "en": "Instead of storing every forward-pass activation, selected checkpoints are retained. Missing activations are recomputed during backpropagation when they become necessary."
    },
    "tradeoff": {
      "fr": "Le gain mémoire augmente le temps de calcul selon le découpage choisi.",
      "en": "Memory savings increase computation time according to the chosen partitioning."
    },
    "origin": {
      "fr": "Chen et al. : méthode générale illustrée notamment sur des réseaux profonds de vision.",
      "en": "Chen et al.: a general method demonstrated on deep networks including vision models."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/1604.06174",
        "title": "Training Deep Nets with Sublinear Memory Cost"
      }
    ],
    "related": [
      "gpipe",
      "zero"
    ],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Refaire certains calculs pour garder moins de résultats en mémoire.",
        "en": "Repeat some calculations to keep fewer intermediate results in memory."
      },
      "problem": {
        "fr": "Pendant l’entraînement, conserver tous les résultats intermédiaires peut remplir la mémoire disponible.",
        "en": "During training, retaining every intermediate result can fill the available memory."
      },
      "idea": {
        "fr": "On ne garde que certains résultats repères. Quand une correction a besoin d’un résultat absent, on refait les calculs depuis un repère conservé.",
        "en": "Only selected checkpoint results are kept. When a correction needs a missing result, calculations are repeated from a retained checkpoint."
      },
      "example": {
        "fr": "Exemple fictif : conserver le résultat de chaque troisième étape et recalculer les étapes intermédiaires au besoin.",
        "en": "Fictional example: retain every third stage and recalculate intermediate stages when needed."
      },
      "gain": {
        "fr": "On peut entraîner un réseau plus volumineux avec la même mémoire.",
        "en": "A larger network can be trained with the same memory."
      },
      "limit": {
        "fr": "Refaire les calculs augmente le travail et peut allonger l’entraînement.",
        "en": "Repeating calculations adds work and can lengthen training."
      }
    }
  },
  {
    "id": "gelu",
    "date": "2016-06-27",
    "category": "architecture",
    "essential": false,
    "title": {
      "fr": "GELU : une activation plus souple",
      "en": "GELU: a smoother activation"
    },
    "summary": {
      "fr": "GELU module progressivement les valeurs au lieu de couper toutes les entrées négatives.",
      "en": "GELU scales values smoothly instead of cutting off every negative input."
    },
    "mechanism": {
      "fr": "L’activation multiplie une entrée x par la probabilité cumulée d’une loi normale en x. Elle conserve une réponse douce près de zéro, dans les couches qui transforment individuellement chaque token.",
      "en": "The activation multiplies input x by the standard normal cumulative probability at x. It gives a smooth response near zero in layers that transform each token individually."
    },
    "tradeoff": {
      "fr": "Une meilleure activation ne réduit pas à elle seule le coût de l’attention.",
      "en": "A better activation does not by itself reduce attention cost."
    },
    "origin": {
      "fr": "Hendrycks et Gimpel ; expériences antérieures à BERT.",
      "en": "Hendrycks and Gimpel; experiments preceding BERT."
    },
    "adoption": {
      "fr": "BERT la reprend en 2018.",
      "en": "BERT adopts it in 2018."
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/1606.08415",
        "title": "Gaussian Error Linear Units (GELUs)"
      },
      {
        "url": "https://arxiv.org/abs/1810.04805",
        "title": "BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding"
      }
    ],
    "related": [
      "bert",
      "swiglu"
    ],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Moduler les valeurs internes progressivement plutôt que les couper brutalement.",
        "en": "Scale internal values gradually instead of cutting them off abruptly."
      },
      "problem": {
        "fr": "Une coupure nette des valeurs négatives limite la manière dont un réseau transforme ses informations.",
        "en": "A hard cutoff for negative values limits how a network transforms information."
      },
      "idea": {
        "fr": "Cette fonction atténue chaque valeur selon sa grandeur, avec une transition douce près de zéro. Elle intervient dans les étapes qui transforment séparément chaque morceau de texte.",
        "en": "This function scales each value according to its magnitude, with a smooth transition near zero. It operates in stages that transform each text piece separately."
      },
      "example": {
        "fr": "Une petite valeur négative est atténuée plutôt que systématiquement remplacée par zéro.",
        "en": "A small negative value is reduced rather than automatically replaced with zero."
      },
      "gain": {
        "fr": "Cette transformation fournit une autre manière d’ajuster les calculs internes pendant l’apprentissage.",
        "en": "This transformation offers another way to shape internal calculations during learning."
      },
      "limit": {
        "fr": "Elle ne réduit pas à elle seule le nombre de comparaisons entre les morceaux de texte.",
        "en": "It does not by itself reduce the number of comparisons between text pieces."
      }
    }
  },
  {
    "id": "layernorm",
    "date": "2016-07-21",
    "category": "architecture",
    "essential": true,
    "title": {
      "fr": "LayerNorm : stabiliser les activations",
      "en": "LayerNorm: stabilizing activations"
    },
    "summary": {
      "fr": "La normalisation par couche stabilise l’entraînement sans dépendre des autres exemples du lot.",
      "en": "Layer normalization stabilizes training without depending on other examples in the batch."
    },
    "mechanism": {
      "fr": "Pour un exemple et une couche, on recentre les activations et on ajuste leur échelle à partir de leurs statistiques. Des paramètres appris permettent ensuite de modifier cette transformation.",
      "en": "For one example and layer, activations are centered and rescaled using their statistics. Learned parameters can then modify this transformation."
    },
    "tradeoff": {
      "fr": "Son placement dans le bloc influence les gradients et la stabilité.",
      "en": "Its position inside a block affects gradients and stability."
    },
    "origin": {
      "fr": "Ba, Kiros et Hinton ; évaluations incluant des réseaux récurrents.",
      "en": "Ba, Kiros and Hinton; evaluations include recurrent networks."
    },
    "adoption": {
      "fr": "Le Transformer original utilise LayerNorm.",
      "en": "The original Transformer uses LayerNorm."
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/1607.06450",
        "title": "Layer Normalization"
      },
      {
        "url": "https://arxiv.org/abs/1706.03762",
        "title": "Transformer: attention becomes the architecture"
      }
    ],
    "related": [
      "pre-layernorm",
      "rmsnorm"
    ],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Remettre les valeurs internes à une échelle plus régulière.",
        "en": "Bring internal values to a more regular scale."
      },
      "problem": {
        "fr": "Des valeurs internes trop grandes ou trop dispersées peuvent compliquer l’entraînement.",
        "en": "Internal values that are too large or too spread out can make training difficult."
      },
      "idea": {
        "fr": "Pour chaque exemple, une étape de calcul recentre ses valeurs et ajuste leur dispersion. Des valeurs apprises permettent ensuite de modifier cette remise à l’échelle.",
        "en": "For each example, a calculation stage centers its values and adjusts their spread. Learned values then allow this rescaling to be modified."
      },
      "example": {
        "fr": "Une étape recevant des valeurs très dispersées peut les ramener à une échelle plus régulière.",
        "en": "A stage receiving widely scattered values can bring them to a more regular scale."
      },
      "gain": {
        "fr": "Les différentes étapes du réseau deviennent plus faciles à entraîner ensemble.",
        "en": "The network’s different stages become easier to train together."
      },
      "limit": {
        "fr": "L’endroit où cette opération est placée influence son effet sur l’apprentissage.",
        "en": "Where this operation is placed affects its influence on learning."
      }
    }
  },
  {
    "id": "sparse-moe",
    "date": "2017-01-23",
    "category": "architecture",
    "essential": true,
    "title": {
      "fr": "MoE : beaucoup de poids, peu d’experts actifs",
      "en": "MoE: many weights, few active experts"
    },
    "summary": {
      "fr": "Le calcul conditionnel augmente la capacité sans activer tous les paramètres pour chaque token.",
      "en": "Conditional computation increases capacity without activating every parameter for each token."
    },
    "mechanism": {
      "fr": "Un routeur choisit quelques réseaux experts et pondère leurs sorties. Des contraintes d’équilibrage encouragent l’utilisation des différents experts plutôt que leur concentration sur les mêmes tokens.",
      "en": "A router selects a few expert networks and weights their outputs. Load-balancing constraints encourage using different experts rather than concentrating tokens on the same ones."
    },
    "tradeoff": {
      "fr": "Il faut stocker les experts et gérer déséquilibres et communications.",
      "en": "Experts still require storage, load balancing and communication."
    },
    "origin": {
      "fr": "Shazeer et al. : couches MoE intégrées à des modèles récurrents de langage et traduction.",
      "en": "Shazeer et al.: MoE layers embedded in recurrent language and translation models."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/1701.06538",
        "title": "Outrageously Large Neural Networks: The Sparsely-Gated Mixture-of-Experts Layer"
      }
    ],
    "related": [
      "gshard",
      "switch-transformer",
      "mixtral",
      "deepseek-v3"
    ],
    "lineage": [
      {
        "family": "experts",
        "parent": "sparse-moe",
        "child": "switch-transformer",
        "kind": "improves",
        "explanation": {
          "fr": "Switch reprend le routage vers des experts épars et le simplifie : un seul expert est choisi pour chaque token.",
          "en": "Switch retains routing to sparse experts and simplifies it: a single expert is chosen for each token."
        },
        "source": {
          "url": "https://arxiv.org/abs/2101.03961",
          "title": "Switch Transformers: Scaling to Trillion Parameter Models with Simple and Efficient Sparsity"
        }
      },
      {
        "family": "experts",
        "parent": "sparse-moe",
        "child": "mixtral",
        "kind": "builds",
        "explanation": {
          "fr": "Mixtral reprend le principe des experts épars : chaque token est envoyé à deux des huit experts de chaque couche MoE.",
          "en": "Mixtral uses the sparse-expert principle: each token is sent to two of the eight experts in each MoE layer."
        },
        "source": {
          "url": "https://arxiv.org/abs/2401.04088",
          "title": "Mixtral of Experts"
        }
      }
    ],
    "lineage_families": [
      "experts"
    ],
    "beginner": {
      "summary": {
        "fr": "Disposer de nombreux sous-réseaux mais n’en utiliser que quelques-uns à chaque passage.",
        "en": "Keep many subnetworks but use only a few for each text piece."
      },
      "problem": {
        "fr": "Activer toutes les valeurs apprises d’un très grand réseau coûte beaucoup de calcul.",
        "en": "Activating every learned value in a very large network requires considerable calculation."
      },
      "idea": {
        "fr": "Un mécanisme de sélection dirige chaque morceau de texte vers quelques sous-réseaux, appelés experts. Leur spécialisation est apprise et ne correspond pas nécessairement à des sujets comme la médecine.",
        "en": "A selection mechanism sends each text piece to a few subnetworks, called experts. Their specialization is learned and does not necessarily match subjects such as medicine."
      },
      "example": {
        "fr": "Exemple fictif : sélectionner deux sous-réseaux parmi huit pour traiter un morceau de phrase.",
        "en": "Fictional example: choose two subnetworks out of eight to process a piece of a sentence."
      },
      "gain": {
        "fr": "Le réseau peut contenir davantage de valeurs apprises sans toutes les utiliser à chaque passage.",
        "en": "The network can contain more learned values without using them all on every pass."
      },
      "limit": {
        "fr": "Tous les experts doivent être stockés et leur charge de travail doit être équilibrée.",
        "en": "All experts must be stored and their workload must be balanced."
      }
    }
  },
  {
    "id": "silu",
    "date": "2017-02-10",
    "category": "architecture",
    "essential": false,
    "title": {
      "fr": "SiLU, puis Swish : une porte douce",
      "en": "SiLU, then Swish: a smooth gate"
    },
    "summary": {
      "fr": "La fonction x × sigmoid(x) devient une brique des couches à portes modernes.",
      "en": "The function x × sigmoid(x) becomes a building block of modern gated layers."
    },
    "mechanism": {
      "fr": "La sigmoïde module progressivement l’entrée sans éliminer brutalement toutes les valeurs négatives. Le papier Swish d’octobre 2017 étudie une famille x × sigmoid(βx), qui retrouve SiLU pour β = 1.",
      "en": "A sigmoid smoothly gates the input without abruptly eliminating every negative value. The October 2017 Swish paper studies x × sigmoid(βx), which becomes SiLU when β = 1."
    },
    "tradeoff": {
      "fr": "Le bénéfice dépend de l’architecture ; ce n’est pas encore SwiGLU.",
      "en": "Benefits depend on the architecture; this is not yet SwiGLU."
    },
    "origin": {
      "fr": "Elfwing et al., apprentissage par renforcement ; antérieur au papier Swish.",
      "en": "Elfwing et al., reinforcement learning; preceding the Swish paper."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/1702.03118",
        "title": "Sigmoid-Weighted Linear Units for Neural Network Function Approximation in Reinforcement Learning"
      },
      {
        "url": "https://arxiv.org/abs/1710.05941",
        "title": "Searching for Activation Functions"
      }
    ],
    "related": [
      "swiglu"
    ],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Laisser passer les valeurs internes avec une transition douce.",
        "en": "Pass internal values through a smooth transition."
      },
      "problem": {
        "fr": "Une coupure brutale des valeurs internes n’est pas toujours un bon choix pour apprendre.",
        "en": "A sharp cutoff of internal values is not always a good choice for learning."
      },
      "idea": {
        "fr": "La valeur entrante est multipliée par un facteur compris entre zéro et un, calculé à partir d’elle-même. Les valeurs négatives ne disparaissent donc pas toutes brutalement.",
        "en": "The input value is multiplied by a factor between zero and one calculated from that same input. Negative values therefore do not all disappear abruptly."
      },
      "example": {
        "fr": "Une valeur légèrement négative peut rester présente, tout en étant atténuée.",
        "en": "A slightly negative value can remain present while being reduced."
      },
      "gain": {
        "fr": "Cette fonction fournit une transformation souple pour les calculs internes du réseau.",
        "en": "This function provides a smooth transformation for the network’s internal calculations."
      },
      "limit": {
        "fr": "Son intérêt dépend du réseau et elle ne constitue pas, à elle seule, toute une architecture.",
        "en": "Its usefulness depends on the network and it is not a complete architecture by itself."
      }
    }
  },
  {
    "id": "rlhf-origins",
    "date": "2017-06-12",
    "category": "training",
    "essential": true,
    "title": {
      "fr": "Apprendre une récompense à partir de préférences humaines",
      "en": "Learning rewards from human preferences"
    },
    "summary": {
      "fr": "Des comparaisons humaines remplacent une récompense qu’il serait difficile d’écrire à la main.",
      "en": "Human comparisons replace a reward that would be difficult to write manually."
    },
    "mechanism": {
      "fr": "Des personnes comparent deux comportements. Un modèle apprend à prédire ces préférences, puis un agent optimise la récompense apprise par apprentissage par renforcement. Ce principe précède son application aux grands modèles de langage.",
      "en": "People compare two behaviors. A model learns to predict their preferences, then an agent optimizes that learned reward through reinforcement learning. The principle predates its use for large language models."
    },
    "tradeoff": {
      "fr": "La récompense peut mal représenter les préférences et être exploitée par l’agent.",
      "en": "The reward can misrepresent preferences and be exploited by the agent."
    },
    "origin": {
      "fr": "Christiano et al. : Atari et locomotion simulée, pas ChatGPT.",
      "en": "Christiano et al.: Atari and simulated locomotion, not ChatGPT."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/1706.03741",
        "title": "Deep reinforcement learning from human preferences"
      }
    ],
    "related": [
      "ppo",
      "rlhf-summarization",
      "instructgpt",
      "dpo",
      "grpo"
    ],
    "lineage": [
      {
        "family": "preferences",
        "parent": "rlhf-origins",
        "child": "instructgpt",
        "kind": "builds",
        "explanation": {
          "fr": "InstructGPT applique l’apprentissage d’une récompense à partir de préférences humaines pour ajuster un modèle de langage.",
          "en": "InstructGPT applies reward learning from human preferences to tune a language model."
        },
        "source": {
          "url": "https://arxiv.org/abs/2203.02155",
          "title": "Training language models to follow instructions with human feedback"
        }
      }
    ],
    "lineage_families": [
      "preferences"
    ],
    "beginner": {
      "summary": {
        "fr": "Utiliser des comparaisons humaines pour définir ce que l’entraînement doit favoriser.",
        "en": "Use human comparisons to define what training should encourage."
      },
      "problem": {
        "fr": "Il est difficile d’écrire une règle numérique qui exprime exactement le comportement souhaité.",
        "en": "It is difficult to write a numerical rule that captures exactly the desired behavior."
      },
      "idea": {
        "fr": "Des personnes choisissent entre deux comportements. Un modèle apprend à prédire ces choix, puis cette note apprise sert à orienter l’entraînement du système.",
        "en": "People choose between two behaviors. A model learns to predict their choices, and that learned score then guides the system’s training."
      },
      "example": {
        "fr": "Dans une simulation, des évaluateurs peuvent préférer un déplacement stable à une chute.",
        "en": "In a simulation, evaluators may prefer stable movement over falling down."
      },
      "gain": {
        "fr": "On peut guider un apprentissage sans programmer chaque détail du comportement attendu.",
        "en": "Learning can be guided without programming every detail of the desired behavior."
      },
      "limit": {
        "fr": "La note apprise peut mal représenter les préférences et être améliorée sans satisfaire leur intention.",
        "en": "The learned score can misrepresent preferences and improve without satisfying their intention."
      }
    }
  },
  {
    "id": "transformer",
    "date": "2017-06-12",
    "category": "architecture",
    "essential": true,
    "title": {
      "fr": "Transformer : l’attention devient l’architecture",
      "en": "Transformer: attention becomes the architecture"
    },
    "summary": {
      "fr": "Le Transformer supprime la récurrence pour paralléliser davantage le traitement des séquences.",
      "en": "The Transformer removes recurrence to parallelize sequence processing more effectively."
    },
    "mechanism": {
      "fr": "Chaque tête calcule des scores entre requêtes Q et clés K, puis combine les valeurs V. Les blocs alternent attention, réseau de transformation et connexions résiduelles ; une information de position restitue l’ordre des tokens.",
      "en": "Each head scores queries Q against keys K and combines values V. Blocks alternate attention, feed-forward transformations and residual connections; position information restores token order."
    },
    "tradeoff": {
      "fr": "L’attention dense compare toutes les paires : son coût croît quadratiquement avec la longueur.",
      "en": "Dense attention compares every pair, making its cost quadratic in sequence length."
    },
    "origin": {
      "fr": "Vaswani et al. : Transformer encodeur-décodeur pour la traduction.",
      "en": "Vaswani et al.: an encoder-decoder Transformer for translation."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/1706.03762",
        "title": "Attention Is All You Need"
      }
    ],
    "related": [
      "gpt1",
      "bert",
      "t5",
      "mqa",
      "gqa"
    ],
    "lineage": [
      {
        "family": "cache",
        "parent": "transformer",
        "child": "mqa",
        "kind": "improves",
        "explanation": {
          "fr": "MQA reprend les têtes d’attention du Transformer, mais leur fait partager une seule paire de clés et valeurs.",
          "en": "MQA retains Transformer attention heads but makes them share a single set of keys and values."
        },
        "source": {
          "url": "https://arxiv.org/abs/1911.02150",
          "title": "Fast Transformer Decoding: One Write-Head is All You Need"
        }
      },
      {
        "family": "state",
        "parent": "transformer",
        "child": "jamba",
        "kind": "combines",
        "explanation": {
          "fr": "Jamba conserve des couches d’attention au sein d’un modèle qui utilise aussi la mémoire récurrente de Mamba.",
          "en": "Jamba retains attention layers within a model that also uses Mamba’s recurrent memory."
        },
        "source": {
          "url": "https://arxiv.org/abs/2403.19887",
          "title": "Jamba: A Hybrid Transformer-Mamba Language Model"
        }
      }
    ],
    "lineage_families": [
      "cache",
      "state"
    ],
    "beginner": {
      "summary": {
        "fr": "Faire circuler les informations entre les morceaux d’un texte avec des comparaisons calculables en parallèle.",
        "en": "Connect text pieces through comparisons that can be calculated in parallel."
      },
      "problem": {
        "fr": "Traiter obligatoirement une phrase dans l’ordre limite la vitesse de l’entraînement.",
        "en": "Having to process a sentence strictly in order limits training speed."
      },
      "idea": {
        "fr": "Chaque morceau de texte consulte les autres grâce à des scores de pertinence : c’est l’attention. Plusieurs voies de lecture, appelées têtes, effectuent ces calculs dans des étapes successives.",
        "en": "Each text piece consults others using relevance scores: this is attention. Several reading paths, called heads, perform these calculations across successive stages."
      },
      "example": {
        "fr": "Dans « le chat mange car il a faim », une voie peut relier « il » à « chat ».",
        "en": "In “the cat eats because it is hungry”, one path may link “it” with “cat”."
      },
      "gain": {
        "fr": "Une grande partie des calculs sur un texte connu peut être effectuée en parallèle.",
        "en": "Much of the calculation over known text can happen in parallel."
      },
      "limit": {
        "fr": "Comparer toutes les paires de morceaux devient coûteux quand le texte s’allonge.",
        "en": "Comparing every pair of pieces becomes expensive as the text gets longer."
      }
    }
  },
  {
    "id": "ppo",
    "date": "2017-07-20",
    "category": "training",
    "essential": false,
    "title": {
      "fr": "PPO : limiter les mises à jour en renforcement",
      "en": "PPO: limiting reinforcement-learning updates"
    },
    "summary": {
      "fr": "PPO rend l’optimisation d’une politique plus praticable en limitant certaines variations trop fortes.",
      "en": "PPO makes policy optimization more practical by limiting some excessive changes."
    },
    "mechanism": {
      "fr": "L’algorithme compare la probabilité d’une action sous les politiques ancienne et nouvelle. Un objectif écrêté limite l’incitation à trop modifier cette probabilité pendant plusieurs mises à jour sur les mêmes données.",
      "en": "The algorithm compares action probabilities under old and new policies. A clipped objective limits incentives to change that probability excessively across several updates using the same data."
    },
    "tradeoff": {
      "fr": "L’écrêtage ne garantit pas une amélioration et le réglage reste délicat.",
      "en": "Clipping does not guarantee improvement, and tuning remains delicate."
    },
    "origin": {
      "fr": "Schulman et al. : tâches de contrôle et jeux, avant le RLHF des LLM.",
      "en": "Schulman et al.: control tasks and games, before LLM RLHF."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/1707.06347",
        "title": "Proximal Policy Optimization Algorithms"
      }
    ],
    "related": [
      "rlhf-origins",
      "rlhf-summarization"
    ],
    "lineage": [
      {
        "family": "preferences",
        "parent": "ppo",
        "child": "grpo",
        "kind": "improves",
        "explanation": {
          "fr": "GRPO adapte PPO en comparant les récompenses de plusieurs réponses à la même question, sans critique de valeur séparé.",
          "en": "GRPO adapts PPO by comparing rewards for several answers to the same question, without a separate value critic."
        },
        "source": {
          "url": "https://arxiv.org/abs/2402.03300",
          "title": "DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models"
        }
      }
    ],
    "lineage_families": [
      "preferences"
    ],
    "beginner": {
      "summary": {
        "fr": "Éviter de trop modifier un comportement en une seule série de corrections.",
        "en": "Avoid changing behavior too much within one series of updates."
      },
      "problem": {
        "fr": "Un entraînement guidé par des récompenses peut devenir instable si les choix changent trop brutalement.",
        "en": "Reward-guided training can become unstable when choices change too abruptly."
      },
      "idea": {
        "fr": "La méthode compare les probabilités des actions avant et après correction. Son objectif limite l’avantage obtenu en augmentant excessivement certaines probabilités.",
        "en": "The method compares action probabilities before and after an update. Its objective limits the benefit of increasing certain probabilities excessively."
      },
      "example": {
        "fr": "Un comportement bien noté devient plus probable, mais l’objectif limite l’incitation à le rendre brutalement dominant.",
        "en": "A well-scored behavior becomes more likely, but the objective limits the incentive to make it suddenly dominant."
      },
      "gain": {
        "fr": "Les mêmes observations peuvent servir à plusieurs corrections plus mesurées.",
        "en": "The same observations can support several more restrained updates."
      },
      "limit": {
        "fr": "Cette limitation ne garantit ni une amélioration à chaque correction ni un apprentissage facile à régler.",
        "en": "This limit guarantees neither improvement with every update nor easy tuning."
      }
    }
  },
  {
    "id": "mixed-precision",
    "date": "2017-10-10",
    "category": "training",
    "essential": true,
    "title": {
      "fr": "Précision mixte : calculer avec moins de bits",
      "en": "Mixed precision: computing with fewer bits"
    },
    "summary": {
      "fr": "La précision mixte réduit mémoire et coût des calculs sans tout effectuer en FP32.",
      "en": "Mixed precision reduces memory and compute costs without performing everything in FP32."
    },
    "mechanism": {
      "fr": "Les opérations utilisent notamment FP16, tandis que des poids maîtres et accumulations restent en FP32. La mise à l’échelle de la perte aide à préserver les petits gradients pendant la conversion.",
      "en": "Operations use formats such as FP16 while master weights and accumulations remain FP32. Loss scaling helps preserve small gradients during conversion."
    },
    "tradeoff": {
      "fr": "Les gains dépendent du matériel ; sous-flux et dépassements doivent être maîtrisés.",
      "en": "Gains depend on hardware, and underflow and overflow require control."
    },
    "origin": {
      "fr": "Micikevicius et al. : réseaux de vision, parole et langage.",
      "en": "Micikevicius et al.: vision, speech and language networks."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/1710.03740",
        "title": "Mixed Precision Training"
      }
    ],
    "related": [
      "megatron",
      "zero"
    ],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Utiliser des nombres moins encombrants pour une partie des calculs.",
        "en": "Use smaller numerical formats for part of the calculations."
      },
      "problem": {
        "fr": "Représenter tous les nombres avec beaucoup de précision consomme mémoire et capacité de calcul.",
        "en": "Representing every number with high precision consumes memory and computing capacity."
      },
      "idea": {
        "fr": "Une partie des opérations utilise des formats numériques plus courts. Les valeurs et accumulations sensibles restent plus précises, avec des ajustements pour ne pas perdre les très petites corrections.",
        "en": "Some operations use shorter numerical formats. Sensitive values and accumulated results remain more precise, with adjustments to preserve very small corrections."
      },
      "example": {
        "fr": "Les multiplications peuvent utiliser un format court tandis que les valeurs principales sont conservées dans un format plus précis.",
        "en": "Multiplications can use a short format while the main learned values are retained in a more precise one."
      },
      "gain": {
        "fr": "L’entraînement peut utiliser moins de mémoire et aller plus vite sur du matériel adapté.",
        "en": "Training can use less memory and run faster on suitable hardware."
      },
      "limit": {
        "fr": "Les arrondis et les nombres trop petits ou trop grands doivent être maîtrisés.",
        "en": "Rounding and numbers that are too small or too large must be controlled."
      }
    }
  },
  {
    "id": "ulmfit",
    "date": "2018-01-18",
    "category": "training",
    "essential": false,
    "title": {
      "fr": "ULMFiT : préentraîner, puis adapter",
      "en": "ULMFiT: pretrain, then adapt"
    },
    "summary": {
      "fr": "Un modèle de langage général peut être adapté efficacement à une tâche avec peu d’exemples.",
      "en": "A general language model can be adapted efficiently to a task with few examples."
    },
    "mechanism": {
      "fr": "Un réseau récurrent est préentraîné sur du texte, adapté au domaine cible puis utilisé pour la classification. Dégel progressif et taux d’apprentissage différenciés limitent l’oubli pendant l’adaptation.",
      "en": "A recurrent network is pretrained on text, adapted to the target domain and used for classification. Gradual unfreezing and discriminative learning rates limit forgetting during adaptation."
    },
    "tradeoff": {
      "fr": "Il s’agit surtout de classification supervisée, pas encore d’un assistant suivant des instructions.",
      "en": "The focus is supervised classification, not yet an instruction-following assistant."
    },
    "origin": {
      "fr": "Howard et Ruder : ULMFiT, fondé sur AWD-LSTM.",
      "en": "Howard and Ruder: ULMFiT, based on AWD-LSTM."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/1801.06146",
        "title": "Universal Language Model Fine-tuning for Text Classification"
      }
    ],
    "related": [
      "gpt1",
      "elmo"
    ],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Réutiliser un modèle déjà entraîné plutôt que repartir de zéro pour chaque tâche.",
        "en": "Reuse an already trained model instead of starting from scratch for every task."
      },
      "problem": {
        "fr": "Une tâche spécialisée dispose souvent de trop peu d’exemples pour entraîner un réseau complet depuis zéro.",
        "en": "A specialized task often has too few examples to train a complete network from scratch."
      },
      "idea": {
        "fr": "Le réseau apprend d’abord sur du texte général, puis sur le domaine visé. Ses étapes de calcul sont ensuite adaptées progressivement à la tâche pour limiter la perte des acquis.",
        "en": "The network first learns from general text, then from the target domain. Its calculation stages are adapted gradually to the task to limit loss of previous learning."
      },
      "example": {
        "fr": "Un modèle entraîné sur des textes généraux est adapté à des avis clients, puis au classement de leur tonalité.",
        "en": "A model trained on general writing is adapted to customer reviews, then to classifying their sentiment."
      },
      "gain": {
        "fr": "Les textes généraux deviennent utiles même lorsque les exemples spécialisés sont rares.",
        "en": "General text becomes useful even when specialized examples are scarce."
      },
      "limit": {
        "fr": "Cette méthode vise notamment le classement de textes, pas encore un assistant suivant librement des consignes.",
        "en": "This method targets tasks such as text classification, rather than an assistant freely following instructions."
      }
    }
  },
  {
    "id": "elmo",
    "date": "2018-02-15",
    "category": "training",
    "essential": false,
    "title": {
      "fr": "ELMo : le sens d’un mot dépend du contexte",
      "en": "ELMo: a word’s meaning depends on context"
    },
    "summary": {
      "fr": "Les représentations contextualisées remplacent un vecteur unique par mot par un vecteur dépendant de la phrase.",
      "en": "Contextual representations replace one fixed vector per word with a sentence-dependent vector."
    },
    "mechanism": {
      "fr": "Deux modèles récurrents de langage lisent le texte dans des directions opposées. Une combinaison de leurs couches fournit des représentations intégrées aux modèles des tâches aval.",
      "en": "Two recurrent language models read text in opposite directions. A combination of their layers provides representations incorporated into downstream task models."
    },
    "tradeoff": {
      "fr": "Les tâches conservent leur propre architecture ; la récurrence limite le parallélisme.",
      "en": "Tasks retain their own architectures, and recurrence limits parallelism."
    },
    "origin": {
      "fr": "Peters et al. : ELMo, modèle de langage bidirectionnel à LSTM.",
      "en": "Peters et al.: ELMo, a bidirectional LSTM language model."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/1802.05365",
        "title": "Deep contextualized word representations"
      }
    ],
    "related": [
      "bert"
    ],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Représenter un mot en tenant compte de la phrase qui l’entoure.",
        "en": "Represent a word using the sentence around it."
      },
      "problem": {
        "fr": "Une représentation fixe d’un mot ne distingue pas ses différents usages.",
        "en": "A fixed representation of a word cannot distinguish its different uses."
      },
      "idea": {
        "fr": "Deux réseaux lisent le texte dans des directions opposées. On combine leurs résultats pour obtenir une représentation du mot adaptée à son contexte, utilisable par un autre modèle.",
        "en": "Two networks read the text in opposite directions. Their results are combined into a context-sensitive representation of each word, which another model can use."
      },
      "example": {
        "fr": "« Avocat » reçoit des représentations différentes dans « manger un avocat » et « consulter un avocat ».",
        "en": "“Bank” receives different representations in “river bank” and “bank account”."
      },
      "gain": {
        "fr": "Les outils de traitement du texte bénéficient d’informations sur le contexte de chaque mot.",
        "en": "Text-processing tools gain information about each word’s surrounding context."
      },
      "limit": {
        "fr": "Les tâches gardent leurs propres modèles et la lecture reste en partie séquentielle.",
        "en": "Tasks still need their own models and reading remains partly sequential."
      }
    }
  },
  {
    "id": "relative-position",
    "date": "2018-03-06",
    "category": "architecture",
    "essential": false,
    "title": {
      "fr": "Positions relatives : encoder les distances",
      "en": "Relative positions: encoding distances"
    },
    "summary": {
      "fr": "L’attention peut tenir compte de la distance entre deux tokens plutôt que de leur seule position absolue.",
      "en": "Attention can account for the distance between tokens rather than only their absolute positions."
    },
    "mechanism": {
      "fr": "Des représentations apprises des distances relatives sont ajoutées aux calculs de l’attention. Deux mots séparés du même nombre de positions peuvent ainsi partager une information de relation, où qu’ils se trouvent.",
      "en": "Learned representations of relative distances enter attention calculations. Two words separated by the same distance can share relational information wherever they occur."
    },
    "tradeoff": {
      "fr": "Les distances sont bornées dans la formulation évaluée ; l’extrapolation n’est pas garantie.",
      "en": "Distances are clipped in the evaluated formulation, so extrapolation is not guaranteed."
    },
    "origin": {
      "fr": "Shaw, Uszkoreit et Vaswani : Transformer de traduction.",
      "en": "Shaw, Uszkoreit and Vaswani: a translation Transformer."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/1803.02155",
        "title": "Self-Attention with Relative Position Representations"
      }
    ],
    "related": [
      "transformer-xl",
      "rope",
      "alibi"
    ],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Indiquer la distance entre les morceaux de texte plutôt que seulement leur place absolue.",
        "en": "Indicate distance between text pieces rather than only their absolute positions."
      },
      "problem": {
        "fr": "Une même relation peut apparaître au début ou à la fin d’une phrase.",
        "en": "The same relationship can occur at the beginning or end of a sentence."
      },
      "idea": {
        "fr": "Les comparaisons d’attention incorporent des valeurs apprises qui représentent les distances relatives. Une relation de proximité peut ainsi être réutilisée ailleurs dans le texte.",
        "en": "Attention comparisons incorporate learned values representing relative distances. A nearby relationship can therefore be reused elsewhere in the text."
      },
      "example": {
        "fr": "« Très » placé juste avant un adjectif conserve cette proximité, même après l’ajout d’un début de phrase.",
        "en": "“Very” immediately before an adjective keeps that proximity even when an introduction is added to the sentence."
      },
      "gain": {
        "fr": "Le calcul dispose d’une information directe sur la distance entre les éléments.",
        "en": "The calculation gets direct information about distance between elements."
      },
      "limit": {
        "fr": "La version étudiée regroupe les grandes distances et ne garantit pas le traitement de textes arbitrairement longs.",
        "en": "The studied version groups large distances together and does not guarantee handling arbitrarily long text."
      }
    }
  },
  {
    "id": "adafactor",
    "date": "2018-04-11",
    "category": "training",
    "essential": false,
    "title": {
      "fr": "Adafactor : alléger la mémoire de l’optimiseur",
      "en": "Adafactor: reducing optimizer memory"
    },
    "summary": {
      "fr": "Adafactor réduit les états nécessaires pour adapter les mises à jour des grandes matrices.",
      "en": "Adafactor reduces the states needed to adapt updates of large matrices."
    },
    "mechanism": {
      "fr": "Au lieu de stocker une moyenne de gradients carrés pour chaque coefficient, il conserve des statistiques par ligne et colonne. Leur factorisation fournit une approximation moins coûteuse en mémoire.",
      "en": "Instead of storing a squared-gradient average for each matrix element, it retains row and column statistics. Their factorization gives a more memory-efficient approximation."
    },
    "tradeoff": {
      "fr": "L’approximation et les règles de mise à jour demandent des réglages adaptés.",
      "en": "The approximation and update rules require suitable settings."
    },
    "origin": {
      "fr": "Shazeer et Stern : évaluations sur Transformer de traduction, avant T5.",
      "en": "Shazeer and Stern: translation Transformer evaluations, before T5."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/1804.04235",
        "title": "Adafactor: Adaptive Learning Rates with Sublinear Memory Cost"
      }
    ],
    "related": [
      "adam",
      "t5"
    ],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Réduire la mémoire utilisée pour préparer les corrections d’apprentissage.",
        "en": "Reduce memory used to prepare learning updates."
      },
      "problem": {
        "fr": "Conserver un historique pour chaque valeur apprise ajoute beaucoup de mémoire pendant l’entraînement.",
        "en": "Keeping a history for every learned value adds substantial memory during training."
      },
      "idea": {
        "fr": "Pour un tableau de valeurs apprises, la méthode conserve des statistiques par ligne et par colonne. Leur combinaison remplace une partie des statistiques individuelles.",
        "en": "For a table of learned values, the method retains statistics for each row and column. Combining them replaces some per-value statistics."
      },
      "example": {
        "fr": "Au lieu d’un historique séparé pour chaque case d’un tableau, on conserve des résumés de ses lignes et colonnes.",
        "en": "Instead of a separate history for every cell in a table, summaries of its rows and columns are kept."
      },
      "gain": {
        "fr": "La préparation des corrections nécessite moins de mémoire.",
        "en": "Preparing updates requires less memory."
      },
      "limit": {
        "fr": "Ces résumés sont des approximations et les règles de correction doivent être réglées convenablement.",
        "en": "These summaries are approximations and the update rules still need appropriate settings."
      }
    }
  },
  {
    "id": "gpt1",
    "date": "2018-06-11",
    "category": "training",
    "essential": true,
    "title": {
      "fr": "GPT : le préentraînement génératif transférable",
      "en": "GPT: transferable generative pretraining"
    },
    "summary": {
      "fr": "Un Transformer entraîné à prédire le token suivant devient une base pour plusieurs tâches de compréhension.",
      "en": "A Transformer trained to predict the next token becomes a foundation for multiple understanding tasks."
    },
    "mechanism": {
      "fr": "Le décodeur apprend d’abord sur du texte non annoté avec un masque causal. Une adaptation supervisée ajuste ensuite ses poids pour chaque tâche en gardant presque la même architecture.",
      "en": "The decoder first learns from unlabeled text with a causal mask. Supervised fine-tuning then adapts its weights to each task while retaining almost the same architecture."
    },
    "tradeoff": {
      "fr": "Les résultats reposent encore surtout sur une adaptation distincte pour chaque tâche.",
      "en": "Results still rely mainly on separate fine-tuning for each task."
    },
    "origin": {
      "fr": "OpenAI : GPT, rapport Improving Language Understanding by Generative Pre-Training.",
      "en": "OpenAI: GPT, Improving Language Understanding by Generative Pre-Training."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://openai.com/index/language-unsupervised/",
        "title": "Improving language understanding with unsupervised learning"
      }
    ],
    "related": [
      "gpt2",
      "bert"
    ],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Apprendre à poursuivre du texte, puis adapter le même réseau à différentes tâches.",
        "en": "Learn to continue text, then adapt the same network to different tasks."
      },
      "problem": {
        "fr": "Entraîner séparément chaque outil de traitement du texte exploite peu les grandes collections de textes non annotés.",
        "en": "Training each text-processing tool separately makes limited use of large collections of unlabeled text."
      },
      "idea": {
        "fr": "Le modèle prédit le prochain morceau de texte à partir des précédents. Il ajuste ensuite ses valeurs apprises sur des exemples propres à chaque tâche, en conservant presque la même structure.",
        "en": "The model predicts the next text piece from previous pieces. It then adjusts its learned values on task-specific examples while keeping almost the same structure."
      },
      "example": {
        "fr": "Après cet apprentissage général, des exemples de questions et réponses servent à adapter le réseau.",
        "en": "After general training, question-and-answer examples can be used to adapt the network."
      },
      "gain": {
        "fr": "Un apprentissage général devient une base réutilisable pour plusieurs tâches.",
        "en": "General learning becomes a reusable starting point for several tasks."
      },
      "limit": {
        "fr": "La méthode repose encore surtout sur une adaptation séparée pour chaque tâche.",
        "en": "The method still relies mainly on separate adaptation for each task."
      }
    }
  },
  {
    "id": "bert",
    "date": "2018-10-11",
    "category": "training",
    "essential": true,
    "title": {
      "fr": "BERT : apprendre en reconstituant le texte masqué",
      "en": "BERT: learning to reconstruct masked text"
    },
    "summary": {
      "fr": "Le préentraînement bidirectionnel améliore la représentation et la compréhension du texte.",
      "en": "Bidirectional pretraining improves text representation and understanding."
    },
    "mechanism": {
      "fr": "Un encodeur Transformer reconstruit certains tokens cachés en consultant leur contexte gauche et droit. Le modèle original apprend aussi une tâche de relation entre phrases, puis est adapté aux tâches aval.",
      "en": "A Transformer encoder reconstructs hidden tokens using left and right context. The original model also learns a sentence-relationship task before downstream fine-tuning."
    },
    "tradeoff": {
      "fr": "Ce mécanisme n’est pas conçu directement pour générer une réponse token après token.",
      "en": "This mechanism is not directly designed for generating responses token by token."
    },
    "origin": {
      "fr": "Devlin et al., Google : BERT ; ni invention de GELU ni de LayerNorm.",
      "en": "Devlin et al., Google: BERT; neither the invention of GELU nor LayerNorm."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/1810.04805",
        "title": "BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding"
      }
    ],
    "related": [
      "elmo",
      "adapters"
    ],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Apprendre à retrouver des morceaux cachés en utilisant le texte situé des deux côtés.",
        "en": "Learn to recover hidden pieces using text on both sides."
      },
      "problem": {
        "fr": "Certaines tâches nécessitent de tenir compte à la fois de ce qui précède et de ce qui suit un mot.",
        "en": "Some tasks require considering what comes both before and after a word."
      },
      "idea": {
        "fr": "Pendant l’entraînement, le réseau reconstitue des morceaux masqués dans des phrases. Il est ensuite adapté à des tâches comme le classement ou la recherche d’une réponse dans un passage.",
        "en": "During training, the network reconstructs masked pieces in sentences. It is then adapted to tasks such as classification or finding an answer inside a passage."
      },
      "example": {
        "fr": "Dans « le chat boit du [masqué] », la phrase entière aide à prédire le morceau absent.",
        "en": "In “the cat drinks [masked]”, the surrounding sentence helps predict the missing piece."
      },
      "gain": {
        "fr": "Les représentations produites utilisent le contexte avant et après chaque emplacement.",
        "en": "The resulting representations use context before and after each position."
      },
      "limit": {
        "fr": "Ce mode de calcul n’est pas directement conçu pour rédiger une réponse morceau après morceau.",
        "en": "This calculation is not directly designed to write an answer one piece at a time."
      }
    }
  },
  {
    "id": "blockwise-decoding",
    "date": "2018-11-07",
    "category": "inference",
    "essential": false,
    "title": {
      "fr": "Décodage parallèle par blocs",
      "en": "Blockwise parallel decoding"
    },
    "summary": {
      "fr": "Proposer plusieurs positions à la fois peut réduire le nombre d’itérations de génération.",
      "en": "Proposing several positions at once can reduce generation iterations."
    },
    "mechanism": {
      "fr": "Des prédicteurs proposent un bloc de sorties, puis un modèle de contrôle valide le plus long préfixe acceptable. C’est un précurseur du décodage spéculatif, sans être identique aux algorithmes probabilistes ultérieurs.",
      "en": "Predictors propose an output block, then a scoring model validates the longest acceptable prefix. This precedes speculative decoding without being identical to later probabilistic algorithms."
    },
    "tradeoff": {
      "fr": "Les gains dépendent de l’accord entre propositions et validation.",
      "en": "Gains depend on agreement between proposals and validation."
    },
    "origin": {
      "fr": "Stern, Shazeer et Uszkoreit : traduction et super-résolution d’images.",
      "en": "Stern, Shazeer and Uszkoreit: translation and image super-resolution."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/1811.03115",
        "title": "Blockwise Parallel Decoding for Deep Autoregressive Models"
      }
    ],
    "related": [
      "mqa",
      "speculative-decoding",
      "medusa",
      "eagle",
      "eagle-2"
    ],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Proposer plusieurs morceaux de réponse, puis vérifier lesquels peuvent être conservés.",
        "en": "Propose several output pieces, then check which ones can be kept."
      },
      "problem": {
        "fr": "Produire un seul morceau de texte par passage du grand réseau prend du temps.",
        "en": "Producing only one text piece per pass through a large network takes time."
      },
      "idea": {
        "fr": "Des prédicteurs proposent un bloc de suite possible. Un modèle vérificateur conserve le début du bloc qui satisfait son critère, puis la génération reprend à partir de là.",
        "en": "Predictors propose a possible continuation block. A checking model keeps the beginning of the block that meets its acceptance rule, and generation resumes there."
      },
      "example": {
        "fr": "Exemple fictif : proposer trois morceaux et ne garder que les deux premiers après vérification.",
        "en": "Fictional example: propose three pieces and keep only the first two after checking."
      },
      "gain": {
        "fr": "Plusieurs morceaux peuvent être acceptés lors d’un même passage de vérification.",
        "en": "Several pieces may be accepted in one verification pass."
      },
      "limit": {
        "fr": "Le gain disparaît si les propositions concordent rarement avec le vérificateur.",
        "en": "The benefit disappears when proposals rarely agree with the checking model."
      }
    }
  },
  {
    "id": "gpipe",
    "date": "2018-11-16",
    "category": "training",
    "essential": true,
    "title": {
      "fr": "GPipe : répartir les couches en pipeline",
      "en": "GPipe: distributing layers in a pipeline"
    },
    "summary": {
      "fr": "Le pipeline permet d’entraîner un modèle dont toutes les couches ne tiennent pas sur un seul accélérateur.",
      "en": "Pipelining trains models whose layers do not all fit on one accelerator."
    },
    "mechanism": {
      "fr": "Les couches sont réparties entre appareils. Un lot est découpé en micro-lots qui avancent dans le pipeline, et leurs gradients sont accumulés avant une mise à jour des paramètres.",
      "en": "Layers are distributed across devices. A batch is divided into microbatches moving through the pipeline, and their gradients are accumulated before updating parameters."
    },
    "tradeoff": {
      "fr": "Des périodes d’inactivité et des transferts limitent le rendement du pipeline.",
      "en": "Idle periods and transfers limit pipeline efficiency."
    },
    "origin": {
      "fr": "Huang et al. : GPipe, démonstrations en vision et traduction multilingue.",
      "en": "Huang et al.: GPipe, demonstrations in vision and multilingual translation."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/1811.06965",
        "title": "GPipe: Efficient Training of Giant Neural Networks using Pipeline Parallelism"
      }
    ],
    "related": [
      "megatron",
      "activation-checkpointing"
    ],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Répartir les étapes d’un réseau entre plusieurs puces et faire avancer de petits groupes d’exemples.",
        "en": "Spread network stages across chips and move small groups of examples through them."
      },
      "problem": {
        "fr": "Un réseau complet peut être trop volumineux pour une seule puce de calcul.",
        "en": "A complete network can be too large for a single computing chip."
      },
      "idea": {
        "fr": "Les étapes successives du réseau sont placées sur différentes puces. Un groupe d’exemples est découpé en petits groupes qui avancent successivement, avant de rassembler leurs corrections.",
        "en": "Successive network stages are placed on different chips. A group of examples is split into smaller groups that move through these stages before their updates are combined."
      },
      "example": {
        "fr": "Exemple fictif : pendant qu’une puce traite un nouveau groupe, la suivante termine le précédent.",
        "en": "Fictional example: one chip handles a new group while the next finishes the preceding group."
      },
      "gain": {
        "fr": "Plusieurs puces peuvent participer à l’entraînement d’un même grand réseau.",
        "en": "Several chips can help train the same large network."
      },
      "limit": {
        "fr": "Les transferts et les périodes où certaines puces attendent réduisent l’efficacité.",
        "en": "Transfers and periods when some chips wait reduce efficiency."
      }
    }
  },
  {
    "id": "transformer-xl",
    "date": "2019-01-09",
    "category": "architecture",
    "essential": true,
    "title": {
      "fr": "Transformer-XL : réutiliser le segment précédent",
      "en": "Transformer-XL: reusing the preceding segment"
    },
    "summary": {
      "fr": "Une mémoire récurrente étend le contexte au-delà d’un segment de longueur fixe.",
      "en": "A recurrent memory extends context beyond a fixed-length segment."
    },
    "mechanism": {
      "fr": "Les états cachés d’un segment sont réutilisés pour traiter le suivant, avec arrêt du gradient à la frontière. Un encodage relatif évite de confondre les positions lors de cette réutilisation.",
      "en": "Hidden states from one segment are reused for the next, with gradients stopped at the boundary. Relative positions avoid confusing positions when those states are reused."
    },
    "tradeoff": {
      "fr": "Cette mémoire de segments ne constitue pas l’invention du cache KV de génération.",
      "en": "This segment memory is not the invention of the generation KV cache."
    },
    "origin": {
      "fr": "Dai et al. : Transformer-XL.",
      "en": "Dai et al.: Transformer-XL."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/1901.02860",
        "title": "Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context"
      }
    ],
    "related": [
      "relative-position",
      "s4"
    ],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Réutiliser les résultats du passage précédent pour relier des segments de texte.",
        "en": "Reuse previous results to connect successive text segments."
      },
      "problem": {
        "fr": "Découper un texte en segments indépendants coupe les liens entre leurs frontières.",
        "en": "Splitting text into independent segments breaks connections across their boundaries."
      },
      "idea": {
        "fr": "Le réseau conserve des représentations calculées sur le segment précédent et les consulte pendant le suivant. Une information de distance évite de confondre les positions quand ces résultats sont réutilisés.",
        "en": "The network retains representations from the preceding segment and consults them while processing the next. Distance information avoids confusing positions when these results are reused."
      },
      "example": {
        "fr": "Une phrase située au début d’un segment peut consulter des informations issues de la fin du précédent.",
        "en": "A sentence at the start of a segment can consult information from the end of the preceding segment."
      },
      "gain": {
        "fr": "Le traitement peut exploiter un contexte qui dépasse le segment courant.",
        "en": "Processing can use context beyond the current segment."
      },
      "limit": {
        "fr": "Cet état de travail est limité et ne constitue pas une mémoire personnelle persistante.",
        "en": "This working state is limited and is not persistent personal memory."
      }
    }
  },
  {
    "id": "adapters",
    "date": "2019-02-02",
    "category": "training",
    "essential": false,
    "title": {
      "fr": "Adapters : adapter un modèle avec peu de poids",
      "en": "Adapters: adapting a model with few weights"
    },
    "summary": {
      "fr": "De petits modules entraînables rendent l’adaptation à plusieurs tâches moins coûteuse en paramètres.",
      "en": "Small trainable modules make adapting to multiple tasks cheaper in parameters."
    },
    "mechanism": {
      "fr": "Des réseaux à goulot d’étranglement sont insérés dans un modèle préentraîné dont les poids principaux restent gelés. Chaque tâche stocke surtout ses modules supplémentaires plutôt qu’une copie complète du modèle.",
      "en": "Bottleneck networks are inserted into a pretrained model while its main weights remain frozen. Each task mainly stores its extra modules rather than a full model copy."
    },
    "tradeoff": {
      "fr": "Les modules ajoutent des opérations au passage avant et peuvent limiter les performances.",
      "en": "Modules add forward-pass operations and may limit performance."
    },
    "origin": {
      "fr": "Houlsby et al. : adapters évalués sur BERT.",
      "en": "Houlsby et al.: adapters evaluated on BERT."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/1902.00751",
        "title": "Parameter-Efficient Transfer Learning for NLP"
      }
    ],
    "related": [
      "prefix-tuning",
      "lora",
      "qlora",
      "ia3"
    ],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Ajouter de petits modules spécialisés sans modifier tout le réseau.",
        "en": "Add small task-specific modules without changing the whole network."
      },
      "problem": {
        "fr": "Conserver une copie complète d’un grand modèle pour chaque tâche consomme beaucoup de stockage.",
        "en": "Keeping a complete copy of a large model for every task consumes substantial storage."
      },
      "idea": {
        "fr": "On insère de petits réseaux dans les étapes d’un modèle existant. L’adaptation modifie surtout ces ajouts, tandis que les valeurs déjà apprises du modèle principal restent fixes.",
        "en": "Small networks are inserted into the stages of an existing model. Adaptation mainly updates these additions while the main model’s learned values remain fixed."
      },
      "example": {
        "fr": "Le même modèle principal peut être accompagné d’un module pour le classement et d’un autre pour une autre tâche.",
        "en": "The same main model can be paired with one module for classification and another for a different task."
      },
      "gain": {
        "fr": "Chaque tâche demande beaucoup moins de nouvelles valeurs à apprendre et à stocker.",
        "en": "Each task requires far fewer new values to learn and store."
      },
      "limit": {
        "fr": "Les modules ajoutent des calculs et peuvent limiter les performances selon la tâche.",
        "en": "The modules add calculations and may limit performance depending on the task."
      }
    }
  },
  {
    "id": "gpt2",
    "date": "2019-02-14",
    "category": "training",
    "essential": true,
    "title": {
      "fr": "GPT-2 : accomplir des tâches à partir du texte",
      "en": "GPT-2: performing tasks from text"
    },
    "summary": {
      "fr": "Le passage à l’échelle révèle des capacités zero-shot sans adaptation supervisée à chaque tâche.",
      "en": "Scaling reveals zero-shot abilities without supervised fine-tuning for every task."
    },
    "mechanism": {
      "fr": "Un décodeur causal prédit la suite sur un grand corpus Web. La forme du contexte sert à présenter une tâche, par exemple une question suivie du début d’une réponse.",
      "en": "A causal decoder predicts continuations over a large web corpus. Context formatting presents a task, such as a question followed by the beginning of an answer."
    },
    "tradeoff": {
      "fr": "Les résultats sont variables ; la prédiction de texte ne garantit ni véracité ni respect des consignes.",
      "en": "Results vary; text prediction guarantees neither truthfulness nor instruction following."
    },
    "origin": {
      "fr": "OpenAI : GPT-2, rapport Language Models are Unsupervised Multitask Learners.",
      "en": "OpenAI: GPT-2, Language Models are Unsupervised Multitask Learners."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://openai.com/index/better-language-models/",
        "title": "Better language models and their implications"
      }
    ],
    "related": [
      "gpt1",
      "gpt3"
    ],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Utiliser la continuation de texte pour aborder plusieurs tâches sans adaptation séparée systématique.",
        "en": "Use text continuation to attempt several tasks without always adapting a separate model."
      },
      "problem": {
        "fr": "Adapter et stocker un modèle différent pour chaque tâche demande du travail supplémentaire.",
        "en": "Adapting and storing a different model for every task takes additional work."
      },
      "idea": {
        "fr": "Le modèle apprend à poursuivre des textes issus du web. Présenter une question ou le début d’un résumé dans le contexte peut ensuite orienter le type de continuation produit.",
        "en": "The model learns to continue web text. Putting a question or the start of a summary in its context can then steer the kind of continuation it produces."
      },
      "example": {
        "fr": "Une entrée terminée par « Question : … Réponse : » peut orienter la suite vers une réponse.",
        "en": "An input ending with “Question: … Answer:” can steer the continuation toward an answer."
      },
      "gain": {
        "fr": "La forme du texte fourni devient une manière de solliciter plusieurs comportements.",
        "en": "The format of the supplied text becomes a way to request different behaviors."
      },
      "limit": {
        "fr": "Prédire une suite plausible ne garantit ni la vérité ni le respect d’une consigne.",
        "en": "Predicting a plausible continuation guarantees neither truth nor instruction following."
      }
    }
  },
  {
    "id": "product-key-memory",
    "date": "2019-07-10",
    "category": "architecture",
    "essential": false,
    "title": {
      "fr": "Product Key Memory : une grande mémoire adressable",
      "en": "Product Key Memory: large addressable memory"
    },
    "summary": {
      "fr": "Une couche mémoire augmente la capacité en consultant seulement quelques valeurs à chaque requête.",
      "en": "A memory layer increases capacity while retrieving only a few values for each query."
    },
    "mechanism": {
      "fr": "Les clés sont factorisées en deux ensembles pour rechercher efficacement dans leur produit cartésien. Les meilleures correspondances sélectionnent des valeurs apprises, utilisées à la place de certaines transformations denses.",
      "en": "Keys are factorized into two sets to search efficiently over their Cartesian product. The best matches select learned values used in place of some dense transformations."
    },
    "tradeoff": {
      "fr": "Il s’agit de paramètres internes, pas d’une base documentaire externe ni d’un MoE classique.",
      "en": "These are internal parameters, not an external document database or a conventional MoE."
    },
    "origin": {
      "fr": "Lample et al. : modèles de langage expérimentaux avec couches PKM.",
      "en": "Lample et al.: experimental language models with PKM layers."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/1907.05242",
        "title": "Large Memory Layers with Product Keys"
      }
    ],
    "related": [
      "sparse-moe",
      "retro"
    ],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Sélectionner efficacement des valeurs apprises dans une grande réserve interne.",
        "en": "Efficiently select learned values from a large internal store."
      },
      "problem": {
        "fr": "Une grande réserve de valeurs internes devient coûteuse si chaque entrée doit être examinée entièrement.",
        "en": "A large internal store becomes expensive if every entry must be examined fully."
      },
      "idea": {
        "fr": "Les clés de recherche sont construites en combinant deux ensembles plus petits. Cette organisation aide à retrouver les meilleures correspondances, dont les valeurs servent dans le calcul du réseau.",
        "en": "Search keys are built by combining two smaller sets. This organization helps find the best matches, whose values are then used in the network’s calculation."
      },
      "example": {
        "fr": "Une représentation de texte sélectionne quelques entrées pertinentes au lieu de combiner toutes les entrées disponibles.",
        "en": "A text representation selects a few relevant entries instead of combining all available entries."
      },
      "gain": {
        "fr": "Le réseau peut exploiter une grande réserve interne avec une recherche plus économique.",
        "en": "The network can use a large internal store with a cheaper search."
      },
      "limit": {
        "fr": "Il s’agit de valeurs apprises internes, pas d’une base documentaire externe à consulter.",
        "en": "These are internal learned values, not an external document database to consult."
      }
    }
  },
  {
    "id": "megatron",
    "date": "2019-09-17",
    "category": "training",
    "essential": true,
    "title": {
      "fr": "Megatron-LM : répartir les matrices entre GPU",
      "en": "Megatron-LM: splitting matrices across GPUs"
    },
    "summary": {
      "fr": "Le parallélisme tensoriel permet d’entraîner des Transformers trop larges pour un seul GPU.",
      "en": "Tensor parallelism trains Transformers too wide for a single GPU."
    },
    "mechanism": {
      "fr": "Les grandes multiplications des couches d’attention et de transformation sont découpées entre appareils. Des communications collectives recombinent leurs résultats, en complément du parallélisme sur les données.",
      "en": "Large multiplications in attention and feed-forward layers are split across devices. Collective communication recombines their results, complementing data parallelism."
    },
    "tradeoff": {
      "fr": "Les GPU doivent échanger rapidement ; une interconnexion lente réduit les gains.",
      "en": "GPUs must communicate quickly; slow interconnects reduce benefits."
    },
    "origin": {
      "fr": "Shoeybi et al., NVIDIA : modèles de type GPT et BERT à plusieurs milliards de paramètres.",
      "en": "Shoeybi et al., NVIDIA: GPT- and BERT-style models with billions of parameters."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/1909.08053",
        "title": "Megatron-LM: Training Multi-Billion Parameter Language Models Using Model Parallelism"
      }
    ],
    "related": [
      "gpipe",
      "zero"
    ],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Partager les gros calculs d’une même étape entre plusieurs puces.",
        "en": "Share large calculations within one stage across several chips."
      },
      "problem": {
        "fr": "Certaines opérations d’un grand réseau sont trop volumineuses pour une seule puce.",
        "en": "Some operations in a large network are too big for a single chip."
      },
      "idea": {
        "fr": "Les grandes multiplications sont divisées entre plusieurs puces de calcul. Celles-ci échangent ensuite leurs résultats pour reconstituer la sortie nécessaire à la suite du réseau.",
        "en": "Large multiplications are divided among computing chips. The chips then exchange their results to reconstruct the output needed by the rest of the network."
      },
      "example": {
        "fr": "Exemple fictif : deux puces calculent chacune une partie du même grand tableau de résultats.",
        "en": "Fictional example: two chips each calculate part of the same large table of results."
      },
      "gain": {
        "fr": "Une étape de calcul peut dépasser la capacité individuelle d’une puce.",
        "en": "A calculation stage can exceed the capacity of an individual chip."
      },
      "limit": {
        "fr": "Les échanges doivent être rapides, sinon la communication absorbe une grande partie du gain.",
        "en": "Exchanges must be fast, or communication consumes much of the benefit."
      }
    }
  },
  {
    "id": "zero",
    "date": "2019-10-04",
    "category": "training",
    "essential": true,
    "title": {
      "fr": "ZeRO : partager les états plutôt que les dupliquer",
      "en": "ZeRO: sharding states instead of duplicating them"
    },
    "summary": {
      "fr": "ZeRO réduit la mémoire redondante du parallélisme sur les données.",
      "en": "ZeRO reduces redundant memory in data-parallel training."
    },
    "mechanism": {
      "fr": "Les états d’optimiseur, puis les gradients et les paramètres selon le niveau, sont partitionnés entre appareils. Les données nécessaires sont communiquées au moment de leur utilisation.",
      "en": "Optimizer states, then gradients and parameters depending on the stage, are partitioned across devices. Required data is communicated when it is needed."
    },
    "tradeoff": {
      "fr": "Moins de mémoire locale implique de gérer davantage de communications.",
      "en": "Lower local memory usage requires managing additional communication."
    },
    "origin": {
      "fr": "Rajbhandari et al., Microsoft : ZeRO, ensuite intégré à DeepSpeed.",
      "en": "Rajbhandari et al., Microsoft: ZeRO, subsequently integrated into DeepSpeed."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/1910.02054",
        "title": "ZeRO: Memory Optimizations Toward Training Trillion Parameter Models"
      }
    ],
    "related": [
      "megatron",
      "activation-checkpointing"
    ],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Éviter que chaque puce conserve toutes les mêmes données d’entraînement.",
        "en": "Avoid keeping all the same training data on every chip."
      },
      "problem": {
        "fr": "Copier sur chaque puce les valeurs du modèle et toutes les données de correction gaspille de la mémoire.",
        "en": "Copying model values and all update information onto every chip wastes memory."
      },
      "idea": {
        "fr": "La méthode répartit les historiques de correction entre puces. Selon sa version, elle répartit aussi les corrections et les valeurs apprises, puis échange les éléments nécessaires au bon moment.",
        "en": "The method divides update histories among chips. Depending on the version, it also divides updates and learned values, exchanging the required elements when needed."
      },
      "example": {
        "fr": "Chaque puce garde une partie des historiques au lieu d’en conserver une copie complète.",
        "en": "Each chip keeps part of the update histories instead of a complete copy."
      },
      "gain": {
        "fr": "La mémoire locale peut accueillir une part d’un modèle beaucoup plus grand.",
        "en": "Local memory can accommodate a share of a much larger model."
      },
      "limit": {
        "fr": "Les données économisées localement doivent être échangées, ce qui ajoute de la communication.",
        "en": "Data saved from local storage must be exchanged, adding communication."
      }
    }
  },
  {
    "id": "rmsnorm",
    "date": "2019-10-16",
    "category": "architecture",
    "essential": true,
    "title": {
      "fr": "RMSNorm : normaliser sans recentrer",
      "en": "RMSNorm: normalizing without centering"
    },
    "summary": {
      "fr": "RMSNorm simplifie LayerNorm en supprimant le calcul et la soustraction de la moyenne.",
      "en": "RMSNorm simplifies LayerNorm by removing mean computation and subtraction."
    },
    "mechanism": {
      "fr": "Chaque vecteur est divisé par sa valeur quadratique moyenne, puis modulé par une échelle apprise. La méthode conserve une invariance à l’échelle avec moins d’opérations de normalisation.",
      "en": "Each vector is divided by its root mean square and modulated by a learned scale. The method preserves scale invariance with fewer normalization operations."
    },
    "tradeoff": {
      "fr": "L’équivalence de qualité dépend du modèle et de son entraînement.",
      "en": "Equivalent quality depends on the model and its training."
    },
    "origin": {
      "fr": "Zhang et Sennrich : expériences sur plusieurs architectures, avant LLaMA.",
      "en": "Zhang and Sennrich: experiments across architectures, before LLaMA."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/1910.07467",
        "title": "Root Mean Square Layer Normalization"
      }
    ],
    "related": [
      "layernorm",
      "pre-layernorm"
    ],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Régler l’échelle des valeurs internes avec une opération simplifiée.",
        "en": "Adjust the scale of internal values with a simpler operation."
      },
      "problem": {
        "fr": "La remise à l’échelle des valeurs internes ajoute des calculs à chaque étape du réseau.",
        "en": "Rescaling internal values adds calculations at every network stage."
      },
      "idea": {
        "fr": "La méthode mesure la grandeur moyenne des valeurs et les divise par cette échelle. Contrairement à une normalisation plus complète, elle ne commence pas par soustraire leur moyenne.",
        "en": "The method measures the average magnitude of values and divides them by that scale. Unlike fuller normalization, it does not first subtract their mean."
      },
      "example": {
        "fr": "Un groupe de valeurs très grandes peut être ramené à une échelle plus régulière sans être recentré.",
        "en": "A group of very large values can be brought to a more regular scale without being centered."
      },
      "gain": {
        "fr": "Le réseau conserve une remise à l’échelle avec moins d’opérations.",
        "en": "The network retains rescaling with fewer operations."
      },
      "limit": {
        "fr": "Obtenir des résultats comparables dépend du réseau et de la manière dont il est entraîné.",
        "en": "Getting comparable results depends on the network and how it is trained."
      }
    }
  },
  {
    "id": "t5",
    "date": "2019-10-23",
    "category": "training",
    "essential": true,
    "title": {
      "fr": "T5 : toutes les tâches deviennent du texte vers du texte",
      "en": "T5: every task becomes text-to-text"
    },
    "summary": {
      "fr": "T5 unifie traduction, résumé et classification dans une même interface d’entrée et sortie textuelles.",
      "en": "T5 unifies translation, summarization and classification through text inputs and outputs."
    },
    "mechanism": {
      "fr": "Un encodeur-décodeur est préentraîné à reconstruire des portions masquées, puis adapté à des tâches formulées en texte. Des biais de position relative regroupent les distances dans des intervalles.",
      "en": "An encoder-decoder is pretrained to reconstruct masked spans, then adapted to text-formulated tasks. Relative-position biases group distances into buckets."
    },
    "tradeoff": {
      "fr": "L’unification du format ne supprime ni le coût du préentraînement ni les besoins en données.",
      "en": "A unified format removes neither pretraining cost nor data requirements."
    },
    "origin": {
      "fr": "Raffel et al., Google : T5 et corpus C4.",
      "en": "Raffel et al., Google: T5 and the C4 corpus."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/1910.10683",
        "title": "Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer"
      }
    ],
    "related": [
      "bert",
      "flan",
      "swiglu"
    ],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Présenter différentes tâches sous une même forme : du texte en entrée, du texte en sortie.",
        "en": "Give different tasks one shared form: text in, text out."
      },
      "problem": {
        "fr": "Des formats et structures différents pour chaque tâche compliquent leur comparaison et leur réutilisation.",
        "en": "Different formats and structures for every task complicate comparison and reuse."
      },
      "idea": {
        "fr": "Le réseau apprend d’abord à reconstruire des passages retirés de textes. Il est ensuite adapté à plusieurs tâches formulées en texte, avec une partie qui lit et une autre qui produit la sortie.",
        "en": "The network first learns to reconstruct passages removed from text. It is then adapted to tasks expressed as text, using one part to read and another to produce output."
      },
      "example": {
        "fr": "« Traduire : bonjour » et « Résumer : … » utilisent tous deux une entrée textuelle et une réponse textuelle.",
        "en": "“Translate: bonjour” and “Summarize: …” both use textual input and textual output."
      },
      "gain": {
        "fr": "Un même cadre peut servir à la traduction, au résumé et à d’autres tâches.",
        "en": "One framework can serve translation, summarization and other tasks."
      },
      "limit": {
        "fr": "Un format commun ne supprime pas le coût de l’apprentissage ni le besoin de données.",
        "en": "A shared format removes neither training cost nor the need for data."
      }
    }
  },
  {
    "id": "mqa",
    "date": "2019-11-06",
    "category": "architecture",
    "essential": true,
    "title": {
      "fr": "MQA : partager les clés et valeurs",
      "en": "MQA: sharing keys and values"
    },
    "summary": {
      "fr": "Le partage des clés et valeurs réduit le cache et les lectures mémoire pendant la génération.",
      "en": "Sharing keys and values reduces cache size and memory reads during generation."
    },
    "mechanism": {
      "fr": "Les têtes gardent des requêtes différentes mais utilisent un seul ensemble de clés et valeurs. Le cache conserve les représentations des tokens précédents afin de ne pas les recalculer à chaque étape.",
      "en": "Heads keep different queries but share one set of keys and values. The cache retains previous tokens’ representations so they need not be recomputed at every step."
    },
    "tradeoff": {
      "fr": "Le partage peut réduire la qualité ; le gain réel dépend du matériel et du lot.",
      "en": "Sharing can reduce quality; actual gains depend on hardware and batch size."
    },
    "origin": {
      "fr": "Shazeer : variantes de Transformer testées en traduction et modélisation du langage.",
      "en": "Shazeer: Transformer variants tested on translation and language modeling."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/1911.02150",
        "title": "Fast Transformer Decoding: One Write-Head is All You Need"
      }
    ],
    "related": [
      "transformer",
      "gqa",
      "mla"
    ],
    "lineage": [
      {
        "family": "cache",
        "parent": "transformer",
        "child": "mqa",
        "kind": "improves",
        "explanation": {
          "fr": "MQA reprend les têtes d’attention du Transformer, mais leur fait partager une seule paire de clés et valeurs.",
          "en": "MQA retains Transformer attention heads but makes them share a single set of keys and values."
        },
        "source": {
          "url": "https://arxiv.org/abs/1911.02150",
          "title": "Fast Transformer Decoding: One Write-Head is All You Need"
        }
      },
      {
        "family": "cache",
        "parent": "mqa",
        "child": "gqa",
        "kind": "improves",
        "explanation": {
          "fr": "GQA généralise MQA : plusieurs groupes partagent les clés et valeurs, au lieu d’un partage unique entre toutes les têtes.",
          "en": "GQA generalizes MQA: several groups share keys and values, instead of one shared set for all heads."
        },
        "source": {
          "url": "https://arxiv.org/abs/2305.13245",
          "title": "GQA: Training Generalized Multi-Query Transformer Models from Multi-Head Checkpoints"
        }
      }
    ],
    "lineage_families": [
      "cache"
    ],
    "beginner": {
      "summary": {
        "fr": "Faire partager les informations conservées entre les voies de lecture.",
        "en": "Let attention’s reading paths share the information kept from earlier text."
      },
      "problem": {
        "fr": "Pendant la rédaction, garder des informations distinctes pour chaque voie de lecture prend beaucoup de mémoire.",
        "en": "While writing, retaining separate information for every reading path uses substantial memory."
      },
      "idea": {
        "fr": "Les voies gardent des requêtes différentes mais partagent les mêmes clés et valeurs : les données servant à retrouver et combiner le texte précédent. Leur cache est une mémoire de calcul temporaire.",
        "en": "Paths keep different queries but share keys and values: data used to locate and combine earlier text. Their cache is temporary calculation memory."
      },
      "example": {
        "fr": "Plusieurs voies consultent le même ensemble de données conservées, au lieu d’en conserver chacune un ensemble distinct.",
        "en": "Several paths consult the same retained data instead of each keeping a separate set."
      },
      "gain": {
        "fr": "La mémoire temporaire et les données à relire peuvent être réduites.",
        "en": "Temporary memory and the amount of data reread can be reduced."
      },
      "limit": {
        "fr": "Ce partage peut dégrader les résultats ; le gain de vitesse dépend du matériel.",
        "en": "Sharing can reduce output quality; speed gains depend on the hardware."
      }
    }
  },
  {
    "id": "reformer",
    "date": "2020-01-13",
    "category": "architecture",
    "essential": false,
    "title": {
      "fr": "Reformer : rechercher les tokens semblables",
      "en": "Reformer: finding similar tokens"
    },
    "summary": {
      "fr": "Reformer allège le traitement de longues séquences grâce au hachage et aux blocs réversibles.",
      "en": "Reformer makes long-sequence processing cheaper through hashing and reversible blocks."
    },
    "mechanism": {
      "fr": "Un hachage regroupe les vecteurs semblables pour restreindre leurs comparaisons d’attention. Des couches réversibles permettent de reconstruire certaines activations plutôt que de toutes les conserver pendant l’entraînement.",
      "en": "Hashing groups similar vectors to restrict attention comparisons. Reversible layers reconstruct some activations instead of retaining all of them during training."
    },
    "tradeoff": {
      "fr": "Les comparaisons sont approximatives et les performances pratiques dépendent des kernels.",
      "en": "Comparisons are approximate, and practical performance depends on kernels."
    },
    "origin": {
      "fr": "Kitaev, Kaiser et Levskaya : Reformer.",
      "en": "Kitaev, Kaiser and Levskaya: Reformer."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2001.04451",
        "title": "Reformer: The Efficient Transformer"
      }
    ],
    "related": [
      "longformer",
      "linear-attention"
    ],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Limiter les comparaisons et reconstruire certains résultats internes pour traiter des textes plus longs.",
        "en": "Limit comparisons and reconstruct some internal results to handle longer text."
      },
      "problem": {
        "fr": "Comparer tous les morceaux d’un long texte et conserver tous les résultats coûte beaucoup de mémoire.",
        "en": "Comparing every piece of long text and retaining all results uses substantial memory."
      },
      "idea": {
        "fr": "La méthode regroupe des représentations similaires pour limiter leurs comparaisons. Elle utilise aussi des étapes réversibles, capables de reconstruire certains résultats précédents plutôt que les stocker.",
        "en": "The method groups similar representations to limit comparisons. It also uses reversible stages that reconstruct some previous results instead of storing them."
      },
      "example": {
        "fr": "Les morceaux placés dans un même groupe sont comparés entre eux sans examiner systématiquement toutes les autres paires.",
        "en": "Pieces placed in the same group are compared without systematically examining every other possible pair."
      },
      "gain": {
        "fr": "Ces choix diminuent certains coûts de mémoire et de calcul sur les longues séquences.",
        "en": "These choices reduce some memory and calculation costs for long sequences."
      },
      "limit": {
        "fr": "Les comparaisons sont approximatives et les gains pratiques dépendent de l’implémentation.",
        "en": "Comparisons are approximate and practical benefits depend on the implementation."
      }
    }
  },
  {
    "id": "scaling-laws",
    "date": "2020-01-23",
    "category": "training",
    "essential": true,
    "title": {
      "fr": "Lois d’échelle : relier calcul, données et taille",
      "en": "Scaling laws: linking compute, data and size"
    },
    "summary": {
      "fr": "Des régularités empiriques aident à prévoir la perte d’un modèle avant de financer un entraînement massif.",
      "en": "Empirical regularities help predict model loss before committing to massive training runs."
    },
    "mechanism": {
      "fr": "Kaplan et al. ajustent des lois de puissance reliant perte, paramètres, données et calcul. Ces courbes suggèrent comment répartir un budget ; elles ne décrivent pas une architecture nouvelle.",
      "en": "Kaplan et al. fit power laws relating loss, parameters, data and compute. These curves suggest how to allocate a budget; they do not describe a new architecture."
    },
    "tradeoff": {
      "fr": "Les recommandations dépendent des expériences et seront révisées, notamment par Chinchilla.",
      "en": "Recommendations depend on the experiments and are later revised, notably by Chinchilla."
    },
    "origin": {
      "fr": "OpenAI : séries expérimentales de modèles de langage autorégressifs.",
      "en": "OpenAI: experimental series of autoregressive language models."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2001.08361",
        "title": "Scaling Laws for Neural Language Models"
      }
    ],
    "related": [
      "gpt3"
    ],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Mesurer comment les résultats changent avec la taille du modèle, les données et le calcul.",
        "en": "Measure how results change with model size, data and computation."
      },
      "problem": {
        "fr": "Un budget limité oblige à choisir entre un modèle plus grand et davantage d’entraînement.",
        "en": "A limited budget forces a choice between a larger model and more training."
      },
      "idea": {
        "fr": "Les chercheurs entraînent des modèles de différentes tailles et ajustent des courbes à leurs erreurs de prédiction. Ces courbes servent à estimer des compromis de budget.",
        "en": "Researchers train models at different sizes and fit curves to their prediction errors. These curves help estimate budget tradeoffs."
      },
      "example": {
        "fr": "Avant un grand entraînement, plusieurs essais plus petits aident à comparer différentes répartitions du calcul.",
        "en": "Before a large training run, smaller experiments help compare different allocations of computation."
      },
      "gain": {
        "fr": "Ces mesures donnent une méthode pour préparer les dépenses d’entraînement.",
        "en": "These measurements provide a method for planning training expenditure."
      },
      "limit": {
        "fr": "Les conclusions dépendent des expériences et ne garantissent pas toutes les capacités d’un futur modèle.",
        "en": "The conclusions depend on the experiments and do not guarantee every capability of a future model."
      }
    }
  },
  {
    "id": "pre-layernorm",
    "date": "2020-02-12",
    "category": "architecture",
    "essential": true,
    "title": {
      "fr": "Pre-LN : placer la normalisation avant le calcul",
      "en": "Pre-LN: putting normalization before computation"
    },
    "summary": {
      "fr": "Le placement de la normalisation dans le bloc influence la stabilité de l’entraînement.",
      "en": "Where normalization sits inside a block affects training stability."
    },
    "mechanism": {
      "fr": "La normalisation précède l’attention ou le réseau de transformation, à l’intérieur de la branche résiduelle. Le papier analyse les gradients et explique pourquoi cette disposition facilite l’optimisation au démarrage.",
      "en": "Normalization precedes attention or the feed-forward network inside the residual branch. The paper analyzes gradients and explains why this arrangement facilitates optimization at initialization."
    },
    "tradeoff": {
      "fr": "Ce jalon date une analyse de 2020, pas l’invention : GPT-2 utilisait déjà ce placement.",
      "en": "This marks a 2020 analysis, not the invention: GPT-2 already used this placement."
    },
    "origin": {
      "fr": "Xiong et al. : analyse et expériences Pre-LN/Post-LN sur Transformer.",
      "en": "Xiong et al.: analysis and Pre-LN/Post-LN Transformer experiments."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2002.04745",
        "title": "On Layer Normalization in the Transformer Architecture"
      },
      {
        "url": "https://openai.com/index/better-language-models/",
        "title": "GPT-2 technical report and announcement"
      }
    ],
    "related": [
      "layernorm",
      "gpt2",
      "normformer"
    ],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Remettre les valeurs à l’échelle avant les grandes transformations du réseau.",
        "en": "Rescale values before the network’s major transformations."
      },
      "problem": {
        "fr": "L’emplacement d’une remise à l’échelle peut rendre les corrections d’apprentissage plus difficiles à transmettre.",
        "en": "The placement of rescaling can make learning corrections harder to pass through the network."
      },
      "idea": {
        "fr": "La normalisation, qui ajuste l’échelle des valeurs, est placée avant l’attention et les transformations internes. Une voie de passage directe permet aussi aux informations de traverser chaque bloc.",
        "en": "Normalization, which adjusts the scale of values, is placed before attention and internal transformations. A direct route also lets information pass through each block."
      },
      "example": {
        "fr": "Au lieu de normaliser après une transformation, on normalise son entrée avant de la calculer.",
        "en": "Instead of normalizing after a transformation, its input is normalized before it is calculated."
      },
      "gain": {
        "fr": "Cet arrangement peut faciliter le démarrage de l’entraînement.",
        "en": "This arrangement can make the start of training easier."
      },
      "limit": {
        "fr": "Ce jalon analyse un placement déjà utilisé auparavant, notamment dans GPT-2.",
        "en": "This milestone analyzes a placement already used earlier, notably in GPT-2."
      }
    }
  },
  {
    "id": "swiglu",
    "date": "2020-02-12",
    "category": "architecture",
    "essential": true,
    "title": {
      "fr": "SwiGLU et GEGLU : des transformations à portes",
      "en": "SwiGLU and GEGLU: gated transformations"
    },
    "summary": {
      "fr": "Les couches à portes améliorent les transformations des tokens dans les expériences du papier.",
      "en": "Gated layers improve token transformations in the paper’s experiments."
    },
    "mechanism": {
      "fr": "Deux projections sont multipliées élément par élément, dont une passe par une activation comme Swish ou GELU. Une projection de sortie réunit le résultat ; la largeur est ajustée pour comparer des budgets similaires.",
      "en": "Two projections are multiplied elementwise, one passing through an activation such as Swish or GELU. An output projection combines the result; widths are adjusted to compare similar budgets."
    },
    "tradeoff": {
      "fr": "Les gains dépendent du budget et de l’entraînement ; il faut éviter de comparer des tailles différentes.",
      "en": "Gains depend on budget and training; comparisons must account for different widths."
    },
    "origin": {
      "fr": "Shazeer : variantes testées dans le cadre T5, plusieurs années avant LLaMA.",
      "en": "Shazeer: variants tested in the T5 framework, several years before LLaMA."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2002.05202",
        "title": "GLU Variants Improve Transformer"
      }
    ],
    "related": [
      "silu",
      "gelu",
      "t5"
    ],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Apprendre à moduler une transformation interne avec une autre.",
        "en": "Learn to modulate one internal transformation with another."
      },
      "problem": {
        "fr": "Une transformation unique offre moins de souplesse pour sélectionner les informations à transmettre.",
        "en": "A single transformation offers less flexibility in selecting which information to pass on."
      },
      "idea": {
        "fr": "Le réseau calcule deux versions de son entrée. L’une est transformée progressivement, puis multipliée valeur par valeur avec l’autre avant de combiner le résultat.",
        "en": "The network calculates two versions of its input. One is smoothly transformed, then multiplied value by value with the other before the result is combined."
      },
      "example": {
        "fr": "Une branche peut atténuer certaines valeurs de l’autre sans toutes les traiter de la même façon.",
        "en": "One branch can reduce selected values in the other without treating every value alike."
      },
      "gain": {
        "fr": "Ce mécanisme ajoute une sélection apprise dans les transformations internes du réseau.",
        "en": "This mechanism adds learned selection to the network’s internal transformations."
      },
      "limit": {
        "fr": "Les comparaisons doivent tenir compte de la largeur des étapes et du budget de calcul.",
        "en": "Comparisons must account for the width of the stages and the computation budget."
      }
    }
  },
  {
    "id": "longformer",
    "date": "2020-04-10",
    "category": "architecture",
    "essential": true,
    "title": {
      "fr": "Longformer : attention locale et globale",
      "en": "Longformer: local and global attention"
    },
    "summary": {
      "fr": "Une attention parcimonieuse permet de traiter des documents plus longs avec une mémoire contenue.",
      "en": "Sparse attention processes longer documents with more manageable memory."
    },
    "mechanism": {
      "fr": "Chaque token consulte une fenêtre voisine ; quelques tokens choisis disposent aussi d’une attention globale. Avec une fenêtre et un nombre de tokens globaux fixes, le nombre de liens croît linéairement.",
      "en": "Each token attends to a nearby window; selected tokens also receive global attention. With fixed window size and global-token count, the number of connections grows linearly."
    },
    "tradeoff": {
      "fr": "Toutes les paires ne communiquent pas directement ; les tokens globaux doivent être choisis.",
      "en": "Not every pair communicates directly, and global tokens must be chosen."
    },
    "origin": {
      "fr": "Beltagy, Peters et Cohan : Longformer ; LED apparaît dans une révision ultérieure.",
      "en": "Beltagy, Peters and Cohan: Longformer; LED appears in a later revision."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2004.05150",
        "title": "Longformer: The Long-Document Transformer"
      }
    ],
    "related": [
      "bigbird",
      "linear-attention"
    ],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Lire surtout les voisins et réserver quelques points de connexion à tout le document.",
        "en": "Read mostly nearby text and reserve a few connection points for the whole document."
      },
      "problem": {
        "fr": "Comparer chaque morceau de texte avec tous les autres devient trop coûteux sur un long document.",
        "en": "Comparing each text piece with every other piece becomes too expensive in a long document."
      },
      "idea": {
        "fr": "Chaque morceau consulte une fenêtre proche. Certains emplacements choisis peuvent aussi communiquer avec tout le document, ce qui relie les différentes zones.",
        "en": "Each piece consults a nearby window. Selected positions can also communicate with the whole document, connecting different regions."
      },
      "example": {
        "fr": "Un emplacement associé à une question peut consulter tout le document, tandis que les autres lisent surtout leur voisinage.",
        "en": "A position associated with a question can consult the whole document while others mainly read their neighborhood."
      },
      "gain": {
        "fr": "Le nombre de comparaisons augmente moins vite quand le texte s’allonge.",
        "en": "The number of comparisons grows more slowly as text gets longer."
      },
      "limit": {
        "fr": "Toutes les paires ne communiquent plus directement et les emplacements globaux doivent être choisis.",
        "en": "Not every pair communicates directly and global positions must be selected."
      }
    }
  },
  {
    "id": "synthesizer",
    "date": "2020-05-02",
    "category": "architecture",
    "essential": false,
    "title": {
      "fr": "Synthesizer : tester une attention sans produit QK",
      "en": "Synthesizer: testing attention without QK products"
    },
    "summary": {
      "fr": "Synthesizer explore quelles interactions sont réellement nécessaires dans les mécanismes d’attention.",
      "en": "Synthesizer explores which interactions are actually needed in attention mechanisms."
    },
    "mechanism": {
      "fr": "Certaines variantes produisent directement une matrice de mélange depuis les représentations, ou utilisent des poids aléatoires. Elles évitent les produits entre requêtes et clés tout en combinant les valeurs des tokens.",
      "en": "Some variants directly generate a mixing matrix from representations or use random weights. They avoid query-key products while still combining token values."
    },
    "tradeoff": {
      "fr": "Éviter QK ne rend pas automatiquement toutes les variantes linéaires en longueur.",
      "en": "Avoiding QK does not automatically make every variant linear in length."
    },
    "origin": {
      "fr": "Tay et al. : modèles Synthesizer expérimentaux.",
      "en": "Tay et al.: experimental Synthesizer models."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2005.00743",
        "title": "Synthesizer: Rethinking Self-Attention in Transformer Models"
      }
    ],
    "related": [
      "transformer",
      "performer"
    ],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Combiner les morceaux de texte sans toujours calculer leurs correspondances deux à deux.",
        "en": "Combine text pieces without always calculating pairwise matches."
      },
      "problem": {
        "fr": "Le calcul classique de l’attention construit des scores en comparant des paires de représentations.",
        "en": "Classic attention calculates mixing scores by comparing pairs of representations."
      },
      "idea": {
        "fr": "Ces variantes produisent autrement les coefficients servant à mélanger les informations : par un réseau ou même à partir de valeurs aléatoires. Elles testent quelles comparaisons sont réellement nécessaires.",
        "en": "These variants produce information-mixing coefficients differently: with a network or even random values. They test which comparisons are actually necessary."
      },
      "example": {
        "fr": "Une variante apprend directement les coefficients de mélange plutôt que de comparer une requête à chaque clé.",
        "en": "One variant directly learns mixing coefficients rather than comparing a query with every key."
      },
      "gain": {
        "fr": "Ces expériences explorent d’autres façons de faire circuler l’information dans le réseau.",
        "en": "These experiments explore alternative ways for information to flow through a network."
      },
      "limit": {
        "fr": "Supprimer ces comparaisons ne rend pas automatiquement tous les calculs économiques sur de longs textes.",
        "en": "Removing those comparisons does not automatically make every calculation cheap on long text."
      }
    }
  },
  {
    "id": "rag",
    "date": "2020-05-22",
    "category": "architecture",
    "essential": true,
    "title": {
      "fr": "RAG : chercher des documents avant de générer",
      "en": "RAG: retrieving documents before generation"
    },
    "summary": {
      "fr": "Une mémoire documentaire externe complète les connaissances stockées dans les poids du modèle.",
      "en": "An external document memory complements knowledge stored in model weights."
    },
    "mechanism": {
      "fr": "Un moteur de recherche dense sélectionne des passages, puis un générateur conditionne sa sortie sur ces textes. Le papier entraîne une combinaison d’un récupérateur et d’un modèle de type BART.",
      "en": "A dense retriever selects passages, then a generator conditions its output on those texts. The paper trains a combination of a retriever and a BART-style model."
    },
    "tradeoff": {
      "fr": "Une recherche erronée peut contaminer la réponse ; retrouver un texte ne garantit pas sa bonne utilisation.",
      "en": "Incorrect retrieval can contaminate answers; finding text does not guarantee correct use."
    },
    "origin": {
      "fr": "Lewis et al. : RAG-Sequence et RAG-Token, avec index Wikipédia.",
      "en": "Lewis et al.: RAG-Sequence and RAG-Token, with a Wikipedia index."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2005.11401",
        "title": "Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks"
      }
    ],
    "related": [
      "retro"
    ],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Rechercher des documents, puis les fournir au modèle pour préparer sa réponse.",
        "en": "Retrieve documents, then supply them to the model to help prepare its answer."
      },
      "problem": {
        "fr": "Un modèle ne peut pas retrouver de façon fiable tous les faits dans ses seules valeurs apprises.",
        "en": "A model cannot reliably recover every fact from its learned values alone."
      },
      "idea": {
        "fr": "Un système de recherche sélectionne des passages pertinents dans une collection. Le générateur reçoit ces textes comme informations supplémentaires pour produire sa réponse.",
        "en": "A search system selects relevant passages from a collection. The generator receives these texts as additional information when producing its answer."
      },
      "example": {
        "fr": "Pour une question sur un règlement, le système peut retrouver un passage du règlement et l’ajouter au contexte.",
        "en": "For a question about a policy, the system can retrieve part of the policy and add it to the context."
      },
      "gain": {
        "fr": "La réponse peut s’appuyer sur des documents consultables et actualisables.",
        "en": "The answer can draw on documents that can be inspected and updated."
      },
      "limit": {
        "fr": "Consulter un texte ne modifie pas à lui seul le modèle et ne garantit pas une réponse correcte.",
        "en": "Consulting text does not by itself update the model or guarantee a correct answer."
      }
    }
  },
  {
    "id": "gpt3",
    "date": "2020-05-28",
    "category": "training",
    "essential": true,
    "title": {
      "fr": "GPT-3 : apprendre une tâche dans le contexte",
      "en": "GPT-3: learning a task in context"
    },
    "summary": {
      "fr": "Des exemples dans le prompt suffisent à orienter un grand modèle vers de nombreuses tâches.",
      "en": "Examples in the prompt can steer a large model toward many tasks."
    },
    "mechanism": {
      "fr": "Un décodeur causal est préentraîné à grande échelle. Lors de l’évaluation, on présente zéro, un ou plusieurs exemples dans le contexte, sans modifier les poids : c’est l’apprentissage en contexte.",
      "en": "A causal decoder is pretrained at scale. During evaluation, zero, one or several examples appear in context without changing weights: this is in-context learning."
    },
    "tradeoff": {
      "fr": "Les capacités restent sensibles au prompt et n’assurent ni raisonnement fiable ni véracité.",
      "en": "Abilities remain prompt-sensitive and guarantee neither reliable reasoning nor truthfulness."
    },
    "origin": {
      "fr": "Brown et al., OpenAI : GPT-3, jusqu’à 175 milliards de paramètres.",
      "en": "Brown et al., OpenAI: GPT-3, up to 175 billion parameters."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2005.14165",
        "title": "Language Models are Few-Shot Learners"
      }
    ],
    "related": [
      "gpt2",
      "scaling-laws",
      "flan"
    ],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Donner des exemples dans la demande pour orienter la réponse sans réentraîner le modèle.",
        "en": "Put examples in the request to steer answers without retraining the model."
      },
      "problem": {
        "fr": "Adapter les valeurs du modèle pour chaque nouvelle tâche demande des données et du calcul.",
        "en": "Updating model values for every new task requires data and computation."
      },
      "idea": {
        "fr": "Un grand modèle entraîné à poursuivre du texte reçoit une consigne et éventuellement quelques exemples. Il produit leur continuation sans modifier ses valeurs apprises pendant cet usage.",
        "en": "A large model trained to continue text receives an instruction and possibly a few examples. It continues them without changing its learned values during this use."
      },
      "example": {
        "fr": "« chat → cat ; chien → dog ; maison → » présente la tâche par des exemples.",
        "en": "“chat → cat; chien → dog; maison →” demonstrates a task through examples."
      },
      "gain": {
        "fr": "Le texte de la demande suffit pour tenter de nombreuses tâches.",
        "en": "The request text is enough to attempt many tasks."
      },
      "limit": {
        "fr": "Le résultat reste sensible à la formulation et les exemples ne garantissent ni exactitude ni raisonnement fiable.",
        "en": "Results remain sensitive to wording and examples guarantee neither accuracy nor reliable reasoning."
      }
    }
  },
  {
    "id": "linear-attention",
    "date": "2020-06-29",
    "category": "architecture",
    "essential": true,
    "title": {
      "fr": "Attention linéaire : résumer au lieu de tout comparer",
      "en": "Linear attention: summarizing instead of comparing everything"
    },
    "summary": {
      "fr": "Une reformulation par noyaux évite de matérialiser toutes les interactions entre tokens.",
      "en": "A kernel reformulation avoids materializing every token-to-token interaction."
    },
    "mechanism": {
      "fr": "Les requêtes et clés passent par une fonction de caractéristiques. L’associativité permet d’accumuler des statistiques clés-valeurs dans un état, puis de l’interroger, ce qui rend possible un calcul récurrent.",
      "en": "Queries and keys pass through a feature map. Associativity allows key-value statistics to accumulate in a state that can be queried, enabling recurrent computation."
    },
    "tradeoff": {
      "fr": "La formulation change l’attention et comprime l’historique dans un état de taille fixée.",
      "en": "The formulation changes attention and compresses history into a fixed-size state."
    },
    "origin": {
      "fr": "Katharopoulos et al. : Linear Transformer ; un jalon parmi plusieurs travaux contemporains.",
      "en": "Katharopoulos et al.: Linear Transformer; one milestone among contemporary approaches."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2006.16236",
        "title": "Transformers are RNNs: Fast Autoregressive Transformers with Linear Attention"
      }
    ],
    "related": [
      "performer",
      "s4"
    ],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Accumuler un résumé calculable du passé au lieu de comparer chaque paire de morceaux.",
        "en": "Accumulate a calculable summary of earlier text instead of comparing every pair of pieces."
      },
      "problem": {
        "fr": "Une attention qui compare toutes les paires devient coûteuse sur de longues séquences.",
        "en": "Attention that compares every pair becomes expensive on long sequences."
      },
      "idea": {
        "fr": "On transforme les représentations puis on réorganise les calculs pour accumuler des statistiques des éléments précédents. Le morceau courant consulte cet état compact plutôt qu’une table complète de comparaisons.",
        "en": "Representations are transformed and calculations reorganized to accumulate statistics of earlier elements. The current piece consults this compact state rather than a full comparison table."
      },
      "example": {
        "fr": "À chaque nouvel élément, le système met à jour son état puis l’utilise pour calculer la sortie.",
        "en": "With each new element, the system updates its state and uses it to calculate the output."
      },
      "gain": {
        "fr": "Le calcul peut croître plus lentement avec la longueur et fonctionner pas à pas.",
        "en": "Calculation can grow more slowly with length and operate step by step."
      },
      "limit": {
        "fr": "Le mécanisme change l’attention et compresse les détails du passé dans un état limité.",
        "en": "The mechanism changes attention and compresses details of the past into a limited state."
      }
    }
  },
  {
    "id": "gshard",
    "date": "2020-06-30",
    "category": "architecture",
    "essential": false,
    "title": {
      "fr": "GShard : distribuer un immense MoE",
      "en": "GShard: distributing a giant MoE"
    },
    "summary": {
      "fr": "GShard combine calcul conditionnel et partitionnement automatique pour entraîner un modèle de très grande capacité.",
      "en": "GShard combines conditional computation and automatic partitioning to train a very high-capacity model."
    },
    "mechanism": {
      "fr": "Certaines couches d’un Transformer de traduction sont remplacées par des experts, avec routage top-2. Le système distribue les tenseurs et organise les communications sur de nombreux accélérateurs.",
      "en": "Some translation Transformer layers are replaced by experts with top-2 routing. The system distributes tensors and organizes communication across many accelerators."
    },
    "tradeoff": {
      "fr": "La capacité totale exige du stockage et des échanges même quand peu d’experts sont actifs.",
      "en": "Total capacity still requires storage and communication even when few experts are active."
    },
    "origin": {
      "fr": "Lepikhin et al., Google : Transformer MoE multilingue jusqu’à 600 milliards de paramètres.",
      "en": "Lepikhin et al., Google: multilingual MoE Transformer up to 600 billion parameters."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2006.16668",
        "title": "GShard: Scaling Giant Models with Conditional Computation and Automatic Sharding"
      }
    ],
    "related": [
      "sparse-moe",
      "switch-transformer",
      "mixtral",
      "deepseek-v3"
    ],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Répartir un très grand réseau avec plusieurs sous-réseaux sélectionnés selon les entrées.",
        "en": "Distribute a very large network with subnetworks selected according to the input."
      },
      "problem": {
        "fr": "Augmenter fortement la capacité d’un réseau pose des problèmes de stockage et de répartition du calcul.",
        "en": "Greatly increasing network capacity creates storage and computation-distribution problems."
      },
      "idea": {
        "fr": "Certaines étapes sont remplacées par des experts : des sous-réseaux dont deux sont sélectionnés pour chaque morceau de texte. Le système organise leur distribution et leurs échanges entre nombreuses puces.",
        "en": "Some stages are replaced by experts: subnetworks, two of which are selected for each text piece. The system arranges their distribution and exchanges across many chips."
      },
      "example": {
        "fr": "Un morceau est envoyé aux sous-réseaux choisis, même si ceux-ci sont placés sur des puces différentes.",
        "en": "A piece is sent to the selected subnetworks even when they are located on different chips."
      },
      "gain": {
        "fr": "De grands modèles de traduction deviennent entraînables sur un ensemble de puces.",
        "en": "Large translation models become trainable across a collection of chips."
      },
      "limit": {
        "fr": "Les experts doivent tous être stockés et leurs échanges restent coûteux.",
        "en": "All experts must be stored and their exchanges remain costly."
      }
    }
  },
  {
    "id": "bigbird",
    "date": "2020-07-28",
    "category": "architecture",
    "essential": false,
    "title": {
      "fr": "BigBird : liens locaux, globaux et aléatoires",
      "en": "BigBird: local, global and random connections"
    },
    "summary": {
      "fr": "Un motif d’attention parcimonieux connecte de longues séquences sans comparer toutes les paires.",
      "en": "A sparse attention pattern connects long sequences without comparing all pairs."
    },
    "mechanism": {
      "fr": "BigBird mélange voisinage local, tokens globaux et liens aléatoires. Ces connexions réduisent le nombre de scores tout en maintenant des chemins de circulation de l’information entre parties éloignées.",
      "en": "BigBird combines local neighborhoods, global tokens and random links. These connections reduce score counts while retaining information paths between distant sections."
    },
    "tradeoff": {
      "fr": "Les garanties théoriques ne signifient pas une qualité identique à l’attention dense sur toute tâche.",
      "en": "Theoretical guarantees do not imply identical quality to dense attention on every task."
    },
    "origin": {
      "fr": "Zaheer et al., Google : BigBird.",
      "en": "Zaheer et al., Google: BigBird."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2007.14062",
        "title": "Big Bird: Transformers for Longer Sequences"
      }
    ],
    "related": [
      "longformer"
    ],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Relier les zones d’un long texte par des connexions locales, globales et aléatoires.",
        "en": "Connect long-text regions through local, global and random links."
      },
      "problem": {
        "fr": "Une fenêtre de lecture locale seule peut mal relier des passages très éloignés.",
        "en": "A local reading window alone may poorly connect distant passages."
      },
      "idea": {
        "fr": "Le réseau combine des comparaisons avec les voisins, quelques positions accessibles partout et des liens choisis aléatoirement. Ces chemins permettent aux informations de circuler sans connecter toutes les paires.",
        "en": "The network combines comparisons with neighbors, a few globally accessible positions and randomly selected links. These paths let information circulate without connecting every pair."
      },
      "example": {
        "fr": "Un passage échange avec ses voisins et quelques passages lointains plutôt qu’avec tout le document.",
        "en": "A passage exchanges information with its neighbors and a few distant passages rather than the whole document."
      },
      "gain": {
        "fr": "Le nombre de comparaisons diminue tout en conservant des chemins entre zones éloignées.",
        "en": "Fewer comparisons are needed while paths between distant regions remain available."
      },
      "limit": {
        "fr": "Ces chemins ne garantissent pas les mêmes résultats qu’une attention complète sur chaque tâche.",
        "en": "Those paths do not guarantee the same results as full attention on every task."
      }
    }
  },
  {
    "id": "rlhf-summarization",
    "date": "2020-09-02",
    "category": "training",
    "essential": true,
    "title": {
      "fr": "RLHF : produire des résumés préférés par les humains",
      "en": "RLHF: generating summaries preferred by humans"
    },
    "summary": {
      "fr": "Les préférences humaines guident directement l’optimisation d’un modèle de génération de texte.",
      "en": "Human preferences directly guide optimization of a text generation model."
    },
    "mechanism": {
      "fr": "Des évaluateurs comparent des résumés ; un modèle de récompense apprend ces comparaisons. Le générateur est ensuite optimisé par PPO avec une contrainte le gardant proche d’un modèle de référence.",
      "en": "Evaluators compare summaries and a reward model learns those comparisons. The generator is then optimized using PPO with a constraint keeping it close to a reference model."
    },
    "tradeoff": {
      "fr": "Les biais des évaluateurs et l’exploitation de la récompense restent possibles.",
      "en": "Evaluator bias and reward exploitation remain possible."
    },
    "origin": {
      "fr": "Stiennon et al., OpenAI : modèles de résumé fondés sur GPT, avant InstructGPT.",
      "en": "Stiennon et al., OpenAI: GPT-based summarization models, before InstructGPT."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2009.01325",
        "title": "Learning to summarize from human feedback"
      }
    ],
    "related": [
      "rlhf-origins",
      "ppo"
    ],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Entraîner un générateur de résumés à partir des préférences d’évaluateurs.",
        "en": "Train a summary generator using evaluators’ preferences."
      },
      "problem": {
        "fr": "Prédire le texte suivant ne suffit pas à produire le résumé que les lecteurs préfèrent.",
        "en": "Predicting the next text piece is not enough to produce the summary readers prefer."
      },
      "idea": {
        "fr": "Des personnes comparent des résumés. Un modèle apprend à attribuer des notes correspondant à leurs choix, puis le générateur est entraîné pour améliorer ces notes tout en restant proche d’une référence.",
        "en": "People compare summaries. A model learns to assign scores matching their choices, then the generator is trained to improve those scores while remaining close to a reference."
      },
      "example": {
        "fr": "Des évaluateurs peuvent préférer un résumé qui conserve le point principal à un autre qui l’omet.",
        "en": "Evaluators may prefer a summary that preserves the main point over one that omits it."
      },
      "gain": {
        "fr": "Les préférences humaines orientent directement une partie de l’entraînement des résumés.",
        "en": "Human preferences directly guide part of summary training."
      },
      "limit": {
        "fr": "Les biais des évaluateurs et les défauts de la notation peuvent être reproduits ou exploités.",
        "en": "Evaluator biases and flaws in scoring can be reproduced or exploited."
      }
    }
  },
  {
    "id": "performer",
    "date": "2020-09-30",
    "category": "architecture",
    "essential": false,
    "title": {
      "fr": "Performer : approximer softmax avec des caractéristiques aléatoires",
      "en": "Performer: approximating softmax with random features"
    },
    "summary": {
      "fr": "Performer cherche à conserver une attention proche de softmax avec un coût linéaire en longueur.",
      "en": "Performer aims to retain softmax-like attention with linear sequence-length cost."
    },
    "mechanism": {
      "fr": "FAVOR+ utilise des caractéristiques aléatoires positives pour approximer le noyau de l’attention. Le calcul est réordonné pour éviter la matrice complète des interactions.",
      "en": "FAVOR+ uses positive random features to approximate the attention kernel. Computation is reordered to avoid the full interaction matrix."
    },
    "tradeoff": {
      "fr": "La précision et le coût dépendent du nombre de caractéristiques ; les gains ne sont pas universels.",
      "en": "Accuracy and cost depend on feature count; gains are not universal."
    },
    "origin": {
      "fr": "Choromanski et al. : Performer et expériences sur plusieurs modalités.",
      "en": "Choromanski et al.: Performer and experiments across several modalities."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2009.14794",
        "title": "Rethinking Attention with Performers"
      }
    ],
    "related": [
      "linear-attention",
      "reformer"
    ],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Approcher les comparaisons d’attention sans construire leur tableau complet.",
        "en": "Approximate attention comparisons without building their complete table."
      },
      "problem": {
        "fr": "Le tableau reliant chaque morceau de texte à tous les autres devient très volumineux.",
        "en": "The table linking every text piece to every other piece becomes very large."
      },
      "idea": {
        "fr": "Des transformations aléatoires produisent des représentations qui approchent le calcul habituel. Les opérations sont réorganisées pour utiliser ces représentations sans conserver toutes les comparaisons.",
        "en": "Random transformations produce representations that approximate the usual calculation. Operations are rearranged to use these representations without retaining all comparisons."
      },
      "example": {
        "fr": "Au lieu de remplir toutes les cases d’un tableau de relations, on combine des résumés numériques approximatifs.",
        "en": "Instead of filling every cell of a relationship table, approximate numerical summaries are combined."
      },
      "gain": {
        "fr": "Le coût de l’attention peut croître plus lentement avec la longueur.",
        "en": "Attention cost can grow more slowly with text length."
      },
      "limit": {
        "fr": "Le nombre de valeurs utilisées dans l’approximation détermine un compromis entre précision et coût.",
        "en": "The number of values used in the approximation sets a tradeoff between accuracy and cost."
      }
    }
  },
  {
    "id": "qk-normalization",
    "date": "2020-10-08",
    "category": "architecture",
    "essential": false,
    "title": {
      "fr": "QK-Norm : maîtriser l’échelle des scores d’attention",
      "en": "QK-Norm: controlling attention score scale"
    },
    "summary": {
      "fr": "Normaliser requêtes et clés aide à éviter des distributions d’attention excessivement saturées.",
      "en": "Normalizing queries and keys helps avoid excessively saturated attention distributions."
    },
    "mechanism": {
      "fr": "Le papier normalise Q et K avec une norme L2 puis applique un facteur d’échelle appris à leur produit scalaire. Des modèles ultérieurs utilisent d’autres variantes de normalisation de Q et K.",
      "en": "The paper L2-normalizes Q and K and applies a learned scale to their dot product. Later models use other variants of query and key normalization."
    },
    "tradeoff": {
      "fr": "Les variantes diffèrent : on ne doit pas attribuer automatiquement cette formulation à chaque modèle récent.",
      "en": "Variants differ: this exact formulation should not automatically be attributed to every recent model."
    },
    "origin": {
      "fr": "Henry, Dachapally, Pawar et Chen : Transformers de traduction à faibles ressources.",
      "en": "Henry, Dachapally, Pawar and Chen: low-resource translation Transformers."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2010.04245",
        "title": "Query-Key Normalization for Transformers"
      }
    ],
    "related": [
      "layernorm",
      "transformer"
    ],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Régler l’échelle des représentations avant de calculer leurs correspondances.",
        "en": "Adjust representation scale before calculating matches."
      },
      "problem": {
        "fr": "Des valeurs trop grandes peuvent rendre les scores d’attention excessivement concentrés.",
        "en": "Overly large values can make attention scores excessively concentrated."
      },
      "idea": {
        "fr": "Les représentations utilisées pour poser une requête et identifier les éléments consultés sont ramenées à une longueur numérique commune. Une échelle apprise règle ensuite la force de leur comparaison.",
        "en": "The representations used to make queries and identify consulted elements are brought to a common numerical length. A learned scale then controls the strength of their comparison."
      },
      "example": {
        "fr": "Une représentation ne reçoit plus un score élevé simplement parce que ses valeurs sont globalement plus grandes.",
        "en": "A representation no longer gets a high score simply because its values are larger overall."
      },
      "gain": {
        "fr": "Le calcul des correspondances devient moins dépendant de la taille brute des représentations.",
        "en": "Matching becomes less dependent on the raw magnitude of representations."
      },
      "limit": {
        "fr": "Les modèles récents peuvent utiliser d’autres variantes ; leurs méthodes ne sont pas toutes identiques à celle-ci.",
        "en": "Recent models may use different variants; their methods are not all identical to this one."
      }
    }
  },
  {
    "id": "vit",
    "date": "2020-10-22",
    "category": "multimodal",
    "essential": true,
    "title": {
      "fr": "ViT : lire une image comme une séquence",
      "en": "ViT: reading an image as a sequence"
    },
    "summary": {
      "fr": "Le Vision Transformer traite des images avec les mêmes grandes briques que les modèles de texte.",
      "en": "Vision Transformer processes images using the same broad building blocks as text models."
    },
    "mechanism": {
      "fr": "Une image est découpée en patches, projetés en vecteurs et enrichis d’une information de position. Un encodeur Transformer mélange ces représentations pour apprendre une représentation globale adaptée à la classification.",
      "en": "An image is divided into patches, projected into vectors and given position information. A Transformer encoder mixes these representations to learn a global representation suitable for classification."
    },
    "tradeoff": {
      "fr": "L’efficacité dépend du préentraînement ; le nombre de patches augmente le coût de l’attention.",
      "en": "Effectiveness depends on pretraining; more patches increase attention cost."
    },
    "origin": {
      "fr": "Dosovitskiy et al., Google : Vision Transformer, ViT.",
      "en": "Dosovitskiy et al., Google: Vision Transformer, ViT."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2010.11929",
        "title": "An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale"
      }
    ],
    "related": [
      "transformer",
      "clip"
    ],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Traiter une image comme une suite de petits morceaux.",
        "en": "Process an image as a sequence of small pieces."
      },
      "problem": {
        "fr": "Utiliser le Transformer sur des images demande de convertir les pixels en une entrée adaptée.",
        "en": "Using a Transformer on images requires converting pixels into suitable inputs."
      },
      "idea": {
        "fr": "L’image est découpée en petits carrés. Chaque carré devient une représentation numérique avec une information de position, puis l’attention combine ces représentations pour produire un résultat global.",
        "en": "The image is split into small squares. Each square becomes a numerical representation with position information, then attention combines these representations into an overall result."
      },
      "example": {
        "fr": "Pour classer une image, le réseau combine des informations provenant de différentes zones plutôt que de lire du texte.",
        "en": "To classify an image, the network combines information from different regions instead of reading text."
      },
      "gain": {
        "fr": "Une architecture fondée sur l’attention peut servir à reconnaître des images.",
        "en": "An attention-based architecture can be used to recognize images."
      },
      "limit": {
        "fr": "Les résultats dépendent de l’apprentissage et multiplier les morceaux augmente le coût des comparaisons.",
        "en": "Results depend on training and increasing the number of pieces raises comparison costs."
      }
    }
  },
  {
    "id": "prefix-tuning",
    "date": "2021-01-01",
    "category": "training",
    "essential": false,
    "title": {
      "fr": "Prefix tuning : apprendre un préfixe continu",
      "en": "Prefix tuning: learning a continuous prefix"
    },
    "summary": {
      "fr": "Un petit ensemble de paramètres peut orienter un modèle gelé vers une tâche de génération.",
      "en": "A small set of parameters can steer a frozen model toward a generation task."
    },
    "mechanism": {
      "fr": "Des vecteurs entraînables agissent comme des tokens virtuels auxquels les couches peuvent prêter attention. L’adaptation apprend ce préfixe au lieu de mettre à jour tous les poids du réseau.",
      "en": "Trainable vectors act as virtual tokens that layers can attend to. Adaptation learns this prefix rather than updating every network weight."
    },
    "tradeoff": {
      "fr": "Les préfixes consomment du contexte et peuvent être moins efficaces pour certaines tâches.",
      "en": "Prefixes consume context and may be less effective for some tasks."
    },
    "origin": {
      "fr": "Li et Liang : expériences de génération sur GPT-2 et BART.",
      "en": "Li and Liang: generation experiments on GPT-2 and BART."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2101.00190",
        "title": "Prefix-Tuning: Optimizing Continuous Prompts for Generation"
      }
    ],
    "related": [
      "prompt-tuning",
      "adapters"
    ],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Apprendre de petits ajouts numériques pour orienter un modèle laissé fixe.",
        "en": "Learn small numerical additions to steer a model that remains fixed."
      },
      "problem": {
        "fr": "Adapter toutes les valeurs d’un grand modèle pour chaque tâche coûte du stockage et de la mémoire.",
        "en": "Adapting every value of a large model for each task costs storage and memory."
      },
      "idea": {
        "fr": "On apprend des représentations supplémentaires que plusieurs étapes du réseau peuvent consulter comme un début de contexte. Seuls ces ajouts changent pendant l’adaptation.",
        "en": "Extra representations are learned that several network stages can consult like an initial context. Only these additions change during adaptation."
      },
      "example": {
        "fr": "Un ensemble d’ajouts peut être appris pour le résumé, puis utilisé avec le modèle principal inchangé.",
        "en": "One set of additions can be learned for summarization and used with the unchanged main model."
      },
      "gain": {
        "fr": "Une tâche peut être adaptée en apprenant beaucoup moins de nouvelles valeurs.",
        "en": "A task can be adapted by learning far fewer new values."
      },
      "limit": {
        "fr": "Ces ajouts prennent une place dans le contexte et leur efficacité dépend de la tâche.",
        "en": "These additions take context space and their effectiveness depends on the task."
      }
    }
  },
  {
    "id": "switch-transformer",
    "date": "2021-01-11",
    "category": "architecture",
    "essential": true,
    "title": {
      "fr": "Switch Transformer : un seul expert par token",
      "en": "Switch Transformer: one expert per token"
    },
    "summary": {
      "fr": "Le routage top-1 simplifie le MoE et permet d’explorer des modèles de très grande capacité.",
      "en": "Top-1 routing simplifies MoE and enables exploration of very high-capacity models."
    },
    "mechanism": {
      "fr": "Un routeur envoie chaque token vers un seul expert de la couche. Des règles de capacité, une perte d’équilibrage et des choix numériques cherchent à stabiliser la distribution du travail.",
      "en": "A router sends each token to a single layer expert. Capacity rules, a balancing loss and numerical choices aim to stabilize workload distribution."
    },
    "tradeoff": {
      "fr": "La capacité des experts peut être dépassée, et la communication reste un coût majeur.",
      "en": "Expert capacity can overflow, and communication remains a major cost."
    },
    "origin": {
      "fr": "Fedus, Zoph et Shazeer : Switch Transformer, avec expériences dérivées de T5.",
      "en": "Fedus, Zoph and Shazeer: Switch Transformer, with T5-derived experiments."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2101.03961",
        "title": "Switch Transformers: Scaling to Trillion Parameter Models with Simple and Efficient Sparsity"
      }
    ],
    "related": [
      "sparse-moe",
      "gshard",
      "mixtral",
      "deepseek-v3"
    ],
    "lineage": [
      {
        "family": "experts",
        "parent": "sparse-moe",
        "child": "switch-transformer",
        "kind": "improves",
        "explanation": {
          "fr": "Switch reprend le routage vers des experts épars et le simplifie : un seul expert est choisi pour chaque token.",
          "en": "Switch retains routing to sparse experts and simplifies it: a single expert is chosen for each token."
        },
        "source": {
          "url": "https://arxiv.org/abs/2101.03961",
          "title": "Switch Transformers: Scaling to Trillion Parameter Models with Simple and Efficient Sparsity"
        }
      }
    ],
    "lineage_families": [
      "experts"
    ],
    "beginner": {
      "summary": {
        "fr": "N’utiliser qu’un sous-réseau sélectionné pour chaque morceau de texte.",
        "en": "Use only one selected subnetwork for each text piece."
      },
      "problem": {
        "fr": "Les réseaux à plusieurs experts peuvent devenir difficiles à répartir et à stabiliser.",
        "en": "Networks with multiple experts can become difficult to distribute and stabilize."
      },
      "idea": {
        "fr": "Un sélecteur envoie chaque morceau de texte vers un seul expert, c’est-à-dire un sous-réseau. Des règles cherchent à répartir le travail et à éviter de surcharger les mêmes experts.",
        "en": "A selector sends each text piece to just one expert, meaning a subnetwork. Rules try to distribute work and avoid overloading the same experts."
      },
      "example": {
        "fr": "Exemple fictif : chaque morceau est dirigé vers un expert parmi quatre, sans faire fonctionner les trois autres pour ce morceau.",
        "en": "Fictional example: each piece goes to one of four experts without running the other three for that piece."
      },
      "gain": {
        "fr": "La sélection devient plus simple tout en permettant beaucoup de valeurs apprises au total.",
        "en": "Selection becomes simpler while allowing many learned values overall."
      },
      "limit": {
        "fr": "Un expert peut recevoir trop de travail et les échanges entre puces restent coûteux.",
        "en": "An expert can receive too much work and exchanges between chips remain expensive."
      }
    }
  },
  {
    "id": "dall-e",
    "date": "2021-02-24",
    "category": "multimodal",
    "essential": true,
    "title": {
      "fr": "DALL·E : générer une image depuis du texte",
      "en": "DALL·E: generating an image from text"
    },
    "summary": {
      "fr": "Un Transformer autorégressif apprend à produire des images conditionnées par une description.",
      "en": "An autoregressive Transformer learns to produce images conditioned on a description."
    },
    "mechanism": {
      "fr": "Un autoencodeur discret transforme les images en tokens. Un Transformer prédit ensuite une séquence réunissant tokens du texte puis de l’image ; le décodeur de l’autoencodeur reconstruit les pixels.",
      "en": "A discrete autoencoder turns images into tokens. A Transformer then predicts a sequence combining text followed by image tokens; the autoencoder’s decoder reconstructs pixels."
    },
    "tradeoff": {
      "fr": "La compression peut perdre des détails ; cette première version n’est pas un modèle de diffusion.",
      "en": "Compression can lose detail; this first version is not a diffusion model."
    },
    "origin": {
      "fr": "Ramesh et al., OpenAI : DALL·E ; la date indique la soumission du papier.",
      "en": "Ramesh et al., OpenAI: DALL·E; the date indicates paper submission."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2102.12092",
        "title": "Zero-Shot Text-to-Image Generation"
      }
    ],
    "related": [
      "gpt3",
      "vit",
      "clip"
    ],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Produire une image en poursuivant une suite qui commence par sa description.",
        "en": "Produce an image by continuing a sequence that begins with its description."
      },
      "problem": {
        "fr": "Un modèle de texte a besoin d’une représentation adaptée pour produire des images.",
        "en": "A text model needs a suitable representation to produce images."
      },
      "idea": {
        "fr": "Un système transforme les images en codes compacts. Le Transformer apprend à prédire ces codes après ceux de la description, puis un décodeur les transforme en pixels.",
        "en": "A system converts images into compact codes. The Transformer learns to predict these codes after the description codes, then a decoder turns them into pixels."
      },
      "example": {
        "fr": "Une description comme « un fauteuil en forme de poire » sert de début à la suite de codes d’image.",
        "en": "A description such as “a pear-shaped armchair” begins the sequence of image codes."
      },
      "gain": {
        "fr": "La génération d’images peut être guidée par une description textuelle.",
        "en": "Image generation can be guided by a text description."
      },
      "limit": {
        "fr": "Les codes comprimés peuvent perdre des détails et cette première version n’utilise pas la diffusion.",
        "en": "The compressed codes can lose detail and this first version does not use diffusion."
      }
    }
  },
  {
    "id": "clip",
    "date": "2021-02-26",
    "category": "multimodal",
    "essential": true,
    "title": {
      "fr": "CLIP : aligner les représentations des images et des textes",
      "en": "CLIP: aligning image and text representations"
    },
    "summary": {
      "fr": "L’apprentissage sur des paires image-texte permet de reconnaître des concepts décrits en langage naturel.",
      "en": "Learning from image-text pairs enables recognition of concepts described in natural language."
    },
    "mechanism": {
      "fr": "Un encodeur d’image et un encodeur de texte apprennent un espace commun. Une perte contrastive rapproche les paires correspondantes et éloigne les autres ; des descriptions textuelles deviennent des classes de reconnaissance zero-shot.",
      "en": "An image encoder and a text encoder learn a shared space. A contrastive loss pulls matching pairs together and pushes others apart; text descriptions become zero-shot recognition classes."
    },
    "tradeoff": {
      "fr": "Reconnaître ou rapprocher des représentations ne suffit pas à produire une conversation multimodale.",
      "en": "Recognition or representation matching alone does not produce multimodal conversation."
    },
    "origin": {
      "fr": "Radford et al., OpenAI : CLIP ; la date indique la soumission du papier.",
      "en": "Radford et al., OpenAI: CLIP; the date indicates paper submission."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2103.00020",
        "title": "Learning Transferable Visual Models From Natural Language Supervision"
      }
    ],
    "related": [
      "vit",
      "dall-e"
    ],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Apprendre à rapprocher une image de la description qui lui correspond.",
        "en": "Learn to match an image with its corresponding description."
      },
      "problem": {
        "fr": "Reconnaître des catégories nouvelles demande souvent des exemples annotés pour chacune.",
        "en": "Recognizing new categories often requires labeled examples for each one."
      },
      "idea": {
        "fr": "Un réseau transforme les images en nombres et un autre fait de même avec le texte. L’apprentissage rapproche les représentations des paires correspondantes et éloigne celles des autres paires.",
        "en": "One network turns images into numbers and another does the same for text. Training brings matching pair representations closer and moves other pairs apart."
      },
      "example": {
        "fr": "Une photo peut être comparée aux descriptions « un chien » et « un vélo » pour choisir la plus proche.",
        "en": "A photo can be compared with “a dog” and “a bicycle” to choose the closer description."
      },
      "gain": {
        "fr": "Des descriptions écrites peuvent servir de catégories sans nouvel entraînement spécifique.",
        "en": "Written descriptions can serve as categories without new task-specific training."
      },
      "limit": {
        "fr": "Faire correspondre une image et un texte ne suffit pas à construire un assistant capable de converser sur l’image.",
        "en": "Matching images and text is not enough to build an assistant that can converse about an image."
      }
    }
  },
  {
    "id": "prompt-tuning",
    "date": "2021-04-18",
    "category": "training",
    "essential": false,
    "title": {
      "fr": "Prompt tuning : apprendre seulement des tokens d’entrée",
      "en": "Prompt tuning: learning only input tokens"
    },
    "summary": {
      "fr": "Des prompts continus permettent de partager un grand modèle gelé entre plusieurs tâches.",
      "en": "Continuous prompts allow one large frozen model to be shared across tasks."
    },
    "mechanism": {
      "fr": "On ajoute quelques vecteurs entraînables aux embeddings d’entrée et on optimise seulement ces vecteurs. Contrairement au prefix tuning, la méthode n’ajoute pas directement un préfixe distinct à chaque couche.",
      "en": "Trainable vectors are added to input embeddings and only those vectors are optimized. Unlike prefix tuning, the method does not directly add a separate prefix at every layer."
    },
    "tradeoff": {
      "fr": "L’efficacité observée dépend fortement de la taille du modèle et de la tâche.",
      "en": "Observed effectiveness depends strongly on model size and task."
    },
    "origin": {
      "fr": "Lester, Al-Rfou et Constant : étude sur la famille T5.",
      "en": "Lester, Al-Rfou and Constant: a study on the T5 family."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2104.08691",
        "title": "The Power of Scale for Parameter-Efficient Prompt Tuning"
      }
    ],
    "related": [
      "prefix-tuning",
      "t5"
    ],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Apprendre un petit début numérique de demande plutôt que modifier tout le modèle.",
        "en": "Learn a small numerical request prefix instead of changing the whole model."
      },
      "problem": {
        "fr": "Garder une version complète du modèle pour chaque tâche est coûteux.",
        "en": "Keeping a complete model version for every task is expensive."
      },
      "idea": {
        "fr": "On ajoute à l’entrée des représentations numériques apprises, sans mots nécessairement lisibles. Seuls ces ajouts sont modifiés pendant l’adaptation ; les valeurs du modèle principal restent fixes.",
        "en": "Learned numerical representations are added to the input, without necessarily corresponding to readable words. Only these additions change during adaptation; the main model’s values remain fixed."
      },
      "example": {
        "fr": "Un début numérique peut être appris pour classer des avis et réutilisé avant chaque avis.",
        "en": "A numerical prefix can be learned to classify reviews and reused before each review."
      },
      "gain": {
        "fr": "Plusieurs tâches peuvent partager le même grand modèle avec de petits ajouts distincts.",
        "en": "Several tasks can share the same large model with small separate additions."
      },
      "limit": {
        "fr": "Les résultats dépendent fortement de la taille du modèle et de la tâche.",
        "en": "Results depend strongly on model size and the task."
      }
    }
  },
  {
    "id": "rope",
    "date": "2021-04-20",
    "category": "architecture",
    "essential": true,
    "title": {
      "fr": "RoPE : faire tourner requêtes et clés",
      "en": "RoPE: rotating queries and keys"
    },
    "summary": {
      "fr": "RoPE fait apparaître les distances relatives dans les scores d’attention à partir des positions.",
      "en": "RoPE makes relative distances appear in attention scores through token positions."
    },
    "mechanism": {
      "fr": "Des paires de composantes de Q et K sont tournées selon des angles dépendant de leur position. Leur produit scalaire dépend alors de la différence des angles, donc de la distance entre tokens.",
      "en": "Pairs of Q and K components are rotated by position-dependent angles. Their dot product then depends on angle differences and therefore on token distance."
    },
    "tradeoff": {
      "fr": "Des positions bien au-delà de l’entraînement demandent souvent une adaptation spécifique.",
      "en": "Positions far beyond training lengths often require specific adaptation."
    },
    "origin": {
      "fr": "Su et al. : RoFormer ; v1 arXiv du 20 avril, pas du 9 avril 2021.",
      "en": "Su et al.: RoFormer; arXiv v1 on April 20, not April 9, 2021."
    },
    "adoption": {
      "fr": "Repris notamment par LLaMA en 2023.",
      "en": "Adopted notably by LLaMA in 2023."
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2104.09864",
        "title": "RoFormer: Enhanced Transformer with Rotary Position Embedding"
      },
      {
        "url": "https://arxiv.org/abs/2302.13971",
        "title": "LLaMA: Open and Efficient Foundation Language Models"
      }
    ],
    "related": [
      "relative-position",
      "alibi",
      "position-interpolation",
      "yarn",
      "longrope"
    ],
    "lineage": [
      {
        "family": "positions",
        "parent": "rope",
        "child": "position-interpolation",
        "kind": "builds",
        "explanation": {
          "fr": "L’interpolation réduit les indices de position avant d’appliquer RoPE, pour faire tenir un texte plus long dans la plage apprise.",
          "en": "Interpolation reduces position indices before applying RoPE, fitting a longer text into the learned range."
        },
        "source": {
          "url": "https://arxiv.org/abs/2306.15595",
          "title": "Extending Context Window of Large Language Models via Positional Interpolation"
        }
      }
    ],
    "lineage_families": [
      "positions"
    ],
    "beginner": {
      "summary": {
        "fr": "Utiliser des rotations numériques pour indiquer les distances dans le texte.",
        "en": "Use numerical rotations to represent distances in text."
      },
      "problem": {
        "fr": "Les comparaisons entre morceaux de texte doivent tenir compte de leur ordre et de leur distance.",
        "en": "Comparisons between text pieces must account for their order and distance."
      },
      "idea": {
        "fr": "Les nombres servant à chercher et à identifier les informations sont tournés par paires selon leur position. Leur comparaison dépend alors de l’écart entre ces positions.",
        "en": "The numbers used to seek and identify information are rotated in pairs according to position. Their comparison then depends on the gap between those positions."
      },
      "example": {
        "fr": "Deux mots voisins ont un écart de rotation lié à leur proximité, même lorsqu’ils apparaissent ailleurs dans la phrase.",
        "en": "Two neighboring words have a rotation difference linked to their proximity even when they occur elsewhere in a sentence."
      },
      "gain": {
        "fr": "La distance relative entre morceaux entre directement dans les scores d’attention.",
        "en": "Relative distance between pieces directly affects attention scores."
      },
      "limit": {
        "fr": "Ce mécanisme ne garantit pas un bon fonctionnement sur des textes beaucoup plus longs que ceux de l’entraînement.",
        "en": "This mechanism does not guarantee good performance on text far longer than training examples."
      }
    }
  },
  {
    "id": "lora",
    "date": "2021-06-17",
    "category": "training",
    "essential": true,
    "title": {
      "fr": "LoRA : adapter avec des matrices de faible rang",
      "en": "LoRA: adapting with low-rank matrices"
    },
    "summary": {
      "fr": "LoRA réduit fortement le nombre de poids entraînables nécessaires pour adapter un modèle.",
      "en": "LoRA greatly reduces the trainable weights needed to adapt a model."
    },
    "mechanism": {
      "fr": "Les poids préentraînés sont gelés. Leur modification est représentée par le produit de deux petites matrices, appris pendant l’adaptation ; ce produit peut ensuite être fusionné avec les poids de départ.",
      "en": "Pretrained weights remain frozen. Their update is represented by the product of two small matrices learned during adaptation; the product can later be merged into the original weights."
    },
    "tradeoff": {
      "fr": "Le choix du rang et des couches ciblées limite ce que l’adaptation peut représenter.",
      "en": "Rank and target-layer choices limit what the adaptation can represent."
    },
    "origin": {
      "fr": "Hu et al. : démonstrations sur RoBERTa, DeBERTa, GPT-2 et GPT-3.",
      "en": "Hu et al.: demonstrations on RoBERTa, DeBERTa, GPT-2 and GPT-3."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2106.09685",
        "title": "LoRA: Low-Rank Adaptation of Large Language Models"
      }
    ],
    "related": [
      "adapters",
      "prefix-tuning",
      "qlora",
      "ia3"
    ],
    "lineage": [
      {
        "family": "adaptation",
        "parent": "lora",
        "child": "qlora",
        "kind": "combines",
        "explanation": {
          "fr": "QLoRA entraîne les petites matrices de LoRA à travers un modèle de base gelé et quantifié sur 4 bits.",
          "en": "QLoRA trains LoRA’s small matrices through a frozen base model quantized to 4 bits."
        },
        "source": {
          "url": "https://arxiv.org/abs/2305.14314",
          "title": "QLoRA: Efficient Finetuning of Quantized LLMs"
        }
      }
    ],
    "lineage_families": [
      "adaptation"
    ],
    "beginner": {
      "summary": {
        "fr": "Adapter un modèle en apprenant une petite correction structurée.",
        "en": "Adapt a model by learning a small structured correction."
      },
      "problem": {
        "fr": "Modifier toutes les valeurs d’un grand modèle exige beaucoup de mémoire pour son adaptation.",
        "en": "Changing every value in a large model requires substantial memory during adaptation."
      },
      "idea": {
        "fr": "Les valeurs déjà apprises restent fixes. Deux petits tableaux de nombres sont appris puis multipliés pour représenter une correction de certains grands tableaux du modèle.",
        "en": "Existing learned values remain fixed. Two small numerical tables are learned and multiplied to represent a correction to selected large tables in the model."
      },
      "example": {
        "fr": "Pour adapter le modèle à un style de texte, on apprend ces petits tableaux plutôt qu’une modification indépendante de chaque valeur.",
        "en": "To adapt a model to a writing style, these small tables are learned instead of an independent change to every value."
      },
      "gain": {
        "fr": "Beaucoup moins de valeurs doivent être entraînées et stockées pour chaque adaptation.",
        "en": "Far fewer values need to be trained and stored for each adaptation."
      },
      "limit": {
        "fr": "La taille des tableaux et les étapes ciblées limitent les changements possibles.",
        "en": "Table size and targeted stages limit the changes that can be represented."
      }
    }
  },
  {
    "id": "alibi",
    "date": "2021-08-27",
    "category": "architecture",
    "essential": false,
    "title": {
      "fr": "ALiBi : pénaliser directement les distances",
      "en": "ALiBi: directly penalizing distances"
    },
    "summary": {
      "fr": "Un biais linéaire permet d’encoder la position sans ajouter de vecteurs positionnels aux tokens.",
      "en": "A linear bias encodes position without adding positional vectors to tokens."
    },
    "mechanism": {
      "fr": "Chaque tête soustrait au score d’attention une pénalité proportionnelle à la distance, avec sa propre pente. La formulation favorise les tokens proches et s’applique à des longueurs non vues pendant l’entraînement.",
      "en": "Each head subtracts a distance-proportional penalty from attention scores using its own slope. This favors nearby tokens and applies to lengths unseen during training."
    },
    "tradeoff": {
      "fr": "L’extrapolation mesurée dans le papier ne garantit pas une récupération fiable à toute distance.",
      "en": "Measured extrapolation does not guarantee reliable retrieval at every distance."
    },
    "origin": {
      "fr": "Press, Smith et Lewis : modèles autorégressifs expérimentaux, avant BLOOM.",
      "en": "Press, Smith and Lewis: experimental autoregressive models, before BLOOM."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2108.12409",
        "title": "Train Short, Test Long: Attention with Linear Biases Enables Input Length Extrapolation"
      }
    ],
    "related": [
      "rope",
      "relative-position",
      "position-interpolation",
      "yarn",
      "longrope"
    ],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Ajouter aux comparaisons une pénalité qui augmente avec la distance.",
        "en": "Add a comparison penalty that increases with distance."
      },
      "problem": {
        "fr": "Le calcul d’attention doit distinguer les éléments proches des éléments éloignés.",
        "en": "Attention calculations need to distinguish nearby elements from distant ones."
      },
      "idea": {
        "fr": "Chaque voie de lecture soustrait une pénalité proportionnelle à la distance entre morceaux. Les voies utilisent des pentes différentes, sans ajouter de représentation de position à chaque morceau.",
        "en": "Each reading path subtracts a penalty proportional to distance between pieces. Paths use different slopes without adding a position representation to every piece."
      },
      "example": {
        "fr": "À pertinence égale, un mot proche reçoit un meilleur score qu’un mot plus éloigné.",
        "en": "With equal content relevance, a nearby word receives a higher score than a more distant word."
      },
      "gain": {
        "fr": "La même règle de position peut être appliquée à des longueurs absentes de l’entraînement.",
        "en": "The same position rule can be applied to lengths absent from training."
      },
      "limit": {
        "fr": "Appliquer la règle à un long texte ne garantit pas de retrouver une information à toute distance.",
        "en": "Applying the rule to long text does not guarantee finding information at every distance."
      }
    }
  },
  {
    "id": "flan",
    "date": "2021-09-03",
    "category": "training",
    "essential": true,
    "title": {
      "fr": "FLAN : apprendre à suivre des instructions",
      "en": "FLAN: learning to follow instructions"
    },
    "summary": {
      "fr": "L’adaptation sur de nombreuses tâches décrites en langage naturel améliore le transfert zero-shot.",
      "en": "Fine-tuning on many tasks described in natural language improves zero-shot transfer."
    },
    "mechanism": {
      "fr": "Un modèle préentraîné est adapté sur des exemples dont l’entrée contient une consigne. L’évaluation porte sur des familles de tâches laissées de côté, afin de tester le transfert au-delà des tâches d’entraînement.",
      "en": "A pretrained model is fine-tuned on examples whose inputs contain instructions. Evaluation uses held-out task families to test transfer beyond training tasks."
    },
    "tradeoff": {
      "fr": "La qualité et la diversité des tâches conditionnent le transfert ; ce n’est pas du RLHF.",
      "en": "Task quality and diversity determine transfer; this is not RLHF."
    },
    "origin": {
      "fr": "Wei et al., Google : FLAN, issu d’un modèle de langage de 137 milliards de paramètres.",
      "en": "Wei et al., Google: FLAN, derived from a 137-billion-parameter language model."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2109.01652",
        "title": "Finetuned Language Models Are Zero-Shot Learners"
      }
    ],
    "related": [
      "t5",
      "gpt3"
    ],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Entraîner le modèle sur de nombreuses tâches présentées comme des consignes.",
        "en": "Train the model on many tasks presented as instructions."
      },
      "problem": {
        "fr": "Un modèle qui sait poursuivre du texte ne suit pas nécessairement une demande nouvelle.",
        "en": "A model that can continue text does not necessarily follow a new request."
      },
      "idea": {
        "fr": "On adapte un modèle existant avec des exemples associant une consigne à une sortie attendue. Des familles de tâches sont gardées à part pour tester sa capacité à suivre d’autres consignes.",
        "en": "An existing model is adapted using examples pairing an instruction with an expected output. Some task families are held aside to test following other instructions."
      },
      "example": {
        "fr": "Le modèle rencontre des demandes comme « traduis cette phrase » et « classe cet avis », avec leurs réponses attendues.",
        "en": "The model sees requests such as “translate this sentence” and “classify this review”, with their expected answers."
      },
      "gain": {
        "fr": "Cet apprentissage peut améliorer les résultats sur des tâches absentes de l’adaptation.",
        "en": "This training can improve results on tasks absent from adaptation."
      },
      "limit": {
        "fr": "Le transfert dépend de la qualité et de la diversité des tâches proposées.",
        "en": "Transfer depends on the quality and diversity of the supplied tasks."
      }
    }
  },
  {
    "id": "normformer",
    "date": "2021-10-18",
    "category": "architecture",
    "essential": false,
    "title": {
      "fr": "NormFormer : équilibrer les gradients par des normes supplémentaires",
      "en": "NormFormer: balancing gradients with extra normalization"
    },
    "summary": {
      "fr": "Des normalisations supplémentaires cherchent à améliorer l’optimisation des Transformers Pre-LN.",
      "en": "Additional normalization operations aim to improve optimization of Pre-LN Transformers."
    },
    "mechanism": {
      "fr": "Le bloc ajoute notamment une normalisation après l’attention, une mise à l’échelle par tête et une normalisation dans le réseau de transformation. Ces changements réduisent certains écarts d’échelle des gradients entre couches.",
      "en": "The block adds normalization after attention, per-head scaling and normalization inside the feed-forward network. These changes reduce some gradient-scale mismatches across layers."
    },
    "tradeoff": {
      "fr": "Les opérations supplémentaires ont un coût et ne constituent pas une adoption universelle.",
      "en": "Additional operations have a cost and do not imply universal adoption."
    },
    "origin": {
      "fr": "Shleifer, Weston et Ott : NormFormer, modèles de langage expérimentaux.",
      "en": "Shleifer, Weston and Ott: NormFormer, experimental language models."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2110.09456",
        "title": "NormFormer: Improved Transformer Pretraining with Extra Normalization"
      }
    ],
    "related": [
      "pre-layernorm",
      "layernorm"
    ],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Ajouter des réglages d’échelle pour mieux équilibrer l’apprentissage entre les étapes.",
        "en": "Add scale adjustments to better balance learning across stages."
      },
      "problem": {
        "fr": "Les corrections d’apprentissage peuvent avoir des tailles trop différentes selon les étapes du réseau.",
        "en": "Learning corrections can have very different sizes at different network stages."
      },
      "idea": {
        "fr": "La méthode ajoute des remises à l’échelle après l’attention et dans les transformations internes. Elle apprend aussi une échelle propre à chaque voie de lecture pour réduire certains déséquilibres.",
        "en": "The method adds rescaling after attention and within internal transformations. It also learns a scale for each reading path to reduce some imbalances."
      },
      "example": {
        "fr": "Une étape recevant des corrections bien plus grandes qu’une autre peut bénéficier de ces ajustements d’échelle.",
        "en": "A stage receiving much larger corrections than another may benefit from these scale adjustments."
      },
      "gain": {
        "fr": "Les corrections peuvent devenir mieux équilibrées et l’entraînement plus efficace dans les expériences étudiées.",
        "en": "Corrections can become better balanced and training more effective in the studied experiments."
      },
      "limit": {
        "fr": "Ces opérations ajoutent un coût et leur intérêt dépend de la configuration.",
        "en": "These operations add cost and their usefulness depends on the configuration."
      }
    }
  },
  {
    "id": "s4",
    "date": "2021-10-31",
    "category": "architecture",
    "essential": true,
    "title": {
      "fr": "S4 : modéliser les séquences par un état structuré",
      "en": "S4: modeling sequences with a structured state"
    },
    "summary": {
      "fr": "Les modèles d’espace d’état structurés offrent une autre voie pour traiter de longues séquences.",
      "en": "Structured state-space models offer another route to processing long sequences."
    },
    "mechanism": {
      "fr": "Un système dynamique met à jour un état compact à partir des entrées. Sa structure permet de calculer efficacement un noyau de convolution à l’entraînement et de traiter les données de façon récurrente en génération.",
      "en": "A dynamical system updates a compact state from inputs. Its structure enables efficient convolution-kernel computation during training and recurrent processing during generation."
    },
    "tradeoff": {
      "fr": "L’état compresse l’historique et le mécanisme diffère d’une recherche directe entre tokens.",
      "en": "The state compresses history and differs from direct token-to-token retrieval."
    },
    "origin": {
      "fr": "Gu, Goel et Ré : S4 ; 2111.00396, pas 2208.04933 qui correspond à S5.",
      "en": "Gu, Goel and Ré: S4; 2111.00396, not 2208.04933, which is S5."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2111.00396",
        "title": "Efficiently Modeling Long Sequences with Structured State Spaces"
      }
    ],
    "related": [
      "linear-attention",
      "transformer-xl",
      "s5",
      "mamba",
      "mamba-2"
    ],
    "lineage": [
      {
        "family": "state",
        "parent": "s4",
        "child": "mamba",
        "kind": "improves",
        "explanation": {
          "fr": "Mamba prolonge les modèles à espace d’état en faisant dépendre de l’entrée ce qui est retenu ou oublié.",
          "en": "Mamba extends state-space models by making what is retained or forgotten depend on the input."
        },
        "source": {
          "url": "https://arxiv.org/abs/2312.00752",
          "title": "Mamba: Linear-Time Sequence Modeling with Selective State Spaces"
        }
      }
    ],
    "lineage_families": [
      "state"
    ],
    "beginner": {
      "summary": {
        "fr": "Traiter une longue suite en mettant à jour un état numérique compact.",
        "en": "Process a long sequence by updating a compact numerical state."
      },
      "problem": {
        "fr": "Conserver et comparer séparément tous les éléments du passé devient coûteux.",
        "en": "Keeping and separately comparing every past element becomes expensive."
      },
      "idea": {
        "fr": "Chaque nouvelle entrée modifie un état de taille limitée selon un système mathématique structuré. Cette structure permet un calcul parallèle pendant l’entraînement et une mise à jour pas à pas pendant l’utilisation.",
        "en": "Each new input changes a limited-size state according to a structured mathematical system. This structure enables parallel calculation during training and step-by-step updates during use."
      },
      "example": {
        "fr": "À l’arrivée d’un nouvel élément, le système actualise son état sans relire individuellement tous les éléments précédents.",
        "en": "When a new element arrives, the system updates its state without individually rereading all previous elements."
      },
      "gain": {
        "fr": "Cette approche offre une autre manière de traiter de longues séquences.",
        "en": "This approach offers another way to process long sequences."
      },
      "limit": {
        "fr": "L’état compresse le passé et ne fournit pas un accès direct à chaque détail ancien.",
        "en": "The state compresses the past and does not provide direct access to every old detail."
      }
    }
  },
  {
    "id": "retro",
    "date": "2021-12-08",
    "category": "architecture",
    "essential": false,
    "title": {
      "fr": "RETRO : intégrer la recherche à l’architecture",
      "en": "RETRO: integrating retrieval into the architecture"
    },
    "summary": {
      "fr": "Une grande base de passages soutient la génération avec moins de paramètres dans les expériences rapportées.",
      "en": "A large passage database supports generation with fewer parameters in the reported experiments."
    },
    "mechanism": {
      "fr": "Le modèle récupère des voisins de segments de texte avec un récupérateur gelé. Un encodeur et des couches d’attention croisée intègrent les passages retrouvés pendant la prédiction des tokens.",
      "en": "The model retrieves neighboring text chunks with a frozen retriever. An encoder and cross-attention layers integrate retrieved passages during token prediction."
    },
    "tradeoff": {
      "fr": "Le système dépend de la qualité et de la disponibilité de l’index documentaire.",
      "en": "The system depends on the quality and availability of its document index."
    },
    "origin": {
      "fr": "Borgeaud et al., DeepMind : Retrieval-Enhanced Transformer, RETRO.",
      "en": "Borgeaud et al., DeepMind: Retrieval-Enhanced Transformer, RETRO."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2112.04426",
        "title": "Improving language models by retrieving from trillions of tokens"
      }
    ],
    "related": [
      "rag",
      "product-key-memory"
    ],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Intégrer la consultation de passages similaires dans le calcul du modèle.",
        "en": "Build consultation of similar passages into the model’s calculations."
      },
      "problem": {
        "fr": "Stocker toutes les informations utiles uniquement dans les valeurs apprises demande de très grands modèles.",
        "en": "Storing all useful information only in learned values requires very large models."
      },
      "idea": {
        "fr": "Le système recherche des passages voisins du segment traité dans une grande collection. Des étapes dédiées du réseau lisent ces passages et les intègrent à la prédiction du texte suivant.",
        "en": "The system retrieves passages neighboring the current segment from a large collection. Dedicated network stages read these passages and incorporate them into prediction of the next text."
      },
      "example": {
        "fr": "Un segment parlant d’un sujet peut être accompagné de passages similaires retrouvés dans la collection.",
        "en": "A segment discussing a subject can be accompanied by similar passages retrieved from the collection."
      },
      "gain": {
        "fr": "Les expériences montrent qu’une collection consultable peut soutenir un modèle contenant moins de valeurs apprises.",
        "en": "The experiments show that a searchable collection can support a model with fewer learned values."
      },
      "limit": {
        "fr": "Le système dépend de la qualité de la recherche et de la disponibilité de sa collection.",
        "en": "The system depends on retrieval quality and the availability of its collection."
      }
    }
  },
  {
    "id": "chain-of-thought",
    "date": "2022-01",
    "category": "reasoning",
    "essential": true,
    "title": {
      "fr": "Chain-of-Thought : expliciter les étapes",
      "en": "Chain-of-Thought: intermediate steps"
    },
    "summary": {
      "fr": "Des exemples de raisonnement dans le prompt améliorent la résolution de problèmes.",
      "en": "Worked reasoning examples in the prompt improve problem solving."
    },
    "mechanism": {
      "fr": "Le modèle imite des démonstrations contenant des étapes intermédiaires avant la réponse. Ces tokens supplémentaires décomposent des calculs ou des déductions en opérations plus simples.",
      "en": "The model imitates demonstrations that show intermediate steps before the answer. These additional tokens split calculations or deductions into simpler operations."
    },
    "tradeoff": {
      "fr": "Une justification plausible ne garantit ni un résultat juste ni une explication fidèle.",
      "en": "Plausible reasoning guarantees neither correctness nor a faithful explanation."
    },
    "origin": {
      "fr": "GPT-3 et LaMDA dans les premières expériences ; PaLM dans les versions ultérieures.",
      "en": "GPT-3 and LaMDA in early experiments; PaLM in later versions."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2201.11903",
        "title": "Chain-of-Thought Prompting Elicits Reasoning in Large Language Models"
      }
    ],
    "related": [],
    "lineage": [
      {
        "family": "reasoning",
        "parent": "chain-of-thought",
        "child": "self-consistency",
        "kind": "improves",
        "explanation": {
          "fr": "La self-consistency génère plusieurs raisonnements de type Chain-of-Thought, puis retient la réponse la plus fréquente.",
          "en": "Self-consistency generates several Chain-of-Thought reasoning paths, then selects the most frequent answer."
        },
        "source": {
          "url": "https://arxiv.org/abs/2203.11171",
          "title": "Self-Consistency Improves Chain of Thought Reasoning in Language Models"
        }
      }
    ],
    "lineage_families": [
      "reasoning"
    ],
    "beginner": {
      "summary": {
        "fr": "Décomposer une réponse en étapes peut aider à résoudre certains problèmes.",
        "en": "Breaking an answer into steps can help solve some problems."
      },
      "problem": {
        "fr": "Une réponse directe saute parfois un calcul utile.",
        "en": "A direct answer sometimes skips a useful calculation."
      },
      "idea": {
        "fr": "Montrer des exemples avec des étapes encourage le modèle à produire aussi des étapes.",
        "en": "Showing examples with written intermediate steps encourages the model to write similar steps before producing its final answer."
      },
      "example": {
        "fr": "Exemple fictif : calculer un sous-total avant une remise.",
        "en": "Fictional example: calculate a subtotal before applying a discount."
      },
      "gain": {
        "fr": "Certains problèmes deviennent plus faciles à résoudre.",
        "en": "Some problems become easier to solve."
      },
      "limit": {
        "fr": "Une explication plausible peut être fausse ou ne pas refléter le calcul interne.",
        "en": "A plausible explanation can be wrong or fail to reflect the internal computation."
      }
    }
  },
  {
    "id": "chinchilla",
    "date": "2022-03",
    "category": "data",
    "essential": true,
    "title": {
      "fr": "Chinchilla : équilibrer paramètres et données",
      "en": "Chinchilla: balancing parameters and data"
    },
    "summary": {
      "fr": "À budget fixé, entraîner davantage un modèle plus petit peut améliorer ses résultats.",
      "en": "At fixed compute, training a smaller model longer can improve results."
    },
    "mechanism": {
      "fr": "Des expériences font varier taille, volume de tokens et calcul. Les lois ajustées recommandent d'augmenter conjointement paramètres et données pour utiliser efficacement le budget d'entraînement.",
      "en": "Experiments vary model size, token count and compute. Fitted laws recommend scaling parameters and data together to use the training budget efficiently."
    },
    "tradeoff": {
      "fr": "L'optimum change si l'on inclut le coût d'inférence ou d'autres distributions de données.",
      "en": "The optimum changes when inference cost or different data distributions are included."
    },
    "origin": {
      "fr": "Chinchilla 70B, comparé notamment à Gopher 280B.",
      "en": "Chinchilla 70B, compared notably with Gopher 280B."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2203.15556",
        "title": "Training Compute-Optimal Large Language Models"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Un modèle plus petit peut mieux apprendre si on lui donne davantage de textes.",
        "en": "A smaller model can learn better when given more text."
      },
      "problem": {
        "fr": "Agrandir le modèle consomme le budget avant d'avoir assez appris.",
        "en": "Making a model bigger can exhaust the budget before it has learned enough."
      },
      "idea": {
        "fr": "On équilibre le nombre de valeurs apprises et la quantité de texte pendant l'entraînement.",
        "en": "Balance the number of learned values against the amount of training text."
      },
      "example": {
        "fr": "Exemple fictif : entraîner davantage un petit modèle plutôt qu'agrandir son voisin.",
        "en": "Fictional example: train a smaller model longer instead of enlarging its counterpart."
      },
      "gain": {
        "fr": "Le même budget peut produire de meilleurs résultats.",
        "en": "The same budget can yield better results."
      },
      "limit": {
        "fr": "Le meilleur équilibre change quand on compte aussi le coût des réponses.",
        "en": "The best balance changes when the cost of answering is included."
      }
    }
  },
  {
    "id": "instructgpt",
    "date": "2022-03",
    "category": "training",
    "essential": true,
    "title": {
      "fr": "InstructGPT : suivre l'intention humaine",
      "en": "InstructGPT: following human intent"
    },
    "summary": {
      "fr": "Le post-entraînement transforme un prédicteur de texte en assistant plus utile.",
      "en": "Post-training turns a text predictor into a more useful assistant."
    },
    "mechanism": {
      "fr": "Après des démonstrations supervisées, des humains classent les réponses. Un modèle de récompense apprend ces préférences et guide une optimisation par renforcement avec PPO.",
      "en": "After supervised demonstrations, humans rank responses. A reward model learns these preferences and guides reinforcement learning with PPO."
    },
    "tradeoff": {
      "fr": "La qualité dépend des préférences collectées ; les erreurs factuelles subsistent.",
      "en": "Quality depends on collected preferences; factual errors remain."
    },
    "origin": {
      "fr": "InstructGPT, obtenu en adaptant GPT-3 ; ce papier ne présente pas ChatGPT.",
      "en": "InstructGPT, adapted from GPT-3; this paper does not introduce ChatGPT."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2203.02155",
        "title": "Training language models to follow instructions with human feedback"
      }
    ],
    "related": [
      "rlhf-origins",
      "dpo",
      "grpo",
      "deepseek-r1"
    ],
    "lineage": [
      {
        "family": "preferences",
        "parent": "rlhf-origins",
        "child": "instructgpt",
        "kind": "builds",
        "explanation": {
          "fr": "InstructGPT applique l’apprentissage d’une récompense à partir de préférences humaines pour ajuster un modèle de langage.",
          "en": "InstructGPT applies reward learning from human preferences to tune a language model."
        },
        "source": {
          "url": "https://arxiv.org/abs/2203.02155",
          "title": "Training language models to follow instructions with human feedback"
        }
      },
      {
        "family": "preferences",
        "parent": "instructgpt",
        "child": "dpo",
        "kind": "alternative",
        "explanation": {
          "fr": "DPO apprend directement sur les réponses préférées et rejetées, sans entraîner le modèle de récompense séparé utilisé dans la recette d’InstructGPT.",
          "en": "DPO learns directly from preferred and rejected responses, without training the separate reward model used in the InstructGPT recipe."
        },
        "source": {
          "url": "https://arxiv.org/abs/2305.18290",
          "title": "Direct Preference Optimization: Your Language Model is Secretly a Reward Model"
        }
      }
    ],
    "lineage_families": [
      "preferences"
    ],
    "beginner": {
      "summary": {
        "fr": "Des exemples et des préférences humaines rendent les réponses plus utiles.",
        "en": "Human examples and preferences make answers more useful."
      },
      "problem": {
        "fr": "Compléter un texte ne suffit pas pour suivre une demande.",
        "en": "Completing text is not enough to follow a request."
      },
      "idea": {
        "fr": "Des humains montrent des réponses puis classent des propositions. Un système de notation guide l'entraînement suivant.",
        "en": "People demonstrate useful answers and rank alternatives to the same request. A learned scoring system then guides further training."
      },
      "example": {
        "fr": "Exemple fictif : préférer une réponse claire à une suite de texte hors sujet.",
        "en": "Fictional example: prefer a clear answer over an irrelevant continuation."
      },
      "gain": {
        "fr": "Le modèle suit mieux certaines consignes.",
        "en": "The model follows some instructions better."
      },
      "limit": {
        "fr": "Une réponse appréciée peut encore contenir des erreurs factuelles.",
        "en": "An answer that people prefer can still contain factual errors."
      }
    }
  },
  {
    "id": "mu-transfer",
    "date": "2022-03",
    "category": "training",
    "essential": false,
    "title": {
      "fr": "µP / µTransfer : régler petit, entraîner grand",
      "en": "µP / µTransfer: tune small, train large"
    },
    "summary": {
      "fr": "Des réglages trouvés sur un petit réseau deviennent transférables à un grand.",
      "en": "Settings found on a small network become transferable to a large one."
    },
    "mechanism": {
      "fr": "La paramétrisation µP adapte les échelles de poids et de mise à jour à la largeur du réseau. On recherche les hyperparamètres sur un modèle réduit puis on les transfère.",
      "en": "µP adjusts weight and update scales to network width. Hyperparameters are tuned on a smaller model and then transferred."
    },
    "tradeoff": {
      "fr": "Le transfert exige une paramétrisation cohérente ; changer toute l'architecture reste délicat.",
      "en": "Transfer requires consistent parameterization; arbitrary architecture changes remain difficult."
    },
    "origin": {
      "fr": "Démonstrations sur Transformers, BERT et modèles de type GPT.",
      "en": "Demonstrations on Transformers, BERT and GPT-style models."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2203.03466",
        "title": "Tensor Programs V: Tuning Large Neural Networks via Zero-Shot Hyperparameter Transfer"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Des essais sur un petit modèle aident à régler son grand équivalent.",
        "en": "Experiments on a small model help configure its larger counterpart."
      },
      "problem": {
        "fr": "Tester chaque réglage directement sur un grand modèle coûte cher.",
        "en": "Testing every setting directly on a large model is expensive."
      },
      "idea": {
        "fr": "Une règle ajuste les échelles des valeurs apprises et de leurs modifications quand la taille augmente.",
        "en": "A rule adjusts the scales of learned values and their updates as size increases."
      },
      "example": {
        "fr": "Exemple fictif : choisir la vitesse d'apprentissage sur une version réduite.",
        "en": "Fictional example: choose the learning speed using a reduced version."
      },
      "gain": {
        "fr": "Certains réglages se transfèrent avec moins d'essais coûteux.",
        "en": "Some settings transfer with fewer expensive experiments."
      },
      "limit": {
        "fr": "Le transfert exige des versions compatibles et ne fonctionne pas pour tout changement.",
        "en": "Transfer requires compatible versions and does not work for every architectural change."
      }
    }
  },
  {
    "id": "self-consistency",
    "date": "2022-03",
    "category": "reasoning",
    "essential": true,
    "title": {
      "fr": "Self-consistency : faire voter les raisonnements",
      "en": "Self-consistency: voting across reasoning paths"
    },
    "summary": {
      "fr": "Plusieurs tentatives peuvent produire une réponse plus fiable qu'une seule.",
      "en": "Multiple attempts can produce a more reliable answer than a single one."
    },
    "mechanism": {
      "fr": "On échantillonne plusieurs chaînes de raisonnement, puis on choisit la réponse finale la plus fréquente. Des chemins différents peuvent converger vers la même solution.",
      "en": "Sample several reasoning chains, then select the most frequent final answer. Different paths can converge on the same solution."
    },
    "tradeoff": {
      "fr": "Le coût augmente avec les essais et des erreurs corrélées peuvent gagner le vote.",
      "en": "Cost grows with attempts, and correlated mistakes can win the vote."
    },
    "origin": {
      "fr": "Expériences sur des familles GPT-3, LaMDA et PaLM dans le papier.",
      "en": "Experiments on GPT-3, LaMDA and PaLM families in the paper."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2203.11171",
        "title": "Self-Consistency Improves Chain of Thought Reasoning in Language Models"
      }
    ],
    "related": [],
    "lineage": [
      {
        "family": "reasoning",
        "parent": "chain-of-thought",
        "child": "self-consistency",
        "kind": "improves",
        "explanation": {
          "fr": "La self-consistency génère plusieurs raisonnements de type Chain-of-Thought, puis retient la réponse la plus fréquente.",
          "en": "Self-consistency generates several Chain-of-Thought reasoning paths, then selects the most frequent answer."
        },
        "source": {
          "url": "https://arxiv.org/abs/2203.11171",
          "title": "Self-Consistency Improves Chain of Thought Reasoning in Language Models"
        }
      }
    ],
    "lineage_families": [
      "reasoning"
    ],
    "beginner": {
      "summary": {
        "fr": "Comparer plusieurs solutions aide parfois à choisir une réponse.",
        "en": "Comparing several solutions sometimes helps select an answer."
      },
      "problem": {
        "fr": "Une seule tentative peut suivre une mauvaise piste.",
        "en": "A single attempt can follow an unsuccessful path."
      },
      "idea": {
        "fr": "Le modèle produit plusieurs suites d'étapes, puis on retient la réponse finale la plus fréquente.",
        "en": "The model generates several different sequences of steps for the same question, then the most frequent final answer is selected."
      },
      "example": {
        "fr": "Exemple fictif : cinq essais donnent trois fois le même résultat.",
        "en": "Fictional example: five attempts return the same result three times."
      },
      "gain": {
        "fr": "Un vote peut écarter certaines erreurs isolées.",
        "en": "Voting can eliminate some isolated errors."
      },
      "limit": {
        "fr": "Les essais coûtent du calcul et peuvent tous reproduire la même erreur.",
        "en": "The attempts consume computation and may all repeat the same mistake."
      }
    }
  },
  {
    "id": "star",
    "date": "2022-03",
    "category": "reasoning",
    "essential": false,
    "title": {
      "fr": "STaR : apprendre de ses raisonnements réussis",
      "en": "STaR: learning from successful reasoning"
    },
    "summary": {
      "fr": "Un modèle améliore son raisonnement en réutilisant ses propres solutions vérifiées.",
      "en": "A model improves reasoning by reusing its own verified solutions."
    },
    "mechanism": {
      "fr": "Le modèle génère des raisonnements ; ceux donnant la bonne réponse alimentent un nouvel ajustement. Pour les échecs, connaître la réponse aide à produire une justification supplémentaire.",
      "en": "The model generates rationales; those reaching the correct answer become fine-tuning data. For failures, access to the answer helps generate another rationale."
    },
    "tradeoff": {
      "fr": "Une bonne réponse peut masquer un mauvais raisonnement ; le filtrage est crucial.",
      "en": "A correct answer can hide faulty reasoning; filtering is crucial."
    },
    "origin": {
      "fr": "STaR, démontré notamment avec GPT-J.",
      "en": "STaR, demonstrated notably with GPT-J."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2203.14465",
        "title": "STaR: Bootstrapping Reasoning With Reasoning"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Des solutions réussies deviennent de nouveaux exemples d'apprentissage.",
        "en": "Successful solutions become new training examples."
      },
      "problem": {
        "fr": "Les démonstrations rédigées par des humains sont limitées.",
        "en": "Human-written demonstrations are limited."
      },
      "idea": {
        "fr": "Le modèle produit des solutions. Celles qui donnent une réponse correcte servent à poursuivre son entraînement.",
        "en": "The model generates worked solutions to questions with known answers. Those producing a correct answer are retained as examples for further training."
      },
      "example": {
        "fr": "Exemple fictif : conserver une résolution qui retrouve le total attendu.",
        "en": "Fictional example: retain a solution that reaches the expected total."
      },
      "gain": {
        "fr": "On augmente le nombre d'exemples disponibles.",
        "en": "More examples become available for learning."
      },
      "limit": {
        "fr": "Une réponse finale correcte ne garantit pas que toutes les étapes soient justes.",
        "en": "A correct final answer does not guarantee that every intermediate step is sound."
      }
    }
  },
  {
    "id": "flamingo",
    "date": "2022-04",
    "category": "multimodal",
    "essential": true,
    "title": {
      "fr": "Flamingo : connecter vision et langage",
      "en": "Flamingo: connecting vision and language"
    },
    "summary": {
      "fr": "Un modèle peut répondre à des séquences mêlant images et texte avec peu d'exemples.",
      "en": "A model can answer interleaved image-text sequences from few examples."
    },
    "mechanism": {
      "fr": "Un Perceiver Resampler condense les représentations visuelles. Des couches d'attention croisée relient ces représentations à un modèle de langage, en conservant les grands composants préentraînés gelés.",
      "en": "A Perceiver Resampler compresses visual representations. Cross-attention layers connect them to a language model while large pretrained components remain frozen."
    },
    "tradeoff": {
      "fr": "La compression visuelle perd des détails et ne supprime pas les hallucinations.",
      "en": "Visual compression loses detail and does not eliminate hallucinations."
    },
    "origin": {
      "fr": "Flamingo, DeepMind ; ce n'est pas l'origine de toute multimodalité.",
      "en": "Flamingo, DeepMind; not the origin of multimodality as a whole."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2204.14198",
        "title": "Flamingo: a Visual Language Model for Few-Shot Learning"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Des composants visuels permettent de répondre sur des images mêlées au texte.",
        "en": "Visual components enable answers about images mixed with text."
      },
      "problem": {
        "fr": "Un modèle de texte seul ne reçoit pas directement les informations d'une image.",
        "en": "A text-only model does not directly receive information from an image."
      },
      "idea": {
        "fr": "Un composant condense l'image, puis des étapes de lecture relient ces informations au texte.",
        "en": "One component condenses the image, then reading stages connect this information to the text."
      },
      "example": {
        "fr": "Exemple fictif : montrer une photo puis demander sa couleur dominante.",
        "en": "Fictional example: show a photograph and ask for its dominant colour."
      },
      "gain": {
        "fr": "Le modèle peut utiliser des exemples mêlant images et phrases.",
        "en": "The model can use examples containing both images and sentences."
      },
      "limit": {
        "fr": "La condensation peut perdre des détails et les réponses restent faillibles.",
        "en": "Compression can lose details, and answers remain fallible."
      }
    }
  },
  {
    "id": "palm",
    "date": "2022-04",
    "category": "training",
    "essential": false,
    "title": {
      "fr": "PaLM : entraîner à l'échelle des pods TPU",
      "en": "PaLM: training across TPU pods"
    },
    "summary": {
      "fr": "Une grande expérience dense démontre les possibilités d'un entraînement distribué efficace.",
      "en": "A large dense-model experiment demonstrates efficient distributed training."
    },
    "mechanism": {
      "fr": "Pathways coordonne l'entraînement de PaLM sur plusieurs ensembles de TPU. Le modèle combine des choix d'architecture antérieurs et teste comment l'échelle améliore apprentissage par exemples et raisonnement guidé.",
      "en": "Pathways coordinates PaLM training across TPU groups. The model combines earlier architecture choices and tests how scale improves few-shot learning and prompted reasoning."
    },
    "tradeoff": {
      "fr": "C'est une synthèse à grande échelle, pas l'invention des techniques qu'elle utilise.",
      "en": "This is a large-scale synthesis, not the invention of its component techniques."
    },
    "origin": {
      "fr": "PaLM 540B, Google ; papier en avril 2022.",
      "en": "PaLM 540B, Google; paper in April 2022."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2204.02311",
        "title": "PaLM: Scaling Language Modeling with Pathways"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Un entraînement réparti à grande échelle explore les capacités des grands modèles.",
        "en": "Large-scale distributed training explores the abilities of bigger models."
      },
      "problem": {
        "fr": "Un très grand modèle dépasse les capacités d'une seule machine.",
        "en": "A very large model exceeds the capacity of a single machine."
      },
      "idea": {
        "fr": "Un système coordonne de nombreuses puces pour entraîner ensemble les différentes parties du modèle.",
        "en": "A system coordinates many chips to train the different parts of the model together."
      },
      "example": {
        "fr": "Exemple fictif : répartir un long calcul sur plusieurs groupes de machines.",
        "en": "Fictional example: distribute a long computation across several groups of machines."
      },
      "gain": {
        "fr": "L'expérience mesure les effets d'une augmentation de taille.",
        "en": "The experiment measures the effects of increasing scale."
      },
      "limit": {
        "fr": "Ce modèle assemble des techniques antérieures plutôt qu'il ne les invente toutes.",
        "en": "This model combines earlier techniques rather than inventing all of them."
      }
    }
  },
  {
    "id": "flashattention",
    "date": "2022-05",
    "category": "inference",
    "essential": true,
    "title": {
      "fr": "FlashAttention : déplacer moins de données",
      "en": "FlashAttention: moving less data"
    },
    "summary": {
      "fr": "L'attention exacte devient beaucoup moins gourmande en mémoire temporaire GPU.",
      "en": "Exact attention needs far less temporary GPU memory."
    },
    "mechanism": {
      "fr": "Le calcul est découpé en blocs qui restent dans la mémoire rapide du GPU. Un softmax calculé progressivement évite de matérialiser toute la matrice des scores d'attention.",
      "en": "Computation is tiled into blocks held in fast GPU memory. An online softmax avoids materializing the entire attention score matrix."
    },
    "tradeoff": {
      "fr": "Le nombre d'opérations reste quadratique ; le gain dépend du matériel et des dimensions.",
      "en": "Operation count remains quadratic; gains depend on hardware and dimensions."
    },
    "origin": {
      "fr": "Kernel de Dao et al., évalué sur Transformers de texte et de vision.",
      "en": "Kernel by Dao et al., evaluated on text and vision Transformers."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2205.14135",
        "title": "FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness"
      }
    ],
    "related": [],
    "lineage": [
      {
        "family": "attention-kernels",
        "parent": "flashattention",
        "child": "flashattention-2",
        "kind": "improves",
        "explanation": {
          "fr": "La deuxième version conserve le calcul par tuiles et répartit mieux le travail entre les unités du GPU.",
          "en": "The second version retains tiled computation and distributes work more effectively across GPU units."
        },
        "source": {
          "url": "https://arxiv.org/abs/2307.08691",
          "title": "FlashAttention-2: Faster Attention with Better Parallelism and Work Partitioning"
        }
      }
    ],
    "lineage_families": [
      "attention-kernels"
    ],
    "beginner": {
      "summary": {
        "fr": "Calculer l'attention par petits blocs économise la mémoire de travail.",
        "en": "Computing attention in small blocks saves working memory."
      },
      "problem": {
        "fr": "Comparer tous les morceaux de texte crée un grand tableau intermédiaire.",
        "en": "Comparing every text piece creates a large intermediate table."
      },
      "idea": {
        "fr": "Le calcul avance par blocs dans la mémoire rapide de la puce, sans conserver le tableau complet.",
        "en": "Computation proceeds in blocks in the chip's fast memory, without storing the complete table."
      },
      "example": {
        "fr": "Exemple fictif : traiter successivement plusieurs groupes de mots.",
        "en": "Fictional example: process several groups of words in succession."
      },
      "gain": {
        "fr": "On obtient la même attention mathématique avec moins de transferts.",
        "en": "The same mathematical attention needs fewer memory transfers."
      },
      "limit": {
        "fr": "Le nombre de comparaisons croît toujours comme le carré de la longueur.",
        "en": "The number of comparisons still grows with the square of the text length."
      }
    }
  },
  {
    "id": "ia3",
    "date": "2022-05",
    "category": "training",
    "essential": false,
    "title": {
      "fr": "IA³ : ajuster quelques multiplicateurs",
      "en": "IA³: tuning a few multipliers"
    },
    "summary": {
      "fr": "L'adaptation d'un grand modèle peut n'entraîner qu'une fraction infime de ses paramètres.",
      "en": "Adapting a large model can train only a tiny fraction of its parameters."
    },
    "mechanism": {
      "fr": "Des vecteurs appris redimensionnent clés, valeurs et activations internes tandis que les poids principaux restent gelés. Chaque tâche ne nécessite donc que de petits ensembles de paramètres supplémentaires.",
      "en": "Learned vectors rescale keys, values and internal activations while main weights remain frozen. Each task therefore needs only small additional parameter sets."
    },
    "tradeoff": {
      "fr": "Cette adaptation est moins expressive qu'un réentraînement complet et exige des données de tâche.",
      "en": "This adaptation is less expressive than full fine-tuning and needs task data."
    },
    "origin": {
      "fr": "IA³, démontré avec T0/T5 dans le cadre T-Few.",
      "en": "IA³, demonstrated with T0/T5 in the T-Few framework."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2205.05638",
        "title": "Few-Shot Parameter-Efficient Fine-Tuning is Better and Cheaper than In-Context Learning"
      }
    ],
    "related": [
      "adapters",
      "lora",
      "qlora"
    ],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "De petits réglages supplémentaires suffisent parfois pour spécialiser un modèle.",
        "en": "Small additional adjustments can sometimes specialise a model."
      },
      "problem": {
        "fr": "Modifier toutes les valeurs apprises demande beaucoup de mémoire.",
        "en": "Updating all learned values requires considerable memory."
      },
      "idea": {
        "fr": "Les valeurs principales restent fixes. De petites listes de nombres apprises amplifient ou réduisent certaines informations internes.",
        "en": "The main learned values remain fixed. Small learned lists of numbers strengthen or reduce selected internal information during processing."
      },
      "example": {
        "fr": "Exemple fictif : adapter un modèle à la classification de messages.",
        "en": "Fictional example: adapt a model to classify messages."
      },
      "gain": {
        "fr": "Chaque spécialité nécessite peu de valeurs supplémentaires.",
        "en": "Each specialisation needs few additional values."
      },
      "limit": {
        "fr": "Cette adaptation offre moins de liberté qu'un entraînement complet et nécessite des exemples adaptés.",
        "en": "This adaptation offers less flexibility than full training and requires suitable examples."
      }
    }
  },
  {
    "id": "opt",
    "date": "2022-05",
    "category": "training",
    "essential": false,
    "title": {
      "fr": "OPT : documenter l'entraînement d'un grand modèle",
      "en": "OPT: documenting large-model training"
    },
    "summary": {
      "fr": "Des poids, du code et un journal de développement rendent les LLM plus étudiables.",
      "en": "Weights, code and a development log make LLMs more inspectable."
    },
    "mechanism": {
      "fr": "La famille reprend des Transformers décodeurs autorégressifs de différentes tailles. La publication expose des difficultés d'infrastructure et de stabilité, au-delà de la seule description du réseau.",
      "en": "The family uses autoregressive decoder Transformers at several scales. The publication exposes infrastructure and stability challenges beyond describing the network alone."
    },
    "tradeoff": {
      "fr": "Le jalon porte sur l'accès et la documentation ; les autorisations d'usage dépendent des conditions publiées.",
      "en": "The milestone concerns access and documentation; permitted use depends on published terms."
    },
    "origin": {
      "fr": "OPT 125M–175B, Meta ; pas une nouvelle forme d'attention.",
      "en": "OPT 125M–175B, Meta; not a new attention mechanism."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2205.01068",
        "title": "OPT: Open Pre-trained Transformer Language Models"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Publier modèles et journal de développement facilite l'étude des grands modèles.",
        "en": "Publishing models and a development log makes large models easier to study."
      },
      "problem": {
        "fr": "Un résultat seul ne révèle pas les difficultés de sa fabrication.",
        "en": "A result alone does not reveal the difficulties encountered while building it."
      },
      "idea": {
        "fr": "La publication fournit plusieurs tailles de modèles, du code et des observations sur l'entraînement.",
        "en": "The release provides several model sizes, code and observations about training."
      },
      "example": {
        "fr": "Exemple fictif : comparer deux tailles avec une recette documentée.",
        "en": "Fictional example: compare two sizes using a documented recipe."
      },
      "gain": {
        "fr": "Les chercheurs peuvent étudier davantage de choix concrets.",
        "en": "Researchers can study more concrete design choices."
      },
      "limit": {
        "fr": "L'accès aux fichiers ne signifie pas que tous les usages soient autorisés.",
        "en": "Access to the files does not mean that every use is permitted."
      }
    }
  },
  {
    "id": "ul2",
    "date": "2022-05",
    "category": "training",
    "essential": false,
    "title": {
      "fr": "UL2 : mélanger les objectifs d'apprentissage",
      "en": "UL2: mixing learning objectives"
    },
    "summary": {
      "fr": "Un même modèle apprend à compléter, reconstruire et traiter des séquences variées.",
      "en": "One model learns completion, reconstruction and varied sequence tasks."
    },
    "mechanism": {
      "fr": "Mixture-of-Denoisers combine plusieurs taux de masquage et longueurs de segments. Des marqueurs de mode indiquent le type de reconstruction attendu au modèle encodeur-décodeur.",
      "en": "Mixture-of-Denoisers combines different masking rates and span lengths. Mode markers indicate the expected reconstruction task to the encoder-decoder model."
    },
    "tradeoff": {
      "fr": "L'intérêt dépend des tâches ; l'encodeur-décodeur a des contraintes de service spécifiques.",
      "en": "Benefits depend on tasks; encoder-decoder serving has specific constraints."
    },
    "origin": {
      "fr": "UL2 20B, Google.",
      "en": "UL2 20B, Google."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2205.05131",
        "title": "UL2: Unifying Language Learning Paradigms"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Varier les textes à reconstruire apprend plusieurs façons de traiter une demande.",
        "en": "Varying text reconstruction exercises teaches several ways to handle requests."
      },
      "problem": {
        "fr": "Un seul exercice d'entraînement prépare mal à certaines tâches.",
        "en": "A single training exercise prepares poorly for some tasks."
      },
      "idea": {
        "fr": "Le modèle apprend à retrouver des passages cachés de différentes longueurs, avec des indications sur l'exercice.",
        "en": "The model learns to recover hidden passages of different lengths, with markers identifying the exercise."
      },
      "example": {
        "fr": "Exemple fictif : compléter un mot puis reconstruire un paragraphe.",
        "en": "Fictional example: complete a word, then reconstruct a paragraph."
      },
      "gain": {
        "fr": "La même recette couvre plusieurs types de transformation de texte.",
        "en": "One recipe covers several kinds of text transformation."
      },
      "limit": {
        "fr": "Les bénéfices varient selon les tâches et la manière de servir le modèle.",
        "en": "Benefits vary with the tasks and the way the model is served."
      }
    }
  },
  {
    "id": "fill-in-middle",
    "date": "2022-07",
    "category": "training",
    "essential": true,
    "title": {
      "fr": "Fill-in-the-Middle : compléter entre deux morceaux",
      "en": "Fill-in-the-Middle: completing between two spans"
    },
    "summary": {
      "fr": "Le modèle apprend à insérer du texte en tenant compte de ce qui suit.",
      "en": "The model learns to insert text while considering what follows."
    },
    "mechanism": {
      "fr": "On découpe des textes en préfixe, milieu et suffixe, puis on réordonne ces morceaux pour faire prédire le milieu après les deux autres. L'objectif reste autorégressif.",
      "en": "Texts are split into prefix, middle and suffix, then reordered so the model predicts the middle after seeing the other two. Training remains autoregressive."
    },
    "tradeoff": {
      "fr": "Le mélange des formats et les marqueurs doivent être appris ; tous les modèles ne le supportent pas.",
      "en": "Format mixtures and markers must be learned; not every model supports them."
    },
    "origin": {
      "fr": "Modèles expérimentaux OpenAI du papier, notamment pour le code.",
      "en": "Experimental OpenAI models in the paper, notably for code."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2207.14255",
        "title": "Efficient Training of Language Models to Fill in the Middle"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Le modèle complète un trou en utilisant aussi le texte placé après.",
        "en": "The model fills a gap using the text that follows it too."
      },
      "problem": {
        "fr": "Une continuation ordinaire ne voit que ce qui précède.",
        "en": "Ordinary continuation only sees what comes before."
      },
      "idea": {
        "fr": "L'entraînement montre le début et la fin avant de demander le passage manquant.",
        "en": "Training presents the beginning and ending before asking for the missing passage."
      },
      "example": {
        "fr": "Exemple fictif : compléter une fonction entre sa déclaration et son retour.",
        "en": "Fictional example: complete a function between its declaration and return statement."
      },
      "gain": {
        "fr": "Les insertions peuvent respecter les deux côtés du texte.",
        "en": "Insertions can fit both sides of the text."
      },
      "limit": {
        "fr": "Le modèle doit avoir appris ce format particulier pour l'utiliser correctement.",
        "en": "The model must have learned this particular format to use it correctly."
      }
    }
  },
  {
    "id": "orca",
    "date": "2022-07",
    "category": "inference",
    "essential": true,
    "title": {
      "fr": "Orca : batching continu",
      "en": "Orca: continuous batching"
    },
    "summary": {
      "fr": "Un serveur remplit les places libérées sans attendre la fin de tout le lot.",
      "en": "A server fills freed slots without waiting for the whole batch to finish."
    },
    "mechanism": {
      "fr": "L'ordonnanceur décide à chaque itération quels textes avancent d'un token. Les requêtes terminées sortent du lot et de nouvelles entrent immédiatement.",
      "en": "The scheduler decides at each iteration which sequences advance one token. Completed requests leave the batch and new requests enter immediately."
    },
    "tradeoff": {
      "fr": "L'ordonnancement doit aussi préserver la latence et gérer des séquences de tailles différentes.",
      "en": "Scheduling must also preserve latency and handle variable sequence lengths."
    },
    "origin": {
      "fr": "Système Orca, publié à OSDI 2022 ; pas un nouveau modèle.",
      "en": "Orca system, published at OSDI 2022; not a new model."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://www.usenix.org/conference/osdi22/presentation/yu",
        "title": "Orca: A Distributed Serving System for Transformer-Based Generative Models"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Un serveur remplace les demandes terminées sans attendre les autres.",
        "en": "A server replaces completed requests without waiting for the others."
      },
      "problem": {
        "fr": "Attendre la fin du plus long texte laisse des places inutilisées.",
        "en": "Waiting for the longest text to finish leaves capacity unused."
      },
      "idea": {
        "fr": "À chaque étape de génération, le serveur fait entrer de nouvelles demandes dans les places libérées.",
        "en": "At each generation step, the server inserts new requests into the freed slots."
      },
      "example": {
        "fr": "Exemple fictif : commencer une question pendant qu'une autre réponse continue.",
        "en": "Fictional example: start one question while another answer continues."
      },
      "gain": {
        "fr": "Davantage de demandes peuvent avancer sur le même matériel.",
        "en": "More requests can progress on the same hardware."
      },
      "limit": {
        "fr": "Il faut aussi limiter les temps d'attente et gérer les longueurs différentes.",
        "en": "The server must also limit waiting times and handle different text lengths."
      }
    }
  },
  {
    "id": "s5",
    "date": "2022-08",
    "category": "architecture",
    "essential": false,
    "title": {
      "fr": "S5 : simplifier les modèles à espace d'état",
      "en": "S5: simplifying state-space models"
    },
    "summary": {
      "fr": "Une couche récurrente structurée traite les longues séquences avec des scans parallèles.",
      "en": "A structured recurrent layer processes long sequences with parallel scans."
    },
    "mechanism": {
      "fr": "S5 remplace plusieurs systèmes à une entrée/sortie par un système multivarié, initialisé à partir de S4. Le scan associatif permet de paralléliser la récurrence.",
      "en": "S5 replaces multiple single-input/output systems with a multivariate system initialized from S4. An associative scan parallelizes the recurrence."
    },
    "tradeoff": {
      "fr": "Ce jalon porte sur la modélisation de séquences ; son efficacité ne garantit pas les capacités d'un LLM.",
      "en": "This is a sequence-modeling milestone; efficiency does not guarantee LLM capabilities."
    },
    "origin": {
      "fr": "S5, Smith et al. ; 2208.04933 est S5, pas S4.",
      "en": "S5, Smith et al.; 2208.04933 is S5, not S4."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2208.04933",
        "title": "Simplified State Space Layers for Sequence Modeling"
      }
    ],
    "related": [
      "s4",
      "mamba",
      "mamba-2",
      "gated-deltanet",
      "qwen3-next"
    ],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Une mémoire interne structurée traite efficacement de longues suites.",
        "en": "A structured internal memory efficiently processes long sequences."
      },
      "problem": {
        "fr": "Comparer chaque position avec toutes les autres devient coûteux.",
        "en": "Comparing every position with all the others becomes expensive."
      },
      "idea": {
        "fr": "Un état résume le passé. Une structure mathématique permet de calculer plusieurs mises à jour en parallèle.",
        "en": "A state summarises the past. A mathematical structure allows several updates to be calculated in parallel."
      },
      "example": {
        "fr": "Exemple fictif : traiter une longue série de mesures.",
        "en": "Fictional example: process a long series of measurements."
      },
      "gain": {
        "fr": "Le traitement peut exploiter efficacement le calcul parallèle.",
        "en": "Processing can make efficient use of parallel computation."
      },
      "limit": {
        "fr": "Une bonne efficacité sur des suites ne garantit pas les capacités d'un assistant généraliste.",
        "en": "Efficiency on sequences does not guarantee the abilities of a general-purpose assistant."
      }
    }
  },
  {
    "id": "fp8",
    "date": "2022-09",
    "category": "training",
    "essential": true,
    "title": {
      "fr": "FP8 : calculer sur huit bits flottants",
      "en": "FP8: eight-bit floating-point computation"
    },
    "summary": {
      "fr": "Réduire la précision accélère certains calculs et diminue les transferts mémoire.",
      "en": "Lower precision accelerates some computation and reduces memory transfers."
    },
    "mechanism": {
      "fr": "Deux formats flottants sur huit bits répartissent différemment précision et plage de valeurs. Des facteurs d'échelle permettent de représenter activations, poids ou gradients sans débordements excessifs.",
      "en": "Two eight-bit floating-point formats trade precision against numerical range. Scaling factors help represent activations, weights or gradients without excessive overflow."
    },
    "tradeoff": {
      "fr": "Il faut des kernels et un matériel adaptés ; certaines opérations gardent une précision supérieure.",
      "en": "Suitable kernels and hardware are required; some operations retain higher precision."
    },
    "origin": {
      "fr": "Proposition conjointe NVIDIA, Intel et Arm ; pas un modèle unique.",
      "en": "Joint NVIDIA, Intel and Arm proposal; not a single model."
    },
    "adoption": {
      "fr": "DeepSeek-V3 documente ensuite un entraînement mixte FP8.",
      "en": "DeepSeek-V3 later documents mixed FP8 training."
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2209.05433",
        "title": "FP8 Formats for Deep Learning"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Des nombres stockés avec moins de précision réduisent certains coûts de calcul.",
        "en": "Storing numbers with lower precision reduces some computation costs."
      },
      "problem": {
        "fr": "Des représentations numériques détaillées occupent beaucoup de mémoire.",
        "en": "Detailed numerical representations take considerable memory."
      },
      "idea": {
        "fr": "Certains nombres utilisent huit bits, avec des échelles adaptées pour limiter les erreurs.",
        "en": "Some numbers use eight bits, with suitable scaling factors to limit rounding errors and represent a useful range of values."
      },
      "example": {
        "fr": "Exemple fictif : représenter une valeur avec un arrondi plus grossier.",
        "en": "Fictional example: represent a value using a coarser rounding step."
      },
      "gain": {
        "fr": "Des puces compatibles calculent et transfèrent ces nombres plus efficacement.",
        "en": "Compatible chips compute and transfer these numbers more efficiently."
      },
      "limit": {
        "fr": "Toutes les opérations ne supportent pas cette précision réduite sans difficulté.",
        "en": "Not every operation tolerates this reduced precision without difficulty."
      }
    }
  },
  {
    "id": "flan-t5",
    "date": "2022-10",
    "category": "training",
    "essential": true,
    "title": {
      "fr": "Flan : généraliser grâce aux instructions",
      "en": "Flan: generalizing through instructions"
    },
    "summary": {
      "fr": "Un grand mélange de tâches formulées en langage naturel améliore les usages inédits.",
      "en": "A large mixture of natural-language tasks improves unseen uses."
    },
    "mechanism": {
      "fr": "On affine un modèle sur de nombreuses consignes, avec ou sans démonstrations de raisonnement. Le papier étudie conjointement nombre de tâches, taille du modèle et formats de supervision.",
      "en": "A model is fine-tuned on many instructions, with or without reasoning demonstrations. The paper jointly studies task count, model size and supervision formats."
    },
    "tradeoff": {
      "fr": "La diversité et la qualité des consignes comptent ; le modèle n'apprend pas automatiquement toute nouvelle tâche.",
      "en": "Instruction diversity and quality matter; the model does not automatically learn every new task."
    },
    "origin": {
      "fr": "Flan-T5 et Flan-PaLM ; prolongement de travaux FLAN antérieurs.",
      "en": "Flan-T5 and Flan-PaLM; extends earlier FLAN work."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2210.11416",
        "title": "Scaling Instruction-Finetuned Language Models"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Des consignes variées préparent le modèle à de nouvelles demandes.",
        "en": "Varied instructions prepare a model for new requests."
      },
      "problem": {
        "fr": "Apprendre seulement à compléter des textes ne suffit pas à suivre des instructions.",
        "en": "Learning only to continue text is not enough to follow instructions."
      },
      "idea": {
        "fr": "Le modèle s'entraîne sur de nombreuses tâches décrites en langage courant.",
        "en": "The model trains on many different tasks described in ordinary language, instead of practising just one kind of request."
      },
      "example": {
        "fr": "Exemple fictif : alterner traduction, résumé et classement de phrases.",
        "en": "Fictional example: alternate translation, summarisation and sentence classification."
      },
      "gain": {
        "fr": "Il peut mieux suivre certaines consignes jamais rencontrées telles quelles.",
        "en": "It can better follow some instructions never encountered in exactly that form."
      },
      "limit": {
        "fr": "La diversité des exemples ne garantit pas la réussite de toute nouvelle tâche.",
        "en": "Diverse examples do not guarantee success on every new task."
      }
    }
  },
  {
    "id": "gptq",
    "date": "2022-10",
    "category": "inference",
    "essential": true,
    "title": {
      "fr": "GPTQ : quantifier les poids après entraînement",
      "en": "GPTQ: post-training weight quantization"
    },
    "summary": {
      "fr": "Des LLM déjà entraînés peuvent tenir dans beaucoup moins de mémoire.",
      "en": "Already trained LLMs can fit in much less memory."
    },
    "mechanism": {
      "fr": "Un petit corpus de calibration estime l'effet des erreurs d'arrondi. Les poids sont quantifiés progressivement, en compensant ces erreurs dans les poids restants de chaque couche.",
      "en": "A small calibration corpus estimates rounding error effects. Weights are quantized incrementally while errors are compensated in the remaining weights of each layer."
    },
    "tradeoff": {
      "fr": "La précision peut baisser ; mémoire réduite ne signifie pas accélération sur tous les GPU.",
      "en": "Accuracy can decrease; reduced memory does not imply speedup on every GPU."
    },
    "origin": {
      "fr": "GPTQ, Frantar et al., évalué notamment sur OPT et BLOOM.",
      "en": "GPTQ, Frantar et al., evaluated notably on OPT and BLOOM."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2210.17323",
        "title": "GPTQ: Accurate Post-Training Quantization for Generative Pre-trained Transformers"
      }
    ],
    "related": [
      "smoothquant",
      "awq",
      "qlora"
    ],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Arrondir soigneusement les valeurs apprises réduit la mémoire du modèle.",
        "en": "Carefully rounding learned values reduces the model's memory requirements."
      },
      "problem": {
        "fr": "Un modèle entraîné peut être trop volumineux pour le matériel disponible.",
        "en": "A trained model can be too large for the available hardware."
      },
      "idea": {
        "fr": "On arrondit ses valeurs progressivement, en compensant certaines erreurs grâce à des exemples de calibration.",
        "en": "Its learned values are rounded progressively, compensating for some rounding errors using a small collection of representative calibration examples."
      },
      "example": {
        "fr": "Exemple fictif : conserver moins de niveaux numériques pour les valeurs.",
        "en": "Fictional example: retain fewer numerical levels for the values."
      },
      "gain": {
        "fr": "Le modèle peut tenir dans moins de mémoire.",
        "en": "The model can fit in less memory."
      },
      "limit": {
        "fr": "La qualité peut baisser et le gain de vitesse dépend du matériel.",
        "en": "Quality can decrease, and speed improvements depend on the hardware."
      }
    }
  },
  {
    "id": "react",
    "date": "2022-10",
    "category": "reasoning",
    "essential": true,
    "title": {
      "fr": "ReAct : raisonner, agir, observer",
      "en": "ReAct: reason, act, observe"
    },
    "summary": {
      "fr": "Le modèle peut chercher de l'information puis adapter sa réponse aux résultats.",
      "en": "The model can retrieve information and adapt its answer to the results."
    },
    "mechanism": {
      "fr": "Le prompt alterne raisonnement textuel, action vers un outil et observation de son résultat. Cette boucle permet de réviser un plan à partir d'informations externes.",
      "en": "The prompt alternates textual reasoning, a tool action and an observation of its result. This loop revises plans using external information."
    },
    "tradeoff": {
      "fr": "Les erreurs d'outil et de planification persistent ; les appels ajoutent de la latence.",
      "en": "Tool and planning errors remain; calls add latency."
    },
    "origin": {
      "fr": "Démonstrations de Yao et al. avec PaLM-540B notamment.",
      "en": "Demonstrations by Yao et al., notably with PaLM-540B."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2210.03629",
        "title": "ReAct: Synergizing Reasoning and Acting in Language Models"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Alterner texte et appels d'outils permet d'utiliser des informations externes.",
        "en": "Alternating text and tool calls allows external information to be used."
      },
      "problem": {
        "fr": "Le modèle ne peut pas tout déduire du texte déjà disponible.",
        "en": "The model cannot infer everything from the text already available."
      },
      "idea": {
        "fr": "Il produit une action, reçoit le résultat d'un outil, puis poursuit sa réponse.",
        "en": "It produces an action, receives a tool's result, then continues its answer."
      },
      "example": {
        "fr": "Exemple fictif : consulter une source avant de résumer son contenu.",
        "en": "Fictional example: consult a source before summarising its contents."
      },
      "gain": {
        "fr": "La suite peut tenir compte d'une observation récente.",
        "en": "The continuation can account for a recent observation."
      },
      "limit": {
        "fr": "Un mauvais choix d'outil ou une mauvaise interprétation reste possible et prend du temps.",
        "en": "Choosing the wrong tool or misreading its result remains possible and takes time."
      }
    }
  },
  {
    "id": "bloom",
    "date": "2022-11",
    "category": "training",
    "essential": false,
    "title": {
      "fr": "BLOOM : un grand modèle multilingue collectif",
      "en": "BLOOM: a collaborative multilingual model"
    },
    "summary": {
      "fr": "Une collaboration publie un LLM multilingue et documente son corpus et son entraînement.",
      "en": "A collaboration releases a multilingual LLM and documents its corpus and training."
    },
    "mechanism": {
      "fr": "Le Transformer décodeur apprend la continuation de textes dans de nombreuses langues et langages de programmation. Il adopte notamment les biais de position ALiBi dans une recette distribuée.",
      "en": "The decoder Transformer learns text continuation across many natural and programming languages. It adopts ALiBi positional biases in a distributed training recipe."
    },
    "tradeoff": {
      "fr": "Il ne faut pas confondre multilinguisme, qualité uniforme entre langues et suivi d'instructions.",
      "en": "Multilingual coverage does not imply equal quality across languages or instruction following."
    },
    "origin": {
      "fr": "BLOOM 176B, BigScience ; le papier ne lui attribue pas l'invention d'ALiBi.",
      "en": "BLOOM 176B, BigScience; the paper does not credit it with inventing ALiBi."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2211.05100",
        "title": "BLOOM: A 176B-Parameter Open-Access Multilingual Language Model"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Un projet collectif documente l'entraînement d'un modèle dans de nombreuses langues.",
        "en": "A collective project documents training a model in many languages."
      },
      "problem": {
        "fr": "Les ressources et descriptions sont souvent concentrées sur quelques langues.",
        "en": "Resources and documentation often concentrate on a few languages."
      },
      "idea": {
        "fr": "Une collaboration rassemble des textes multilingues et publie son modèle ainsi que sa recette.",
        "en": "A collaboration assembles multilingual text and publishes its model alongside its training recipe."
      },
      "example": {
        "fr": "Exemple fictif : comparer les réponses dans deux langues du corpus.",
        "en": "Fictional example: compare answers in two languages from the collection."
      },
      "gain": {
        "fr": "Davantage de langues et de choix d'entraînement deviennent étudiables.",
        "en": "More languages and training choices become available for study."
      },
      "limit": {
        "fr": "La présence d'une langue ne garantit pas une qualité égale aux autres.",
        "en": "Including a language does not guarantee quality equal to the others."
      }
    }
  },
  {
    "id": "smoothquant",
    "date": "2022-11",
    "category": "inference",
    "essential": true,
    "title": {
      "fr": "SmoothQuant : apprivoiser les activations extrêmes",
      "en": "SmoothQuant: taming activation outliers"
    },
    "summary": {
      "fr": "La quantification entière des poids et activations devient plus praticable.",
      "en": "Integer quantization of both weights and activations becomes more practical."
    },
    "mechanism": {
      "fr": "Une transformation équivalente redimensionne les canaux : elle transfère une partie des valeurs extrêmes des activations vers les poids. La quantification W8A8 devient ainsi plus régulière.",
      "en": "An equivalent transformation rescales channels, moving part of activation outliers into the weights. This makes W8A8 quantization more manageable."
    },
    "tradeoff": {
      "fr": "Le calibrage dépend des données et des compromis de précision propres au modèle.",
      "en": "Calibration depends on data and model-specific accuracy tradeoffs."
    },
    "origin": {
      "fr": "SmoothQuant, démontré sur OPT, BLOOM, GLM et autres LLM.",
      "en": "SmoothQuant, demonstrated on OPT, BLOOM, GLM and other LLMs."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2211.10438",
        "title": "SmoothQuant: Accurate and Efficient Post-Training Quantization for Large Language Models"
      }
    ],
    "related": [
      "gptq",
      "awq",
      "qlora"
    ],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Redistribuer les grandes valeurs facilite les calculs avec des nombres arrondis.",
        "en": "Redistributing large values makes computation with rounded numbers easier."
      },
      "problem": {
        "fr": "Quelques valeurs extrêmes rendent l'arrondi des calculs internes difficile.",
        "en": "A few extreme values make rounding internal calculations difficult."
      },
      "idea": {
        "fr": "Une transformation transfère une partie de cette amplitude vers les valeurs fixes du modèle avant l'arrondi.",
        "en": "A transformation transfers some of this range into the model's fixed values before rounding."
      },
      "example": {
        "fr": "Exemple fictif : rééquilibrer deux facteurs sans changer leur produit initial.",
        "en": "Fictional example: rebalance two factors without changing their original product."
      },
      "gain": {
        "fr": "Certains calculs deviennent adaptés à des nombres entiers plus compacts.",
        "en": "Some computations become suitable for more compact integers."
      },
      "limit": {
        "fr": "La calibration doit correspondre aux usages et une perte de précision reste possible.",
        "en": "Calibration must suit the intended uses, and some loss of precision remains possible."
      }
    }
  },
  {
    "id": "speculative-decoding",
    "date": "2022-11",
    "category": "inference",
    "essential": true,
    "title": {
      "fr": "Décodage spéculatif : proposer puis vérifier",
      "en": "Speculative decoding: draft, then verify"
    },
    "summary": {
      "fr": "Un grand modèle peut valider plusieurs tokens en une seule passe.",
      "en": "A large model can validate several tokens in one pass."
    },
    "mechanism": {
      "fr": "Un modèle rapide propose une suite ; le modèle cible la vérifie en parallèle. Une règle d'acceptation et de correction préserve la distribution du modèle cible dans la méthode exacte.",
      "en": "A fast model drafts a continuation; the target model checks it in parallel. An acceptance and correction rule preserves the target distribution in the exact method."
    },
    "tradeoff": {
      "fr": "Le gain dépend du taux d'acceptation et du coût du brouillon.",
      "en": "Speedup depends on acceptance rate and drafting cost."
    },
    "origin": {
      "fr": "Leviathan et al. : T5-XXL ; travaux contemporains de Chen et al.",
      "en": "Leviathan et al.: T5-XXL; contemporary work by Chen et al."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2211.17192",
        "title": "Fast Inference from Transformers via Speculative Decoding"
      }
    ],
    "related": [
      "blockwise-decoding",
      "medusa",
      "eagle",
      "eagle-2",
      "eagle-3"
    ],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Un petit modèle propose du texte qu'un grand modèle vérifie ensemble.",
        "en": "A small model proposes text that a large model checks together."
      },
      "problem": {
        "fr": "Produire chaque morceau de texte séparément multiplie les passages coûteux.",
        "en": "Generating each text piece separately multiplies expensive processing passes."
      },
      "idea": {
        "fr": "Un modèle rapide propose une suite. Le modèle principal la vérifie avec une règle d'acceptation corrigée.",
        "en": "A fast model proposes a continuation. The main model checks it using a corrected acceptance rule."
      },
      "example": {
        "fr": "Exemple fictif : proposer plusieurs mots puis conserver le début accepté.",
        "en": "Fictional example: propose several words and keep the accepted beginning."
      },
      "gain": {
        "fr": "La méthode exacte préserve les probabilités du modèle principal.",
        "en": "The exact method preserves the main model's probabilities."
      },
      "limit": {
        "fr": "Le gain disparaît si trop de propositions sont rejetées ou coûtent trop cher.",
        "en": "The benefit disappears when proposals are too costly or too often rejected."
      }
    }
  },
  {
    "id": "constitutional-ai",
    "date": "2022-12",
    "category": "training",
    "essential": true,
    "title": {
      "fr": "Constitutional AI : apprendre avec un retour d'IA",
      "en": "Constitutional AI: learning from AI feedback"
    },
    "summary": {
      "fr": "Une liste de principes permet de produire une partie de la supervision automatiquement.",
      "en": "A set of principles enables partially automated supervision."
    },
    "mechanism": {
      "fr": "Un modèle critique et révise ses réponses selon des principes explicites. Des préférences générées par IA alimentent ensuite un modèle de récompense et une étape de renforcement.",
      "en": "A model critiques and revises responses using explicit principles. AI-generated preferences then train a reward model and a reinforcement-learning stage."
    },
    "tradeoff": {
      "fr": "Les principes et les juges introduisent leurs propres biais ; le contrôle reste imparfait.",
      "en": "Principles and judges introduce their own biases; control remains imperfect."
    },
    "origin": {
      "fr": "Assistants expérimentaux Anthropic du papier.",
      "en": "Experimental Anthropic assistants in the paper."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2212.08073",
        "title": "Constitutional AI: Harmlessness from AI Feedback"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Des principes écrits guident la révision et l'évaluation des réponses.",
        "en": "Written principles guide answer revision and evaluation."
      },
      "problem": {
        "fr": "Faire évaluer chaque exemple par un humain demande beaucoup de travail.",
        "en": "Having a person evaluate every example requires substantial work."
      },
      "idea": {
        "fr": "Un modèle révise des réponses selon des principes, puis produit des préférences pour poursuivre l'entraînement.",
        "en": "A model critiques and revises proposed answers against written principles, then generates comparisons between answers to guide further training."
      },
      "example": {
        "fr": "Exemple fictif : demander de retirer une affirmation inutilement insultante.",
        "en": "Fictional example: request removal of an unnecessarily insulting claim."
      },
      "gain": {
        "fr": "Une partie des exemples d'évaluation peut être produite automatiquement.",
        "en": "Some evaluation examples can be generated automatically."
      },
      "limit": {
        "fr": "Les principes choisis et les évaluateurs automatiques peuvent introduire leurs propres erreurs.",
        "en": "The chosen principles and automatic evaluators can introduce their own errors."
      }
    }
  },
  {
    "id": "h3",
    "date": "2022-12",
    "category": "architecture",
    "essential": false,
    "title": {
      "fr": "H3 : mémoire structurée pour le langage",
      "en": "H3: structured memory for language"
    },
    "summary": {
      "fr": "Des modèles à espace d'état acquièrent des mécanismes utiles à la récupération d'information.",
      "en": "State-space models gain mechanisms useful for information retrieval."
    },
    "mechanism": {
      "fr": "H3 combine couches à espace d'état et interactions multiplicatives pour mémoriser puis retrouver des associations. Le papier explore aussi des hybrides avec quelques couches d'attention.",
      "en": "H3 combines state-space layers with multiplicative interactions to store and retrieve associations. The paper also explores hybrids with a few attention layers."
    },
    "tradeoff": {
      "fr": "La compression récurrente peut perdre de l'information ; remplacer toute l'attention reste un compromis.",
      "en": "Recurrent compression can lose information; replacing all attention remains a tradeoff."
    },
    "origin": {
      "fr": "Hungry Hungry Hippos, Fu et al..",
      "en": "Hungry Hungry Hippos, Fu et al.."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2212.14052",
        "title": "Hungry Hungry Hippos: Towards Language Modeling with State Space Models"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Une mémoire résumée est enrichie pour retrouver certaines associations.",
        "en": "A summarised memory is enriched to retrieve certain associations."
      },
      "problem": {
        "fr": "Un résumé du passé peut perdre les liens utiles entre éléments.",
        "en": "A summary of the past can lose useful links between items."
      },
      "idea": {
        "fr": "Des calculs combinent un état mémorisé avec le contenu courant pour conserver puis retrouver des associations.",
        "en": "Computations combine a stored state with current content to retain and retrieve associations."
      },
      "example": {
        "fr": "Exemple fictif : associer un nom à une information donnée auparavant.",
        "en": "Fictional example: connect a name with information provided earlier."
      },
      "gain": {
        "fr": "La méthode améliore certaines capacités de récupération des modèles récurrents.",
        "en": "The method improves some retrieval abilities of recurrent models."
      },
      "limit": {
        "fr": "La mémoire reste compressée et peut perdre des informations importantes.",
        "en": "The memory remains compressed and can lose important information."
      }
    }
  },
  {
    "id": "self-instruct",
    "date": "2022-12",
    "category": "data",
    "essential": true,
    "title": {
      "fr": "Self-Instruct : générer ses données de consignes",
      "en": "Self-Instruct: generating instruction data"
    },
    "summary": {
      "fr": "Un petit ensemble de tâches humaines amorce un corpus de consignes synthétiques.",
      "en": "A small human-written task set bootstraps a synthetic instruction corpus."
    },
    "mechanism": {
      "fr": "Un modèle propose de nouvelles instructions, entrées et réponses à partir d'exemples. Un filtrage retire les cas invalides ou trop similaires avant un nouvel ajustement supervisé.",
      "en": "A model proposes instructions, inputs and outputs from examples. Filtering removes invalid or overly similar cases before supervised fine-tuning."
    },
    "tradeoff": {
      "fr": "Les erreurs et biais du générateur se transmettent au corpus ; la diversité doit être contrôlée.",
      "en": "Generator errors and biases propagate into the corpus; diversity needs monitoring."
    },
    "origin": {
      "fr": "Self-Instruct, Wang et al., avec GPT-3.",
      "en": "Self-Instruct, Wang et al., using GPT-3."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2212.10560",
        "title": "Self-Instruct: Aligning Language Models with Self-Generated Instructions"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Un modèle fabrique de nouvelles consignes à partir de quelques exemples.",
        "en": "A model creates new instructions from a few examples."
      },
      "problem": {
        "fr": "Rédiger un grand ensemble de tâches à la main prend du temps.",
        "en": "Writing a large collection of tasks by hand takes time."
      },
      "idea": {
        "fr": "Des exemples humains amorcent la production de consignes et réponses. Un filtre écarte les cas invalides ou répétitifs.",
        "en": "Human examples start the generation of new instructions and answers. A filtering stage removes cases judged invalid or too repetitive."
      },
      "example": {
        "fr": "Exemple fictif : créer une nouvelle demande de résumé.",
        "en": "Fictional example: create a new summarisation request."
      },
      "gain": {
        "fr": "On obtient davantage d'exemples pour l'entraînement.",
        "en": "More examples become available for training."
      },
      "limit": {
        "fr": "Les erreurs du générateur peuvent aussi se retrouver dans les données.",
        "en": "The generator's mistakes can also end up in the training data."
      }
    }
  },
  {
    "id": "whisper",
    "date": "2022-12",
    "category": "multimodal",
    "essential": true,
    "title": {
      "fr": "Whisper : apprendre la parole à grande échelle",
      "en": "Whisper: learning speech at scale"
    },
    "summary": {
      "fr": "Une supervision web massive améliore la reconnaissance vocale multilingue.",
      "en": "Massive web supervision improves multilingual speech recognition."
    },
    "mechanism": {
      "fr": "Un Transformer encode des spectrogrammes audio puis décode du texte et des marqueurs de tâche. L'entraînement mélange transcription, identification de langue et traduction vers l'anglais.",
      "en": "A Transformer encodes audio spectrograms and decodes text and task markers. Training mixes transcription, language identification and translation into English."
    },
    "tradeoff": {
      "fr": "Le modèle peut inventer du texte sur du bruit ; ce n'est pas un assistant conversationnel complet.",
      "en": "The model can hallucinate text over noise; it is not a complete conversational assistant."
    },
    "origin": {
      "fr": "Whisper, OpenAI ; papier de décembre après la diffusion du modèle.",
      "en": "Whisper, OpenAI; December paper follows the model release."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2212.04356",
        "title": "Robust Speech Recognition via Large-Scale Weak Supervision"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Un entraînement audio varié permet de transcrire plusieurs langues.",
        "en": "Varied audio training enables transcription in several languages."
      },
      "problem": {
        "fr": "Les enregistrements réels diffèrent beaucoup des sons propres d'un laboratoire.",
        "en": "Real recordings differ greatly from clean laboratory audio."
      },
      "idea": {
        "fr": "Le modèle apprend à transformer des représentations du son en texte sur un vaste ensemble d'enregistrements.",
        "en": "The model learns to turn sound representations into written text using a large collection of recordings paired with transcriptions."
      },
      "example": {
        "fr": "Exemple fictif : transcrire une courte phrase prononcée avec un accent.",
        "en": "Fictional example: transcribe a short sentence spoken with an accent."
      },
      "gain": {
        "fr": "La transcription peut mieux résister à certaines variations audio.",
        "en": "Transcription can better withstand some audio variations."
      },
      "limit": {
        "fr": "Sur du bruit ou du silence, le modèle peut inventer du texte.",
        "en": "On noise or silence, the model can invent text."
      }
    }
  },
  {
    "id": "hyena",
    "date": "2023-02",
    "category": "architecture",
    "essential": false,
    "title": {
      "fr": "Hyena : longues convolutions et portes",
      "en": "Hyena: long convolutions and gates"
    },
    "summary": {
      "fr": "Des opérateurs sous-quadratiques remplacent l'attention dans des modèles de séquences.",
      "en": "Subquadratic operators replace attention in sequence models."
    },
    "mechanism": {
      "fr": "Hyena compose des convolutions longues paramétrées implicitement et des portes dépendant de l'entrée. Les convolutions peuvent être calculées efficacement sans matrice d'attention complète.",
      "en": "Hyena composes implicitly parameterized long convolutions with input-dependent gates. Convolutions can be computed efficiently without a full attention matrix."
    },
    "tradeoff": {
      "fr": "Un bon coût asymptotique n'assure pas la même récupération précise qu'une attention explicite.",
      "en": "Good asymptotic cost does not ensure the same precise retrieval as explicit attention."
    },
    "origin": {
      "fr": "Modèles Hyena de Poli et al.",
      "en": "Hyena models by Poli et al."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2302.10866",
        "title": "Hyena Hierarchy: Towards Larger Convolutional Language Models"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Des filtres longs proposent une autre manière de mélanger une suite.",
        "en": "Long filters offer another way to mix information across a sequence."
      },
      "problem": {
        "fr": "L'attention complète compare toutes les positions et devient coûteuse.",
        "en": "Full attention compares all positions and becomes expensive."
      },
      "idea": {
        "fr": "Des filtres combinent des positions éloignées, tandis que le contenu règle certains passages de l'information.",
        "en": "Filters combine distant positions, while content controls some of the information flow."
      },
      "example": {
        "fr": "Exemple fictif : traiter un long passage sans tableau de toutes les comparaisons.",
        "en": "Fictional example: process a long passage without a table of every comparison."
      },
      "gain": {
        "fr": "Le coût peut croître moins vite que celui de l'attention complète.",
        "en": "The cost can grow more slowly than full attention."
      },
      "limit": {
        "fr": "Cette efficacité ne garantit pas une récupération aussi précise de chaque détail.",
        "en": "This efficiency does not guarantee equally precise retrieval of every detail."
      }
    }
  },
  {
    "id": "lion",
    "date": "2023-02",
    "category": "training",
    "essential": false,
    "title": {
      "fr": "Lion : un optimiseur plus léger",
      "en": "Lion: a lighter optimizer"
    },
    "summary": {
      "fr": "L'état de l'optimiseur peut être réduit par rapport à Adam.",
      "en": "Optimizer state can be reduced relative to Adam."
    },
    "mechanism": {
      "fr": "Lion utilise le signe d'une combinaison du gradient et d'une moyenne mobile pour choisir la direction des mises à jour. Il ne conserve qu'un état de momentum par paramètre.",
      "en": "Lion uses the sign of a combination of gradient and moving average to choose update direction. It keeps only one momentum state per parameter."
    },
    "tradeoff": {
      "fr": "Le taux d'apprentissage doit être adapté ; les gains varient selon tâche et taille de lot.",
      "en": "Learning rate needs adjustment; gains vary with task and batch size."
    },
    "origin": {
      "fr": "Découvert par recherche de programmes, évalué en vision et langage.",
      "en": "Discovered through program search, evaluated on vision and language."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2302.06675",
        "title": "Symbolic Discovery of Optimization Algorithms"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Une règle d'apprentissage conserve moins d'informations de suivi.",
        "en": "A learning rule retains less tracking information."
      },
      "problem": {
        "fr": "L'entraînement stocke aussi des nombres servant à guider chaque modification.",
        "en": "Training also stores numbers used to guide each update."
      },
      "idea": {
        "fr": "Lion utilise surtout la direction d'une combinaison de modifications récentes et n'en conserve qu'un suivi réduit.",
        "en": "Lion mainly uses the direction of a combination of recent updates and retains reduced tracking information."
      },
      "example": {
        "fr": "Exemple fictif : retenir une direction sans stocker tous les indicateurs d'Adam.",
        "en": "Fictional example: keep a direction without storing every indicator used by Adam."
      },
      "gain": {
        "fr": "Le suivi de l'apprentissage occupe moins de mémoire.",
        "en": "Tracking the learning process takes less memory."
      },
      "limit": {
        "fr": "La vitesse de modification doit être réglée et les gains varient selon l'expérience.",
        "en": "The update speed needs tuning, and benefits vary between experiments."
      }
    }
  },
  {
    "id": "llama",
    "date": "2023-02",
    "category": "architecture",
    "essential": true,
    "title": {
      "fr": "LLaMA : une recette efficace et réutilisable",
      "en": "LLaMA: an efficient, reusable recipe"
    },
    "summary": {
      "fr": "Des modèles de taille accessible renforcent l'écosystème de recherche sur les LLM.",
      "en": "Accessible model sizes strengthen the LLM research ecosystem."
    },
    "mechanism": {
      "fr": "LLaMA assemble des techniques antérieures : pré-normalisation RMSNorm, activation SwiGLU et positions RoPE. L'entraînement prolongé sur des données publiques privilégie également l'efficacité à l'inférence.",
      "en": "LLaMA combines earlier techniques: RMSNorm pre-normalization, SwiGLU activation and RoPE positions. Extended training on public data also prioritizes inference efficiency."
    },
    "tradeoff": {
      "fr": "Ce modèle popularise une combinaison ; il n'invente pas séparément ces composants.",
      "en": "The model popularizes a combination; it does not separately invent these components."
    },
    "origin": {
      "fr": "LLaMA 7B–65B, Meta.",
      "en": "LLaMA 7B–65B, Meta."
    },
    "adoption": {
      "fr": "Llama 2 et de nombreux modèles dérivés.",
      "en": "Llama 2 and many derivative models."
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2302.13971",
        "title": "LLaMA: Open and Efficient Foundation Language Models"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Des modèles relativement compacts popularisent une recette efficace pour la recherche.",
        "en": "Relatively compact models popularise an efficient recipe for research."
      },
      "problem": {
        "fr": "Étudier un très grand modèle demande des ressources difficiles à réunir.",
        "en": "Studying a very large model requires resources that are difficult to obtain."
      },
      "idea": {
        "fr": "LLaMA combine plusieurs techniques existantes et un entraînement prolongé sur des textes publics.",
        "en": "LLaMA combines several existing techniques with extended training on public text."
      },
      "example": {
        "fr": "Exemple fictif : tester une adaptation sur une version plus petite.",
        "en": "Fictional example: test an adaptation on a smaller version."
      },
      "gain": {
        "fr": "Davantage d'équipes peuvent expérimenter avec ces modèles.",
        "en": "More teams can experiment with these models."
      },
      "limit": {
        "fr": "Le modèle popularise une combinaison de composants sans avoir inventé chacun d'eux.",
        "en": "The model popularises a combination of components without having invented each one."
      }
    }
  },
  {
    "id": "toolformer",
    "date": "2023-02",
    "category": "reasoning",
    "essential": true,
    "title": {
      "fr": "Toolformer : apprendre quand appeler un outil",
      "en": "Toolformer: learning when to call a tool"
    },
    "summary": {
      "fr": "L'usage d'API peut être appris avec peu de démonstrations humaines.",
      "en": "API use can be learned from few human demonstrations."
    },
    "mechanism": {
      "fr": "Le modèle insère des appels candidats dans du texte. On conserve ceux dont les résultats améliorent la prédiction des tokens suivants, puis on entraîne le modèle sur ces exemples.",
      "en": "The model inserts candidate calls into text. Calls whose results improve next-token prediction are retained, then used for training."
    },
    "tradeoff": {
      "fr": "Un appel utile à la prédiction n'assure pas une bonne planification sur de longues tâches.",
      "en": "A call useful for prediction does not ensure good long-task planning."
    },
    "origin": {
      "fr": "Toolformer, construit à partir de GPT-J 6B.",
      "en": "Toolformer, built from GPT-J 6B."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2302.04761",
        "title": "Toolformer: Language Models Can Teach Themselves to Use Tools"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Le modèle apprend où un appel d'outil peut aider à continuer le texte.",
        "en": "The model learns where a tool call can help continue text."
      },
      "problem": {
        "fr": "Quelques démonstrations manuelles ne couvrent pas tous les appels utiles.",
        "en": "A few manual demonstrations do not cover every useful call."
      },
      "idea": {
        "fr": "Le modèle propose des appels. Ceux qui améliorent la prédiction du texte suivant sont conservés pour l'entraînement.",
        "en": "The model proposes calls. Those improving prediction of the following text are retained for training."
      },
      "example": {
        "fr": "Exemple fictif : insérer un appel de calculatrice avant un résultat.",
        "en": "Fictional example: insert a calculator call before a result."
      },
      "gain": {
        "fr": "Une partie des exemples d'utilisation d'outils est produite automatiquement.",
        "en": "Some examples of tool use are generated automatically."
      },
      "limit": {
        "fr": "Améliorer une continuation ne garantit pas une bonne organisation d'une longue tâche.",
        "en": "Improving a continuation does not guarantee good organisation of a long task."
      }
    }
  },
  {
    "id": "llava",
    "date": "2023-04",
    "category": "multimodal",
    "essential": true,
    "title": {
      "fr": "LLaVA : suivre des consignes sur une image",
      "en": "LLaVA: following instructions about an image"
    },
    "summary": {
      "fr": "L'ajustement sur des conversations visuelles rend un LLM utilisable comme assistant image-texte.",
      "en": "Visual conversation fine-tuning makes an LLM usable as an image-text assistant."
    },
    "mechanism": {
      "fr": "Un projecteur relie un encodeur d'images CLIP à un modèle de langage. Des données de consignes visuelles, en partie synthétiques, enseignent au modèle à répondre sur les images.",
      "en": "A projector connects a CLIP image encoder to a language model. Partly synthetic visual instruction data teaches the model to answer image-related requests."
    },
    "tradeoff": {
      "fr": "L'encodeur et la résolution limitent les détails perceptibles ; les réponses peuvent halluciner.",
      "en": "Encoder and resolution limit visible detail; answers may hallucinate."
    },
    "origin": {
      "fr": "LLaVA, Liu et al., avec Vicuna et CLIP.",
      "en": "LLaVA, Liu et al., using Vicuna and CLIP."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2304.08485",
        "title": "Visual Instruction Tuning"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Un lien entre vision et texte permet de répondre à des questions sur une image.",
        "en": "A connection between vision and text enables questions about an image."
      },
      "problem": {
        "fr": "Les informations d'une image ne sont pas directement lisibles par un modèle de texte.",
        "en": "Image information is not directly readable by a text model."
      },
      "idea": {
        "fr": "Un composant transforme les informations visuelles. Des conversations d'exemple apprennent au modèle à les utiliser.",
        "en": "A component transforms visual information. Example conversations teach the model how to use it."
      },
      "example": {
        "fr": "Exemple fictif : demander quels objets apparaissent dans une photo.",
        "en": "Fictional example: ask which objects appear in a photograph."
      },
      "gain": {
        "fr": "Le modèle peut suivre certaines consignes visuelles.",
        "en": "The model can follow some visual instructions."
      },
      "limit": {
        "fr": "Des détails restent invisibles et des objets absents peuvent être mentionnés.",
        "en": "Some details remain inaccessible, and absent objects may be mentioned."
      }
    }
  },
  {
    "id": "doremi",
    "date": "2023-05",
    "category": "data",
    "essential": false,
    "title": {
      "fr": "DoReMi : choisir le bon mélange de données",
      "en": "DoReMi: choosing the data mixture"
    },
    "summary": {
      "fr": "Optimiser les proportions de corpus peut améliorer l'apprentissage sans ajouter de paramètres.",
      "en": "Optimizing corpus proportions can improve learning without adding parameters."
    },
    "mechanism": {
      "fr": "Un petit modèle auxiliaire ajuste les poids des domaines grâce à une optimisation robuste. Le grand modèle est ensuite entraîné sur le mélange ainsi estimé.",
      "en": "A small proxy model adjusts domain weights through robust optimization. The large model is then trained on the resulting mixture."
    },
    "tradeoff": {
      "fr": "Les domaines et le modèle auxiliaire influencent le résultat ; le transfert n'est pas universel.",
      "en": "Domains and proxy model affect results; transfer is not universal."
    },
    "origin": {
      "fr": "DoReMi, Xie et al., expérimenté sur des mélanges de corpus.",
      "en": "DoReMi, Xie et al., tested on corpus mixtures."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2305.10429",
        "title": "DoReMi: Optimizing Data Mixtures Speeds Up Language Model Pretraining"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Choisir les proportions des sources de texte peut améliorer l'apprentissage.",
        "en": "Choosing the proportions of text sources can improve learning."
      },
      "problem": {
        "fr": "Un gros corpus peut consacrer trop de place à des sources peu utiles.",
        "en": "A large collection can devote too much space to less useful sources."
      },
      "idea": {
        "fr": "Un petit modèle teste comment pondérer les catégories de textes. Ce mélange sert ensuite au grand modèle.",
        "en": "A small model tests how to weight text categories. The resulting mixture is then used for the larger model."
      },
      "example": {
        "fr": "Exemple fictif : revoir les proportions de livres et de pages web.",
        "en": "Fictional example: revise the proportions of books and web pages."
      },
      "gain": {
        "fr": "Le même volume de données peut devenir plus utile.",
        "en": "The same volume of data can become more useful."
      },
      "limit": {
        "fr": "Le mélange trouvé ne se transfère pas forcément à toutes les tailles et tâches.",
        "en": "The mixture need not transfer to every size and task."
      }
    }
  },
  {
    "id": "dpo",
    "date": "2023-05",
    "category": "training",
    "essential": true,
    "title": {
      "fr": "DPO : apprendre directement les préférences",
      "en": "DPO: learning preferences directly"
    },
    "summary": {
      "fr": "Des paires de réponses préférée/rejetée suffisent à un objectif de post-entraînement simple.",
      "en": "Preferred/rejected response pairs provide a simple post-training objective."
    },
    "mechanism": {
      "fr": "La perte compare les probabilités des deux réponses relativement à un modèle de référence. Elle reformule un objectif de préférence régularisé sans entraîner séparément un modèle de récompense ni exécuter PPO.",
      "en": "The loss compares both responses' probabilities relative to a reference model. It reformulates regularized preference optimization without a separate reward model or PPO."
    },
    "tradeoff": {
      "fr": "Les préférences hors distribution et les biais du jeu de paires peuvent limiter le résultat.",
      "en": "Out-of-distribution preferences and pair-dataset biases can limit results."
    },
    "origin": {
      "fr": "DPO, Rafailov et al., expériences sur sentiment, résumé et dialogue.",
      "en": "DPO, Rafailov et al., experiments on sentiment, summarization and dialogue."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2305.18290",
        "title": "Direct Preference Optimization: Your Language Model is Secretly a Reward Model"
      }
    ],
    "related": [
      "rlhf-origins",
      "instructgpt",
      "grpo",
      "deepseek-r1"
    ],
    "lineage": [
      {
        "family": "preferences",
        "parent": "instructgpt",
        "child": "dpo",
        "kind": "alternative",
        "explanation": {
          "fr": "DPO apprend directement sur les réponses préférées et rejetées, sans entraîner le modèle de récompense séparé utilisé dans la recette d’InstructGPT.",
          "en": "DPO learns directly from preferred and rejected responses, without training the separate reward model used in the InstructGPT recipe."
        },
        "source": {
          "url": "https://arxiv.org/abs/2305.18290",
          "title": "Direct Preference Optimization: Your Language Model is Secretly a Reward Model"
        }
      }
    ],
    "lineage_families": [
      "preferences"
    ],
    "beginner": {
      "summary": {
        "fr": "Comparer directement deux réponses simplifie l'apprentissage des préférences.",
        "en": "Directly comparing two answers simplifies learning from preferences."
      },
      "problem": {
        "fr": "Certaines méthodes exigent un évaluateur séparé et une boucle d'entraînement coûteuse.",
        "en": "Some methods require a separate evaluator and an expensive training loop."
      },
      "idea": {
        "fr": "Des paires indiquent la réponse préférée. L'entraînement ajuste leurs probabilités par rapport à une version de référence.",
        "en": "Pairs identify which answer people prefer for the same request. Training adjusts their probabilities relative to a fixed reference version."
      },
      "example": {
        "fr": "Exemple fictif : préférer un résumé clair à un résumé confus.",
        "en": "Fictional example: prefer a clear summary to a confusing one."
      },
      "gain": {
        "fr": "La procédure de préférence comporte moins de composants.",
        "en": "The preference-training procedure has fewer components."
      },
      "limit": {
        "fr": "Apprendre des préférences ne garantit ni la véracité ni l'absence de biais.",
        "en": "Learning preferences guarantees neither truthfulness nor freedom from bias."
      }
    }
  },
  {
    "id": "gqa",
    "date": "2023-05",
    "category": "architecture",
    "essential": true,
    "title": {
      "fr": "GQA : partager les clés et valeurs par groupe",
      "en": "GQA: sharing keys and values by group"
    },
    "summary": {
      "fr": "Le cache KV diminue avec un compromis entre attention multi-tête et multi-query.",
      "en": "KV cache shrinks through a compromise between multi-head and multi-query attention."
    },
    "mechanism": {
      "fr": "Plusieurs têtes de requête partagent une même paire de têtes clé/valeur. Le nombre de groupes contrôle directement la mémoire du cache ; le papier étudie aussi la conversion de modèles existants.",
      "en": "Several query heads share a key/value head pair. Group count directly controls cache memory; the paper also studies converting existing models."
    },
    "tradeoff": {
      "fr": "Moins de groupes peut réduire la qualité ; le meilleur choix dépend du modèle.",
      "en": "Fewer groups can reduce quality; the best choice depends on the model."
    },
    "origin": {
      "fr": "Ainslie et al., expériences de conversion de T5.",
      "en": "Ainslie et al., T5 conversion experiments."
    },
    "adoption": {
      "fr": "Llama 2 70B et Mistral 7B.",
      "en": "Llama 2 70B and Mistral 7B."
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2305.13245",
        "title": "GQA: Training Generalized Multi-Query Transformer Models from Multi-Head Checkpoints"
      }
    ],
    "related": [
      "transformer",
      "mqa",
      "mla"
    ],
    "lineage": [
      {
        "family": "cache",
        "parent": "mqa",
        "child": "gqa",
        "kind": "improves",
        "explanation": {
          "fr": "GQA généralise MQA : plusieurs groupes partagent les clés et valeurs, au lieu d’un partage unique entre toutes les têtes.",
          "en": "GQA generalizes MQA: several groups share keys and values, instead of one shared set for all heads."
        },
        "source": {
          "url": "https://arxiv.org/abs/2305.13245",
          "title": "GQA: Training Generalized Multi-Query Transformer Models from Multi-Head Checkpoints"
        }
      },
      {
        "family": "cache",
        "parent": "gqa",
        "child": "mla",
        "kind": "alternative",
        "explanation": {
          "fr": "MLA réduit aussi la mémoire du cache, mais compresse les clés et valeurs dans un petit vecteur plutôt que de les partager par groupes.",
          "en": "MLA also reduces cache memory, but compresses keys and values into a small vector instead of sharing them in groups."
        },
        "source": {
          "url": "https://arxiv.org/abs/2405.04434",
          "title": "DeepSeek-V2: A Strong, Economical, and Efficient Mixture-of-Experts Language Model"
        }
      }
    ],
    "lineage_families": [
      "cache"
    ],
    "beginner": {
      "summary": {
        "fr": "Des groupes de voies de lecture partagent une partie de leur mémoire.",
        "en": "Groups of reading paths share part of their memory."
      },
      "problem": {
        "fr": "Chaque voie de lecture indépendante conserve normalement ses propres informations sur le texte passé.",
        "en": "Each independent reading path normally stores its own information about past text."
      },
      "idea": {
        "fr": "Chaque voie formule sa propre recherche, mais partage des clés et valeurs : les informations utilisées pour retrouver puis lire le passé.",
        "en": "Each path formulates its own query but shares keys and values: the information used to locate and read the past."
      },
      "example": {
        "fr": "Exemple fictif : deux groupes de deux voies partagent chacun les mêmes données.",
        "en": "Fictional example: two groups of two paths each share the same stored data."
      },
      "gain": {
        "fr": "Le cache, stockage temporaire des calculs sur le texte passé, diminue.",
        "en": "The cache, temporary storage of computations about past text, becomes smaller."
      },
      "limit": {
        "fr": "Ce partage peut réduire la qualité selon le modèle et le nombre de groupes.",
        "en": "Sharing can reduce quality depending on the model and group count."
      }
    }
  },
  {
    "id": "mpt",
    "date": "2023-05",
    "category": "training",
    "essential": false,
    "title": {
      "fr": "MPT : assembler des briques pour un modèle ouvert",
      "en": "MPT: assembling components for an open model"
    },
    "summary": {
      "fr": "Une recette publiquement utilisable combine stabilité, attention efficace et variantes spécialisées.",
      "en": "A publicly usable recipe combines stability, efficient attention and specialized variants."
    },
    "mechanism": {
      "fr": "MPT-7B adopte ALiBi, FlashAttention et l'optimiseur Lion. La variante StoryWriter prolonge l'entraînement sur de longs passages pour exploiter une fenêtre de contexte plus grande.",
      "en": "MPT-7B adopts ALiBi, FlashAttention and the Lion optimizer. StoryWriter continues training on long passages to use a larger context window."
    },
    "tradeoff": {
      "fr": "Il s'agit d'adoption de techniques ; extrapoler des positions n'assure pas toute compréhension à longue distance.",
      "en": "This is technique adoption; positional extrapolation does not ensure all long-range understanding."
    },
    "origin": {
      "fr": "MPT-7B, MosaicML, annonce officielle du 5 mai 2023.",
      "en": "MPT-7B, MosaicML, official announcement May 5, 2023."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://www.databricks.com/blog/mpt-7b",
        "title": "Introducing MPT-7B: A New Standard for Open-Source, Commercially Usable LLMs"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Une famille publique montre comment assembler plusieurs techniques efficaces.",
        "en": "A public model family shows how to combine several efficient techniques."
      },
      "problem": {
        "fr": "Reproduire une recette exige plus qu'une liste de bonnes idées.",
        "en": "Reproducing a recipe requires more than a list of good ideas."
      },
      "idea": {
        "fr": "MPT combine des choix de position, d'attention et d'apprentissage, avec des versions spécialisées.",
        "en": "MPT combines existing choices about position representation, attention computation and learning, with additional versions adapted to particular uses."
      },
      "example": {
        "fr": "Exemple fictif : poursuivre l'entraînement sur de longs récits.",
        "en": "Fictional example: continue training on long stories."
      },
      "gain": {
        "fr": "Les équipes disposent d'un assemblage concret à étudier.",
        "en": "Teams gain a concrete combination to study."
      },
      "limit": {
        "fr": "Accepter de longues entrées ne garantit pas que chaque détail lointain soit bien utilisé.",
        "en": "Accepting long inputs does not guarantee good use of every distant detail."
      }
    }
  },
  {
    "id": "nope",
    "date": "2023-05",
    "category": "architecture",
    "essential": false,
    "title": {
      "fr": "NoPE : questionner les positions explicites",
      "en": "NoPE: questioning explicit positions"
    },
    "summary": {
      "fr": "Un masque causal peut suffire à apprendre certains rapports de position.",
      "en": "A causal mask can suffice to learn some positional relationships."
    },
    "mechanism": {
      "fr": "Le modèle n'ajoute aucun encodage positionnel explicite. Les auteurs comparent sa généralisation en longueur à RoPE, ALiBi et d'autres schémas sur des tâches contrôlées.",
      "en": "The model adds no explicit positional encoding. The authors compare length generalization against RoPE, ALiBi and other schemes on controlled tasks."
    },
    "tradeoff": {
      "fr": "Des résultats sur tâches contrôlées ne prouvent pas une supériorité générale sur les LLM.",
      "en": "Controlled-task results do not prove general superiority for LLMs."
    },
    "origin": {
      "fr": "Étude de Kazemnejad et al., Transformers expérimentaux.",
      "en": "Study by Kazemnejad et al., experimental Transformers."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2305.19466",
        "title": "The Impact of Positional Encoding on Length Generalization in Transformers"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "L'ordre peut parfois s'apprendre sans ajouter de marqueurs de position explicites.",
        "en": "Order can sometimes be learned without adding explicit position markers."
      },
      "problem": {
        "fr": "Coder la position de chaque morceau de texte impose des choix de représentation.",
        "en": "Encoding each text piece's position imposes representation choices."
      },
      "idea": {
        "fr": "Le modèle utilise seulement l'interdiction de lire les positions futures pour apprendre certains rapports d'ordre.",
        "en": "The model uses only the restriction against reading future positions to learn some ordering relationships."
      },
      "example": {
        "fr": "Exemple fictif : comparer des suites plus longues que celles d'entraînement.",
        "en": "Fictional example: compare sequences longer than those used in training."
      },
      "gain": {
        "fr": "Certaines tâches contrôlées montrent une généralisation intéressante.",
        "en": "Some controlled tasks show interesting generalisation."
      },
      "limit": {
        "fr": "Ces essais ne démontrent pas une supériorité générale sur les grands modèles de langage.",
        "en": "These tests do not demonstrate general superiority for large language models."
      }
    }
  },
  {
    "id": "process-supervision",
    "date": "2023-05",
    "category": "reasoning",
    "essential": true,
    "title": {
      "fr": "Supervision du processus : noter chaque étape",
      "en": "Process supervision: scoring each step"
    },
    "summary": {
      "fr": "Un vérificateur peut apprendre à repérer où un raisonnement mathématique devient faux.",
      "en": "A verifier can learn where a mathematical reasoning chain goes wrong."
    },
    "mechanism": {
      "fr": "Des annotateurs évaluent les étapes plutôt que la seule réponse finale. Un modèle de récompense de processus classe ensuite plusieurs solutions candidates et aide à sélectionner les plus solides.",
      "en": "Annotators evaluate steps rather than only final answers. A process reward model then ranks candidate solutions to help select stronger ones."
    },
    "tradeoff": {
      "fr": "Les annotations coûtent cher et un vérificateur reste faillible hors de ses données.",
      "en": "Annotations are costly and a verifier remains fallible beyond its training data."
    },
    "origin": {
      "fr": "Let's Verify Step by Step, Lightman et al. ; jeu PRM800K.",
      "en": "Let's Verify Step by Step, Lightman et al.; PRM800K dataset."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2305.20050",
        "title": "Let's Verify Step by Step"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Évaluer les étapes aide à repérer où une solution devient fausse.",
        "en": "Evaluating steps helps identify where a solution becomes wrong."
      },
      "problem": {
        "fr": "Une note finale ne dit pas quelle étape a provoqué l'erreur.",
        "en": "A final score does not reveal which step caused the error."
      },
      "idea": {
        "fr": "Des humains annotent les étapes. Un évaluateur entraîné sur ces annotations classe ensuite plusieurs solutions.",
        "en": "People annotate steps. An evaluator trained on those annotations then ranks several solutions."
      },
      "example": {
        "fr": "Exemple fictif : signaler le premier calcul incorrect d'une démonstration.",
        "en": "Fictional example: flag the first incorrect calculation in a demonstration."
      },
      "gain": {
        "fr": "La sélection peut privilégier des solutions aux étapes plus solides.",
        "en": "Selection can favour solutions with stronger intermediate steps."
      },
      "limit": {
        "fr": "Les annotations coûtent du travail et l'évaluateur peut lui aussi se tromper.",
        "en": "Annotations require work, and the evaluator can also make mistakes."
      }
    }
  },
  {
    "id": "qlora",
    "date": "2023-05",
    "category": "training",
    "essential": true,
    "title": {
      "fr": "QLoRA : adapter un modèle quantifié",
      "en": "QLoRA: adapting a quantized model"
    },
    "summary": {
      "fr": "Un grand modèle peut être spécialisé avec une mémoire GPU fortement réduite.",
      "en": "A large model can be specialized using much less GPU memory."
    },
    "mechanism": {
      "fr": "Les poids de base restent gelés en quatre bits NF4 tandis que de petits adaptateurs LoRA sont entraînés. Double quantification et optimiseurs paginés réduisent aussi la mémoire nécessaire.",
      "en": "Base weights stay frozen in four-bit NF4 while small LoRA adapters are trained. Double quantization and paged optimizers further reduce memory needs."
    },
    "tradeoff": {
      "fr": "Ce n'est pas un entraînement intégral en quatre bits ; qualité et vitesse dépendent de la configuration.",
      "en": "This is not full four-bit training; quality and speed depend on configuration."
    },
    "origin": {
      "fr": "QLoRA, Dettmers et al. ; modèles Guanaco dérivés de LLaMA.",
      "en": "QLoRA, Dettmers et al.; Guanaco models derived from LLaMA."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2305.14314",
        "title": "QLoRA: Efficient Finetuning of Quantized LLMs"
      }
    ],
    "related": [
      "adapters",
      "lora",
      "ia3",
      "gptq",
      "smoothquant"
    ],
    "lineage": [
      {
        "family": "adaptation",
        "parent": "lora",
        "child": "qlora",
        "kind": "combines",
        "explanation": {
          "fr": "QLoRA entraîne les petites matrices de LoRA à travers un modèle de base gelé et quantifié sur 4 bits.",
          "en": "QLoRA trains LoRA’s small matrices through a frozen base model quantized to 4 bits."
        },
        "source": {
          "url": "https://arxiv.org/abs/2305.14314",
          "title": "QLoRA: Efficient Finetuning of Quantized LLMs"
        }
      }
    ],
    "lineage_families": [
      "adaptation"
    ],
    "beginner": {
      "summary": {
        "fr": "Un modèle comprimé peut être spécialisé grâce à de petits ajouts entraînables.",
        "en": "A compressed model can be specialised using small trainable additions."
      },
      "problem": {
        "fr": "Adapter un grand modèle demande normalement beaucoup de mémoire.",
        "en": "Adapting a large model normally requires considerable memory."
      },
      "idea": {
        "fr": "Les valeurs de base restent fixes et comprimées. Seuls de petits ajouts, appelés adaptateurs, sont entraînés.",
        "en": "The base values remain fixed and compressed. Only small additions, called adapters, are trained."
      },
      "example": {
        "fr": "Exemple fictif : adapter le style des réponses sans réentraîner la base.",
        "en": "Fictional example: adapt answer style without retraining the base."
      },
      "gain": {
        "fr": "La spécialisation peut tenir sur moins de mémoire graphique.",
        "en": "Specialisation can fit in less graphics memory."
      },
      "limit": {
        "fr": "Tout l'entraînement ne se fait pas en quatre bits et les résultats dépendent des réglages.",
        "en": "Not all training takes place in four bits, and results depend on the settings."
      }
    }
  },
  {
    "id": "rwkv",
    "date": "2023-05",
    "category": "architecture",
    "essential": false,
    "title": {
      "fr": "RWKV : récurrence et entraînement parallèle",
      "en": "RWKV: recurrence and parallel training"
    },
    "summary": {
      "fr": "Un modèle de langage peut décoder avec un état de taille indépendante de l'historique.",
      "en": "A language model can decode with state independent of history length."
    },
    "mechanism": {
      "fr": "Des mélanges temporels et entre canaux combinent portes et agrégations pondérées. La formulation permet une évaluation récurrente et un entraînement parallélisable sur la séquence.",
      "en": "Time mixing and channel mixing combine gates with weighted aggregation. The formulation supports recurrent evaluation and sequence-parallel training."
    },
    "tradeoff": {
      "fr": "L'état fini compresse l'historique ; il ne conserve pas un cache consultable de chaque token.",
      "en": "Finite state compresses history rather than keeping individually addressable token caches."
    },
    "origin": {
      "fr": "RWKV, Peng et al. ; papier décrivant notamment RWKV-4.",
      "en": "RWKV, Peng et al.; paper notably describing RWKV-4."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2305.13048",
        "title": "RWKV: Reinventing RNNs for the Transformer Era"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Un état de taille fixe remplace le stockage détaillé de tout le passé.",
        "en": "A fixed-size state replaces detailed storage of the entire past."
      },
      "problem": {
        "fr": "La mémoire utilisée par une attention classique augmente avec le texte.",
        "en": "Memory used by conventional attention grows with the text."
      },
      "idea": {
        "fr": "Le modèle met à jour un état résumé à chaque morceau de texte, tout en permettant un entraînement parallèle.",
        "en": "The model updates a summary state for each text piece, while allowing parallel training."
      },
      "example": {
        "fr": "Exemple fictif : poursuivre une réponse sans ajouter une fiche mémoire pour chaque mot.",
        "en": "Fictional example: continue an answer without adding a memory record for every word."
      },
      "gain": {
        "fr": "Le stockage du passé peut rester constant pendant la génération.",
        "en": "Storage for the past can remain constant during generation."
      },
      "limit": {
        "fr": "Les détails anciens sont compressés et ne restent pas tous directement consultables.",
        "en": "Older details are compressed and do not all remain directly accessible."
      }
    }
  },
  {
    "id": "awq",
    "date": "2023-06",
    "category": "inference",
    "essential": true,
    "title": {
      "fr": "AWQ : protéger les poids importants",
      "en": "AWQ: protecting important weights"
    },
    "summary": {
      "fr": "Une quantification basse précision préserve mieux les canaux influents du modèle.",
      "en": "Low-precision quantization better preserves influential model channels."
    },
    "mechanism": {
      "fr": "Des activations de calibration servent à identifier les canaux importants. Un redimensionnement des poids avant quantification réduit leur erreur sans réentraîner l'ensemble du réseau.",
      "en": "Calibration activations identify important channels. Rescaling weights before quantization reduces their error without retraining the whole network."
    },
    "tradeoff": {
      "fr": "Le calibrage doit rester représentatif et l'accélération exige des kernels adaptés.",
      "en": "Calibration must remain representative and acceleration requires suitable kernels."
    },
    "origin": {
      "fr": "AWQ, Lin et al., évalué sur plusieurs familles de LLM.",
      "en": "AWQ, Lin et al., evaluated on multiple LLM families."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2306.00978",
        "title": "AWQ: Activation-aware Weight Quantization for LLM Compression and Acceleration"
      }
    ],
    "related": [
      "gptq",
      "smoothquant",
      "qlora"
    ],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Protéger les informations influentes aide à comprimer un modèle déjà entraîné.",
        "en": "Protecting influential information helps compress an already trained model."
      },
      "problem": {
        "fr": "Arrondir toutes les valeurs de la même manière peut dégrader fortement les réponses.",
        "en": "Rounding every value the same way can seriously degrade answers."
      },
      "idea": {
        "fr": "Des exemples repèrent les canaux influents, puis un changement d'échelle réduit leur erreur d'arrondi.",
        "en": "Examples identify influential channels, then a change of scale reduces their rounding error."
      },
      "example": {
        "fr": "Exemple fictif : préserver mieux un groupe de valeurs sensible.",
        "en": "Fictional example: better preserve a sensitive group of values."
      },
      "gain": {
        "fr": "Le modèle peut occuper moins de mémoire sans réentraînement complet.",
        "en": "The model can use less memory without complete retraining."
      },
      "limit": {
        "fr": "La calibration doit rester représentative et l'accélération dépend des programmes disponibles.",
        "en": "Calibration must remain representative, and acceleration depends on available implementations."
      }
    }
  },
  {
    "id": "position-interpolation",
    "date": "2023-06",
    "category": "architecture",
    "essential": true,
    "title": {
      "fr": "Interpolation positionnelle : étirer RoPE",
      "en": "Position interpolation: stretching RoPE"
    },
    "summary": {
      "fr": "Un ajustement relativement court étend la fenêtre d'un modèle préentraîné.",
      "en": "Relatively short fine-tuning extends a pretrained model's context window."
    },
    "mechanism": {
      "fr": "Les positions d'une longue séquence sont ramenées dans l'intervalle connu de RoPE. Le modèle est ensuite ajusté pour exploiter cette nouvelle échelle sans extrapolation brutale.",
      "en": "Long-sequence positions are mapped into RoPE's familiar interval. The model is then fine-tuned to use the new scale without abrupt extrapolation."
    },
    "tradeoff": {
      "fr": "Une fenêtre annoncée ne garantit pas une récupération uniforme de toutes les informations.",
      "en": "An advertised window does not guarantee uniform retrieval of all information."
    },
    "origin": {
      "fr": "Chen et al., extension de LLaMA jusqu'à 32K.",
      "en": "Chen et al., extending LLaMA to 32K."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2306.15595",
        "title": "Extending Context Window of Large Language Models via Positional Interpolation"
      }
    ],
    "related": [
      "rope",
      "alibi",
      "yarn",
      "longrope"
    ],
    "lineage": [
      {
        "family": "positions",
        "parent": "rope",
        "child": "position-interpolation",
        "kind": "builds",
        "explanation": {
          "fr": "L’interpolation réduit les indices de position avant d’appliquer RoPE, pour faire tenir un texte plus long dans la plage apprise.",
          "en": "Interpolation reduces position indices before applying RoPE, fitting a longer text into the learned range."
        },
        "source": {
          "url": "https://arxiv.org/abs/2306.15595",
          "title": "Extending Context Window of Large Language Models via Positional Interpolation"
        }
      },
      {
        "family": "positions",
        "parent": "position-interpolation",
        "child": "yarn",
        "kind": "improves",
        "explanation": {
          "fr": "YaRN affine l’interpolation en traitant différemment les fréquences de rotation de RoPE et en ajustant l’échelle de l’attention.",
          "en": "YaRN refines interpolation by treating RoPE rotation frequencies differently and adjusting attention scaling."
        },
        "source": {
          "url": "https://arxiv.org/abs/2309.00071",
          "title": "YaRN: Efficient Context Window Extension of Large Language Models"
        }
      }
    ],
    "lineage_families": [
      "positions"
    ],
    "beginner": {
      "summary": {
        "fr": "Rapprocher les positions permet d'adapter un modèle à des textes plus longs.",
        "en": "Bringing positions closer adapts a model to longer texts."
      },
      "problem": {
        "fr": "Des positions très éloignées de celles apprises peuvent perturber le modèle.",
        "en": "Positions far beyond those seen during training can disrupt the model."
      },
      "idea": {
        "fr": "On ramène les nouvelles positions dans l'intervalle connu, puis on poursuit brièvement l'entraînement.",
        "en": "New positions are mapped into the familiar range, followed by a short period of further training."
      },
      "example": {
        "fr": "Exemple fictif : faire tenir une règle plus longue sur la même graduation.",
        "en": "Fictional example: fit a longer ruler onto the same scale."
      },
      "gain": {
        "fr": "La fenêtre de texte utilisable peut être étendue.",
        "en": "The usable text window can be extended."
      },
      "limit": {
        "fr": "L'image de la règle décrit l'échelle seulement : tous les détails ne deviennent pas également accessibles.",
        "en": "The ruler describes scaling only: not every detail becomes equally accessible."
      }
    }
  },
  {
    "id": "flashattention-2",
    "date": "2023-07",
    "category": "inference",
    "essential": false,
    "title": {
      "fr": "FlashAttention-2 : mieux remplir le GPU",
      "en": "FlashAttention-2: better GPU utilization"
    },
    "summary": {
      "fr": "Une meilleure répartition du travail accélère encore l'attention exacte.",
      "en": "Better work partitioning further accelerates exact attention."
    },
    "mechanism": {
      "fr": "Le kernel réduit les opérations hors multiplication matricielle et répartit mieux les blocs d'une même tête entre unités GPU. Il réduit aussi les communications entre groupes de threads.",
      "en": "The kernel reduces non-matrix operations and better distributes blocks from one head across GPU units. It also reduces communication between thread groups."
    },
    "tradeoff": {
      "fr": "Le gain dépend de la forme des tenseurs et du GPU ; le coût reste quadratique.",
      "en": "Gains depend on tensor shapes and GPU; complexity remains quadratic."
    },
    "origin": {
      "fr": "FlashAttention-2, Tri Dao, démonstrations sur modèles de type GPT.",
      "en": "FlashAttention-2, Tri Dao, demonstrations on GPT-style models."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2307.08691",
        "title": "FlashAttention-2: Faster Attention with Better Parallelism and Work Partitioning"
      }
    ],
    "related": [],
    "lineage": [
      {
        "family": "attention-kernels",
        "parent": "flashattention",
        "child": "flashattention-2",
        "kind": "improves",
        "explanation": {
          "fr": "La deuxième version conserve le calcul par tuiles et répartit mieux le travail entre les unités du GPU.",
          "en": "The second version retains tiled computation and distributes work more effectively across GPU units."
        },
        "source": {
          "url": "https://arxiv.org/abs/2307.08691",
          "title": "FlashAttention-2: Faster Attention with Better Parallelism and Work Partitioning"
        }
      },
      {
        "family": "attention-kernels",
        "parent": "flashattention-2",
        "child": "flashattention-3",
        "kind": "improves",
        "explanation": {
          "fr": "La troisième version adapte cette attention exacte aux GPU Hopper, en faisant se chevaucher transferts et calculs.",
          "en": "The third version adapts this exact attention to Hopper GPUs by overlapping transfers and computation."
        },
        "source": {
          "url": "https://arxiv.org/abs/2407.08608",
          "title": "FlashAttention-3: Fast and Accurate Attention with Asynchrony and Low-precision"
        }
      }
    ],
    "lineage_families": [
      "attention-kernels"
    ],
    "beginner": {
      "summary": {
        "fr": "Mieux répartir le travail accélère le calcul exact de l'attention.",
        "en": "Distributing work better speeds up exact attention computation."
      },
      "problem": {
        "fr": "Une puce peut attendre alors que certaines parties du calcul restent occupées.",
        "en": "A chip can wait while some parts of the computation remain busy."
      },
      "idea": {
        "fr": "Le programme répartit mieux les blocs et réduit les échanges et opérations supplémentaires.",
        "en": "The implementation distributes blocks better and reduces communication and additional operations."
      },
      "example": {
        "fr": "Exemple fictif : partager le calcul d'une même voie de lecture entre plusieurs unités.",
        "en": "Fictional example: share computation for one reading path across several units."
      },
      "gain": {
        "fr": "La puce peut consacrer davantage de temps aux calculs utiles.",
        "en": "The chip can spend more time on useful calculation."
      },
      "limit": {
        "fr": "Le gain dépend du matériel et le nombre de comparaisons croît comme le carré de la longueur.",
        "en": "Benefits depend on hardware, and comparisons grow with the square of the length."
      }
    }
  },
  {
    "id": "llama-2",
    "date": "2023-07",
    "category": "training",
    "essential": false,
    "title": {
      "fr": "Llama 2 : documenter le modèle de dialogue",
      "en": "Llama 2: documenting a dialogue model"
    },
    "summary": {
      "fr": "Des versions conversationnelles ouvertes accompagnent une recette détaillée de post-entraînement.",
      "en": "Open conversational variants accompany a detailed post-training recipe."
    },
    "mechanism": {
      "fr": "Les modèles de base reçoivent davantage de préentraînement puis les versions Chat passent par ajustement supervisé et préférences humaines. La variante 70B adopte GQA pour réduire le cache d'attention.",
      "en": "Base models receive further pretraining, then Chat variants undergo supervised and human-preference tuning. The 70B variant adopts GQA to reduce attention cache."
    },
    "tradeoff": {
      "fr": "Les composants sont antérieurs ; les comportements dépendent aussi du jeu de consignes et préférences.",
      "en": "Components predate the release; behavior also depends on instruction and preference datasets."
    },
    "origin": {
      "fr": "Llama 2 et Llama 2-Chat, Meta ; jalon de synthèse et d'adoption.",
      "en": "Llama 2 and Llama 2-Chat, Meta; a synthesis and adoption milestone."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2307.09288",
        "title": "Llama 2: Open Foundation and Fine-Tuned Chat Models"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Une famille documentée combine modèles de base et versions conversationnelles.",
        "en": "A documented family combines base models with conversational versions."
      },
      "problem": {
        "fr": "Un modèle de continuation demande encore une adaptation pour servir d'assistant.",
        "en": "A text-continuation model still needs adaptation to act as an assistant."
      },
      "idea": {
        "fr": "Après l'apprentissage sur des textes, des démonstrations et préférences humaines orientent les versions de conversation.",
        "en": "After learning from text, demonstrations and human preferences guide the conversational versions."
      },
      "example": {
        "fr": "Exemple fictif : préférer une réponse à la question plutôt qu'une simple continuation.",
        "en": "Fictional example: prefer answering the question over merely continuing its wording."
      },
      "gain": {
        "fr": "La publication décrit davantage la recette d'adaptation.",
        "en": "The publication describes more of the adaptation recipe."
      },
      "limit": {
        "fr": "Les composants sont antérieurs et les résultats dépendent des exemples choisis.",
        "en": "Its components predate the model, and results depend on the chosen examples."
      }
    }
  },
  {
    "id": "retnet",
    "date": "2023-07",
    "category": "architecture",
    "essential": false,
    "title": {
      "fr": "RetNet : une mémoire sous trois formes",
      "en": "RetNet: memory in three forms"
    },
    "summary": {
      "fr": "Le même mécanisme peut s'entraîner en parallèle et décoder de façon récurrente.",
      "en": "The same mechanism supports parallel training and recurrent decoding."
    },
    "mechanism": {
      "fr": "La rétention combine interactions entre requêtes et clés avec décroissance temporelle. Des formulations équivalentes permettent un calcul parallèle, récurrent ou récurrent par blocs.",
      "en": "Retention combines query-key interactions with temporal decay. Equivalent formulations support parallel, recurrent or chunkwise recurrent computation."
    },
    "tradeoff": {
      "fr": "L'état récurrent résume l'historique ; les gains doivent être comparés à qualité égale.",
      "en": "Recurrent state summarizes history; gains need comparison at matched quality."
    },
    "origin": {
      "fr": "RetNet, Sun et al., Microsoft.",
      "en": "RetNet, Sun et al., Microsoft."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2307.08621",
        "title": "Retentive Network: A Successor to Transformer for Large Language Models"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Un même mécanisme permet apprentissage parallèle et génération avec mémoire résumée.",
        "en": "One mechanism supports parallel learning and generation with summarised memory."
      },
      "problem": {
        "fr": "Le mode rapide pour apprendre n'est pas toujours pratique pour répondre.",
        "en": "A fast way to learn is not always practical for answering."
      },
      "idea": {
        "fr": "Une règle de rétention combine les informations et réduit progressivement l'influence de certaines positions anciennes.",
        "en": "A retention rule combines information and gradually reduces the influence of some older positions."
      },
      "example": {
        "fr": "Exemple fictif : mettre à jour un état après chaque nouveau mot.",
        "en": "Fictional example: update a state after every new word."
      },
      "gain": {
        "fr": "Plusieurs formes de calcul correspondent au même mécanisme.",
        "en": "Several computation forms implement the same mechanism."
      },
      "limit": {
        "fr": "L'état compresse le passé et les performances doivent être comparées à qualité équivalente.",
        "en": "The state compresses the past, and performance must be compared at equivalent quality."
      }
    }
  },
  {
    "id": "sarathi",
    "date": "2023-08",
    "category": "inference",
    "essential": true,
    "title": {
      "fr": "SARATHI : découper le préremplissage",
      "en": "SARATHI: chunking the prefill"
    },
    "summary": {
      "fr": "Les longues entrées peuvent être traitées sans bloquer autant les générations en cours.",
      "en": "Long inputs can be processed with less interference to ongoing generation."
    },
    "mechanism": {
      "fr": "Le préremplissage du prompt est découpé en segments. L'ordonnanceur mélange ces segments aux étapes de décodage pour mieux utiliser le GPU et limiter les déséquilibres.",
      "en": "Prompt prefill is split into chunks. The scheduler mixes chunks with decoding steps to improve GPU use and reduce imbalance."
    },
    "tradeoff": {
      "fr": "La taille des segments arbitre entre débit, latence et coût d'ordonnancement.",
      "en": "Chunk size trades throughput against latency and scheduling overhead."
    },
    "origin": {
      "fr": "Système SARATHI, Agrawal et al.",
      "en": "SARATHI system, Agrawal et al."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2308.16369",
        "title": "SARATHI: Efficient LLM Inference by Piggybacking Decodes with Chunked Prefills"
      }
    ],
    "related": [
      "pagedattention",
      "radixattention",
      "distserve"
    ],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Découper les longues entrées évite de bloquer autant les réponses en cours.",
        "en": "Splitting long inputs reduces disruption to answers already being generated."
      },
      "problem": {
        "fr": "Lire une longue demande d'un bloc monopolise temporairement la puce.",
        "en": "Reading a long request in one go temporarily monopolises the chip."
      },
      "idea": {
        "fr": "Le serveur traite l'entrée par segments et les mélange aux étapes des réponses déjà commencées.",
        "en": "The server processes the input in chunks, mixed with steps for answers already underway."
      },
      "example": {
        "fr": "Exemple fictif : lire une partie d'un rapport entre deux étapes de génération.",
        "en": "Fictional example: read part of a report between two generation steps."
      },
      "gain": {
        "fr": "Le matériel peut mieux répartir son travail.",
        "en": "The hardware can distribute its work better."
      },
      "limit": {
        "fr": "Des segments trop petits ou trop grands dégradent certains temps d'attente.",
        "en": "Chunks that are too small or too large worsen some waiting times."
      }
    }
  },
  {
    "id": "yarn",
    "date": "2023-08",
    "category": "architecture",
    "essential": false,
    "title": {
      "fr": "YaRN : étendre RoPE de façon sélective",
      "en": "YaRN: selectively extending RoPE"
    },
    "summary": {
      "fr": "Un réglage différencié des fréquences réduit le coût d'extension du contexte.",
      "en": "Frequency-dependent adjustments reduce context extension costs."
    },
    "mechanism": {
      "fr": "YaRN combine interpolation de certaines fréquences RoPE et préservation d'autres, avec un ajustement de l'échelle de l'attention. Un entraînement complémentaire adapte le modèle à la nouvelle fenêtre.",
      "en": "YaRN interpolates some RoPE frequencies while preserving others, together with attention scaling adjustments. Additional training adapts the model to the new window."
    },
    "tradeoff": {
      "fr": "Le réglage et la qualité réelle en contexte long dépendent du modèle.",
      "en": "Tuning and actual long-context quality depend on the model."
    },
    "origin": {
      "fr": "Peng et al., expériences d'extension de LLaMA ; v1 le 31 août.",
      "en": "Peng et al., LLaMA extension experiments; v1 on August 31."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2309.00071",
        "title": "YaRN: Efficient Context Window Extension of Large Language Models"
      }
    ],
    "related": [
      "rope",
      "alibi",
      "position-interpolation",
      "longrope"
    ],
    "lineage": [
      {
        "family": "positions",
        "parent": "position-interpolation",
        "child": "yarn",
        "kind": "improves",
        "explanation": {
          "fr": "YaRN affine l’interpolation en traitant différemment les fréquences de rotation de RoPE et en ajustant l’échelle de l’attention.",
          "en": "YaRN refines interpolation by treating RoPE rotation frequencies differently and adjusting attention scaling."
        },
        "source": {
          "url": "https://arxiv.org/abs/2309.00071",
          "title": "YaRN: Efficient Context Window Extension of Large Language Models"
        }
      }
    ],
    "lineage_families": [
      "positions"
    ],
    "beginner": {
      "summary": {
        "fr": "Adapter différemment les repères de position aide à allonger les textes acceptés.",
        "en": "Adapting position scales differently helps extend accepted text length."
      },
      "problem": {
        "fr": "Étendre toutes les échelles de position de la même façon peut dégrader le modèle.",
        "en": "Extending every position scale in the same way can degrade a model."
      },
      "idea": {
        "fr": "Certaines échelles sont étirées, d'autres préservées, puis un entraînement complémentaire adapte le modèle.",
        "en": "Some scales are stretched, others preserved, followed by further training to adapt the model."
      },
      "example": {
        "fr": "Exemple fictif : garder des repères proches tout en élargissant les distances longues.",
        "en": "Fictional example: retain nearby landmarks while expanding long distances."
      },
      "gain": {
        "fr": "La fenêtre utilisable peut grandir à moindre coût d'adaptation.",
        "en": "The usable window can grow with less adaptation effort."
      },
      "limit": {
        "fr": "La qualité à longue distance reste à mesurer pour chaque modèle.",
        "en": "Long-distance quality still needs measurement for each model."
      }
    }
  },
  {
    "id": "pagedattention",
    "date": "2023-09",
    "category": "inference",
    "essential": true,
    "title": {
      "fr": "PagedAttention : paginer le cache KV",
      "en": "PagedAttention: paging the KV cache"
    },
    "summary": {
      "fr": "Un serveur gaspille moins de mémoire et peut traiter davantage de requêtes simultanées.",
      "en": "A server wastes less memory and can handle more simultaneous requests."
    },
    "mechanism": {
      "fr": "Le cache est découpé en blocs physiques reliés par une table logique. Les séquences n'exigent plus un grand espace contigu ; des préfixes peuvent partager des blocs.",
      "en": "The cache is split into physical blocks linked through a logical table. Sequences no longer require large contiguous allocations; prefixes can share blocks."
    },
    "tradeoff": {
      "fr": "La pagination ne supprime pas le cache et ajoute une gestion des blocs.",
      "en": "Paging does not eliminate the cache and adds block management."
    },
    "origin": {
      "fr": "vLLM / PagedAttention, Kwon et al. ; date du papier, pas du premier code.",
      "en": "vLLM / PagedAttention, Kwon et al.; paper date, not first code."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2309.06180",
        "title": "Efficient Memory Management for Large Language Model Serving with PagedAttention"
      }
    ],
    "related": [
      "radixattention",
      "sarathi",
      "distserve"
    ],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Des blocs réutilisables organisent plus efficacement la mémoire des conversations.",
        "en": "Reusable blocks organise conversation memory more efficiently."
      },
      "problem": {
        "fr": "Réserver un grand espace continu par demande gaspille de la mémoire.",
        "en": "Reserving one large continuous space per request wastes memory."
      },
      "idea": {
        "fr": "Le passé est stocké dans de petits blocs reliés par une table. Des débuts identiques peuvent partager des blocs.",
        "en": "The information stored about past text is divided into small blocks linked by a table. Identical beginnings can share these blocks."
      },
      "example": {
        "fr": "Exemple fictif : agrandir le stockage d'une réponse bloc après bloc.",
        "en": "Fictional example: expand an answer's storage block by block."
      },
      "gain": {
        "fr": "Le serveur peut accueillir davantage de demandes simultanées.",
        "en": "The server can accommodate more simultaneous requests."
      },
      "limit": {
        "fr": "Les blocs doivent être gérés et la mémoire du passé existe toujours.",
        "en": "Blocks need management, and storage for past text is still required."
      }
    }
  },
  {
    "id": "streamingllm",
    "date": "2023-09",
    "category": "inference",
    "essential": true,
    "title": {
      "fr": "StreamingLLM : conserver les tokens puits",
      "en": "StreamingLLM: retaining attention sinks"
    },
    "summary": {
      "fr": "Certains modèles peuvent continuer à générer avec un cache de taille bornée.",
      "en": "Some models can keep generating with a bounded-size cache."
    },
    "mechanism": {
      "fr": "Outre une fenêtre récente, on conserve les premiers tokens vers lesquels l'attention se concentre. Ces puits stabilisent le calcul lorsqu'on retire les anciens tokens du cache.",
      "en": "Alongside a recent window, retain initial tokens that attract attention. These sinks stabilize computation as older tokens are removed from cache."
    },
    "tradeoff": {
      "fr": "Les informations évincées ne restent pas accessibles : flux illimité ne signifie pas mémoire illimitée.",
      "en": "Evicted information is no longer accessible: unlimited streaming does not mean unlimited memory."
    },
    "origin": {
      "fr": "StreamingLLM, Xiao et al., évalué notamment sur LLaMA.",
      "en": "StreamingLLM, Xiao et al., evaluated notably on LLaMA."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2309.17453",
        "title": "Efficient Streaming Language Models with Attention Sinks"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Garder le début et le passé récent stabilise certaines générations prolongées.",
        "en": "Keeping the beginning and recent past stabilises some prolonged generations."
      },
      "problem": {
        "fr": "Retirer simplement les vieux morceaux du cache peut perturber l'attention.",
        "en": "Simply removing old pieces from the cache can disrupt attention."
      },
      "idea": {
        "fr": "Le modèle conserve quelques morceaux initiaux et une fenêtre récente, tout en supprimant les autres.",
        "en": "The model retains a few initial pieces and a recent window while removing the others."
      },
      "example": {
        "fr": "Exemple fictif : garder l'ouverture d'un flux et ses phrases récentes.",
        "en": "Fictional example: keep a stream's opening and its recent sentences."
      },
      "gain": {
        "fr": "La génération peut continuer avec une mémoire bornée.",
        "en": "Generation can continue with bounded memory."
      },
      "limit": {
        "fr": "Le contenu supprimé n'est plus consultable : ce n'est pas une mémoire illimitée.",
        "en": "Removed content is no longer accessible: this is not unlimited memory."
      }
    }
  },
  {
    "id": "mistral-7b",
    "date": "2023-10",
    "category": "architecture",
    "essential": true,
    "title": {
      "fr": "Mistral 7B : fenêtre glissante et GQA",
      "en": "Mistral 7B: sliding windows and GQA"
    },
    "summary": {
      "fr": "Un modèle compact combine qualité compétitive et cache plus économique.",
      "en": "A compact model combines competitive quality with a cheaper cache."
    },
    "mechanism": {
      "fr": "Chaque couche consulte une fenêtre locale ; l'empilement propage l'information au-delà de celle-ci. GQA partage les clés/valeurs et un tampon roulant borne le stockage de la fenêtre.",
      "en": "Each layer attends to a local window; stacking propagates information beyond it. GQA shares keys/values and a rolling buffer bounds window storage."
    },
    "tradeoff": {
      "fr": "L'accès direct aux tokens lointains est limité ; ce n'est pas une attention globale gratuite.",
      "en": "Direct access to distant tokens is limited; this is not free global attention."
    },
    "origin": {
      "fr": "Mistral 7B ; papier d'octobre après la sortie de septembre.",
      "en": "Mistral 7B; October paper follows September release."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2310.06825",
        "title": "Mistral 7B"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Une lecture locale et une mémoire partagée rendent un modèle compact plus économique.",
        "en": "Local reading and shared memory make a compact model more economical."
      },
      "problem": {
        "fr": "Consulter et stocker tout le texte dans chaque étape coûte cher.",
        "en": "Reading and storing the entire text at every stage is expensive."
      },
      "idea": {
        "fr": "Chaque étape lit une fenêtre proche. Plusieurs voies de lecture partagent aussi certaines informations stockées.",
        "en": "Each stage reads a nearby window. Several reading paths also share some stored information."
      },
      "example": {
        "fr": "Exemple fictif : consulter directement les phrases voisines pendant la génération.",
        "en": "Fictional example: directly consult neighbouring sentences during generation."
      },
      "gain": {
        "fr": "Le cache, stockage temporaire du passé, peut être réduit.",
        "en": "The cache, temporary storage for the past, can become smaller."
      },
      "limit": {
        "fr": "Le texte lointain n'est pas directement accessible dans toutes les étapes.",
        "en": "Distant text is not directly accessible at every stage."
      }
    }
  },
  {
    "id": "falcon",
    "date": "2023-11",
    "category": "training",
    "essential": false,
    "title": {
      "fr": "Falcon : données web et attention partagée",
      "en": "Falcon: web data and shared attention"
    },
    "summary": {
      "fr": "Un rapport documente l'efficacité d'une famille ouverte entraînée principalement sur le web.",
      "en": "A report documents an open family trained primarily on web data."
    },
    "mechanism": {
      "fr": "La recette met l'accent sur le nettoyage du corpus et des choix de calcul efficaces, dont le partage des clés/valeurs d'attention selon la variante. Le rapport compare les décisions d'architecture et de données.",
      "en": "The recipe emphasizes corpus cleaning and efficient computation choices, including attention key/value sharing depending on the variant. The report compares architecture and data decisions."
    },
    "tradeoff": {
      "fr": "Le rapport de novembre suit les sorties de modèles ; MQA et GQA ne sont pas interchangeables.",
      "en": "The November report follows model releases; MQA and GQA are not interchangeable."
    },
    "origin": {
      "fr": "Famille Falcon, TII ; papier le 28 novembre 2023.",
      "en": "Falcon family, TII; paper November 28, 2023."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2311.16867",
        "title": "The Falcon Series of Open Language Models"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Une recette documente l'intérêt du nettoyage des textes et de choix de calcul économes.",
        "en": "A recipe documents the value of text cleaning and economical computation choices."
      },
      "problem": {
        "fr": "Ajouter du texte brut ne garantit pas un apprentissage efficace.",
        "en": "Adding raw text does not guarantee efficient learning."
      },
      "idea": {
        "fr": "La famille combine un corpus web nettoyé et plusieurs choix pour réduire les coûts de calcul et de mémoire.",
        "en": "The family combines cleaned web text with several choices that reduce computation and memory costs."
      },
      "example": {
        "fr": "Exemple fictif : retirer du contenu répétitif avant l'entraînement.",
        "en": "Fictional example: remove repetitive content before training."
      },
      "gain": {
        "fr": "Le rapport permet d'étudier ces décisions ensemble.",
        "en": "The report makes these decisions available for joint study."
      },
      "limit": {
        "fr": "Les variantes diffèrent et le rapport est postérieur aux premières sorties des modèles.",
        "en": "Variants differ, and the report follows the models' first releases."
      }
    }
  },
  {
    "id": "mamba",
    "date": "2023-12",
    "category": "architecture",
    "essential": true,
    "title": {
      "fr": "Mamba : une mémoire sélective",
      "en": "Mamba: selective memory"
    },
    "summary": {
      "fr": "Un modèle récurrent ajuste ce qu'il retient selon le contenu de chaque token.",
      "en": "A recurrent model adjusts what it retains based on each token's content."
    },
    "mechanism": {
      "fr": "Les paramètres d'un système à espace d'état dépendent de l'entrée. Un scan GPU efficace calcule cette récurrence pendant l'entraînement, et le décodage ne conserve qu'un état de taille fixe.",
      "en": "State-space parameters depend on the input. An efficient GPU scan computes the recurrence during training, while decoding keeps only fixed-size state."
    },
    "tradeoff": {
      "fr": "Cette compression peut affaiblir la récupération exacte d'éléments éloignés du contexte.",
      "en": "This compression can weaken exact retrieval of distant context elements."
    },
    "origin": {
      "fr": "Mamba, Albert Gu et Tri Dao.",
      "en": "Mamba, Albert Gu and Tri Dao."
    },
    "adoption": {
      "fr": "Jamba combine ensuite Mamba et attention.",
      "en": "Jamba later combines Mamba and attention."
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2312.00752",
        "title": "Mamba: Linear-Time Sequence Modeling with Selective State Spaces"
      }
    ],
    "related": [
      "s4",
      "s5",
      "mamba-2",
      "gated-deltanet",
      "qwen3-next"
    ],
    "lineage": [
      {
        "family": "state",
        "parent": "s4",
        "child": "mamba",
        "kind": "improves",
        "explanation": {
          "fr": "Mamba prolonge les modèles à espace d’état en faisant dépendre de l’entrée ce qui est retenu ou oublié.",
          "en": "Mamba extends state-space models by making what is retained or forgotten depend on the input."
        },
        "source": {
          "url": "https://arxiv.org/abs/2312.00752",
          "title": "Mamba: Linear-Time Sequence Modeling with Selective State Spaces"
        }
      },
      {
        "family": "state",
        "parent": "mamba",
        "child": "mamba-2",
        "kind": "improves",
        "explanation": {
          "fr": "Mamba-2 reformule le mécanisme sélectif de Mamba à travers la dualité entre espaces d’état et attention structurée.",
          "en": "Mamba-2 reformulates Mamba’s selective mechanism through the duality between state spaces and structured attention."
        },
        "source": {
          "url": "https://arxiv.org/abs/2405.21060",
          "title": "Transformers are SSMs: Generalized Models and Efficient Algorithms Through Structured State Space Duality"
        }
      },
      {
        "family": "state",
        "parent": "mamba",
        "child": "jamba",
        "kind": "combines",
        "explanation": {
          "fr": "Jamba associe des couches Mamba à des couches d’attention Transformer et à des couches à experts.",
          "en": "Jamba combines Mamba layers with Transformer attention layers and expert layers."
        },
        "source": {
          "url": "https://arxiv.org/abs/2403.19887",
          "title": "Jamba: A Hybrid Transformer-Mamba Language Model"
        }
      }
    ],
    "lineage_families": [
      "state"
    ],
    "beginner": {
      "summary": {
        "fr": "Le contenu détermine comment mettre à jour une mémoire de taille fixe.",
        "en": "Content determines how a fixed-size memory is updated."
      },
      "problem": {
        "fr": "Un résumé rigide du passé peut conserver les mauvaises informations.",
        "en": "A rigid summary of the past can retain the wrong information."
      },
      "idea": {
        "fr": "Chaque morceau de texte règle la mise à jour d'un état interne, calculable efficacement pendant l'entraînement.",
        "en": "Each text piece controls updates to an internal state, computed efficiently during training."
      },
      "example": {
        "fr": "Exemple fictif : modifier différemment l'état selon le mot reçu.",
        "en": "Fictional example: update the state differently depending on the word received."
      },
      "gain": {
        "fr": "La génération conserve un état dont la taille n'augmente pas avec le texte.",
        "en": "Generation retains a state whose size does not grow with the text."
      },
      "limit": {
        "fr": "Cette compression peut perdre des détails anciens à retrouver exactement.",
        "en": "This compression can lose older details that need exact retrieval."
      }
    }
  },
  {
    "id": "radixattention",
    "date": "2023-12",
    "category": "inference",
    "essential": true,
    "title": {
      "fr": "RadixAttention : réutiliser les préfixes entre appels",
      "en": "RadixAttention: reusing prefixes across calls"
    },
    "summary": {
      "fr": "Des requêtes partageant le même début évitent de recalculer ce préfixe.",
      "en": "Requests sharing the same beginning avoid recomputing that prefix."
    },
    "mechanism": {
      "fr": "Un arbre radix organise les blocs du cache KV par préfixes communs. SGLang conserve et réutilise ces blocs entre appels, au-delà du cache interne à une génération ; une politique d'éviction libère la mémoire.",
      "en": "A radix tree organizes KV-cache blocks by shared prefixes. SGLang retains and reuses those blocks across calls, beyond one generation's internal cache; eviction frees memory."
    },
    "tradeoff": {
      "fr": "Il faut un préfixe identique et un cache compatible ; les blocs évincés devront être recalculés.",
      "en": "Identical prefixes and compatible caches are required; evicted blocks must be recomputed."
    },
    "origin": {
      "fr": "SGLang / RadixAttention, Zheng et al. ; v1 le 12 décembre 2023, pas invention de toute mise en cache.",
      "en": "SGLang / RadixAttention, Zheng et al.; v1 December 12, 2023, not invention of caching in general."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2312.07104",
        "title": "SGLang: Efficient Execution of Structured Language Model Programs"
      }
    ],
    "related": [
      "pagedattention",
      "sarathi",
      "distserve"
    ],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Réutiliser un début identique évite de recalculer plusieurs fois les mêmes informations.",
        "en": "Reusing an identical beginning avoids repeating the same computation."
      },
      "problem": {
        "fr": "Plusieurs demandes peuvent commencer par le même long texte.",
        "en": "Several requests can start with the same long text."
      },
      "idea": {
        "fr": "Un arbre organise les blocs de mémoire correspondant aux débuts communs et permet leur réutilisation.",
        "en": "A tree organises memory blocks for shared beginnings and allows their reuse."
      },
      "example": {
        "fr": "Exemple fictif : poser plusieurs questions après une même consigne initiale.",
        "en": "Fictional example: ask several questions after the same initial instruction."
      },
      "gain": {
        "fr": "Le calcul déjà effectué sur ce début peut être économisé.",
        "en": "Computation already performed on that beginning can be saved."
      },
      "limit": {
        "fr": "Le début doit être identique et les blocs encore présents dans un cache compatible.",
        "en": "The beginning must match exactly, and blocks must remain in a compatible cache."
      }
    }
  },
  {
    "id": "deepseekmoe",
    "date": "2024-01",
    "category": "architecture",
    "essential": true,
    "title": {
      "fr": "DeepSeekMoE : experts fins et partagés",
      "en": "DeepSeekMoE: fine-grained and shared experts"
    },
    "summary": {
      "fr": "Des experts plus petits favorisent la spécialisation sans multiplier autant le calcul actif.",
      "en": "Smaller experts encourage specialization without equally increasing active computation."
    },
    "mechanism": {
      "fr": "Les réseaux experts sont divisés plus finement ; le routeur peut combiner davantage de petits experts. Des experts toujours actifs capturent les connaissances communes pour réduire la redondance des experts routés.",
      "en": "Expert networks are split more finely, allowing the router to combine more small experts. Always-active experts capture common knowledge to reduce redundancy among routed experts."
    },
    "tradeoff": {
      "fr": "L'équilibrage de charge et les communications restent des contraintes majeures.",
      "en": "Load balance and communication remain major constraints."
    },
    "origin": {
      "fr": "DeepSeekMoE, démontré notamment à 16B paramètres totaux.",
      "en": "DeepSeekMoE, demonstrated notably at 16B total parameters."
    },
    "adoption": {
      "fr": "DeepSeek-V2 et DeepSeek-V3 reprennent cette organisation.",
      "en": "DeepSeek-V2 and DeepSeek-V3 reuse this organization."
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2401.06066",
        "title": "DeepSeekMoE: Towards Ultimate Expert Specialization in Mixture-of-Experts Language Models"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "De petits sous-réseaux spécialisés se répartissent le calcul.",
        "en": "Small specialised subnetworks divide the computation."
      },
      "problem": {
        "fr": "Activer tout un grand réseau à chaque morceau de texte coûte cher.",
        "en": "Activating an entire large network for every text piece is expensive."
      },
      "idea": {
        "fr": "Un composant de sélection choisit plusieurs petits réseaux, appelés experts. D'autres restent toujours actifs pour les informations communes.",
        "en": "A selection component chooses several small networks, called experts. Others remain active for shared information."
      },
      "example": {
        "fr": "Exemple fictif : activer une petite sélection d'experts pour un mot.",
        "en": "Fictional example: activate a small selection of experts for a word."
      },
      "gain": {
        "fr": "La capacité totale peut augmenter sans calculer avec tous les experts.",
        "en": "Total capacity can increase without computing through every expert."
      },
      "limit": {
        "fr": "Il faut répartir leur charge et transporter les données entre machines.",
        "en": "Their workload must be balanced, and data may need moving between machines."
      }
    }
  },
  {
    "id": "distserve",
    "date": "2024-01",
    "category": "inference",
    "essential": true,
    "title": {
      "fr": "DistServe : séparer préfill et décodage",
      "en": "DistServe: separating prefill and decoding"
    },
    "summary": {
      "fr": "Allouer séparément les ressources aux deux phases améliore le service sous contraintes de latence.",
      "en": "Allocating resources separately to both phases improves latency-constrained serving."
    },
    "mechanism": {
      "fr": "Le calcul du prompt et la génération des tokens tournent sur des groupes de GPU distincts. Le système dimensionne ces groupes et transfère le cache KV entre les phases.",
      "en": "Prompt processing and token generation run on separate GPU groups. The system sizes these groups and transfers KV cache between phases."
    },
    "tradeoff": {
      "fr": "Le transfert du cache coûte du réseau ; le gain dépend de l'infrastructure et du trafic.",
      "en": "Cache transfer consumes network bandwidth; gains depend on infrastructure and traffic."
    },
    "origin": {
      "fr": "DistServe, système de Zhong et al. ; pas une architecture de modèle.",
      "en": "DistServe, system by Zhong et al.; not a model architecture."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2401.09670",
        "title": "DistServe: Disaggregating Prefill and Decoding for Goodput-optimized Large Language Model Serving"
      }
    ],
    "related": [
      "pagedattention",
      "radixattention",
      "sarathi"
    ],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Séparer lecture de la demande et génération permet d'allouer les ressources différemment.",
        "en": "Separating input reading from answer generation allows different resource allocations."
      },
      "problem": {
        "fr": "Ces deux phases n'utilisent pas les machines de la même manière.",
        "en": "These phases do not use machines in the same way."
      },
      "idea": {
        "fr": "Des groupes de puces distincts traitent l'entrée et produisent la réponse, en transférant la mémoire calculée.",
        "en": "Separate chip groups process the input and generate the answer, transferring the computed memory between them."
      },
      "example": {
        "fr": "Exemple fictif : confier les longs documents à un groupe dédié.",
        "en": "Fictional example: assign long documents to a dedicated group."
      },
      "gain": {
        "fr": "Le serveur peut mieux respecter certains délais de réponse.",
        "en": "The server can better meet some response-time targets."
      },
      "limit": {
        "fr": "Le transfert de mémoire coûte du réseau et peut annuler le bénéfice.",
        "en": "Transferring memory consumes network capacity and can cancel the benefit."
      }
    }
  },
  {
    "id": "eagle",
    "date": "2024-01",
    "category": "inference",
    "essential": true,
    "title": {
      "fr": "EAGLE : spéculer sur les représentations",
      "en": "EAGLE: speculating on representations"
    },
    "summary": {
      "fr": "Un petit prédicteur de représentations peut rendre le brouillon plus efficace.",
      "en": "A small representation predictor can make drafting more efficient."
    },
    "mechanism": {
      "fr": "Le brouillon prédit des caractéristiques internes du modèle cible, conditionnées aussi par les tokens. Il construit plusieurs candidats que le modèle cible vérifie avec une procédure spéculative.",
      "en": "The drafter predicts target-model internal features, also conditioned on tokens. It builds candidate continuations verified through speculative sampling."
    },
    "tradeoff": {
      "fr": "Il faut entraîner et servir le prédicteur ; le gain dépend du taux d'acceptation.",
      "en": "The predictor must be trained and served; gains depend on acceptance rate."
    },
    "origin": {
      "fr": "EAGLE, Li et al., testé notamment sur Llama 2 et Vicuna.",
      "en": "EAGLE, Li et al., tested notably on Llama 2 and Vicuna."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2401.15077",
        "title": "EAGLE: Speculative Sampling Requires Rethinking Feature Uncertainty"
      }
    ],
    "related": [
      "blockwise-decoding",
      "speculative-decoding",
      "medusa",
      "eagle-2",
      "eagle-3"
    ],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Un petit prédicteur propose des continuations à partir d'informations internes.",
        "en": "A small predictor proposes continuations using internal information."
      },
      "problem": {
        "fr": "Un brouillon ordinaire ne tire pas toujours parti des calculs du modèle principal.",
        "en": "An ordinary draft does not always exploit the main model's computation."
      },
      "idea": {
        "fr": "Un petit composant prédit des représentations internes et construit des propositions que le modèle principal vérifie.",
        "en": "A small component predicts internal numerical representations rather than only text, and builds proposals that the main model then checks."
      },
      "example": {
        "fr": "Exemple fictif : vérifier ensemble plusieurs suites de mots candidates.",
        "en": "Fictional example: check several candidate word sequences together."
      },
      "gain": {
        "fr": "Des propositions mieux acceptées peuvent accélérer la génération.",
        "en": "More frequently accepted proposals can accelerate generation."
      },
      "limit": {
        "fr": "Le composant supplémentaire doit être entraîné et ses propositions peuvent être rejetées.",
        "en": "The extra component needs training, and its proposals can be rejected."
      }
    }
  },
  {
    "id": "medusa",
    "date": "2024-01",
    "category": "inference",
    "essential": false,
    "title": {
      "fr": "Medusa : plusieurs têtes de proposition",
      "en": "Medusa: multiple drafting heads"
    },
    "summary": {
      "fr": "De petites têtes supplémentaires proposent plusieurs futurs tokens à partir d'un même modèle.",
      "en": "Small additional heads propose multiple future tokens from the same model."
    },
    "mechanism": {
      "fr": "Des têtes entraînées sur les représentations du LLM prédisent plusieurs positions futures. Une attention en arbre permet ensuite de vérifier des combinaisons de propositions ensemble.",
      "en": "Heads trained on LLM representations predict several future positions. Tree attention then verifies combinations of proposed tokens together."
    },
    "tradeoff": {
      "fr": "Les têtes demandent un entraînement ; toutes les règles d'acceptation ne préservent pas la distribution.",
      "en": "Heads require training; not every acceptance rule preserves the distribution."
    },
    "origin": {
      "fr": "Medusa, Cai et al., démontré sur des modèles ouverts dont Vicuna.",
      "en": "Medusa, Cai et al., demonstrated on open models including Vicuna."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2401.10774",
        "title": "Medusa: Simple LLM Inference Acceleration Framework with Multiple Decoding Heads"
      }
    ],
    "related": [
      "blockwise-decoding",
      "speculative-decoding",
      "eagle",
      "eagle-2",
      "eagle-3"
    ],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Des sorties supplémentaires proposent plusieurs positions futures en même temps.",
        "en": "Additional outputs propose several future positions at once."
      },
      "problem": {
        "fr": "Produire un seul morceau de texte par passage limite la vitesse.",
        "en": "Producing one text piece per pass limits speed."
      },
      "idea": {
        "fr": "De petits composants ajoutés au modèle proposent plusieurs suites, regroupées en arbre pour être vérifiées ensemble.",
        "en": "Small components added to the model propose several continuations, arranged in a tree for joint checking."
      },
      "example": {
        "fr": "Exemple fictif : proposer plusieurs prochains mots et leurs continuations.",
        "en": "Fictional example: propose several next words and their continuations."
      },
      "gain": {
        "fr": "Certains passages de calcul peuvent valider davantage de texte.",
        "en": "Some computation passes can validate more text."
      },
      "limit": {
        "fr": "Les ajouts demandent un entraînement et certaines règles modifient les probabilités originales.",
        "en": "The additions require training, and some acceptance rules change the original probabilities."
      }
    }
  },
  {
    "id": "mixtral",
    "date": "2024-01",
    "category": "architecture",
    "essential": true,
    "title": {
      "fr": "Mixtral : démocratiser les experts épars",
      "en": "Mixtral: opening sparse experts"
    },
    "summary": {
      "fr": "Un MoE ouvert rend une grande capacité totale accessible avec moins de calcul actif.",
      "en": "An open MoE makes large total capacity accessible with less active computation."
    },
    "mechanism": {
      "fr": "Dans chaque couche, un routeur sélectionne deux des huit réseaux experts pour chaque token. L'attention reste partagée ; seule une partie des poids experts intervient dans le calcul.",
      "en": "At each layer, a router selects two of eight expert networks for each token. Attention remains shared; only some expert weights participate in computation."
    },
    "tradeoff": {
      "fr": "Tous les experts doivent être stockés ; le routage complique l'exécution distribuée.",
      "en": "All experts must be stored; routing complicates distributed execution."
    },
    "origin": {
      "fr": "Mixtral 8x7B, sorti en décembre 2023 ; papier en janvier 2024.",
      "en": "Mixtral 8x7B, released December 2023; paper in January 2024."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2401.04088",
        "title": "Mixtral of Experts"
      }
    ],
    "related": [
      "sparse-moe",
      "gshard",
      "switch-transformer",
      "deepseek-v3"
    ],
    "lineage": [
      {
        "family": "experts",
        "parent": "sparse-moe",
        "child": "mixtral",
        "kind": "builds",
        "explanation": {
          "fr": "Mixtral reprend le principe des experts épars : chaque token est envoyé à deux des huit experts de chaque couche MoE.",
          "en": "Mixtral uses the sparse-expert principle: each token is sent to two of the eight experts in each MoE layer."
        },
        "source": {
          "url": "https://arxiv.org/abs/2401.04088",
          "title": "Mixtral of Experts"
        }
      }
    ],
    "lineage_families": [
      "experts"
    ],
    "beginner": {
      "summary": {
        "fr": "Activer seulement certains experts réduit le calcul d'un modèle à grande capacité.",
        "en": "Activating only selected experts reduces computation in a high-capacity model."
      },
      "problem": {
        "fr": "Utiliser toutes les valeurs apprises pour chaque mot serait coûteux.",
        "en": "Using every learned value for each word would be expensive."
      },
      "idea": {
        "fr": "Un composant de sélection choisit deux réseaux experts parmi huit pour chaque morceau de texte.",
        "en": "A selection component chooses two expert networks out of eight for each text piece."
      },
      "example": {
        "fr": "Exemple fictif : seules les deux voies choisies effectuent leur calcul spécialisé.",
        "en": "Fictional example: only the two selected paths perform their specialised computation."
      },
      "gain": {
        "fr": "Le calcul actif reste inférieur à celui de tous les experts réunis.",
        "en": "Active computation remains below that of all experts combined."
      },
      "limit": {
        "fr": "Tous les experts doivent être stockés et leur répartition complique l'exécution.",
        "en": "Every expert still needs storage, and distributing them complicates execution."
      }
    }
  },
  {
    "id": "bitnet-158",
    "date": "2024-02",
    "category": "architecture",
    "essential": true,
    "title": {
      "fr": "BitNet b1.58 : des poids ternaires",
      "en": "BitNet b1.58: ternary weights"
    },
    "summary": {
      "fr": "Un modèle entraîné pour des poids très discrets réduit le coût potentiel des calculs.",
      "en": "A model trained for highly discrete weights reduces potential computation costs."
    },
    "mechanism": {
      "fr": "Les poids des couches linéaires prennent les valeurs −1, 0 ou +1 avec des facteurs d'échelle ; les activations sont aussi quantifiées. L'apprentissage intègre cette contrainte dès le départ.",
      "en": "Linear-layer weights take −1, 0 or +1 with scaling factors; activations are also quantized. Training incorporates the constraint from the start."
    },
    "tradeoff": {
      "fr": "Le 1,58 bit décrit les poids ternaires, pas toute la mémoire ; les gains demandent des kernels adaptés.",
      "en": "1.58 bits describes ternary weights, not total memory; gains need suitable kernels."
    },
    "origin": {
      "fr": "BitNet b1.58, prolongement du BitNet antérieur.",
      "en": "BitNet b1.58, extending earlier BitNet."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2402.17764",
        "title": "The Era of 1-bit LLMs: All Large Language Models are in 1.58 Bits"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Apprendre avec trois valeurs principales réduit le coût potentiel du modèle.",
        "en": "Learning with three main values reduces a model's potential cost."
      },
      "problem": {
        "fr": "Les valeurs numériques détaillées occupent beaucoup de place.",
        "en": "Detailed numerical values take considerable space."
      },
      "idea": {
        "fr": "L'entraînement contraint certaines valeurs à être négatives, nulles ou positives, avec une échelle commune adaptée.",
        "en": "Training constrains some values to be negative, zero or positive, with a suitable shared scale."
      },
      "example": {
        "fr": "Exemple fictif : représenter un coefficient par moins un, zéro ou un.",
        "en": "Fictional example: represent a coefficient as minus one, zero or one."
      },
      "gain": {
        "fr": "Des programmes adaptés peuvent exploiter cette représentation compacte.",
        "en": "Suitable implementations can exploit this compact representation."
      },
      "limit": {
        "fr": "La mémoire totale ne se limite pas à ces valeurs et l'accélération exige un support matériel adapté.",
        "en": "Total memory includes more than these values, and acceleration requires appropriate hardware support."
      }
    }
  },
  {
    "id": "grpo",
    "date": "2024-02",
    "category": "reasoning",
    "essential": true,
    "title": {
      "fr": "GRPO : comparer un groupe de réponses",
      "en": "GRPO: comparing a group of responses"
    },
    "summary": {
      "fr": "Le renforcement du raisonnement peut se passer d'un réseau critique de même taille.",
      "en": "Reasoning reinforcement learning can avoid a similarly sized critic network."
    },
    "mechanism": {
      "fr": "Pour une question, on génère plusieurs réponses et compare leurs récompenses au sein du groupe. Cette référence relative estime l'avantage utilisé pour mettre à jour le modèle avec une régularisation.",
      "en": "For one question, generate several answers and compare rewards within the group. This relative baseline estimates the advantage used to update the model with regularization."
    },
    "tradeoff": {
      "fr": "Le coût des générations demeure et la qualité de la récompense est déterminante.",
      "en": "Generation cost remains and reward quality is critical."
    },
    "origin": {
      "fr": "DeepSeekMath 7B ; GRPO précède DeepSeek-R1.",
      "en": "DeepSeekMath 7B; GRPO predates DeepSeek-R1."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2402.03300",
        "title": "DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models"
      }
    ],
    "related": [
      "rlhf-origins",
      "instructgpt",
      "dpo",
      "deepseek-r1"
    ],
    "lineage": [
      {
        "family": "preferences",
        "parent": "ppo",
        "child": "grpo",
        "kind": "improves",
        "explanation": {
          "fr": "GRPO adapte PPO en comparant les récompenses de plusieurs réponses à la même question, sans critique de valeur séparé.",
          "en": "GRPO adapts PPO by comparing rewards for several answers to the same question, without a separate value critic."
        },
        "source": {
          "url": "https://arxiv.org/abs/2402.03300",
          "title": "DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models"
        }
      }
    ],
    "lineage_families": [
      "preferences"
    ],
    "beginner": {
      "summary": {
        "fr": "Comparer des réponses dans un groupe simplifie certains entraînements par récompense.",
        "en": "Comparing answers within a group simplifies some reward-based training."
      },
      "problem": {
        "fr": "Un évaluateur auxiliaire de grande taille ajoute du coût.",
        "en": "A large auxiliary evaluator adds cost."
      },
      "idea": {
        "fr": "Plusieurs réponses à la même question reçoivent une note. Leurs notes relatives guident les modifications du modèle.",
        "en": "Several answers to the same question receive scores. Their relative scores guide the model's updates."
      },
      "example": {
        "fr": "Exemple fictif : favoriser les solutions qui réussissent un test dans le groupe.",
        "en": "Fictional example: favour solutions that pass a test within the group."
      },
      "gain": {
        "fr": "On peut éviter un grand réseau auxiliaire estimant la réussite attendue.",
        "en": "A large auxiliary network estimating expected success can be avoided."
      },
      "limit": {
        "fr": "Les générations restent coûteuses et une mauvaise règle de récompense enseigne de mauvais comportements.",
        "en": "Generation remains expensive, and a bad reward rule teaches undesirable behaviour."
      }
    }
  },
  {
    "id": "kivi",
    "date": "2024-02",
    "category": "inference",
    "essential": true,
    "title": {
      "fr": "KIVI : quantifier le cache KV",
      "en": "KIVI: quantizing the KV cache"
    },
    "summary": {
      "fr": "La mémoire d'historique peut être compressée sans réentraîner le modèle.",
      "en": "History memory can be compressed without retraining the model."
    },
    "mechanism": {
      "fr": "Les clés sont quantifiées par canal et les valeurs par token, car leurs valeurs extrêmes sont distribuées différemment. Une petite partie récente reste en précision supérieure.",
      "en": "Keys are quantized per channel and values per token because their outliers are distributed differently. A small recent portion remains at higher precision."
    },
    "tradeoff": {
      "fr": "La précision et le débit dépendent des groupes, du contexte et des kernels.",
      "en": "Accuracy and throughput depend on groups, context and kernels."
    },
    "origin": {
      "fr": "KIVI, Liu et al., évalué sur plusieurs LLM dont Llama et Falcon.",
      "en": "KIVI, Liu et al., evaluated on LLMs including Llama and Falcon."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2402.02750",
        "title": "KIVI: A Tuning-Free Asymmetric 2bit Quantization for KV Cache"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Arrondir différemment les informations du passé réduit leur stockage.",
        "en": "Rounding stored information differently reduces storage for the past."
      },
      "problem": {
        "fr": "La mémoire temporaire du texte devient volumineuse pour les longues entrées.",
        "en": "Temporary text memory becomes large for long inputs."
      },
      "idea": {
        "fr": "Les clés, servant à retrouver l'information, et les valeurs, servant à la lire, sont comprimées différemment. Une partie récente reste plus précise.",
        "en": "Keys, used to locate information, and values, used to read it, are compressed differently. A recent portion retains higher precision."
      },
      "example": {
        "fr": "Exemple fictif : comprimer les anciens blocs d'une conversation.",
        "en": "Fictional example: compress the older blocks of a conversation."
      },
      "gain": {
        "fr": "Le stockage du passé diminue sans réentraîner le modèle.",
        "en": "Storage for the past decreases without retraining the model."
      },
      "limit": {
        "fr": "La qualité et la vitesse dépendent du réglage et du programme de calcul.",
        "en": "Quality and speed depend on settings and the computation implementation."
      }
    }
  },
  {
    "id": "longrope",
    "date": "2024-02",
    "category": "architecture",
    "essential": false,
    "title": {
      "fr": "LongRoPE : étirer le contexte inégalement",
      "en": "LongRoPE: stretching context nonuniformly"
    },
    "summary": {
      "fr": "Une recherche des facteurs d'échelle permet d'étendre fortement certaines fenêtres de contexte.",
      "en": "Searching scaling factors substantially extends some models' context windows."
    },
    "mechanism": {
      "fr": "LongRoPE ajuste les dimensions RoPE et les positions avec des facteurs non uniformes. Une extension progressive et des réajustements visent à préserver aussi les performances sur séquences courtes.",
      "en": "LongRoPE adjusts RoPE dimensions and positions with nonuniform factors. Progressive extension and readjustment also aim to preserve short-sequence performance."
    },
    "tradeoff": {
      "fr": "Des millions de tokens affichés ne garantissent pas une compréhension fiable sur toute la fenêtre.",
      "en": "Millions of advertised tokens do not guarantee reliable understanding throughout the window."
    },
    "origin": {
      "fr": "LongRoPE, Ding et al., extensions expérimentales de LLaMA et Mistral.",
      "en": "LongRoPE, Ding et al., experimental LLaMA and Mistral extensions."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2402.13753",
        "title": "LongRoPE: Extending LLM Context Window Beyond 2 Million Tokens"
      }
    ],
    "related": [
      "rope",
      "alibi",
      "position-interpolation",
      "yarn"
    ],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Une recherche d'échelles de position étend certaines fenêtres de texte.",
        "en": "Searching position scales extends some text windows."
      },
      "problem": {
        "fr": "Un réglage uniforme des positions convient mal à toutes les distances.",
        "en": "One uniform position setting does not suit every distance."
      },
      "idea": {
        "fr": "Une recherche choisit différents facteurs selon les composantes de position, puis adapte progressivement le modèle.",
        "en": "A search chooses different scaling factors for position components, then progressively adapts the model while also checking its behaviour on shorter inputs."
      },
      "example": {
        "fr": "Exemple fictif : tester plusieurs réglages pour des passages courts et longs.",
        "en": "Fictional example: test several settings on short and long passages."
      },
      "gain": {
        "fr": "Certains modèles acceptent des entrées beaucoup plus longues.",
        "en": "Some models can accept much longer inputs."
      },
      "limit": {
        "fr": "La longueur annoncée ne garantit pas une compréhension fiable de chaque passage.",
        "en": "The advertised length does not guarantee reliable understanding of every passage."
      }
    }
  },
  {
    "id": "jamba",
    "date": "2024-03",
    "category": "architecture",
    "essential": true,
    "title": {
      "fr": "Jamba : hybrider Mamba et attention",
      "en": "Jamba: mixing Mamba and attention"
    },
    "summary": {
      "fr": "Un hybride conserve quelques accès directs au contexte tout en réduisant le cache.",
      "en": "A hybrid retains some direct context access while reducing the cache."
    },
    "mechanism": {
      "fr": "Jamba entrelace couches Mamba et Transformer et ajoute des experts MoE à certaines couches. La configuration présentée utilise beaucoup plus de couches Mamba que de couches d'attention.",
      "en": "Jamba interleaves Mamba and Transformer layers and adds MoE experts to some layers. The presented configuration uses many more Mamba than attention layers."
    },
    "tradeoff": {
      "fr": "Plusieurs types de couches compliquent les kernels et l'allocation des ressources.",
      "en": "Multiple layer types complicate kernels and resource allocation."
    },
    "origin": {
      "fr": "Jamba, AI21 Labs.",
      "en": "Jamba, AI21 Labs."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2403.19887",
        "title": "Jamba: A Hybrid Transformer-Mamba Language Model"
      }
    ],
    "related": [],
    "lineage": [
      {
        "family": "state",
        "parent": "mamba",
        "child": "jamba",
        "kind": "combines",
        "explanation": {
          "fr": "Jamba associe des couches Mamba à des couches d’attention Transformer et à des couches à experts.",
          "en": "Jamba combines Mamba layers with Transformer attention layers and expert layers."
        },
        "source": {
          "url": "https://arxiv.org/abs/2403.19887",
          "title": "Jamba: A Hybrid Transformer-Mamba Language Model"
        }
      },
      {
        "family": "state",
        "parent": "transformer",
        "child": "jamba",
        "kind": "combines",
        "explanation": {
          "fr": "Jamba conserve des couches d’attention au sein d’un modèle qui utilise aussi la mémoire récurrente de Mamba.",
          "en": "Jamba retains attention layers within a model that also uses Mamba’s recurrent memory."
        },
        "source": {
          "url": "https://arxiv.org/abs/2403.19887",
          "title": "Jamba: A Hybrid Transformer-Mamba Language Model"
        }
      }
    ],
    "lineage_families": [
      "state"
    ],
    "beginner": {
      "summary": {
        "fr": "Combiner mémoire résumée et attention conserve deux façons de traiter le passé.",
        "en": "Combining summarised memory and attention retains two ways of using the past."
      },
      "problem": {
        "fr": "Une mémoire compacte peut perdre des détails que l'attention retrouve directement.",
        "en": "Compact memory can lose details that attention retrieves directly."
      },
      "idea": {
        "fr": "Le modèle alterne des étapes à état résumé et des étapes d'attention, avec des réseaux experts à certains endroits.",
        "en": "The model alternates summary-state stages with attention stages, adding expert networks in some places."
      },
      "example": {
        "fr": "Exemple fictif : garder quelques accès directs au texte parmi des étapes compactes.",
        "en": "Fictional example: retain a few direct accesses to text among compact stages."
      },
      "gain": {
        "fr": "Le stockage du passé peut diminuer.",
        "en": "Storage for the past can decrease."
      },
      "limit": {
        "fr": "Plusieurs mécanismes compliquent les programmes de calcul et l'allocation de mémoire.",
        "en": "Multiple mechanisms complicate computation implementations and memory allocation."
      }
    }
  },
  {
    "id": "infini-attention",
    "date": "2024-04",
    "category": "architecture",
    "essential": false,
    "title": {
      "fr": "Infini-attention : une mémoire compressive",
      "en": "Infini-attention: compressive memory"
    },
    "summary": {
      "fr": "Une mémoire bornée permet de traiter des flux au-delà de la fenêtre locale.",
      "en": "Bounded memory enables processing streams beyond the local window."
    },
    "mechanism": {
      "fr": "Chaque bloc combine attention locale et mémoire linéaire des segments passés. Une mise à jour récurrente compresse les anciennes associations et une porte mélange les deux sorties.",
      "en": "Each block combines local attention with linear memory of past segments. A recurrent update compresses previous associations and a gate mixes the two outputs."
    },
    "tradeoff": {
      "fr": "Le passé est compressé avec pertes ; un flux long ne devient pas intégralement consultable.",
      "en": "The past is compressed lossily; long streams do not become fully addressable."
    },
    "origin": {
      "fr": "Infini-attention, Munkhdalai et al., modèles expérimentaux 1B et 8B.",
      "en": "Infini-attention, Munkhdalai et al., experimental 1B and 8B models."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2404.07143",
        "title": "Leave No Context Behind: Efficient Infinite Context Transformers with Infini-attention"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Une mémoire condensée relie les anciens passages à la lecture locale.",
        "en": "A condensed memory connects earlier passages to local reading."
      },
      "problem": {
        "fr": "Une fenêtre courte ne donne plus accès aux passages précédents.",
        "en": "A short window no longer provides access to earlier passages."
      },
      "idea": {
        "fr": "Chaque bloc combine la lecture du voisinage avec un résumé mis à jour des anciens segments.",
        "en": "Each block combines reading nearby text with an updated summary of older segments."
      },
      "example": {
        "fr": "Exemple fictif : conserver des associations condensées après le passage d'un paragraphe.",
        "en": "Fictional example: retain condensed associations after a paragraph has passed."
      },
      "gain": {
        "fr": "Un flux peut dépasser la fenêtre locale avec une mémoire bornée.",
        "en": "A stream can exceed the local window with bounded memory."
      },
      "limit": {
        "fr": "Les passages anciens sont comprimés avec pertes et ne restent pas intégralement consultables.",
        "en": "Older passages are compressed with losses and do not remain fully accessible."
      }
    }
  },
  {
    "id": "minicpm-wsd",
    "date": "2024-04",
    "category": "training",
    "essential": false,
    "title": {
      "fr": "MiniCPM : réglages transférables et calendrier WSD",
      "en": "MiniCPM: transferable tuning and WSD schedule"
    },
    "summary": {
      "fr": "Une recette rend les petits modèles et les expériences de passage à l'échelle plus efficaces.",
      "en": "A recipe makes small models and scaling experiments more efficient."
    },
    "mechanism": {
      "fr": "Des expériences de petite taille règlent les hyperparamètres avec les Tensor Programs. WSD distingue échauffement, palier stable et décroissance finale du taux d'apprentissage, facilitant la continuation de l'entraînement.",
      "en": "Small-scale experiments tune hyperparameters with Tensor Programs. WSD separates warmup, a stable plateau and final learning-rate decay, easing continued training."
    },
    "tradeoff": {
      "fr": "Le transfert des réglages dépend de la recette et de l’architecture du modèle.",
      "en": "Transferring settings depends on the training recipe and model architecture."
    },
    "origin": {
      "fr": "MiniCPM, OpenBMB ; première soumission le 9 avril 2024.",
      "en": "MiniCPM, OpenBMB; first submission April 9, 2024."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2404.06395",
        "title": "MiniCPM: Unveiling the Potential of Small Language Models with Scalable Training Strategies"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Une phase d'apprentissage stable facilite la poursuite d'un entraînement.",
        "en": "A stable learning phase makes continued training easier."
      },
      "problem": {
        "fr": "Terminer trop tôt la baisse de vitesse rend une reprise moins pratique.",
        "en": "Reducing learning speed too early makes continuation less convenient."
      },
      "idea": {
        "fr": "La vitesse augmente, reste stable, puis diminue à la fin. Des petits essais aident aussi à choisir des réglages.",
        "en": "The speed rises, stays stable, then falls at the end. Small experiments also help select settings."
      },
      "example": {
        "fr": "Exemple fictif : prolonger le palier avant la baisse finale.",
        "en": "Fictional example: extend the plateau before the final decrease."
      },
      "gain": {
        "fr": "La recette facilite certaines expériences sur de petits modèles.",
        "en": "The recipe facilitates some experiments with smaller models."
      },
      "limit": {
        "fr": "Le transfert des réglages dépend de la recette et n'est pas universel.",
        "en": "Transferring settings depends on the recipe and is not universal."
      }
    }
  },
  {
    "id": "mixture-of-depths",
    "date": "2024-04",
    "category": "architecture",
    "essential": false,
    "title": {
      "fr": "Mixture-of-Depths : choisir les tokens calculés",
      "en": "Mixture-of-Depths: selecting which tokens compute"
    },
    "summary": {
      "fr": "Le calcul peut varier selon le token et selon la profondeur du réseau.",
      "en": "Computation can vary by token and network depth."
    },
    "mechanism": {
      "fr": "Un routeur attribue un score aux tokens et sélectionne un sous-ensemble de taille fixée pour certaines couches. Les autres empruntent le chemin résiduel, économisant ces calculs.",
      "en": "A router scores tokens and selects a fixed-size subset for some layers. Others take the residual path, saving that computation."
    },
    "tradeoff": {
      "fr": "Le routage doit rester compatible avec la causalité et les contraintes matérielles.",
      "en": "Routing must remain compatible with causality and hardware constraints."
    },
    "origin": {
      "fr": "Mixture-of-Depths, Raposo et al., modèles expérimentaux.",
      "en": "Mixture-of-Depths, Raposo et al., experimental models."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2404.02258",
        "title": "Mixture-of-Depths: Dynamically allocating compute in transformer-based language models"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Certains morceaux de texte traversent moins d'étapes de calcul.",
        "en": "Some text pieces pass through fewer computation stages."
      },
      "problem": {
        "fr": "Faire passer chaque position par toutes les étapes dépense un budget uniforme.",
        "en": "Sending every position through every stage spends a uniform budget."
      },
      "idea": {
        "fr": "Un composant de sélection choisit les positions traitées par certaines étapes. Les autres poursuivent leur chemin sans ce calcul.",
        "en": "A selection component chooses which text positions are processed by some stages. The other positions continue through the model without that particular computation."
      },
      "example": {
        "fr": "Exemple fictif : réserver une étape coûteuse à une sélection de positions.",
        "en": "Fictional example: reserve an expensive stage for selected positions."
      },
      "gain": {
        "fr": "Le calcul actif peut être réduit.",
        "en": "Active computation can be reduced."
      },
      "limit": {
        "fr": "La sélection doit respecter l'ordre de génération et rester efficace sur le matériel.",
        "en": "Selection must respect generation order and remain efficient on the hardware."
      }
    }
  },
  {
    "id": "multi-token-prediction",
    "date": "2024-04",
    "category": "training",
    "essential": true,
    "title": {
      "fr": "Multi-Token Prediction : apprendre plusieurs futurs",
      "en": "Multi-Token Prediction: learning several futures"
    },
    "summary": {
      "fr": "Prédire plusieurs tokens aide l'apprentissage et fournit des propositions pour accélérer la génération.",
      "en": "Predicting multiple tokens helps learning and provides drafts to accelerate generation."
    },
    "mechanism": {
      "fr": "Plusieurs têtes partagent un tronc commun et apprennent à prédire différentes positions futures. Elles imposent un signal d'apprentissage plus riche et peuvent servir au décodage spéculatif.",
      "en": "Several heads share a common trunk and learn different future positions. They provide a richer training signal and can support speculative decoding."
    },
    "tradeoff": {
      "fr": "Les prédictions futures restent incertaines ; l'accélération exige une validation adéquate.",
      "en": "Future predictions remain uncertain; acceleration needs suitable verification."
    },
    "origin": {
      "fr": "Gloeckle et al., Meta, modèles expérimentaux de code et langage.",
      "en": "Gloeckle et al., Meta, experimental code and language models."
    },
    "adoption": {
      "fr": "DeepSeek-V3 documente ensuite une variante séquentielle de MTP.",
      "en": "DeepSeek-V3 later documents a sequential MTP variant."
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2404.19737",
        "title": "Better & Faster Large Language Models via Multi-token Prediction"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Apprendre plusieurs positions futures enrichit le signal d'apprentissage.",
        "en": "Learning several future positions enriches the training signal."
      },
      "problem": {
        "fr": "Prédire seulement le prochain morceau donne un objectif très local.",
        "en": "Predicting only the next piece provides a very local objective."
      },
      "idea": {
        "fr": "Plusieurs sorties partagent le même calcul principal et apprennent à prédire différentes positions à venir.",
        "en": "Several outputs share the main computation and learn to predict different upcoming positions."
      },
      "example": {
        "fr": "Exemple fictif : apprendre le mot suivant et celui d'après.",
        "en": "Fictional example: learn the next word and the one after it."
      },
      "gain": {
        "fr": "Ces sorties peuvent aussi fournir des propositions pour accélérer la génération.",
        "en": "These outputs can also supply proposals to accelerate generation."
      },
      "limit": {
        "fr": "Les positions futures restent incertaines et leurs propositions doivent être vérifiées.",
        "en": "Future positions remain uncertain, and their proposals need checking."
      }
    }
  },
  {
    "id": "mamba-2",
    "date": "2024-05",
    "category": "architecture",
    "essential": true,
    "title": {
      "fr": "Mamba-2 / SSD : relier attention et récurrence",
      "en": "Mamba-2 / SSD: connecting attention and recurrence"
    },
    "summary": {
      "fr": "Une dualité mathématique conduit à des couches récurrentes mieux adaptées aux GPU.",
      "en": "A mathematical duality leads to more GPU-friendly recurrent layers."
    },
    "mechanism": {
      "fr": "La dualité espace d'état décrit certaines attentions et récurrences avec des matrices structurées apparentées. Mamba-2 exploite cette structure pour calculer efficacement des blocs via multiplications matricielles.",
      "en": "State-space duality describes some attention and recurrent mechanisms using related structured matrices. Mamba-2 uses this structure to compute blocks efficiently through matrix multiplication."
    },
    "tradeoff": {
      "fr": "Cette équivalence concerne des structures particulières ; toute attention softmax n'est pas une récurrence équivalente.",
      "en": "The equivalence concerns specific structures; arbitrary softmax attention is not an equivalent recurrence."
    },
    "origin": {
      "fr": "Mamba-2, Tri Dao et Albert Gu.",
      "en": "Mamba-2, Tri Dao and Albert Gu."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2405.21060",
        "title": "Transformers are SSMs: Generalized Models and Efficient Algorithms Through Structured State Space Duality"
      }
    ],
    "related": [
      "s4",
      "s5",
      "mamba",
      "gated-deltanet",
      "qwen3-next"
    ],
    "lineage": [
      {
        "family": "state",
        "parent": "mamba",
        "child": "mamba-2",
        "kind": "improves",
        "explanation": {
          "fr": "Mamba-2 reformule le mécanisme sélectif de Mamba à travers la dualité entre espaces d’état et attention structurée.",
          "en": "Mamba-2 reformulates Mamba’s selective mechanism through the duality between state spaces and structured attention."
        },
        "source": {
          "url": "https://arxiv.org/abs/2405.21060",
          "title": "Transformers are SSMs: Generalized Models and Efficient Algorithms Through Structured State Space Duality"
        }
      }
    ],
    "lineage_families": [
      "state"
    ],
    "beginner": {
      "summary": {
        "fr": "Une structure mathématique permet de calculer plus efficacement une mémoire récurrente.",
        "en": "A mathematical structure makes recurrent-memory computation more efficient."
      },
      "problem": {
        "fr": "Certaines mises à jour successives utilisent mal les capacités parallèles des puces.",
        "en": "Some successive updates make poor use of chips' parallel capabilities."
      },
      "idea": {
        "fr": "Une nouvelle formulation regroupe des mises à jour en blocs adaptés aux multiplications de tableaux.",
        "en": "A new formulation groups updates into blocks suited to matrix multiplication."
      },
      "example": {
        "fr": "Exemple fictif : traiter un segment ensemble plutôt que chaque position isolément.",
        "en": "Fictional example: process a segment together rather than every position separately."
      },
      "gain": {
        "fr": "Les puces peuvent mieux exploiter leurs unités de calcul.",
        "en": "Chips can make better use of their computation units."
      },
      "limit": {
        "fr": "L'équivalence mathématique concerne certaines structures, pas toute forme d'attention.",
        "en": "The mathematical equivalence applies to certain structures, not every form of attention."
      }
    }
  },
  {
    "id": "mla",
    "date": "2024-05",
    "category": "architecture",
    "essential": true,
    "title": {
      "fr": "MLA : compresser clés et valeurs en latent",
      "en": "MLA: compressing keys and values into a latent"
    },
    "summary": {
      "fr": "Le cache d'attention peut diminuer fortement tout en conservant plusieurs têtes de requête.",
      "en": "Attention cache can shrink substantially while retaining multiple query heads."
    },
    "mechanism": {
      "fr": "Une projection de faible rang condense clés et valeurs dans un vecteur latent mis en cache. Des transformations réorganisées et un traitement positionnel séparé permettent de calculer l'attention à partir de cette compression.",
      "en": "A low-rank projection compresses keys and values into a cached latent vector. Rearranged transformations and separate positional handling compute attention from this compression."
    },
    "tradeoff": {
      "fr": "La baisse de 93,3 % annoncée compare DeepSeek-V2 à DeepSeek 67B ; ce n'est pas une constante universelle.",
      "en": "The reported 93.3% reduction compares DeepSeek-V2 with DeepSeek 67B; it is not universal."
    },
    "origin": {
      "fr": "DeepSeek-V2.",
      "en": "DeepSeek-V2."
    },
    "adoption": {
      "fr": "DeepSeek-V3 reprend MLA.",
      "en": "DeepSeek-V3 reuses MLA."
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2405.04434",
        "title": "DeepSeek-V2: A Strong, Economical, and Efficient Mixture-of-Experts Language Model"
      }
    ],
    "related": [
      "transformer",
      "mqa",
      "gqa"
    ],
    "lineage": [
      {
        "family": "cache",
        "parent": "gqa",
        "child": "mla",
        "kind": "alternative",
        "explanation": {
          "fr": "MLA réduit aussi la mémoire du cache, mais compresse les clés et valeurs dans un petit vecteur plutôt que de les partager par groupes.",
          "en": "MLA also reduces cache memory, but compresses keys and values into a small vector instead of sharing them in groups."
        },
        "source": {
          "url": "https://arxiv.org/abs/2405.04434",
          "title": "DeepSeek-V2: A Strong, Economical, and Efficient Mixture-of-Experts Language Model"
        }
      }
    ],
    "lineage_families": [
      "cache"
    ],
    "beginner": {
      "summary": {
        "fr": "Une représentation condensée réduit la mémoire utilisée pour relire le passé.",
        "en": "A condensed representation reduces the memory used to reread the past."
      },
      "problem": {
        "fr": "Stocker toutes les clés et valeurs d'attention prend beaucoup de place.",
        "en": "Storing every attention key and value takes considerable space."
      },
      "idea": {
        "fr": "Le modèle stocke une liste de nombres plus courte et une clé de position séparée. Les calculs exploitent cette version condensée.",
        "en": "The model stores a shorter list of numbers and a separate position key. Computation uses this condensed version."
      },
      "example": {
        "fr": "Exemple fictif : conserver une description numérique plus courte par position.",
        "en": "Fictional example: retain a shorter numerical description per position."
      },
      "gain": {
        "fr": "La mémoire peut fortement baisser face à une attention classique.",
        "en": "Memory can decrease substantially compared with conventional attention."
      },
      "limit": {
        "fr": "Selon les dimensions choisies, ce cache peut dépasser celui d’un partage unique entre toutes les voies.",
        "en": "Depending on the chosen dimensions, this cache can exceed one shared set for all reading paths."
      }
    }
  },
  {
    "id": "deltanet",
    "date": "2024-06",
    "category": "architecture",
    "essential": true,
    "title": {
      "fr": "DeltaNet : corriger une mémoire associative",
      "en": "DeltaNet: correcting associative memory"
    },
    "summary": {
      "fr": "Une règle d'écriture ciblée améliore les mémoires des Transformers linéaires.",
      "en": "A targeted write rule improves linear Transformer memory."
    },
    "mechanism": {
      "fr": "Au lieu d'ajouter simplement une association clé-valeur, la règle delta soustrait ce qui est déjà prédit pour cette clé puis écrit la correction. Le papier parallélise ces mises à jour sur la séquence.",
      "en": "Instead of merely adding a key-value association, the delta rule subtracts the current prediction for that key and writes the correction. The paper parallelizes these updates across sequences."
    },
    "tradeoff": {
      "fr": "La mémoire reste de taille finie ; le papier améliore une règle delta antérieure.",
      "en": "Memory remains finite; the paper improves an earlier delta rule."
    },
    "origin": {
      "fr": "Yang et al., DeltaNet avec algorithme parallèle ; pas invention de la règle delta.",
      "en": "Yang et al., DeltaNet with a parallel algorithm; not invention of the delta rule."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2406.06484",
        "title": "Parallelizing Linear Transformers with the Delta Rule over Sequence Length"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Une correction ciblée met à jour les associations d'une mémoire résumée.",
        "en": "A targeted correction updates associations in summarised memory."
      },
      "problem": {
        "fr": "Ajouter une nouvelle information peut laisser une ancienne association incorrecte.",
        "en": "Adding new information can leave an older incorrect association in place."
      },
      "idea": {
        "fr": "La règle compare la valeur associée à une information avec la nouvelle valeur attendue, puis écrit leur différence.",
        "en": "The rule compares the value associated with an item against its newly expected value, then writes their difference."
      },
      "example": {
        "fr": "Exemple fictif : corriger une association plutôt que l'ajouter une seconde fois.",
        "en": "Fictional example: correct an association instead of simply adding it again."
      },
      "gain": {
        "fr": "La mémoire peut mieux mettre à jour certaines informations.",
        "en": "Memory can update some information more effectively."
      },
      "limit": {
        "fr": "Elle reste de taille finie et peut perdre des détails du passé.",
        "en": "It remains finite in size and can lose details from the past."
      }
    }
  },
  {
    "id": "eagle-2",
    "date": "2024-06",
    "category": "inference",
    "essential": false,
    "title": {
      "fr": "EAGLE-2 : adapter l'arbre de brouillon",
      "en": "EAGLE-2: adapting the draft tree"
    },
    "summary": {
      "fr": "L'effort de proposition se concentre sur les continuations les plus prometteuses.",
      "en": "Drafting effort concentrates on the most promising continuations."
    },
    "mechanism": {
      "fr": "EAGLE-2 construit un arbre de candidats en utilisant les scores de confiance du brouillon. La structure change selon la position et les probabilités plutôt que de rester fixe.",
      "en": "EAGLE-2 builds a candidate tree using drafter confidence scores. Its structure changes with position and probabilities rather than remaining fixed."
    },
    "tradeoff": {
      "fr": "Des arbres plus grands ajoutent du calcul ; leur forme doit correspondre au matériel.",
      "en": "Larger trees add computation; tree shape must fit the hardware."
    },
    "origin": {
      "fr": "EAGLE-2, Li et al., extension d'EAGLE.",
      "en": "EAGLE-2, Li et al., extending EAGLE."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2406.16858",
        "title": "EAGLE-2: Faster Inference of Language Models with Dynamic Draft Trees"
      }
    ],
    "related": [
      "blockwise-decoding",
      "speculative-decoding",
      "medusa",
      "eagle",
      "eagle-3"
    ],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Le brouillon explore davantage les suites qu'il estime prometteuses.",
        "en": "The draft explores continuations it estimates as promising more extensively."
      },
      "problem": {
        "fr": "Un arbre de propositions fixe dépense du calcul sur des branches peu utiles.",
        "en": "A fixed proposal tree spends computation on less useful branches."
      },
      "idea": {
        "fr": "Les scores du petit prédicteur règlent la forme de l'arbre de continuations que le modèle principal vérifiera.",
        "en": "The small predictor's scores shape the tree of continuations the main model will check."
      },
      "example": {
        "fr": "Exemple fictif : prolonger une branche probable plutôt qu'une branche peu probable.",
        "en": "Fictional example: extend a likely branch instead of an unlikely one."
      },
      "gain": {
        "fr": "Le budget de proposition peut être mieux utilisé.",
        "en": "The proposal budget can be used more effectively."
      },
      "limit": {
        "fr": "Les scores restent imparfaits et un grand arbre ajoute aussi du travail.",
        "en": "Scores remain imperfect, and a large tree adds work of its own."
      }
    }
  },
  {
    "id": "nemotron-4",
    "date": "2024-06",
    "category": "data",
    "essential": false,
    "title": {
      "fr": "Nemotron-4 : générer et filtrer des données synthétiques",
      "en": "Nemotron-4: generating and filtering synthetic data"
    },
    "summary": {
      "fr": "Un générateur et un modèle de récompense constituent une chaîne de production de données.",
      "en": "A generator and reward model form a data-production pipeline."
    },
    "mechanism": {
      "fr": "Des modèles Instruct produisent des réponses et un modèle Reward évalue leur qualité. Le rapport documente un post-entraînement reposant très majoritairement sur des exemples synthétiques et publie la chaîne associée.",
      "en": "Instruct models produce responses and a Reward model evaluates quality. The report documents post-training based overwhelmingly on synthetic examples and releases the associated pipeline."
    },
    "tradeoff": {
      "fr": "Ce n'est pas l'invention des données synthétiques ; les erreurs du générateur et du juge peuvent s'accumuler.",
      "en": "This does not invent synthetic data; generator and judge errors can accumulate."
    },
    "origin": {
      "fr": "Nemotron-4 340B, NVIDIA ; exemple d'industrialisation d'une méthode antérieure.",
      "en": "Nemotron-4 340B, NVIDIA; an example of scaling an earlier approach."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2406.11704",
        "title": "Nemotron-4 340B Technical Report"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Un générateur et un évaluateur organisent la fabrication de données d'entraînement.",
        "en": "A generator and an evaluator organise the production of training data."
      },
      "problem": {
        "fr": "Produire puis contrôler beaucoup d'exemples manuellement est coûteux.",
        "en": "Manually producing and checking many examples is expensive."
      },
      "idea": {
        "fr": "Un modèle génère des réponses et un autre les note pour sélectionner les exemples utiles.",
        "en": "One model generates example answers and another gives them quality scores, so that suitable examples can be selected for further training."
      },
      "example": {
        "fr": "Exemple fictif : garder une réponse jugée plus claire pour une future adaptation.",
        "en": "Fictional example: retain an answer judged clearer for future adaptation."
      },
      "gain": {
        "fr": "La chaîne peut fournir beaucoup d'exemples synthétiques.",
        "en": "The pipeline can provide many synthetic examples."
      },
      "limit": {
        "fr": "Les erreurs et biais du générateur et de l'évaluateur peuvent s'accumuler.",
        "en": "Errors and biases from both generator and evaluator can accumulate."
      }
    }
  },
  {
    "id": "flashattention-3",
    "date": "2024-07",
    "category": "inference",
    "essential": false,
    "title": {
      "fr": "FlashAttention-3 : exploiter Hopper",
      "en": "FlashAttention-3: exploiting Hopper"
    },
    "summary": {
      "fr": "L'attention exacte utilise mieux l'asynchronisme et la basse précision des GPU récents.",
      "en": "Exact attention better uses asynchronous execution and low precision on recent GPUs."
    },
    "mechanism": {
      "fr": "Le kernel chevauche transferts mémoire, multiplications matricielles et softmax. Une variante FP8 ajoute des transformations pour limiter l'erreur de quantification sur les GPU Hopper.",
      "en": "The kernel overlaps memory transfers, matrix multiplication and softmax. An FP8 variant adds transformations to limit quantization error on Hopper GPUs."
    },
    "tradeoff": {
      "fr": "Le bénéfice dépend fortement de l'architecture GPU ; FP8 introduit une approximation numérique.",
      "en": "Benefits strongly depend on GPU architecture; FP8 introduces numerical approximation."
    },
    "origin": {
      "fr": "FlashAttention-3, Shah et al., optimisations pour Hopper.",
      "en": "FlashAttention-3, Shah et al., Hopper optimizations."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2407.08608",
        "title": "FlashAttention-3: Fast and Accurate Attention with Asynchrony and Low-precision"
      }
    ],
    "related": [],
    "lineage": [
      {
        "family": "attention-kernels",
        "parent": "flashattention-2",
        "child": "flashattention-3",
        "kind": "improves",
        "explanation": {
          "fr": "La troisième version adapte cette attention exacte aux GPU Hopper, en faisant se chevaucher transferts et calculs.",
          "en": "The third version adapts this exact attention to Hopper GPUs by overlapping transfers and computation."
        },
        "source": {
          "url": "https://arxiv.org/abs/2407.08608",
          "title": "FlashAttention-3: Fast and Accurate Attention with Asynchrony and Low-precision"
        }
      }
    ],
    "lineage_families": [
      "attention-kernels"
    ],
    "beginner": {
      "summary": {
        "fr": "Chevaucher transferts et calculs utilise mieux certaines puces récentes.",
        "en": "Overlapping transfers and computation better uses some recent chips."
      },
      "problem": {
        "fr": "Des unités de calcul peuvent attendre l'arrivée des données.",
        "en": "Computation units can wait for data to arrive."
      },
      "idea": {
        "fr": "Le programme fait avancer simultanément plusieurs opérations de l'attention et propose aussi une variante à précision réduite.",
        "en": "The implementation advances several attention operations simultaneously and also offers a reduced-precision variant."
      },
      "example": {
        "fr": "Exemple fictif : charger un bloc pendant le calcul du précédent.",
        "en": "Fictional example: load one block while computing the previous one."
      },
      "gain": {
        "fr": "L'attention peut aller plus vite sur les puces visées.",
        "en": "Attention can run faster on the targeted chips."
      },
      "limit": {
        "fr": "Le gain dépend fortement du matériel et la variante basse précision ajoute une approximation numérique.",
        "en": "Benefits depend strongly on hardware, and the low-precision variant adds numerical approximation."
      }
    }
  },
  {
    "id": "gemma-2",
    "date": "2024-07",
    "category": "training",
    "essential": true,
    "title": {
      "fr": "Gemma 2 : distiller et borner les scores",
      "en": "Gemma 2: distilling and bounding scores"
    },
    "summary": {
      "fr": "La distillation renforce des modèles compacts, avec une attention locale et globale alternée.",
      "en": "Distillation strengthens compact models with alternating local and global attention."
    },
    "mechanism": {
      "fr": "Des modèles plus petits apprennent les distributions d'un enseignant ; l'architecture alterne fenêtres locales et attention globale. Le soft-capping borne les scores d'attention et les logits par une transformation douce.",
      "en": "Smaller models learn teacher distributions; the architecture alternates local windows and global attention. Soft-capping smoothly bounds attention scores and output logits."
    },
    "tradeoff": {
      "fr": "La distillation dépend de l'enseignant et ajoute un coût de production des cibles.",
      "en": "Distillation depends on the teacher and adds target-generation costs."
    },
    "origin": {
      "fr": "Gemma 2, Google ; le rapport ne décrit pas QK-Norm comme sa technique.",
      "en": "Gemma 2, Google; the report does not describe QK-Norm as its technique."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2408.00118",
        "title": "Gemma 2: Improving Open Language Models at a Practical Size"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Un modèle enseignant fournit des objectifs plus riches à de petits modèles.",
        "en": "A teacher model provides richer learning targets for smaller models."
      },
      "problem": {
        "fr": "De petits modèles disposent de moins de capacité pour apprendre seuls.",
        "en": "Small models have less capacity to learn independently."
      },
      "idea": {
        "fr": "Ils apprennent les probabilités d'un modèle enseignant et alternent lecture locale et lecture globale du texte.",
        "en": "They learn a teacher model's probabilities and alternate local and global reading of text."
      },
      "example": {
        "fr": "Exemple fictif : apprendre plusieurs continuations jugées possibles par l'enseignant.",
        "en": "Fictional example: learn several continuations considered possible by the teacher."
      },
      "gain": {
        "fr": "Des modèles compacts peuvent obtenir de meilleurs résultats.",
        "en": "Compact models can achieve better results."
      },
      "limit": {
        "fr": "Produire les cibles coûte du calcul et leurs défauts peuvent venir de l'enseignant.",
        "en": "Producing targets costs computation, and their weaknesses can come from the teacher."
      }
    }
  },
  {
    "id": "llama-3",
    "date": "2024-07",
    "category": "training",
    "essential": true,
    "title": {
      "fr": "Llama 3 : une recette d'entraînement documentée",
      "en": "Llama 3: a documented training recipe"
    },
    "summary": {
      "fr": "L'amélioration d'un LLM combine données, échelle, contexte et post-entraînement.",
      "en": "Improving an LLM combines data, scale, context and post-training."
    },
    "mechanism": {
      "fr": "Le rapport documente filtrage et mélange des données, entraînement à grande échelle, extension du contexte et plusieurs tours d'ajustement supervisé et de préférences. Il présente aussi des extensions multimodales.",
      "en": "The report documents data filtering and mixing, large-scale training, context extension and repeated supervised and preference tuning. It also presents multimodal extensions."
    },
    "tradeoff": {
      "fr": "C'est un assemblage de techniques ; le rapport ne date pas leur invention individuelle.",
      "en": "This is a combination of techniques; the report does not date their individual invention."
    },
    "origin": {
      "fr": "Rapport The Llama 3 Herd of Models, Meta, incluant Llama 3.1.",
      "en": "The Llama 3 Herd of Models report, Meta, including Llama 3.1."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2407.21783",
        "title": "The Llama 3 Herd of Models"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Un rapport rassemble les améliorations nécessaires à une nouvelle génération de modèles.",
        "en": "A report brings together improvements behind a new model generation."
      },
      "problem": {
        "fr": "Changer un seul composant n'explique pas toutes les différences de résultat.",
        "en": "Changing one component does not explain every difference in results."
      },
      "idea": {
        "fr": "La recette combine sélection des textes, calcul à grande échelle, entrées plus longues et adaptation aux préférences.",
        "en": "The recipe combines text selection, large-scale computation, longer inputs and preference adaptation."
      },
      "example": {
        "fr": "Exemple fictif : améliorer ensemble les données et les exemples de conversation.",
        "en": "Fictional example: improve both training data and conversation examples."
      },
      "gain": {
        "fr": "Le rapport permet d'étudier l'ensemble de la fabrication.",
        "en": "The report makes the overall development process available for study."
      },
      "limit": {
        "fr": "Il documente un assemblage sans dater l'invention de chaque technique.",
        "en": "It documents a combination without dating the invention of every technique."
      }
    }
  },
  {
    "id": "test-time-compute",
    "date": "2024-08",
    "category": "reasoning",
    "essential": true,
    "title": {
      "fr": "Calcul à l'inférence : adapter l'effort au problème",
      "en": "Test-time compute: adapting effort to the problem"
    },
    "summary": {
      "fr": "Un budget de recherche bien alloué peut améliorer les réponses sans agrandir le modèle.",
      "en": "A well-allocated search budget can improve answers without enlarging the model."
    },
    "mechanism": {
      "fr": "Le papier compare révisions successives et recherche avec vérificateur. Il répartit le calcul selon la difficulté estimée de la question plutôt que d'utiliser la même stratégie pour tous les problèmes.",
      "en": "The paper compares successive revisions and verifier-guided search. It allocates computation according to estimated question difficulty instead of applying one strategy to every problem."
    },
    "tradeoff": {
      "fr": "Les gains dépendent du modèle, de la difficulté et du vérificateur ; ce n'est pas toujours mieux qu'entraîner plus grand.",
      "en": "Gains depend on model, difficulty and verifier; this is not always better than training larger."
    },
    "origin": {
      "fr": "Snell et al., étude expérimentale de modèles et de stratégies de résolution ; v1 le 6 août 2024.",
      "en": "Snell et al., experimental study of models and solving strategies; v1 August 6, 2024."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2408.03314",
        "title": "Scaling LLM Test-Time Compute Optimally can be More Effective than Scaling Model Parameters"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Dépenser plus de calcul sur certaines questions peut améliorer les réponses.",
        "en": "Spending more computation on some questions can improve answers."
      },
      "problem": {
        "fr": "Le même effort ne convient pas aux questions faciles et difficiles.",
        "en": "The same effort does not suit both easy and difficult questions."
      },
      "idea": {
        "fr": "On compare révisions et recherches de solutions, avec un vérificateur et un budget adapté à la difficulté estimée.",
        "en": "Revisions and solution searches are compared, using a verifier and a budget adapted to estimated difficulty."
      },
      "example": {
        "fr": "Exemple fictif : tester davantage de pistes pour un problème difficile.",
        "en": "Fictional example: test more possibilities for a difficult problem."
      },
      "gain": {
        "fr": "Des réponses peuvent progresser sans agrandir le modèle.",
        "en": "Answers can improve without enlarging the model."
      },
      "limit": {
        "fr": "Le bénéfice dépend du vérificateur et les essais supplémentaires coûtent du temps.",
        "en": "Benefits depend on the verifier, and extra attempts take time."
      }
    }
  },
  {
    "id": "hyper-connections",
    "date": "2024-09",
    "category": "architecture",
    "essential": false,
    "title": {
      "fr": "Hyper-Connections : enrichir les résiduelles",
      "en": "Hyper-Connections: enriching residual paths"
    },
    "summary": {
      "fr": "Les couches apprennent des mélanges plus riches que la simple addition résiduelle.",
      "en": "Layers learn richer mixtures than simple residual addition."
    },
    "mechanism": {
      "fr": "Plusieurs flux de représentations remplacent un seul chemin résiduel. Des coefficients appris contrôlent comment ces flux alimentent une couche et comment sa sortie les met à jour.",
      "en": "Multiple representation streams replace a single residual path. Learned coefficients control how streams feed a layer and how its output updates them."
    },
    "tradeoff": {
      "fr": "Plus de flux et de mélanges peuvent augmenter mémoire, coût et difficultés de stabilité.",
      "en": "More streams and mixing can increase memory, cost and stability challenges."
    },
    "origin": {
      "fr": "Hyper-Connections, Zhu et al., ByteDance.",
      "en": "Hyper-Connections, Zhu et al., ByteDance."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2409.19606",
        "title": "Hyper-Connections"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Plusieurs chemins internes enrichissent les échanges entre étapes du modèle.",
        "en": "Several internal paths enrich exchanges between model stages."
      },
      "problem": {
        "fr": "Un unique chemin additionne les résultats de manière relativement contrainte.",
        "en": "A single path combines results in a relatively constrained way."
      },
      "idea": {
        "fr": "Plusieurs flux remplacent ce chemin et des coefficients appris règlent leurs mélanges avant et après chaque étape.",
        "en": "Several streams replace that path, and learned coefficients control their mixtures before and after each stage."
      },
      "example": {
        "fr": "Exemple fictif : combiner deux flux avec des poids différents.",
        "en": "Fictional example: combine two streams with different weights."
      },
      "gain": {
        "fr": "Le modèle dispose de davantage de façons de transmettre l'information.",
        "en": "The model gains more ways to pass information onwards."
      },
      "limit": {
        "fr": "Ces mélanges peuvent augmenter la mémoire, le calcul et les difficultés d'entraînement.",
        "en": "These mixtures can increase memory, computation and training difficulties."
      }
    }
  },
  {
    "id": "olmoe",
    "date": "2024-09",
    "category": "architecture",
    "essential": false,
    "title": {
      "fr": "OLMoE : rendre les MoE inspectables",
      "en": "OLMoE: making MoE models inspectable"
    },
    "summary": {
      "fr": "Un MoE documenté et ses ressources ouvertes rendent les choix de routage étudiables.",
      "en": "A documented MoE and open resources make routing choices inspectable."
    },
    "mechanism": {
      "fr": "Le modèle active huit experts sur soixante-quatre par token. Le papier publie une recette et des analyses d'ablation, notamment sur le routage, la stabilité et les normalisations.",
      "en": "The model activates eight of sixty-four experts per token. The paper releases a recipe and ablation analyses, including routing, stability and normalization choices."
    },
    "tradeoff": {
      "fr": "L'ouverture facilite l'étude mais n'élimine ni la mémoire totale ni les communications des experts.",
      "en": "Openness supports study but eliminates neither total memory nor expert communication costs."
    },
    "origin": {
      "fr": "OLMoE, Allen Institute for AI.",
      "en": "OLMoE, Allen Institute for AI."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2409.02060",
        "title": "OLMoE: Open Mixture-of-Experts Language Models"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Une recette ouverte rend le fonctionnement des experts plus facile à étudier.",
        "en": "An open recipe makes expert routing easier to study."
      },
      "problem": {
        "fr": "Sans données et analyses, il est difficile de comprendre les choix de routage.",
        "en": "Without data and analysis, routing choices are difficult to understand."
      },
      "idea": {
        "fr": "Le modèle sélectionne huit réseaux experts parmi soixante-quatre et publie une recette accompagnée d'expériences comparatives.",
        "en": "The model selects eight expert networks out of sixty-four and releases a recipe with comparative experiments."
      },
      "example": {
        "fr": "Exemple fictif : comparer deux règles de sélection des experts.",
        "en": "Fictional example: compare two rules for selecting experts."
      },
      "gain": {
        "fr": "Les chercheurs peuvent examiner plusieurs décisions de conception.",
        "en": "Researchers can examine several design decisions."
      },
      "limit": {
        "fr": "L'ouverture ne supprime ni le stockage de tous les experts ni leurs échanges coûteux.",
        "en": "Openness removes neither the storage of all experts nor their costly communication."
      }
    }
  },
  {
    "id": "sigmoid-attention",
    "date": "2024-09",
    "category": "architecture",
    "essential": false,
    "title": {
      "fr": "Attention sigmoïde : des poids indépendants",
      "en": "Sigmoid attention: independent weights"
    },
    "summary": {
      "fr": "Une alternative au softmax peut atteindre des performances comparables avec une stabilisation adaptée.",
      "en": "An alternative to softmax can achieve comparable performance with suitable stabilization."
    },
    "mechanism": {
      "fr": "Une sigmoïde transforme séparément chaque score requête-clé au lieu de normaliser toute une ligne par softmax. Le papier étudie les normes initiales et propose le kernel FlashSigmoid.",
      "en": "A sigmoid transforms each query-key score independently instead of normalizing a full row with softmax. The paper studies initial norms and proposes the FlashSigmoid kernel."
    },
    "tradeoff": {
      "fr": "Le calcul dense reste quadratique ; ce travail revisite une idée antérieure au lieu de l'inventer.",
      "en": "Dense computation remains quadratic; this work revisits an earlier idea rather than inventing it."
    },
    "origin": {
      "fr": "Ramapuram et al., 2024.",
      "en": "Ramapuram et al., 2024."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2409.04431",
        "title": "Theory, Analysis, and Best Practices for Sigmoid Self-Attention"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Une autre règle transforme les scores de lecture en contributions.",
        "en": "An alternative rule turns reading scores into contributions."
      },
      "problem": {
        "fr": "La règle habituelle lie les poids de toutes les positions consultées.",
        "en": "The usual rule couples the weights of all positions being read."
      },
      "idea": {
        "fr": "Une fonction transforme chaque score séparément, avec des réglages pour stabiliser l'apprentissage.",
        "en": "A function transforms each score separately, with settings to stabilise learning."
      },
      "example": {
        "fr": "Exemple fictif : régler indépendamment la contribution de deux positions passées.",
        "en": "Fictional example: adjust the contributions of two past positions independently."
      },
      "gain": {
        "fr": "Cette alternative peut obtenir des résultats comparables dans certaines expériences.",
        "en": "This alternative can achieve comparable results in some experiments."
      },
      "limit": {
        "fr": "Comparer toutes les positions reste coûteux et ces résultats ne prouvent pas une supériorité générale.",
        "en": "Comparing every position remains expensive, and these results do not establish general superiority."
      }
    }
  },
  {
    "id": "ngpt",
    "date": "2024-10",
    "category": "architecture",
    "essential": false,
    "title": {
      "fr": "nGPT : apprendre sur une hypersphère",
      "en": "nGPT: learning on a hypersphere"
    },
    "summary": {
      "fr": "Normaliser les représentations et les poids modifie la géométrie de l'apprentissage.",
      "en": "Normalizing representations and weights changes learning geometry."
    },
    "mechanism": {
      "fr": "nGPT normalise les vecteurs pertinents et conçoit les mises à jour comme des déplacements sur une hypersphère. Des facteurs appris règlent l'amplitude des contributions des couches.",
      "en": "nGPT normalizes relevant vectors and frames updates as motion on a hypersphere. Learned factors control layer contribution magnitudes."
    },
    "tradeoff": {
      "fr": "Les gains annoncés dépendent des expériences ; cette géométrie demande une recette dédiée.",
      "en": "Reported gains depend on the experiments; this geometry needs a dedicated recipe."
    },
    "origin": {
      "fr": "nGPT, Loshchilov et al., NVIDIA ; arXiv 2410.01131.",
      "en": "nGPT, Loshchilov et al., NVIDIA; arXiv 2410.01131."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2410.01131",
        "title": "nGPT: Normalized Transformer with Representation Learning on the Hypersphere"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Maintenir des vecteurs à une longueur fixe change la manière d'apprendre.",
        "en": "Keeping vectors at a fixed length changes how learning works."
      },
      "problem": {
        "fr": "Des amplitudes numériques très différentes peuvent compliquer les mises à jour.",
        "en": "Very different numerical magnitudes can complicate updates."
      },
      "idea": {
        "fr": "Les représentations et certaines valeurs apprises sont normalisées. L'apprentissage modifie surtout leurs directions, avec des facteurs d'échelle adaptés.",
        "en": "Representations and some learned values are normalised. Learning mainly changes their directions, with suitable scaling factors."
      },
      "example": {
        "fr": "Exemple fictif : changer l'orientation d'une flèche plutôt que sa longueur.",
        "en": "Fictional example: change an arrow's direction rather than its length."
      },
      "gain": {
        "fr": "Certaines expériences montrent un apprentissage plus efficace.",
        "en": "Some experiments show more efficient learning."
      },
      "limit": {
        "fr": "La flèche représente un vecteur numérique et la recette demande des réglages spécifiques.",
        "en": "The arrow represents a numerical vector, and the recipe requires specific settings."
      }
    }
  },
  {
    "id": "byte-latent-transformer",
    "date": "2024-12",
    "category": "architecture",
    "essential": true,
    "title": {
      "fr": "BLT : des octets regroupés en patches",
      "en": "BLT: bytes grouped into patches"
    },
    "summary": {
      "fr": "Un modèle peut s'affranchir d'un vocabulaire fixe de sous-mots.",
      "en": "A model can avoid a fixed subword vocabulary."
    },
    "mechanism": {
      "fr": "Un encodeur local regroupe les octets en patches de taille variable selon leur prévisibilité. Un Transformer global travaille sur ces patches puis un décodeur local prédit les octets.",
      "en": "A local encoder groups bytes into variable-size patches according to predictability. A global Transformer operates on patches and a local decoder predicts bytes."
    },
    "tradeoff": {
      "fr": "Les composants locaux et la segmentation ajoutent une complexité ; les gains dépendent du contenu.",
      "en": "Local components and segmentation add complexity; gains depend on content."
    },
    "origin": {
      "fr": "Byte Latent Transformer, Pagnoni et al., Meta.",
      "en": "Byte Latent Transformer, Pagnoni et al., Meta."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2412.09871",
        "title": "Byte Latent Transformer: Patches Scale Better Than Tokens"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Des groupes d'octets variables remplacent un découpage fixe du texte.",
        "en": "Variable byte groups replace a fixed text segmentation."
      },
      "problem": {
        "fr": "Un vocabulaire de morceaux prédéfinis impose une segmentation parfois peu adaptée.",
        "en": "A vocabulary of predefined pieces imposes a segmentation that can be unsuitable."
      },
      "idea": {
        "fr": "Un composant regroupe les octets, unités de codage du texte. Le calcul principal traite ces groupes, puis un autre composant reconstruit les octets.",
        "en": "A component groups bytes, the units encoding text. Main computation processes these groups, then another component reconstructs bytes."
      },
      "example": {
        "fr": "Exemple fictif : créer de petits groupes dans un passage imprévisible.",
        "en": "Fictional example: create small groups in an unpredictable passage."
      },
      "gain": {
        "fr": "Le découpage peut s'adapter au contenu.",
        "en": "Segmentation can adapt to content."
      },
      "limit": {
        "fr": "Le regroupement et les composants locaux ajoutent du travail et de la complexité.",
        "en": "Grouping and local components add work and complexity."
      }
    }
  },
  {
    "id": "deepseek-v3",
    "date": "2024-12",
    "category": "training",
    "essential": true,
    "title": {
      "fr": "DeepSeek-V3 : intégrer efficacité et échelle",
      "en": "DeepSeek-V3: integrating efficiency and scale"
    },
    "summary": {
      "fr": "Une recette combine MoE, MLA, prédiction multi-token et entraînement mixte FP8.",
      "en": "A recipe combines MoE, MLA, multi-token prediction and mixed FP8 training."
    },
    "mechanism": {
      "fr": "Le modèle équilibre les experts routés avec des biais ajustés selon leur charge, utilise un cache latent et apprend des tokens futurs. L'entraînement FP8 inclut des précautions de précision et de communication.",
      "en": "The model balances routed experts using load-adjusted biases, uses a latent cache and learns future tokens. FP8 training includes precision and communication safeguards."
    },
    "tradeoff": {
      "fr": "Le modèle conserve une petite perte d'équilibrage par séquence ; « sans perte auxiliaire » ne signifie pas absence totale de toute perte de ce type.",
      "en": "The model retains a small sequence-wise balancing loss; auxiliary-loss-free does not mean no such loss anywhere."
    },
    "origin": {
      "fr": "DeepSeek-V3 ; recette intégrant des techniques parfois publiées auparavant.",
      "en": "DeepSeek-V3; recipe integrating techniques sometimes published earlier."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2412.19437",
        "title": "DeepSeek-V3 Technical Report"
      }
    ],
    "related": [
      "sparse-moe",
      "gshard",
      "switch-transformer",
      "mixtral"
    ],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Une recette combine experts, mémoire condensée et calcul numérique plus compact.",
        "en": "A recipe combines experts, condensed memory and more compact numerical computation."
      },
      "problem": {
        "fr": "Un grand modèle cumule coûts d'entraînement, de stockage et de communication.",
        "en": "A large model combines training, storage and communication costs."
      },
      "idea": {
        "fr": "La recette active certains experts, condense le passé et utilise des nombres moins précis avec des précautions adaptées.",
        "en": "The recipe activates selected experts, condenses the past and uses lower-precision numbers with suitable precautions."
      },
      "example": {
        "fr": "Exemple fictif : répartir mieux les demandes entre experts peu ou très sollicités.",
        "en": "Fictional example: better distribute work between lightly and heavily used experts."
      },
      "gain": {
        "fr": "Ces choix visent ensemble une meilleure efficacité.",
        "en": "These choices jointly target greater efficiency."
      },
      "limit": {
        "fr": "Le rapport conserve un terme d'équilibrage par séquence malgré l'allègement d'autres contraintes.",
        "en": "The report retains a per-sequence balancing term despite simplifying other constraints."
      }
    }
  },
  {
    "id": "gated-deltanet",
    "date": "2024-12",
    "category": "architecture",
    "essential": true,
    "title": {
      "fr": "Gated DeltaNet : oublier et corriger",
      "en": "Gated DeltaNet: forgetting and correcting"
    },
    "summary": {
      "fr": "Une mémoire récurrente combine effacement rapide et mises à jour ciblées.",
      "en": "A recurrent memory combines rapid forgetting with targeted updates."
    },
    "mechanism": {
      "fr": "Une porte contrôle l'oubli de l'état, tandis que la règle delta corrige les associations particulières. Un algorithme par blocs rend l'entraînement parallélisable et exploitable sur GPU.",
      "en": "A gate controls state forgetting while the delta rule corrects particular associations. A chunkwise algorithm makes training parallel and GPU-friendly."
    },
    "tradeoff": {
      "fr": "La mémoire reste compressée ; les comparaisons dépendent des tâches et budgets retenus.",
      "en": "Memory remains compressed; comparisons depend on selected tasks and budgets."
    },
    "origin": {
      "fr": "Gated DeltaNet, Yang, Kautz et Hatamizadeh.",
      "en": "Gated DeltaNet, Yang, Kautz and Hatamizadeh."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2412.06464",
        "title": "Gated Delta Networks: Improving Mamba2 with Delta Rule"
      }
    ],
    "related": [
      "s4",
      "s5",
      "mamba",
      "mamba-2",
      "qwen3-next"
    ],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Une mémoire condensée peut oublier globalement et corriger des associations précises.",
        "en": "A condensed memory can forget globally and correct particular associations."
      },
      "problem": {
        "fr": "Conserver indéfiniment de vieilles informations peut gêner les mises à jour.",
        "en": "Keeping old information indefinitely can interfere with updates."
      },
      "idea": {
        "fr": "Une porte règle l'oubli, tandis qu'une correction ciblée remplace ce que la mémoire prédit mal.",
        "en": "A gate controls forgetting, while a targeted correction changes what the memory predicts incorrectly."
      },
      "example": {
        "fr": "Exemple fictif : réduire d'anciennes traces tout en corrigeant une association.",
        "en": "Fictional example: reduce older traces while correcting an association."
      },
      "gain": {
        "fr": "La mémoire combine deux façons complémentaires de se mettre à jour.",
        "en": "Memory combines two complementary ways to update itself."
      },
      "limit": {
        "fr": "Elle reste compressée et les gains dépendent des tâches et budgets comparés.",
        "en": "It remains compressed, and benefits depend on the tasks and budgets compared."
      }
    }
  },
  {
    "id": "memory-layers",
    "date": "2024-12",
    "category": "architecture",
    "essential": false,
    "title": {
      "fr": "Memory Layers : une grande mémoire parcimonieuse",
      "en": "Memory Layers: large sparse memory"
    },
    "summary": {
      "fr": "Des tables de mémoire augmentent la capacité sans activer tous leurs paramètres.",
      "en": "Memory tables increase capacity without activating all parameters."
    },
    "mechanism": {
      "fr": "Une requête calculée à partir du token recherche des entrées dans une grande mémoire clé-valeur. Seules les valeurs sélectionnées contribuent à la couche, avec des mécanismes de recherche efficaces.",
      "en": "A token-derived query retrieves entries from a large key-value memory. Only selected values contribute to the layer, using efficient lookup mechanisms."
    },
    "tradeoff": {
      "fr": "Stockage et accès mémoire restent coûteux ; cette mémoire paramétrique n'est pas un corpus RAG.",
      "en": "Storage and memory access remain costly; this parametric memory is not a RAG corpus."
    },
    "origin": {
      "fr": "Memory Layers at Scale, Berges et al., Meta ; prolonge les mémoires produit-clé.",
      "en": "Memory Layers at Scale, Berges et al., Meta; extends product-key memories."
    },
    "adoption": {
      "fr": "—",
      "en": "—"
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2412.09764",
        "title": "Memory Layers at Scale"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "De grandes tables apprises ajoutent de la capacité sans tout consulter.",
        "en": "Large learned tables add capacity without consulting everything."
      },
      "problem": {
        "fr": "Faire intervenir toutes les valeurs d'un grand réseau coûte cher.",
        "en": "Using every value in a large network is expensive."
      },
      "idea": {
        "fr": "Une recherche sélectionne quelques entrées dans une grande table d’associations apprise pendant l’entraînement.",
        "en": "A lookup selects a few entries from a large table of associations learned during training."
      },
      "example": {
        "fr": "Exemple fictif : utiliser seulement les entrées correspondant à une requête interne.",
        "en": "Fictional example: use only the entries matching an internal query."
      },
      "gain": {
        "fr": "La capacité stockée peut grandir sans autant de calcul actif.",
        "en": "Stored capacity can grow without as much active computation."
      },
      "limit": {
        "fr": "Stockage et accès restent coûteux : ce n'est pas une recherche dans des documents externes.",
        "en": "Storage and access remain costly: this is not retrieval from external documents."
      }
    }
  },
  {
    "id": "titans",
    "date": "2024-12-31",
    "category": "architecture",
    "essential": false,
    "title": {
      "fr": "Titans : une mémoire qui apprend pendant la lecture",
      "en": "Titans: memory that learns while reading"
    },
    "summary": {
      "fr": "Distinguer une attention locale précise d’une mémoire neuronale conservant davantage d’historique.",
      "en": "Separate precise local attention from neural memory retaining more history."
    },
    "mechanism": {
      "fr": "Un module apprend des associations clés-valeurs au fil du contexte ; gradients, momentum et oubli pilotent sa mise à jour pendant l’inférence.",
      "en": "A module learns key-value associations as context arrives; gradients, momentum, and forgetting govern updates during inference."
    },
    "tradeoff": {
      "fr": "Cette mémoire est compressée et peut oublier ; elle ne garantit ni rappel exact ni persistance entre conversations.",
      "en": "This memory is compressed and may forget; it guarantees neither exact recall nor persistence between conversations."
    },
    "origin": {
      "fr": "Famille expérimentale Titans ; arXiv v1 du 31 décembre 2024 malgré l’identifiant 2501.",
      "en": "Experimental Titans family; arXiv v1 dated December 31, 2024 despite the 2501 identifier."
    },
    "adoption": {
      "fr": "Trois variantes étudiées ; adoption générale non démontrée.",
      "en": "Three variants studied; widespread adoption not established."
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2501.00663",
        "title": "Titans: Learning to Memorize at Test Time"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Ajouter une mémoire compacte qui se modifie pendant la lecture.",
        "en": "Add compact memory that changes as the model reads."
      },
      "problem": {
        "fr": "Relire tout un long texte demande beaucoup de calcul et de mémoire.",
        "en": "Revisiting an entire long text requires substantial computation and memory."
      },
      "idea": {
        "fr": "Titans conserve une représentation compacte du texte et ajuste ses valeurs pendant la lecture. Un autre mécanisme consulte directement les passages proches.",
        "en": "Titans keeps a compact representation of the text and updates its values while reading. Another mechanism directly consults nearby passages."
      },
      "example": {
        "fr": "Exemple fictif : un nom introduit au début peut influencer une réponse bien plus loin.",
        "en": "Fictional example: a name introduced early may influence an answer much later."
      },
      "gain": {
        "fr": "Une partie des informations anciennes reste utilisable sans tout relire à chaque étape.",
        "en": "Some earlier information remains usable without revisiting everything at each step."
      },
      "limit": {
        "fr": "Cette représentation peut oublier et ne garantit aucune mémoire entre conversations.",
        "en": "This representation can forget and guarantees no memory between conversations."
      }
    }
  },
  {
    "id": "minimax-01",
    "date": "2025-01-14",
    "category": "architecture",
    "essential": false,
    "title": {
      "fr": "MiniMax-01 : attention linéaire à grande échelle",
      "en": "MiniMax-01: large-scale linear attention"
    },
    "summary": {
      "fr": "Combiner mémoire récurrente et attention pour traiter de très longs contextes.",
      "en": "Combine recurrent memory and attention to process very long contexts."
    },
    "mechanism": {
      "fr": "Lightning Attention calcule une attention linéaire, combinée à des couches softmax et à un MoE ; le rapport décrit un entraînement sur un million de tokens.",
      "en": "Lightning Attention computes linear attention, combined with softmax layers and a MoE; the report describes training on one million tokens."
    },
    "tradeoff": {
      "fr": "La longueur annoncée ne garantit pas un rappel parfait ; les accélérations dépendent des kernels.",
      "en": "Advertised context length does not guarantee perfect recall; speed depends on kernels."
    },
    "origin": {
      "fr": "MiniMax-Text-01 et MiniMax-VL-01 ; ce rapport ne constitue pas l’origine de toute attention linéaire.",
      "en": "MiniMax-Text-01 and MiniMax-VL-01; this report did not originate linear attention."
    },
    "adoption": {
      "fr": "Application à grande échelle de Lightning Attention.",
      "en": "Large-scale application of Lightning Attention."
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2501.08313",
        "title": "MiniMax-01"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Mélanger plusieurs façons de consulter le texte pour traiter de longs documents.",
        "en": "Combine different ways of consulting text to handle long documents."
      },
      "problem": {
        "fr": "Consulter chaque passage antérieur devient coûteux quand le texte s’allonge.",
        "en": "Consulting every earlier passage becomes expensive as text grows longer."
      },
      "idea": {
        "fr": "Certaines étapes utilisent une représentation compacte de l’historique ; d’autres consultent directement les passages. Seules certaines parties spécialisées du réseau calculent pour chaque morceau de texte.",
        "en": "Some calculation stages use a compact representation of earlier text; others consult passages directly. Only selected specialized parts of the network process each text piece."
      },
      "example": {
        "fr": "Exemple fictif : parcourir un dossier avant de répondre sur son contenu.",
        "en": "Fictional example: processing a dossier before answering a question about its contents."
      },
      "gain": {
        "fr": "Cette combinaison vise à rendre les longs textes moins coûteux à traiter.",
        "en": "This combination aims to make long texts less expensive to process."
      },
      "limit": {
        "fr": "Une grande longueur acceptée ne garantit pas de retrouver chaque détail.",
        "en": "Accepting a long input does not guarantee retrieving every detail."
      }
    }
  },
  {
    "id": "deepseek-r1",
    "date": "2025-01-22",
    "category": "reasoning",
    "essential": true,
    "title": {
      "fr": "DeepSeek-R1 : apprendre à raisonner par récompenses",
      "en": "DeepSeek-R1: learning reasoning from rewards"
    },
    "summary": {
      "fr": "Le post-entraînement renforce des stratégies de résolution, sans inventer une nouvelle architecture.",
      "en": "Post-training reinforces problem-solving strategies without introducing a new architecture."
    },
    "mechanism": {
      "fr": "R1-Zero applique le RL sans SFT préalable ; R1 ajoute des données de démarrage, plusieurs étapes de RL et une distillation vers de petits modèles.",
      "en": "R1-Zero applies RL without preliminary SFT; R1 adds cold-start data, several RL stages, and distillation into smaller models."
    },
    "tradeoff": {
      "fr": "Les récompenses vérifiables conviennent surtout aux tâches évaluables ; les longues réponses coûtent du calcul.",
      "en": "Verifiable rewards suit objectively assessable tasks; longer answers consume compute."
    },
    "origin": {
      "fr": "DeepSeek-R1-Zero puis R1 ; GRPO vient de DeepSeekMath, en 2024.",
      "en": "DeepSeek-R1-Zero then R1; GRPO originates in DeepSeekMath, in 2024."
    },
    "adoption": {
      "fr": "Distillations publiques vers Qwen et Llama.",
      "en": "Public distillations into Qwen and Llama."
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2501.12948",
        "title": "DeepSeek-R1"
      }
    ],
    "related": [
      "grpo",
      "rlhf-origins",
      "instructgpt",
      "dpo"
    ],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Entraîner le modèle à produire des solutions grâce à des résultats vérifiables.",
        "en": "Train a model to produce solutions using checkable outcomes."
      },
      "problem": {
        "fr": "Imiter des réponses écrites ne suffit pas toujours à résoudre des problèmes nouveaux.",
        "en": "Copying written answers does not always suffice to solve new problems."
      },
      "idea": {
        "fr": "Le modèle produit des essais ; une vérification attribue des récompenses qui orientent son apprentissage. R1 combine aussi des exemples préparés et plusieurs étapes d’entraînement.",
        "en": "The model generates attempts; checking assigns rewards that guide learning. R1 also combines prepared examples with several training stages."
      },
      "example": {
        "fr": "Exemple fictif : vérifier automatiquement si un programme réussit les exercices demandés.",
        "en": "Fictional example: automatically checking whether a program passes the requested exercises."
      },
      "gain": {
        "fr": "Cette recette peut améliorer la résolution des tâches où le résultat se vérifie.",
        "en": "This recipe can improve problem solving where outcomes can be checked."
      },
      "limit": {
        "fr": "Les étapes écrites ne garantissent ni une réponse correcte ni un récit fidèle du calcul interne.",
        "en": "Written steps guarantee neither a correct answer nor a faithful account of internal computation."
      }
    }
  },
  {
    "id": "s1-budget-forcing",
    "date": "2025-01-31",
    "category": "reasoning",
    "essential": true,
    "title": {
      "fr": "s1 : régler le budget de réflexion",
      "en": "s1: controlling thinking budgets"
    },
    "summary": {
      "fr": "Un petit jeu d’exemples et un contrôle de génération rendent le calcul de raisonnement ajustable.",
      "en": "A small example set and generation controls make reasoning compute adjustable."
    },
    "mechanism": {
      "fr": "Après SFT sur mille questions, budget forcing interrompt la réflexion ou la prolonge avec « Wait » pour favoriser une vérification supplémentaire.",
      "en": "After SFT on one thousand questions, budget forcing stops reasoning or extends it with “Wait” to encourage another verification step."
    },
    "tradeoff": {
      "fr": "Plus de tokens augmente la latence et ne garantit pas une meilleure réponse à chaque question.",
      "en": "More tokens increase latency and do not guarantee a better answer to every question."
    },
    "origin": {
      "fr": "s1-32B, adapté de Qwen2.5-32B-Instruct ; pas l’invention du test-time compute.",
      "en": "s1-32B, adapted from Qwen2.5-32B-Instruct; not the invention of test-time compute."
    },
    "adoption": {
      "fr": "Recette publique reproductible de contrôle du raisonnement.",
      "en": "A public reproducible recipe for reasoning control."
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2501.19393",
        "title": "s1: Simple test-time scaling"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Régler combien de texte le modèle produit avant sa réponse finale.",
        "en": "Control how much text the model generates before its final answer."
      },
      "problem": {
        "fr": "Certaines questions demandent plus d’étapes de résolution que d’autres.",
        "en": "Some questions require more solution steps than others."
      },
      "idea": {
        "fr": "Après un entraînement sur des exemples, la génération est arrêtée ou prolongée avant la réponse finale. Ajouter « Wait » encourage la poursuite des étapes écrites.",
        "en": "After training on examples, generation is stopped or extended before the final answer. Adding “Wait” encourages further written steps."
      },
      "example": {
        "fr": "Exemple fictif : prolonger une résolution pour essayer une vérification supplémentaire.",
        "en": "Fictional example: extending a solution to attempt an additional check."
      },
      "gain": {
        "fr": "Le système peut ajuster le temps de calcul consacré à une question.",
        "en": "The system can adjust the computation time spent on a question."
      },
      "limit": {
        "fr": "Un texte plus long coûte davantage et ne garantit ni meilleure réponse ni raisonnement fidèle.",
        "en": "Longer text costs more and guarantees neither a better answer nor a faithful account of reasoning."
      }
    }
  },
  {
    "id": "scalable-softmax",
    "date": "2025-01-31",
    "category": "architecture",
    "essential": false,
    "title": {
      "fr": "SSMax : ajuster la concentration de l’attention à la longueur",
      "en": "SSMax: adapting attention concentration to length"
    },
    "summary": {
      "fr": "Éviter que l’attention se dilue lorsque le nombre de positions augmente.",
      "en": "Prevent attention from diluting as the number of positions increases."
    },
    "mechanism": {
      "fr": "Scalable-Softmax multiplie les scores par un facteur proportionnel au logarithme du nombre de positions, avec une échelle apprise par tête.",
      "en": "Scalable-Softmax multiplies scores by a factor proportional to the logarithm of position count, with a learned scale per head."
    },
    "tradeoff": {
      "fr": "Étude sur de petits modèles ; les résultats ne prouvent pas une amélioration universelle aux grandes échelles.",
      "en": "A small-model study; results do not establish universal improvements at large scale."
    },
    "origin": {
      "fr": "Transformers expérimentaux de 162M paramètres, Ken M. Nakanishi.",
      "en": "Experimental 162M-parameter Transformers, Ken M. Nakanishi."
    },
    "adoption": {
      "fr": "Aucun premier grand modèle public identifié dans la source.",
      "en": "No first public large model identified in the source."
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2501.19399",
        "title": "Scalable-Softmax Is Superior for Attention"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Adapter la répartition de l’attention lorsque le texte devient plus long.",
        "en": "Adjust how attention is distributed as the text grows longer."
      },
      "problem": {
        "fr": "Parmi beaucoup de passages, les informations utiles peuvent recevoir trop peu d’attention.",
        "en": "Among many passages, useful information may receive too little attention."
      },
      "idea": {
        "fr": "Le modèle calcule des scores pour les passages à consulter. La méthode ajuste leur échelle selon la longueur du texte, séparément pour chaque voie de lecture.",
        "en": "The model calculates scores for passages it might consult. The method adjusts their scale according to text length, separately for each reading pathway."
      },
      "example": {
        "fr": "Exemple fictif : un nom pertinent doit ressortir parmi de nombreuses phrases.",
        "en": "Fictional example: a relevant name needs to stand out among many sentences."
      },
      "gain": {
        "fr": "Cette correction peut éviter une attention trop dispersée dans les modèles étudiés.",
        "en": "This adjustment can prevent overly diffuse attention in the models studied."
      },
      "limit": {
        "fr": "Les essais sur de petits modèles ne prouvent pas un bénéfice universel.",
        "en": "Experiments on small models do not establish a universal benefit."
      }
    }
  },
  {
    "id": "llada",
    "date": "2025-02-14",
    "category": "architecture",
    "essential": true,
    "title": {
      "fr": "LLaDA : générer du texte par démasquage",
      "en": "LLaDA: generating text by unmasking"
    },
    "summary": {
      "fr": "La génération de langage n’est pas obligatoirement une prédiction de gauche à droite.",
      "en": "Language generation need not proceed through left-to-right prediction."
    },
    "mechanism": {
      "fr": "Un Transformer apprend à reconstruire des tokens masqués ; une suite de démasquages transforme un texte bruité en réponse, après préentraînement et SFT.",
      "en": "A Transformer learns to reconstruct masked tokens; successive unmasking steps turn corrupted text into a response, following pretraining and SFT."
    },
    "tradeoff": {
      "fr": "Plusieurs passes sont nécessaires ; parallélisme potentiel et accélération réelle doivent être distingués.",
      "en": "Multiple passes are needed; potential parallelism and actual acceleration must be distinguished."
    },
    "origin": {
      "fr": "LLaDA 8B ; une démonstration à cette échelle, parmi des précurseurs de diffusion textuelle.",
      "en": "LLaDA 8B; a demonstration at this scale, following earlier text diffusion work."
    },
    "adoption": {
      "fr": "Modèles et code ouverts pour étudier cette alternative.",
      "en": "Open models and code for studying this alternative."
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2502.09992",
        "title": "Large Language Diffusion Models"
      }
    ],
    "related": [
      "diffusiongemma"
    ],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Construire une réponse en complétant des morceaux masqués.",
        "en": "Build an answer by filling in masked text pieces."
      },
      "problem": {
        "fr": "Produire le texte strictement de gauche à droite limite les possibilités de calcul parallèle.",
        "en": "Producing text strictly from left to right limits opportunities for parallel computation."
      },
      "idea": {
        "fr": "Le modèle apprend à retrouver des morceaux de texte cachés. Pour générer une réponse, il remplit progressivement des emplacements masqués, au cours de plusieurs passages.",
        "en": "The model learns to recover hidden pieces of text. To generate an answer, it progressively fills masked positions over several passes."
      },
      "example": {
        "fr": "Exemple fictif : compléter « Le [masque] dort » puis affiner les choix.",
        "en": "Fictional example: completing “The [mask] sleeps” and then refining the choices."
      },
      "gain": {
        "fr": "Plusieurs emplacements peuvent être traités ensemble au lieu d’attendre chacun leur tour.",
        "en": "Multiple positions can be processed together instead of each waiting its turn."
      },
      "limit": {
        "fr": "Les passages successifs ont un coût : calcul parallèle ne signifie pas automatiquement réponse plus rapide.",
        "en": "Repeated passes cost computation: parallel work does not automatically mean a faster answer."
      }
    }
  },
  {
    "id": "muon-scale",
    "date": "2025-02-24",
    "category": "training",
    "essential": true,
    "title": {
      "fr": "Muon : orthogonaliser les mises à jour",
      "en": "Muon: orthogonalizing updates"
    },
    "summary": {
      "fr": "Un optimiseur matriciel devient utilisable pour entraîner de grands modèles de langage.",
      "en": "A matrix-based optimizer becomes usable for training large language models."
    },
    "mechanism": {
      "fr": "L’orthogonalisation des mises à jour est complétée par une décroissance des poids et une calibration de leur échelle ; les auteurs entraînent Moonlight.",
      "en": "Update orthogonalization is combined with weight decay and update-scale calibration; the authors train Moonlight."
    },
    "tradeoff": {
      "fr": "Le gain face à AdamW est expérimental et dépend du régime d’entraînement.",
      "en": "The gain over AdamW is experimental and depends on the training regime."
    },
    "origin": {
      "fr": "Moonlight 16B/3B actifs ; ce papier étend Muon, il ne l’invente pas.",
      "en": "Moonlight 16B/3B active; this paper scales Muon rather than inventing it."
    },
    "adoption": {
      "fr": "Kimi K2 emploie ensuite MuonClip pour stabiliser un entraînement beaucoup plus grand.",
      "en": "Kimi K2 later uses MuonClip to stabilize much larger training."
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2502.16982",
        "title": "Muon is Scalable for LLM Training"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Améliorer la manière de modifier les valeurs apprises pendant l’entraînement.",
        "en": "Improve how learned values change during training."
      },
      "problem": {
        "fr": "Un entraînement coûteux peut gaspiller du calcul si ses mises à jour sont mal réglées.",
        "en": "Expensive training can waste computation when its updates are poorly adjusted."
      },
      "idea": {
        "fr": "Muon transforme les tableaux de corrections appliquées aux valeurs apprises. Le travail sur Moonlight ajuste aussi leur taille et limite la croissance de ces valeurs pour entraîner de grands modèles.",
        "en": "Muon transforms the tables of corrections applied to learned values. The Moonlight work also adjusts their scale and limits growth of those values to train large models."
      },
      "example": {
        "fr": "Exemple fictif : comparer deux recettes d’entraînement avec le même budget de calcul.",
        "en": "Fictional example: comparing two training recipes with the same computation budget."
      },
      "gain": {
        "fr": "La méthode vise à obtenir un meilleur apprentissage pour un budget donné.",
        "en": "The method aims to obtain better learning within a given budget."
      },
      "limit": {
        "fr": "Le gain dépend du modèle et des conditions d’entraînement.",
        "en": "Its benefit depends on the model and the training conditions."
      }
    }
  },
  {
    "id": "eagle-3",
    "date": "2025-03-03",
    "category": "inference",
    "essential": false,
    "title": {
      "fr": "EAGLE-3 : un brouillon nourri de plusieurs couches",
      "en": "EAGLE-3: drafting from multiple layers"
    },
    "summary": {
      "fr": "Améliorer le modèle qui propose des tokens avant leur vérification par le grand modèle.",
      "en": "Improve the model proposing tokens before the large model verifies them."
    },
    "mechanism": {
      "fr": "Le drafter fusionne des représentations de plusieurs couches et prédit directement les tokens ; l’entraînement simule davantage ses conditions de génération.",
      "en": "The drafter fuses representations from multiple layers and directly predicts tokens; training better simulates its generation conditions."
    },
    "tradeoff": {
      "fr": "L’accélération dépend du taux d’acceptation, du batch et du coût du drafter.",
      "en": "Acceleration depends on acceptance rate, batch size, and drafter cost."
    },
    "origin": {
      "fr": "EAGLE-3 est une méthode de décodage, évaluée sur plusieurs modèles de chat et raisonnement.",
      "en": "EAGLE-3 is a decoding method evaluated on several chat and reasoning models."
    },
    "adoption": {
      "fr": "Implémentation publique et intégration étudiée dans SGLang.",
      "en": "Public implementation and integration studied in SGLang."
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2503.01840",
        "title": "EAGLE-3"
      }
    ],
    "related": [
      "blockwise-decoding",
      "speculative-decoding",
      "medusa",
      "eagle",
      "eagle-2"
    ],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Faire proposer une suite par un petit modèle, puis la vérifier.",
        "en": "Let a small model propose a continuation, then check it."
      },
      "problem": {
        "fr": "Faire calculer chaque nouveau morceau de texte par le grand modèle est lent.",
        "en": "Having the large model calculate every new text piece is slow."
      },
      "idea": {
        "fr": "Un petit modèle utilise les résultats intermédiaires de plusieurs étapes du grand modèle pour proposer une suite. Le grand modèle vérifie ensuite ces propositions.",
        "en": "A small model uses intermediate results from several stages of the large model to propose a continuation. The large model then checks these proposals."
      },
      "example": {
        "fr": "Exemple fictif : proposer « la porte est ouverte » puis accepter seulement le début validé.",
        "en": "Fictional example: proposing “the door is open” and accepting only the validated beginning."
      },
      "gain": {
        "fr": "Des propositions acceptées ensemble peuvent réduire le temps de génération.",
        "en": "Accepting several proposals together can reduce generation time."
      },
      "limit": {
        "fr": "Des propositions souvent rejetées ou trop coûteuses peuvent annuler l’avantage.",
        "en": "Proposals that are frequently rejected or expensive to produce can erase the advantage."
      }
    }
  },
  {
    "id": "gemma-3",
    "date": "2025-03-25",
    "category": "multimodal",
    "essential": false,
    "title": {
      "fr": "Gemma 3 : alterner attention locale et globale",
      "en": "Gemma 3: alternating local and global attention"
    },
    "summary": {
      "fr": "Un modèle multimodal réduit la mémoire d’attention en limitant la plupart des couches.",
      "en": "A multimodal model reduces attention memory by restricting most layers."
    },
    "mechanism": {
      "fr": "Cinq couches à fenêtre locale alternent avec une couche globale ; les modèles multimodaux ajoutent un encodeur de vision et un contexte étendu.",
      "en": "Five local-window layers alternate with one global layer; multimodal models add a vision encoder and extended context."
    },
    "tradeoff": {
      "fr": "Les couches globales restent coûteuses ; un grand contexte ne signifie pas un accès parfait à tous ses détails.",
      "en": "Global layers remain expensive; a large context does not mean perfect access to every detail."
    },
    "origin": {
      "fr": "Gemma 3 ; date du rapport arXiv, distincte du lancement.",
      "en": "Gemma 3; arXiv report date, distinct from launch."
    },
    "adoption": {
      "fr": "Nouvelle combinaison de mécanismes existants, pas l’origine de l’attention locale.",
      "en": "A new combination of existing mechanisms, not the origin of local attention."
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2503.19786",
        "title": "Gemma 3 Technical Report"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Consulter surtout le texte proche, avec des étapes qui regardent plus loin.",
        "en": "Mostly consult nearby text, with some stages looking further back."
      },
      "problem": {
        "fr": "Consulter tout le texte à chaque étape de calcul demande beaucoup de mémoire.",
        "en": "Consulting all text at every calculation stage requires substantial memory."
      },
      "idea": {
        "fr": "La plupart des étapes consultent seulement une fenêtre de texte proche. D’autres consultent le contexte complet ; certaines variantes traitent aussi les images.",
        "en": "Most stages consult only a window of nearby text. Other stages consult the full context; some variants also process images."
      },
      "example": {
        "fr": "Exemple fictif : utiliser les phrases voisines tout en reliant un nom au début du document.",
        "en": "Fictional example: using neighboring sentences while connecting a name to the beginning of a document."
      },
      "gain": {
        "fr": "La majorité des étapes conserve moins d’informations pour la génération.",
        "en": "Most stages retain less information for generation."
      },
      "limit": {
        "fr": "Les étapes globales restent coûteuses et une information éloignée peut être mal exploitée.",
        "en": "Global stages remain expensive, and distant information may still be used poorly."
      }
    }
  },
  {
    "id": "nemotron-h",
    "date": "2025-04-04",
    "category": "architecture",
    "essential": false,
    "title": {
      "fr": "Nemotron-H : consacrer peu de couches à l’attention globale",
      "en": "Nemotron-H: reserving few layers for global attention"
    },
    "summary": {
      "fr": "Un hybride Mamba-Transformer vise un meilleur compromis précision-coût d’inférence.",
      "en": "A Mamba-Transformer hybrid targets a better accuracy-inference-cost balance."
    },
    "mechanism": {
      "fr": "La majorité des couches d’attention est remplacée par des couches Mamba ; une compression par élagage et distillation réduit aussi certains modèles.",
      "en": "Most attention layers are replaced by Mamba layers; pruning and distillation also compress selected models."
    },
    "tradeoff": {
      "fr": "Les couches Mamba gardent un état fixe, mais les couches d’attention restantes conservent leur cache croissant.",
      "en": "Mamba layers retain fixed state, but remaining attention layers keep their growing cache."
    },
    "origin": {
      "fr": "Famille NVIDIA Nemotron-H ; v1 arXiv le 4 avril 2025.",
      "en": "NVIDIA Nemotron-H family; arXiv v1 on April 4, 2025."
    },
    "adoption": {
      "fr": "Adoption de Mamba dans une famille ouverte ; l’hybridation existait notamment avec Jamba.",
      "en": "Adoption of Mamba in an open family; hybridization already existed, notably in Jamba."
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2504.03624",
        "title": "Nemotron-H: Hybrid Mamba-Transformer Models"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Combiner une représentation compacte du passé et une consultation directe du texte.",
        "en": "Combine a compact representation of the past with direct text consultation."
      },
      "problem": {
        "fr": "Garder toutes les informations intermédiaires du texte peut occuper beaucoup de mémoire.",
        "en": "Retaining all intermediate information about text can take considerable memory."
      },
      "idea": {
        "fr": "La plupart des étapes mettent à jour une représentation compacte de ce qui précède. Quelques étapes conservent une attention directe sur le texte.",
        "en": "Most stages update a compact representation of preceding text. A few stages retain direct attention over the text."
      },
      "example": {
        "fr": "Exemple fictif : suivre le sujet général puis consulter des passages précédents à certaines étapes.",
        "en": "Fictional example: tracking the overall subject while consulting earlier passages at selected stages."
      },
      "gain": {
        "fr": "Cette combinaison vise à réduire le coût de génération tout en conservant des consultations directes.",
        "en": "This combination aims to reduce generation cost while retaining some direct consultation."
      },
      "limit": {
        "fr": "La représentation compacte perd des détails ; la mémoire des étapes d’attention continue de grandir.",
        "en": "The compact representation loses details; memory used by attention stages still grows."
      }
    }
  },
  {
    "id": "llama-4",
    "date": "2025-04-05",
    "category": "architecture",
    "essential": false,
    "title": {
      "fr": "Llama 4 : iRoPE, MoE et fusion multimodale",
      "en": "Llama 4: iRoPE, MoE, and multimodal fusion"
    },
    "summary": {
      "fr": "Une famille combine contexte étendu, calcul parcimonieux et apprentissage texte-image.",
      "en": "A family combines extended context, sparse computation, and text-image learning."
    },
    "mechanism": {
      "fr": "iRoPE intercale couches RoPE et couches sans encodage positionnel, avec ajustement de température ; les tokens visuels et textuels partagent le backbone.",
      "en": "iRoPE interleaves RoPE layers with layers without positional encoding, with temperature adjustment; visual and text tokens share the backbone."
    },
    "tradeoff": {
      "fr": "Un contexte annoncé de plusieurs millions de tokens ne garantit pas le rappel ; tous les experts doivent être stockés.",
      "en": "An advertised multimillion-token context does not guarantee recall; all experts still need storage."
    },
    "origin": {
      "fr": "Llama 4 Scout et Maverick ; annonce officielle, pas article arXiv.",
      "en": "Llama 4 Scout and Maverick; official announcement, not an arXiv article."
    },
    "adoption": {
      "fr": "Scout a 16 experts routés, Maverick 128 ; iRoPE documenté par Meta.",
      "en": "Scout has 16 routed experts, Maverick 128; iRoPE documented by Meta."
    },
    "sources": [
      {
        "url": "https://ai.meta.com/blog/llama-4-multimodal-intelligence/",
        "title": "Official Llama 4 announcement"
      },
      {
        "url": "https://github.com/meta-llama/llama-models/blob/main/models/llama4/MODEL_CARD.md",
        "title": "Official Llama 4 model card"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Associer lecture de texte, lecture d’images et calcul réparti entre sous-réseaux.",
        "en": "Combine text, images, and computation distributed across selected subnetworks."
      },
      "problem": {
        "fr": "Traiter de longs contenus mêlant texte et images peut devenir très coûteux.",
        "en": "Processing long content containing text and images can become very expensive."
      },
      "idea": {
        "fr": "Des morceaux de texte et des représentations d’images traversent un réseau commun. Le modèle varie la représentation des positions et choisit certaines parties spécialisées du réseau pour calculer.",
        "en": "Text pieces and image representations pass through a shared network. The model varies how positions are represented and selects specialized network parts for computation."
      },
      "example": {
        "fr": "Exemple fictif : répondre à une question sur une photo accompagnée d’un long commentaire.",
        "en": "Fictional example: answering a question about a photo accompanied by a long commentary."
      },
      "gain": {
        "fr": "Cette combinaison vise à traiter différents contenus avec un calcul partiellement sélectionné.",
        "en": "This combination aims to handle varied content with selectively activated computation."
      },
      "limit": {
        "fr": "Toutes les parties doivent être stockées ; accepter beaucoup de texte ne garantit pas son rappel.",
        "en": "All network parts require storage; accepting extensive text does not guarantee recalling it."
      }
    }
  },
  {
    "id": "gated-attention",
    "date": "2025-05-10",
    "category": "architecture",
    "essential": false,
    "title": {
      "fr": "Attention à porte : moduler ce que chaque tête transmet",
      "en": "Gated attention: controlling each head’s output"
    },
    "summary": {
      "fr": "Une porte dépendante de l’entrée filtre la sortie de l’attention.",
      "en": "An input-dependent gate filters attention output."
    },
    "mechanism": {
      "fr": "Une fonction sigmoïde module les sorties des têtes après l’attention ; l’étude observe plus de parcimonie et moins de concentration artificielle sur les premiers tokens.",
      "en": "A sigmoid function modulates head outputs after attention; the study observes greater sparsity and less artificial concentration on initial tokens."
    },
    "tradeoff": {
      "fr": "Les résultats appartiennent aux architectures testées ; ils ne prouvent pas une amélioration universelle.",
      "en": "Results concern the tested architectures and do not prove universal improvement."
    },
    "origin": {
      "fr": "Modèles expérimentaux de l’équipe Qwen ; ne pas confondre avec toutes les portes antérieures.",
      "en": "Experimental Qwen-team models; not the origin of all gating mechanisms."
    },
    "adoption": {
      "fr": "Qwen3-Next combine ensuite Gated Attention et Gated DeltaNet.",
      "en": "Qwen3-Next later combines Gated Attention with Gated DeltaNet."
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2505.06708",
        "title": "Gated Attention for Large Language Models"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Régler la quantité d’information transmise par chaque voie de lecture.",
        "en": "Control how much information each reading pathway passes onward."
      },
      "problem": {
        "fr": "Une information consultée n’est pas forcément utile à transmettre à l’étape suivante.",
        "en": "Information that was consulted is not necessarily useful for the next calculation stage."
      },
      "idea": {
        "fr": "Après avoir consulté le texte, chaque voie de lecture reçoit un réglage calculé à partir de l’entrée. Ce réglage atténue ou laisse passer ses résultats.",
        "en": "After consulting the text, each reading pathway receives a setting calculated from the input. This setting attenuates or passes through its results."
      },
      "example": {
        "fr": "Exemple fictif : réduire la contribution d’une voie peu utile pour la phrase actuelle.",
        "en": "Fictional example: reducing the contribution of a pathway that is less useful for the current sentence."
      },
      "gain": {
        "fr": "Le modèle peut filtrer plus finement les résultats de l’attention.",
        "en": "The model can filter attention results more finely."
      },
      "limit": {
        "fr": "Les bénéfices observés dépendent des modèles testés et ne sont pas garantis partout.",
        "en": "Observed benefits depend on the tested models and are not guaranteed everywhere."
      }
    }
  },
  {
    "id": "qwen3",
    "date": "2025-05-14",
    "category": "reasoning",
    "essential": false,
    "title": {
      "fr": "Qwen3 : réponse directe ou réflexion dans un même modèle",
      "en": "Qwen3: direct responses or thinking in one model"
    },
    "summary": {
      "fr": "Un même modèle peut adapter son mode de réponse à la demande.",
      "en": "One model can adapt its response mode to the request."
    },
    "mechanism": {
      "fr": "Le post-entraînement unifie réponses immédiates et traces de raisonnement ; GQA, RoPE, SwiGLU et QK-Norm constituent une architecture déjà largement éprouvée.",
      "en": "Post-training unifies immediate responses and reasoning traces; GQA, RoPE, SwiGLU, and QK-Norm form an already well-tested architecture."
    },
    "tradeoff": {
      "fr": "Un budget de réflexion plus grand augmente le coût ; le rapport ne décrit pas MTP pour Qwen3 initial.",
      "en": "A larger thinking budget increases cost; the report does not describe MTP for initial Qwen3."
    },
    "origin": {
      "fr": "Famille Qwen3, dense et MoE ; date du rapport.",
      "en": "Qwen3 family, dense and MoE; report date."
    },
    "adoption": {
      "fr": "Les variantes Next constituent une évolution distincte.",
      "en": "Next variants are a separate development."
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2505.09388",
        "title": "Qwen3 Technical Report"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Choisir entre une réponse directe et une génération avec davantage d’étapes écrites.",
        "en": "Choose between a direct answer and generation with more written steps."
      },
      "problem": {
        "fr": "Une longue résolution écrite peut être inutile pour une question simple.",
        "en": "A long written solution may be unnecessary for a simple question."
      },
      "idea": {
        "fr": "L’entraînement prépare le même modèle à répondre directement ou à produire des étapes avant sa réponse. Le mode choisi adapte le déroulement de la génération.",
        "en": "Training prepares the same model either to answer directly or to produce steps before answering. The selected mode changes how generation proceeds."
      },
      "example": {
        "fr": "Exemple fictif : répondre directement à une salutation, mais détailler une résolution mathématique.",
        "en": "Fictional example: responding directly to a greeting but writing out a mathematical solution."
      },
      "gain": {
        "fr": "Un même modèle propose plusieurs compromis entre délai et travail de résolution.",
        "en": "One model offers different balances between response time and problem-solving work."
      },
      "limit": {
        "fr": "Des étapes supplémentaires coûtent du calcul sans garantir leur fidélité ni la justesse finale.",
        "en": "Extra steps cost computation without guaranteeing their faithfulness or the final answer’s correctness."
      }
    }
  },
  {
    "id": "gemma-3n",
    "date": "2025-05-20",
    "category": "architecture",
    "essential": false,
    "title": {
      "fr": "Gemma 3n : embeddings par couche et modèles emboîtés",
      "en": "Gemma 3n: per-layer embeddings and nested models"
    },
    "summary": {
      "fr": "Adapter l’exécution du modèle aux contraintes d’un appareil mobile.",
      "en": "Adapt model execution to mobile-device constraints."
    },
    "mechanism": {
      "fr": "Les embeddings par couche peuvent être préparés et stockés hors mémoire principale ; MatFormer permet d’exécuter des sous-modèles imbriqués avec moins de paramètres.",
      "en": "Per-layer embeddings can be prepared and stored outside main memory; MatFormer allows nested submodels to run with fewer parameters."
    },
    "tradeoff": {
      "fr": "Paramètres totaux, paramètres actifs et mémoire effective sont différents ; l’économie dépend de l’implémentation.",
      "en": "Total parameters, active parameters, and effective memory differ; savings depend on implementation."
    },
    "origin": {
      "fr": "Gemma 3n ; date de l’annonce de préversion, sans arXiv identifié.",
      "en": "Gemma 3n; preview announcement date, with no identified arXiv report."
    },
    "adoption": {
      "fr": "Une application de PLE et MatFormer, pas une réduction du cache KV.",
      "en": "An application of PLE and MatFormer, not KV-cache compression."
    },
    "sources": [
      {
        "url": "https://developers.googleblog.com/en/introducing-gemma-3n/",
        "title": "Announcing Gemma 3n preview"
      },
      {
        "url": "https://ai.google.dev/gemma/docs/gemma-3n",
        "title": "Gemma 3n model overview"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Adapter le modèle aux contraintes de mémoire des petits appareils.",
        "en": "Adapt a model to the memory constraints of small devices."
      },
      "problem": {
        "fr": "Un téléphone dispose de moins de mémoire et de calcul qu’un serveur.",
        "en": "A phone has less memory and computation available than a server."
      },
      "idea": {
        "fr": "Certaines représentations peuvent être préparées puis stockées hors de la mémoire principale. Un réseau imbriqué permet aussi d’utiliser une version réduite du modèle.",
        "en": "Some representations can be prepared and stored outside main memory. A nested network also allows a smaller version of the model to run."
      },
      "example": {
        "fr": "Exemple fictif : sélectionner une version plus petite pour une application sur téléphone.",
        "en": "Fictional example: selecting a smaller version for a phone application."
      },
      "gain": {
        "fr": "La méthode peut diminuer la mémoire mobilisée et le travail nécessaire.",
        "en": "The method can reduce working memory and the amount of computation required."
      },
      "limit": {
        "fr": "Le nombre de valeurs stockées, celles utilisées pour calculer et la mémoire réelle restent différents.",
        "en": "Stored values, values used for computation, and actual memory consumption remain different quantities."
      }
    }
  },
  {
    "id": "mone-pruning",
    "date": "2025-07-01",
    "category": "inference",
    "essential": false,
    "title": {
      "fr": "MoNE : remplacer des experts redondants",
      "en": "MoNE: replacing redundant experts"
    },
    "summary": {
      "fr": "Un MoE peu actif peut néanmoins occuper beaucoup de mémoire : tous ses experts sont stockés.",
      "en": "A sparsely activated MoE can still occupy substantial memory because every expert is stored."
    },
    "mechanism": {
      "fr": "MoNE mesure la fréquence d’accès et la variance des sorties pour remplacer certains experts par de petits modules approximant leur contribution.",
      "en": "MoNE measures access frequency and output variance to replace selected experts with lightweight modules approximating their contribution."
    },
    "tradeoff": {
      "fr": "La compression modifie le modèle et peut diminuer sa qualité ; les données de calibration comptent.",
      "en": "Compression changes the model and may reduce quality; calibration data matters."
    },
    "origin": {
      "fr": "MoNE, évalué notamment sur Qwen2-57B-A14B ; papier de 2025, pas invention de 2026.",
      "en": "MoNE, evaluated notably on Qwen2-57B-A14B; a 2025 paper, not a 2026 invention."
    },
    "adoption": {
      "fr": "Méthode de compression après entraînement.",
      "en": "Post-training compression method."
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2507.00390",
        "title": "MoNE: Replacing Redundant Experts with Lightweight Novices"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Remplacer certaines parties spécialisées du modèle par des approximations plus petites.",
        "en": "Replace some specialized model parts with smaller approximations."
      },
      "problem": {
        "fr": "Stocker toutes les parties d’un grand modèle peut dépasser la mémoire disponible.",
        "en": "Storing every part of a large model may exceed available memory."
      },
      "idea": {
        "fr": "La méthode mesure l’utilisation et les sorties de parties spécialisées du réseau, appelées experts. Elle en remplace certaines par de petits modules qui approchent leur contribution.",
        "en": "The method measures the use and outputs of specialized network parts, called experts. It replaces selected parts with small modules that approximate their contribution."
      },
      "example": {
        "fr": "Exemple fictif : remplacer une partie rarement utilisée après des essais sur un corpus.",
        "en": "Fictional example: replacing a rarely used part after testing on a collection of texts."
      },
      "gain": {
        "fr": "Le modèle transformé peut occuper moins de place.",
        "en": "The transformed model can require less storage."
      },
      "limit": {
        "fr": "L’approximation peut dégrader ses réponses et dépend des exemples utilisés pour choisir les remplacements.",
        "en": "Approximation can degrade its answers and depends on the examples used to select replacements."
      }
    }
  },
  {
    "id": "hybrid-linear-analysis",
    "date": "2025-07-08",
    "category": "architecture",
    "essential": false,
    "title": {
      "fr": "Comparer les hybrides : qualité du langage et rappel divergent",
      "en": "Comparing hybrids: language quality and recall diverge"
    },
    "summary": {
      "fr": "Une étude systématique éclaire le choix du composant linéaire et du nombre de couches globales.",
      "en": "A systematic study informs linear-component choice and the number of global layers."
    },
    "mechanism": {
      "fr": "Les auteurs entraînent 72 modèles avec plusieurs mécanismes et ratios ; le composant gagnant seul ne gagne pas nécessairement une fois hybridé.",
      "en": "The authors train 72 models with different mechanisms and ratios; the best standalone component does not necessarily win when hybridized."
    },
    "tradeoff": {
      "fr": "Les compromis observés aux tailles étudiées ne fixent pas un ratio optimal universel.",
      "en": "Tradeoffs observed at the studied sizes do not establish a universal optimal ratio."
    },
    "origin": {
      "fr": "Wang et collaborateurs ; familles expérimentales 340M et 1,3B, pas une première invention de l’hybride.",
      "en": "Wang and collaborators; experimental 340M and 1.3B families, not the invention of hybrids."
    },
    "adoption": {
      "fr": "Ressource comparative ; adoption industrielle non établie par le papier.",
      "en": "A comparative resource; industrial adoption not established by the paper."
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2507.06457",
        "title": "A Systematic Analysis of Hybrid Linear Attention"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Comparer les combinaisons de mécanismes avant de choisir une architecture.",
        "en": "Compare combinations of mechanisms before choosing an architecture."
      },
      "problem": {
        "fr": "Un mécanisme performant seul peut devenir moins intéressant lorsqu’il est combiné à un autre.",
        "en": "A mechanism that performs well alone may be less effective when combined with another."
      },
      "idea": {
        "fr": "L’étude compare différentes proportions d’étapes de consultation directe et de mémoire compacte. Elle entraîne plusieurs modèles afin de mesurer les compromis plutôt que supposer un assemblage gagnant.",
        "en": "The study compares different proportions of direct consultation and compact-memory stages. It trains multiple models to measure tradeoffs instead of assuming a winning combination."
      },
      "example": {
        "fr": "Exemple fictif : comparer davantage d’étapes compactes avec davantage de consultations directes.",
        "en": "Fictional example: comparing more compact stages against more direct consultations."
      },
      "gain": {
        "fr": "Ces mesures aident à choisir une combinaison selon le coût et les résultats recherchés.",
        "en": "These measurements help select a combination for a desired cost and outcome."
      },
      "limit": {
        "fr": "Elles ne donnent pas une proportion idéale valable pour tous les modèles.",
        "en": "They do not establish an ideal proportion that applies to every model."
      }
    }
  },
  {
    "id": "lfm2",
    "date": "2025-07-10",
    "category": "architecture",
    "essential": false,
    "title": {
      "fr": "LFM2 : choisir l’architecture en mesurant le matériel",
      "en": "LFM2: choosing architecture through hardware measurements"
    },
    "summary": {
      "fr": "Les contraintes d’un processeur mobile orientent directement la conception du modèle.",
      "en": "Mobile processor constraints directly guide model design."
    },
    "mechanism": {
      "fr": "Une recherche d’architecture mesure mémoire et latence sur appareil ; elle combine surtout convolutions courtes à doubles portes et quelques couches GQA.",
      "en": "Architecture search measures on-device memory and latency; it combines mostly short double-gated convolutions with a few GQA layers."
    },
    "tradeoff": {
      "fr": "Une accélération mesurée sur CPU mobile ne se transpose pas automatiquement à tous les GPU ou charges.",
      "en": "An acceleration measured on mobile CPUs does not automatically transfer to every GPU or workload."
    },
    "origin": {
      "fr": "LFM2 de Liquid AI ; annonce du 10 juillet, rapport arXiv le 28 novembre 2025.",
      "en": "Liquid AI LFM2; July 10 announcement, arXiv report on November 28, 2025."
    },
    "adoption": {
      "fr": "Hybride convolution-attention ; aucune attribution exclusive d’invention des convolutions ou portes.",
      "en": "A convolution-attention hybrid; no exclusive claim to inventing convolutions or gates."
    },
    "sources": [
      {
        "url": "https://www.liquid.ai/blog/liquid-foundation-models-v2-our-second-series-of-generative-ai-models",
        "title": "Official LFM2 launch"
      },
      {
        "url": "https://arxiv.org/abs/2511.23404",
        "title": "LFM2 Technical Report"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Choisir une architecture en mesurant son fonctionnement sur les appareils visés.",
        "en": "Choose an architecture by measuring it on the intended devices."
      },
      "problem": {
        "fr": "Un modèle rapide sur un serveur peut être lent sur un téléphone.",
        "en": "A model that runs quickly on a server may run slowly on a phone."
      },
      "idea": {
        "fr": "La recherche mesure le délai et la mémoire sur appareil. Elle combine surtout des calculs sur de courts voisinages du texte avec quelques étapes de consultation plus large.",
        "en": "The search measures delay and memory on devices. It mainly combines computations over short text neighborhoods with a few broader consultation stages."
      },
      "example": {
        "fr": "Exemple fictif : mesurer plusieurs variantes sur le téléphone qui fera tourner l’application.",
        "en": "Fictional example: measuring several variants on the phone that will run the application."
      },
      "gain": {
        "fr": "L’architecture peut mieux correspondre aux contraintes matérielles réelles.",
        "en": "The architecture can better match actual hardware constraints."
      },
      "limit": {
        "fr": "Un résultat obtenu sur un appareil ne se transpose pas automatiquement à d’autres matériels.",
        "en": "A result measured on one device does not automatically transfer to other hardware."
      }
    }
  },
  {
    "id": "kimi-k2",
    "date": "2025-07-28",
    "category": "training",
    "essential": false,
    "title": {
      "fr": "Kimi K2 : MuonClip et entraînement agentique",
      "en": "Kimi K2: MuonClip and agentic training"
    },
    "summary": {
      "fr": "Stabiliser un grand MoE et entraîner son utilisation des outils.",
      "en": "Stabilize a large MoE and train its tool use."
    },
    "mechanism": {
      "fr": "MuonClip complète Muon par un contrôle des logits d’attention ; des environnements synthétiques et du RL fournissent des trajectoires d’usage des outils.",
      "en": "MuonClip extends Muon with attention-logit control; synthetic environments and RL provide tool-use trajectories."
    },
    "tradeoff": {
      "fr": "Un trillion de paramètres totaux reste lourd à stocker, même avec une petite fraction activée.",
      "en": "A trillion total parameters remain expensive to store even when only a small fraction is active."
    },
    "origin": {
      "fr": "Kimi K2 ; MuonClip est présenté dans ce rapport.",
      "en": "Kimi K2; MuonClip is presented in this report."
    },
    "adoption": {
      "fr": "Le modèle réutilise MLA et les MoE ; il ne les invente pas.",
      "en": "The model reuses MLA and MoE rather than inventing them."
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2507.20534",
        "title": "Kimi K2: Open Agentic Intelligence"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Stabiliser un très grand modèle et l’entraîner à utiliser des outils.",
        "en": "Stabilize a very large model and train it to use tools."
      },
      "problem": {
        "fr": "Un très grand réseau est difficile à entraîner et ne sait pas spontanément enchaîner les outils.",
        "en": "A very large network is difficult to train and does not automatically chain tool actions."
      },
      "idea": {
        "fr": "Une correction limite des valeurs d’attention excessives pendant l’apprentissage. Des essais dans des environnements simulés entraînent ensuite le modèle à produire des suites d’actions avec des outils.",
        "en": "A correction limits excessive attention values during learning. Trials in simulated environments then train the model to produce sequences of tool actions."
      },
      "example": {
        "fr": "Exemple fictif : chercher un fichier, lancer un calcul puis exploiter son résultat.",
        "en": "Fictional example: finding a file, running a calculation, then using its result."
      },
      "gain": {
        "fr": "La recette combine entraînement plus stable et apprentissage d’actions successives.",
        "en": "The recipe combines more stable training with learning successive actions."
      },
      "limit": {
        "fr": "Toutes les parties du réseau restent volumineuses à stocker, même quand seules certaines calculent.",
        "en": "All network parts remain large to store even when only selected parts compute."
      }
    }
  },
  {
    "id": "glm-4-5",
    "date": "2025-08-08",
    "category": "architecture",
    "essential": false,
    "title": {
      "fr": "GLM-4.5 : MoE profond, GQA et prédiction multiple",
      "en": "GLM-4.5: deep MoE, GQA, and multiple-token prediction"
    },
    "summary": {
      "fr": "Assembler des techniques existantes pour le raisonnement, le code et les outils.",
      "en": "Combine existing techniques for reasoning, coding, and tools."
    },
    "mechanism": {
      "fr": "Le rapport décrit GQA avec RoPE partiel, un MoE à routage équilibré et une couche MTP pour proposer des tokens spéculatifs.",
      "en": "The report describes GQA with partial RoPE, a balanced-routing MoE, and an MTP layer proposing speculative tokens."
    },
    "tradeoff": {
      "fr": "La qualité et la vitesse résultent aussi des données et du post-entraînement, pas de la seule architecture.",
      "en": "Quality and speed also depend on data and post-training, not architecture alone."
    },
    "origin": {
      "fr": "GLM-4.5 et GLM-4.5-Air ; ils n’utilisent pas MLA dans ce rapport.",
      "en": "GLM-4.5 and GLM-4.5-Air; they do not use MLA in this report."
    },
    "adoption": {
      "fr": "Exemple d’adoption de GQA et MTP, déjà inventés auparavant.",
      "en": "An adoption example of previously introduced GQA and MTP."
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2508.06471",
        "title": "GLM-4.5"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Combiner partage de mémoire, calcul sélectif et propositions de texte à vérifier.",
        "en": "Combine shared memory, selected computation, and text proposals for checking."
      },
      "problem": {
        "fr": "Un grand modèle doit limiter le coût de sa mémoire et de sa génération.",
        "en": "A large model needs to limit the cost of memory and generation."
      },
      "idea": {
        "fr": "Des voies de lecture partagent certaines informations enregistrées. Certaines parties du réseau sont sélectionnées pour calculer ; une étape supplémentaire propose aussi des morceaux de texte que le modèle peut vérifier ensemble.",
        "en": "Reading pathways share some stored information. Selected network parts perform computation; an additional stage also proposes text pieces that the model can check together."
      },
      "example": {
        "fr": "Exemple fictif : proposer une courte suite plutôt que vérifier chaque morceau séparément.",
        "en": "Fictional example: proposing a short continuation rather than checking each piece separately."
      },
      "gain": {
        "fr": "Cette combinaison vise à réduire le coût du service.",
        "en": "This combination aims to reduce the cost of serving the model."
      },
      "limit": {
        "fr": "Les résultats dépendent aussi de l’apprentissage et des données, pas seulement de ces mécanismes.",
        "en": "Results also depend on training and data, rather than on these mechanisms alone."
      }
    }
  },
  {
    "id": "gpt-oss",
    "date": "2025-08-08",
    "category": "inference",
    "essential": false,
    "title": {
      "fr": "gpt-oss : MoE quantifié en MXFP4",
      "en": "gpt-oss: MoE quantized into MXFP4"
    },
    "summary": {
      "fr": "Réduire le stockage des poids de modèles de raisonnement ouverts.",
      "en": "Reduce weight storage for open reasoning models."
    },
    "mechanism": {
      "fr": "Les poids des experts sont quantifiés au format MXFP4 durant le post-entraînement ; chaque token utilise quatre experts, parmi 128 ou 32 selon le modèle.",
      "en": "Expert weights are quantized into MXFP4 during post-training; each token uses four experts out of 128 or 32 depending on the model."
    },
    "tradeoff": {
      "fr": "La mémoire des poids ne comprend pas le cache KV ; les performances dépendent du matériel compatible.",
      "en": "Weight memory excludes the KV cache; performance depends on compatible hardware."
    },
    "origin": {
      "fr": "gpt-oss-120b et 20b ; date arXiv, après le lancement du 5 août.",
      "en": "gpt-oss-120b and 20b; arXiv date, after the August 5 launch."
    },
    "adoption": {
      "fr": "Adoption de MXFP4, pas invention de ce format.",
      "en": "Adoption of MXFP4, not invention of the format."
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2508.10925",
        "title": "gpt-oss Model Card"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Stocker certaines valeurs du modèle avec une précision numérique réduite.",
        "en": "Store some model values with reduced numerical precision."
      },
      "problem": {
        "fr": "Les valeurs apprises d’un grand modèle peuvent occuper trop de mémoire.",
        "en": "The learned values of a large model can take too much memory."
      },
      "idea": {
        "fr": "Les parties spécialisées du réseau utilisent un format numérique compact, pris en compte pendant leur adaptation. Seules certaines de ces parties participent au calcul pour chaque morceau de texte.",
        "en": "Specialized network parts use a compact number format that is accounted for during adaptation. Only selected parts participate in computation for each text piece."
      },
      "example": {
        "fr": "Exemple fictif : charger un modèle sur une machine dont la mémoire est limitée.",
        "en": "Fictional example: loading a model on a machine with limited memory."
      },
      "gain": {
        "fr": "Réduire la précision peut diminuer l’espace occupé par les valeurs stockées.",
        "en": "Reducing precision can decrease the space occupied by stored values."
      },
      "limit": {
        "fr": "Il faut aussi prévoir la mémoire du texte traité et un matériel adapté.",
        "en": "Memory for the text being processed and suitable hardware are still required."
      }
    }
  },
  {
    "id": "qwen3-next",
    "date": "2025-09-11",
    "category": "architecture",
    "essential": true,
    "title": {
      "fr": "Qwen3-Next : trois couches récurrentes pour une globale",
      "en": "Qwen3-Next: three recurrent layers per global layer"
    },
    "summary": {
      "fr": "L’hybridation réduit la mémoire de contexte sans supprimer toutes les couches globales.",
      "en": "Hybridization reduces context memory without removing every global layer."
    },
    "mechanism": {
      "fr": "Le modèle alterne trois couches Gated DeltaNet et une Gated Attention, avec un MoE très parcimonieux et MTP pour le décodage spéculatif.",
      "en": "The model alternates three Gated DeltaNet layers with one Gated Attention layer, using a highly sparse MoE and MTP for speculative decoding."
    },
    "tradeoff": {
      "fr": "L’état récurrent compresse l’historique ; les gains de débit dépendent fortement de l’implémentation.",
      "en": "The recurrent state compresses history; throughput gains depend strongly on implementation."
    },
    "origin": {
      "fr": "Qwen3-Next-80B-A3B ; annonce, pas date arXiv ; 80B totaux et 3B actifs.",
      "en": "Qwen3-Next-80B-A3B; announcement, not arXiv date; 80B total and 3B active."
    },
    "adoption": {
      "fr": "Adoption de Gated DeltaNet, auparavant étudié indépendamment.",
      "en": "Adoption of Gated DeltaNet, previously studied independently."
    },
    "sources": [
      {
        "url": "https://qwen.ai/blog?id=qwen3-next",
        "title": "Qwen3-Next announcement"
      },
      {
        "url": "https://huggingface.co/Qwen/Qwen3-Next-80B-A3B-Instruct",
        "title": "Official model card"
      }
    ],
    "related": [
      "s4",
      "s5",
      "mamba",
      "mamba-2",
      "gated-deltanet"
    ],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Alterner mémoire compacte et consultation directe pour réduire le coût des longs textes.",
        "en": "Alternate compact memory with direct consultation to reduce long-text costs."
      },
      "problem": {
        "fr": "Conserver toutes les informations nécessaires à chaque étape de lecture devient coûteux.",
        "en": "Keeping all required information at every reading stage becomes expensive."
      },
      "idea": {
        "fr": "Plusieurs étapes mettent à jour une représentation compacte de l’historique, puis une étape consulte directement le texte. Le réseau sélectionne aussi les parties qui calculent et propose des suites à vérifier.",
        "en": "Several stages update a compact representation of preceding text, then one stage consults the text directly. The network also selects which parts compute and proposes continuations for checking."
      },
      "example": {
        "fr": "Exemple fictif : répondre sur un long document sans tout conserver partout.",
        "en": "Fictional example: answering about a long document without retaining everything at every stage."
      },
      "gain": {
        "fr": "Cette combinaison vise une génération moins coûteuse sur les longs contextes.",
        "en": "This combination aims for less expensive generation over long contexts."
      },
      "limit": {
        "fr": "La représentation compacte perd du détail ; peu de valeurs utilisées ne signifie pas peu de stockage.",
        "en": "Compact representations lose detail; few values used for computation does not mean little storage."
      }
    }
  },
  {
    "id": "kimi-linear",
    "date": "2025-10-30",
    "category": "architecture",
    "essential": true,
    "title": {
      "fr": "Kimi Linear : une mémoire récurrente à portes fines",
      "en": "Kimi Linear: recurrent memory with fine-grained gates"
    },
    "summary": {
      "fr": "Kimi Delta Attention affine la manière d’écrire et d’oublier dans une mémoire compacte.",
      "en": "Kimi Delta Attention refines how compact memory writes and forgets information."
    },
    "mechanism": {
      "fr": "KDA étend Gated DeltaNet avec des portes plus fines ; Kimi Linear alterne trois couches KDA et une couche MLA globale.",
      "en": "KDA extends Gated DeltaNet with finer gates; Kimi Linear alternates three KDA layers and one global MLA layer."
    },
    "tradeoff": {
      "fr": "Les couches globales conservent un cache croissant ; la récupération détaillée reste difficile pour une mémoire purement récurrente.",
      "en": "Global layers retain a growing cache; detailed retrieval remains difficult with purely recurrent memory."
    },
    "origin": {
      "fr": "Kimi Linear 48B/3B actifs ; date du premier rapport.",
      "en": "Kimi Linear 48B/3B active; first-report date."
    },
    "adoption": {
      "fr": "Architecture hybride publiée avec poids et kernels ; ratio 3:1.",
      "en": "Hybrid architecture released with weights and kernels; 3:1 ratio."
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2510.26692",
        "title": "Kimi Linear"
      }
    ],
    "related": [
      "s4",
      "s5",
      "mamba",
      "mamba-2",
      "gated-deltanet"
    ],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Régler plus finement ce qu’une mémoire compacte conserve du texte.",
        "en": "Control more finely what a compact memory retains from text."
      },
      "problem": {
        "fr": "Résumer un long historique peut effacer des informations encore utiles.",
        "en": "Compressing a long history can erase information that is still useful."
      },
      "idea": {
        "fr": "La plupart des étapes règlent finement l’ajout et l’effacement d’informations dans une représentation compacte. D’autres consultent directement le texte avec une mémoire comprimée.",
        "en": "Most stages finely control adding and erasing information in a compact representation. Other stages consult text directly using compressed memory."
      },
      "example": {
        "fr": "Exemple fictif : conserver une information encore utile tout en atténuant une association devenue moins pertinente.",
        "en": "Fictional example: retaining still-useful information while weakening an association that has become less relevant."
      },
      "gain": {
        "fr": "Le mécanisme vise un meilleur compromis entre coût de mémoire et exploitation du contexte.",
        "en": "The mechanism aims for a better balance between memory cost and using context."
      },
      "limit": {
        "fr": "La compression peut perdre des détails et les étapes globales gardent une mémoire croissante.",
        "en": "Compression can lose details, and global stages retain memory that grows with the text."
      }
    }
  },
  {
    "id": "deepseek-dsa",
    "date": "2025-12-02",
    "category": "architecture",
    "essential": true,
    "title": {
      "fr": "DeepSeek Sparse Attention : sélectionner les souvenirs utiles",
      "en": "DeepSeek Sparse Attention: selecting useful memories"
    },
    "summary": {
      "fr": "Consulter un sous-ensemble du contexte au lieu de recalculer toute l’attention.",
      "en": "Consult a subset of context instead of recomputing all attention."
    },
    "mechanism": {
      "fr": "Un indexeur léger sélectionne les tokens pertinents avant l’attention principale ; DSA complète le mécanisme latent de DeepSeek pour réduire le coût des longs contextes.",
      "en": "A lightweight indexer selects relevant tokens before main attention; DSA complements DeepSeek’s latent mechanism to reduce long-context cost."
    },
    "tradeoff": {
      "fr": "La sélection peut écarter des informations ; la présence de l’indexeur conserve un coût.",
      "en": "Selection may discard information; the indexer itself still incurs cost."
    },
    "origin": {
      "fr": "DeepSeek-V3.2-Exp précède le rapport complet V3.2 ; date affichée : arXiv.",
      "en": "DeepSeek-V3.2-Exp precedes the complete V3.2 report; displayed date: arXiv."
    },
    "adoption": {
      "fr": "Rapport V3.2 publié après l’annonce expérimentale du 29 septembre.",
      "en": "V3.2 report published after the September 29 experimental announcement."
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2512.02556",
        "title": "DeepSeek-V3.2"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Sélectionner les passages à consulter avant de faire le calcul principal.",
        "en": "Select passages to consult before performing the main calculation."
      },
      "problem": {
        "fr": "Comparer chaque nouveau morceau de texte à tous les précédents devient coûteux.",
        "en": "Comparing each new text piece with all earlier pieces becomes expensive."
      },
      "idea": {
        "fr": "Un premier calcul léger choisit des positions susceptibles d’être utiles. Le calcul principal d’attention consulte ensuite cette sélection au lieu de traiter tous les passages de la même façon.",
        "en": "A first lightweight calculation selects positions that may be useful. The main attention calculation then consults this selection instead of treating every passage the same way."
      },
      "example": {
        "fr": "Exemple fictif : retenir des passages sur une date avant de répondre à son sujet.",
        "en": "Fictional example: retaining passages about a date before answering a question about it."
      },
      "gain": {
        "fr": "Une sélection plus courte peut diminuer le calcul sur les longs textes.",
        "en": "A shorter selection can reduce computation for long texts."
      },
      "limit": {
        "fr": "La sélection peut omettre une information utile et possède elle-même un coût.",
        "en": "Selection can omit useful information and has its own computational cost."
      }
    }
  },
  {
    "id": "manifold-hyper-connections",
    "date": "2025-12-31",
    "category": "architecture",
    "essential": false,
    "title": {
      "fr": "mHC : contraindre les connexions entre couches",
      "en": "mHC: constraining connections between layers"
    },
    "summary": {
      "fr": "Élargir les chemins résiduels tout en préservant une propagation stable.",
      "en": "Expand residual pathways while preserving stable propagation."
    },
    "mechanism": {
      "fr": "Les Hyper-Connections multiples sont projetées sur un espace contraint pour restaurer des propriétés de transmission proches de l’identité et limiter l’instabilité.",
      "en": "Multiple Hyper-Connections are projected onto a constrained space to restore identity-like transmission properties and limit instability."
    },
    "tradeoff": {
      "fr": "Plus de connexions ajoute du trafic mémoire ; l’efficacité demande des optimisations dédiées.",
      "en": "Additional connections increase memory traffic; efficiency requires dedicated optimization."
    },
    "origin": {
      "fr": "Modèles expérimentaux DeepSeek ; ce papier prolonge les Hyper-Connections de 2024.",
      "en": "Experimental DeepSeek models; this paper extends the 2024 Hyper-Connections work."
    },
    "adoption": {
      "fr": "DeepSeek-V4 adopte ensuite mHC.",
      "en": "DeepSeek-V4 later adopts mHC."
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2512.24880",
        "title": "mHC: Manifold-Constrained Hyper-Connections"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Ajouter des chemins entre les étapes de calcul sans rendre leur transmission instable.",
        "en": "Add pathways between calculation stages while keeping transmission stable."
      },
      "problem": {
        "fr": "Multiplier les connexions peut perturber les informations transmises dans un réseau profond.",
        "en": "Multiplying connections can disrupt information transmitted through a deep network."
      },
      "idea": {
        "fr": "Plusieurs chemins transportent les résultats entre les étapes. La méthode contraint leur mélange pour limiter les amplifications et préserver une transmission plus stable.",
        "en": "Multiple pathways carry results between stages. The method constrains how these pathways are mixed to limit amplification and preserve more stable transmission."
      },
      "example": {
        "fr": "Exemple fictif : comparer un réseau à chemins multiples avec et sans cette contrainte pendant l’apprentissage.",
        "en": "Fictional example: comparing a multiple-pathway network with and without the constraint during training."
      },
      "gain": {
        "fr": "Le réseau peut explorer davantage de chemins tout en limitant certaines instabilités.",
        "en": "The network can explore more pathways while limiting some instabilities."
      },
      "limit": {
        "fr": "Ces connexions ajoutent des transferts de données et demandent des optimisations.",
        "en": "These connections add data transfers and require implementation optimizations."
      }
    }
  },
  {
    "id": "longcat-ngram",
    "date": "2026-01-29",
    "category": "architecture",
    "essential": false,
    "title": {
      "fr": "LongCat-Flash-Lite : agrandir la mémoire des n-grammes",
      "en": "LongCat-Flash-Lite: expanding n-gram memory"
    },
    "summary": {
      "fr": "Augmenter la capacité sans agrandir uniquement les réseaux d’experts.",
      "en": "Increase capacity without exclusively expanding expert networks."
    },
    "mechanism": {
      "fr": "De grandes tables d’embeddings représentent des groupes de tokens ; la recherche d’entrées parcimonieuse apporte des paramètres sans activer tout un réseau supplémentaire.",
      "en": "Large embedding tables represent groups of tokens; sparse lookups add parameters without activating an entire additional network."
    },
    "tradeoff": {
      "fr": "Les tables doivent être stockées et consultées efficacement ; les gains dépendent du budget et du matériel.",
      "en": "Tables need efficient storage and lookup; gains depend on budget and hardware."
    },
    "origin": {
      "fr": "LongCat-Flash-Lite, 68,5B paramètres et environ 3B actifs ; date arXiv.",
      "en": "LongCat-Flash-Lite, 68.5B parameters and roughly 3B active; arXiv date."
    },
    "adoption": {
      "fr": "Le papier compare ce mode de croissance à celui des MoE.",
      "en": "The paper compares this scaling approach with expanding MoE experts."
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2601.21204",
        "title": "Scaling Embeddings Outperforms Scaling Experts in Language Models"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Ajouter de grandes tables apprises pour représenter des groupes de morceaux de texte.",
        "en": "Add large learned tables representing groups of text pieces."
      },
      "problem": {
        "fr": "Agrandir tous les calculs du réseau augmente fortement son coût d’utilisation.",
        "en": "Enlarging every network calculation substantially increases the cost of using a model."
      },
      "idea": {
        "fr": "Des groupes de morceaux de texte permettent de retrouver des représentations dans de grandes tables apprises. Le modèle consulte seulement certaines entrées plutôt que faire calculer tout un réseau supplémentaire.",
        "en": "Groups of text pieces retrieve representations from large learned tables. The model consults selected entries instead of computing through an entire additional network."
      },
      "example": {
        "fr": "Exemple fictif : consulter une représentation associée à un groupe de mots fréquent.",
        "en": "Fictional example: consulting a representation associated with a frequent group of words."
      },
      "gain": {
        "fr": "Le modèle peut ajouter des valeurs apprises sans toutes les utiliser à chaque étape.",
        "en": "The model can add learned values without using every value at every step."
      },
      "limit": {
        "fr": "Les tables prennent de la place et doivent rester rapides à consulter.",
        "en": "The tables require storage and must remain fast to access."
      }
    }
  },
  {
    "id": "dflash",
    "date": "2026-02-05",
    "category": "inference",
    "essential": true,
    "title": {
      "fr": "DFlash : un bloc de brouillon généré en parallèle",
      "en": "DFlash: drafting a block in parallel"
    },
    "summary": {
      "fr": "La spéculation accélère davantage si le petit modèle cesse lui aussi de rédiger token par token.",
      "en": "Speculation accelerates further when the small model also stops drafting token by token."
    },
    "mechanism": {
      "fr": "Un drafter de diffusion conditionné par les représentations du modèle cible propose un bloc en une passe ; le modèle cible vérifie ensuite les tokens.",
      "en": "A diffusion drafter conditioned on target-model representations proposes a block in one pass; the target model then verifies the tokens."
    },
    "tradeoff": {
      "fr": "Les gains dépendent des acceptations, du batch et du moteur ; la vérification reste indispensable.",
      "en": "Gains depend on acceptance, batch size, and engine; verification remains essential."
    },
    "origin": {
      "fr": "DFlash, notamment démontré avec Qwen3 ; date du premier papier.",
      "en": "DFlash, notably demonstrated with Qwen3; first-paper date."
    },
    "adoption": {
      "fr": "Méthode générique de décodage ; ne pas confondre avec un modèle de chat autonome.",
      "en": "A general decoding method; distinct from a standalone chat model."
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2602.06036",
        "title": "DFlash: Block Diffusion for Flash Speculative Decoding"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Produire plusieurs propositions en parallèle avant de les faire vérifier.",
        "en": "Produce several proposals in parallel before having them checked."
      },
      "problem": {
        "fr": "Même un petit modèle de brouillon peut être lent s’il écrit chaque morceau successivement.",
        "en": "Even a small drafting model can be slow if it writes every piece sequentially."
      },
      "idea": {
        "fr": "Le petit modèle utilise des résultats du grand modèle pour proposer un bloc de texte en parallèle. Le grand modèle vérifie ensuite les morceaux proposés avant de les accepter.",
        "en": "The small model uses results from the large model to propose a block of text in parallel. The large model then checks the proposed pieces before accepting them."
      },
      "example": {
        "fr": "Exemple fictif : proposer une courte continuation entière plutôt que ses morceaux un par un.",
        "en": "Fictional example: proposing a complete short continuation rather than its pieces one at a time."
      },
      "gain": {
        "fr": "Un brouillon moins séquentiel peut réduire le délai de génération.",
        "en": "Less sequential drafting can reduce generation delay."
      },
      "limit": {
        "fr": "Le gain dépend des propositions acceptées, du matériel et de la charge.",
        "en": "The benefit depends on accepted proposals, hardware, and workload."
      }
    }
  },
  {
    "id": "qwen3-5",
    "date": "2026-02-15",
    "category": "multimodal",
    "essential": false,
    "title": {
      "fr": "Qwen3.5 : l’architecture hybride devient multimodale",
      "en": "Qwen3.5: hybrid architecture becomes multimodal"
    },
    "summary": {
      "fr": "Un modèle vision-langage natif réutilise les mécanismes efficaces de Qwen3-Next.",
      "en": "A native vision-language model reuses efficient Qwen3-Next mechanisms."
    },
    "mechanism": {
      "fr": "Gated DeltaNet et Gated Attention sont combinés avec un MoE parcimonieux, une prédiction multiple et un entraînement incluant les modalités visuelles.",
      "en": "Gated DeltaNet and Gated Attention combine with a sparse MoE, multiple-token prediction, and training incorporating visual modalities."
    },
    "tradeoff": {
      "fr": "Faible nombre de paramètres actifs ne signifie pas faible stockage total ; le débit annoncé dépend des comparateurs.",
      "en": "A low active-parameter count does not mean low total storage; advertised throughput depends on comparators."
    },
    "origin": {
      "fr": "Qwen3.5-397B-A17B ; date indiquée par le billet officiel, pas un dépôt arXiv.",
      "en": "Qwen3.5-397B-A17B; date displayed by the official announcement, not an arXiv submission."
    },
    "adoption": {
      "fr": "Extension multimodale et adoption ; les mécanismes hybrides existaient auparavant.",
      "en": "Multimodal extension and adoption; the hybrid mechanisms existed previously."
    },
    "sources": [
      {
        "url": "https://qwen.ai/blog?id=qwen3.5",
        "title": "Qwen3.5: Towards Native Multimodal Agents"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Étendre une architecture économe en calcul au traitement des images et du texte.",
        "en": "Extend a computation-efficient architecture to images and text."
      },
      "problem": {
        "fr": "Combiner de longs textes et des images peut demander beaucoup de ressources.",
        "en": "Combining long texts with images can require substantial resources."
      },
      "idea": {
        "fr": "Le modèle apprend sur des contenus visuels et textuels. Il alterne représentation compacte et consultation directe du contexte, sélectionne certaines parties du réseau et peut proposer plusieurs morceaux à vérifier.",
        "en": "The model learns from visual and textual content. It alternates compact representations with direct context consultation, selects certain network parts, and can propose multiple pieces for checking."
      },
      "example": {
        "fr": "Exemple fictif : répondre sur une capture d’écran et sa longue description.",
        "en": "Fictional example: answering about a screenshot and its long description."
      },
      "gain": {
        "fr": "La combinaison vise à traiter différents contenus avec un calcul maîtrisé.",
        "en": "The combination aims to process different kinds of content with controlled computation."
      },
      "limit": {
        "fr": "Toutes les valeurs apprises restent à stocker même si peu participent à chaque calcul.",
        "en": "All learned values still require storage even when few participate in each calculation."
      }
    }
  },
  {
    "id": "deepseek-v4",
    "date": "2026-04-24",
    "category": "architecture",
    "essential": false,
    "title": {
      "fr": "DeepSeek-V4 : attention comprimée et parcimonieuse",
      "en": "DeepSeek-V4: compressed sparse attention"
    },
    "summary": {
      "fr": "Une nouvelle combinaison vise à rendre le contexte d’un million de tokens moins coûteux.",
      "en": "A new combination aims to make million-token context less expensive."
    },
    "mechanism": {
      "fr": "Le rapport décrit CSA et HCA pour comprimer et sélectionner le contexte, mHC pour les connexions résiduelles et Muon pour l’entraînement.",
      "en": "The report describes CSA and HCA for context compression and selection, mHC for residual connections, and Muon for training."
    },
    "tradeoff": {
      "fr": "Les économies annoncées sont comparées à V3.2 dans une configuration donnée ; la compression peut perdre du détail.",
      "en": "Advertised savings compare against V3.2 in a specific setup; compression may lose detail."
    },
    "origin": {
      "fr": "DeepSeek-V4-Pro et Flash ; date d’annonce officielle.",
      "en": "DeepSeek-V4-Pro and Flash; official announcement date."
    },
    "adoption": {
      "fr": "Le rapport arXiv est lié depuis l’annonce ; cette date ne prétend pas être celle du dépôt.",
      "en": "The announcement links the arXiv report; this date does not claim to be the submission date."
    },
    "sources": [
      {
        "url": "https://deepseek.com/en/news/v4-preview/",
        "title": "DeepSeek-V4 Preview, April 24, 2026"
      },
      {
        "url": "https://arxiv.org/abs/2606.19348",
        "title": "DeepSeek-V4 Technical Report"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Comprimer et sélectionner le texte passé pour rendre les très longs contextes moins coûteux.",
        "en": "Compress and select past text to make very long contexts less expensive."
      },
      "problem": {
        "fr": "Consulter un très long texte peut demander trop de mémoire et de calcul.",
        "en": "Consulting a very long text can require too much memory and computation."
      },
      "idea": {
        "fr": "Plusieurs mécanismes compriment les informations conservées et sélectionnent celles à consulter. Le modèle combine aussi des connexions stabilisées entre étapes avec une autre recette de mise à jour pendant l’entraînement.",
        "en": "Several mechanisms compress retained information and select what to consult. The model also combines stabilized connections between stages with a different update recipe during training."
      },
      "example": {
        "fr": "Exemple fictif : répondre sur un dossier volumineux à partir de représentations réduites.",
        "en": "Fictional example: answering about a large dossier using reduced representations."
      },
      "gain": {
        "fr": "Cette combinaison vise à réduire le coût des longs contextes.",
        "en": "This combination aims to reduce the cost of long contexts."
      },
      "limit": {
        "fr": "La compression peut perdre des détails ; les économies annoncées dépendent de la comparaison mesurée.",
        "en": "Compression can lose details; reported savings depend on the measured comparison."
      }
    }
  },
  {
    "id": "reference-sliding-window",
    "date": "2026-06-22",
    "category": "multimodal",
    "essential": false,
    "title": {
      "fr": "R-SWA : une fenêtre locale avec une référence visuelle",
      "en": "R-SWA: a local window with visual reference"
    },
    "summary": {
      "fr": "Lire un long document sans garder tous les tokens déjà transcrits dans le cache.",
      "en": "Read a long document without caching every previously transcribed token."
    },
    "mechanism": {
      "fr": "Unlimited OCR conserve l’accès aux tokens de référence visuels et une fenêtre du texte récent ; cette attention remplace les couches du décodeur DeepSeek OCR.",
      "en": "Unlimited OCR retains access to visual reference tokens and a recent-text window; this attention replaces DeepSeek OCR decoder layers."
    },
    "tradeoff": {
      "fr": "La mémoire est constante par rapport à la transcription, mais dépend toujours de la référence et de la fenêtre.",
      "en": "Memory stays constant with transcription length but still depends on reference size and window."
    },
    "origin": {
      "fr": "Unlimited OCR de Baidu ; R signifie Reference, pas Recurrent.",
      "en": "Baidu Unlimited OCR; R means Reference, not Recurrent."
    },
    "adoption": {
      "fr": "Date du rapport arXiv ; l’usage sur ASR ou traduction reste une extension proposée.",
      "en": "ArXiv report date; use for ASR or translation remains a proposed extension."
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2606.23050",
        "title": "Unlimited OCR Works"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Garder le document visible tout en limitant la mémoire du texte déjà transcrit.",
        "en": "Keep the document available while limiting memory for already transcribed text."
      },
      "problem": {
        "fr": "Transcrire un long document peut accumuler trop d’informations sur le texte déjà produit.",
        "en": "Transcribing a long document can accumulate too much information about text already produced."
      },
      "idea": {
        "fr": "Le modèle conserve l’accès aux représentations de l’image du document et à une fenêtre du texte récent. Il ne garde pas toute la transcription dans sa mémoire de génération.",
        "en": "The model keeps access to representations of the document image and a window of recent text. It does not retain the entire transcription in its generation memory."
      },
      "example": {
        "fr": "Exemple fictif : continuer une transcription en consultant encore l’image de départ.",
        "en": "Fictional example: continuing a transcription while still consulting the original image."
      },
      "gain": {
        "fr": "La mémoire liée à la transcription cesse de croître avec toute sa longueur.",
        "en": "Transcription-related memory stops growing with the full transcription length."
      },
      "limit": {
        "fr": "La référence visuelle et la fenêtre récente occupent toujours de la mémoire.",
        "en": "The visual reference and recent-text window still occupy memory."
      }
    }
  },
  {
    "id": "gemma-4",
    "date": "2026-07-02",
    "category": "multimodal",
    "essential": false,
    "title": {
      "fr": "Gemma 4 : une famille multimodale, plusieurs architectures",
      "en": "Gemma 4: one multimodal family, multiple architectures"
    },
    "summary": {
      "fr": "Les variantes adaptent la taille, la modalité et le calcul aux appareils visés.",
      "en": "Variants adapt model size, modality, and compute to target devices."
    },
    "mechanism": {
      "fr": "Le rapport présente des modèles denses et MoE, des entrées image et audio, un mode de réflexion et une variante 12B sans encodeurs séparés.",
      "en": "The report presents dense and MoE models, image and audio inputs, a thinking mode, and a 12B variant without separate encoders."
    },
    "tradeoff": {
      "fr": "Les caractéristiques diffèrent selon la taille ; on ne peut pas attribuer PLE, MoE et toutes les modalités à chaque variante.",
      "en": "Features differ by size; PLE, MoE, and every modality cannot be attributed to every variant."
    },
    "origin": {
      "fr": "Gemma 4 ; date arXiv, après le lancement initial du 2 avril.",
      "en": "Gemma 4; arXiv date, following the initial April 2 launch."
    },
    "adoption": {
      "fr": "Combinaison et diffusion de techniques existantes, pas invention unique.",
      "en": "Combination and dissemination of existing techniques, not one single invention."
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2607.02770",
        "title": "Gemma 4 Technical Report"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Proposer plusieurs architectures selon les contenus et les appareils à traiter.",
        "en": "Offer different architectures for different content and devices."
      },
      "problem": {
        "fr": "Un même modèle ne convient pas à tous les appareils ni à tous les types d’entrée.",
        "en": "One model does not suit every device or every type of input."
      },
      "idea": {
        "fr": "La famille propose différentes tailles et différentes façons de répartir les calculs. Selon la variante, elle peut recevoir des images ou du son et produire des étapes avant sa réponse.",
        "en": "The family provides different sizes and different ways to distribute computation. Depending on the variant, it can receive images or sound and produce steps before answering."
      },
      "example": {
        "fr": "Exemple fictif : choisir une variante adaptée à des entrées audio sur un appareil donné.",
        "en": "Fictional example: choosing a variant suitable for audio inputs on a particular device."
      },
      "gain": {
        "fr": "Plusieurs compromis deviennent disponibles au sein d’une même famille.",
        "en": "Several tradeoffs become available within one family."
      },
      "limit": {
        "fr": "Chaque variante possède ses propres capacités ; aucune ne réunit automatiquement toutes les caractéristiques.",
        "en": "Each variant has its own capabilities; none automatically combines all the family’s features."
      }
    }
  },
  {
    "id": "dspark",
    "date": "2026-07-06",
    "category": "inference",
    "essential": false,
    "title": {
      "fr": "DSpark : choisir combien de brouillon vérifier",
      "en": "DSpark: choosing how much draft to verify"
    },
    "summary": {
      "fr": "Éviter de dépenser du calcul sur des propositions dont l’acceptation est improbable.",
      "en": "Avoid spending compute on proposals unlikely to be accepted."
    },
    "mechanism": {
      "fr": "Le framework combine génération semi-autorégressive et vérification adaptative : confiance des propositions et charge du serveur orientent le travail soumis au modèle cible.",
      "en": "The framework combines semi-autoregressive generation with adaptive verification: proposal confidence and server load guide work submitted to the target model."
    },
    "tradeoff": {
      "fr": "Le compromis latence-débit dépend de la charge réelle ; un long brouillon n’est pas toujours rentable.",
      "en": "The latency-throughput tradeoff depends on actual load; a long draft is not always worthwhile."
    },
    "origin": {
      "fr": "DSpark de DeepSeek ; framework de décodage, pas architecture de modèle utilisateur.",
      "en": "DeepSeek DSpark; a decoding framework, not a user-facing model architecture."
    },
    "adoption": {
      "fr": "Code publié dans DeepSpec ; date du papier arXiv.",
      "en": "Code released in DeepSpec; arXiv paper date."
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2607.05147",
        "title": "DSpark: Confidence-Scheduled Speculative Decoding"
      }
    ],
    "related": [],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Adapter la quantité de brouillon vérifiée aux propositions et à la charge du serveur.",
        "en": "Adapt draft checking to the proposals and the server workload."
      },
      "problem": {
        "fr": "Vérifier un long brouillon peu convaincant peut gaspiller du calcul.",
        "en": "Checking a long, unpromising draft can waste computation."
      },
      "idea": {
        "fr": "Le système estime quelles propositions ont des chances d’être acceptées. Il ajuste le travail envoyé au grand modèle en tenant aussi compte de la charge du serveur.",
        "en": "The system estimates which proposals are likely to be accepted. It adjusts the work sent to the large model while also accounting for server load."
      },
      "example": {
        "fr": "Exemple fictif : raccourcir le bloc à vérifier quand les propositions sont incertaines.",
        "en": "Fictional example: shortening the block to check when proposals are uncertain."
      },
      "gain": {
        "fr": "Le système cherche un meilleur équilibre entre attente individuelle et nombre de réponses servies.",
        "en": "The system seeks a better balance between individual waiting time and the number of answers served."
      },
      "limit": {
        "fr": "Le réglage utile dépend de la charge et les propositions doivent toujours être vérifiées.",
        "en": "Useful settings depend on workload, and proposals still require checking."
      }
    }
  },
  {
    "id": "diffusiongemma",
    "date": "2026-07-31",
    "category": "inference",
    "essential": true,
    "title": {
      "fr": "DiffusionGemma : convertir un modèle en générateur par blocs",
      "en": "DiffusionGemma: converting a model to block generation"
    },
    "summary": {
      "fr": "Une adaptation transforme Gemma 4 en modèle expérimental de diffusion textuelle.",
      "en": "Adaptation turns Gemma 4 into an experimental text-diffusion model."
    },
    "mechanism": {
      "fr": "Le modèle affine des blocs de 256 tokens en parallèle ; un SFT de débruitage puis RL et distillation du sampler équilibrent qualité et vitesse.",
      "en": "The model refines 256-token blocks in parallel; denoising SFT followed by RL and sampler distillation balances quality and speed."
    },
    "tradeoff": {
      "fr": "Plusieurs raffinements sont nécessaires ; les mesures H100 ne garantissent pas les mêmes gains sur tout appareil.",
      "en": "Multiple refinements are needed; H100 measurements do not guarantee identical gains on every device."
    },
    "origin": {
      "fr": "DiffusionGemma, dérivé du MoE Gemma 4 ; date arXiv.",
      "en": "DiffusionGemma, derived from Gemma 4 MoE; arXiv date."
    },
    "adoption": {
      "fr": "Modèle ouvert expérimental ; sa publication ne démontre pas un déploiement généralisé en production.",
      "en": "An experimental open model; release does not establish widespread production deployment."
    },
    "sources": [
      {
        "url": "https://arxiv.org/abs/2608.00146",
        "title": "DiffusionGemma Technical Report"
      }
    ],
    "related": [
      "llada"
    ],
    "lineage": [],
    "lineage_families": [],
    "beginner": {
      "summary": {
        "fr": "Transformer expérimentalement un modèle pour qu’il affine des blocs de texte en parallèle.",
        "en": "Experimentally adapt a model to refine blocks of text in parallel."
      },
      "problem": {
        "fr": "Une génération strictement successive limite les possibilités de produire plusieurs morceaux ensemble.",
        "en": "Strictly sequential generation limits opportunities to produce several pieces together."
      },
      "idea": {
        "fr": "L’adaptation apprend au modèle à compléter et corriger des blocs de texte. Plusieurs passages affinent les propositions ; des étapes supplémentaires d’entraînement cherchent un compromis entre vitesse et résultat.",
        "en": "Adaptation teaches the model to complete and correct text blocks. Multiple passes refine proposals; additional training stages seek a balance between speed and results."
      },
      "example": {
        "fr": "Exemple fictif : remplir puis corriger les emplacements d’une courte réponse.",
        "en": "Fictional example: filling and then correcting positions in a short answer."
      },
      "gain": {
        "fr": "Le modèle expérimental explore une génération davantage parallèle.",
        "en": "The experimental model explores more parallel generation."
      },
      "limit": {
        "fr": "Les raffinements coûtent du calcul et les accélérations mesurées ne sont pas garanties sur tout appareil.",
        "en": "Refinement costs computation, and measured speedups are not guaranteed on every device."
      }
    }
  }
]