Contexte long

De nombreux modèles Gemini sont fournis avec de grandes fenêtres de contexte d'un million de jetons ou plus. Auparavant, les grands modèles de langage (LLM) étaient considérablement limités par la quantité de texte (ou de jetons) pouvant être transmise au modèle en même temps. La grande fenêtre de contexte de Gemini déverrouille de nombreux nouveaux cas d'utilisation et paradigmes pour les développeurs.

Le code que vous utilisez déjà pour des cas comme la génération de texte ou les entrées multimodales fonctionnera sans aucune modification avec un contexte long.

Ce document vous présente ce que vous pouvez accomplir à l'aide de modèles avec des fenêtres de contexte d'un million de jetons et plus. Cette page présente brièvement une fenêtre de contexte et explique comment les développeurs doivent envisager le contexte long, divers cas d'utilisation réels pour le contexte long et les moyens d'optimiser l'utilisation de ce type de contexte.

Pour connaître les tailles de fenêtre de contexte de modèles spécifiques, consultez la page Modèles.

Qu'est-ce qu'une fenêtre de contexte ?

La manière de base d'utiliser les modèles Gemini consiste à transmettre des informations (contexte) au modèle, qui générera ensuite une réponse. Une analogie pour cette fenêtre de contexte est la mémoire à court terme. Une quantité limitée d'informations peut être stockée dans la mémoire à court terme d'une personne, et il en va de même pour les modèles génératifs.

Pour en savoir plus sur le fonctionnement des modèles, consultez notre guide des modèles génératifs.

Premiers pas avec le contexte long

Les versions antérieures des modèles génératifs ne pouvaient traiter que 8 000 jetons à la fois. Les modèles plus récents ont permis d'aller plus loin en acceptant 32 000 ou même 128 000 jetons. Gemini est le premier modèle capable d'accepter un million de jetons.

En pratique, 1 million de jetons ressemblerait à ceci :

  • 50 000 lignes de code (avec 80 caractères par ligne)
  • Tous les messages que vous avez envoyés au cours des cinq dernières années
  • 8 romans anglais de longueur moyenne
  • Transcriptions de plus de 200 épisodes de podcast de durée moyenne

Les fenêtres de contexte plus limitées, courantes dans de nombreux autres modèles, nécessitent souvent des stratégies telles que l'abandon arbitraire d'anciens messages, le résumé du contenu, l'utilisation de RAG avec des bases de données vectorielles ou le filtrage des requêtes pour économiser des jetons.

Bien que ces techniques restent utiles dans des scénarios spécifiques, la fenêtre de contexte étendue de Gemini invite à une approche plus directe: fournir toutes les informations pertinentes dès le départ. Étant donné que les modèles Gemini ont été conçus avec des capacités de contexte massives, ils démontrent un apprentissage en contexte puissant. Par exemple, en utilisant uniquement des supports pédagogiques en contexte (une grammaire de référence de 500 pages, un dictionnaire et environ 400 phrases parallèles), Gemini a appris à traduire de l'anglais vers le Kalamang, une langue papoue parlée par moins de 200 personnes, avec une qualité similaire à celle d'un apprenant humain utilisant les mêmes supports. Cela illustre le changement de paradigme permis par le contexte long de Gemini, qui ouvre de nouvelles possibilités grâce à un apprentissage en contexte robuste.

Cas d'utilisation du contexte long

Bien que le cas d'utilisation standard pour la plupart des modèles génératifs reste l'entrée textuelle, la famille de modèles Gemini permet un nouveau paradigme de cas d'utilisation multimodaux. Ces modèles peuvent comprendre de manière native le texte, la vidéo, l'audio et les images. Ils sont accompagnés de l'API Gemini qui accepte les types de fichiers multimodaux pour plus de commodité.

Texte long

Le texte s'est avéré être la couche d'intelligence qui sous-tend une grande partie de l'essor autour des LLM. Comme indiqué précédemment, la plupart des limites pratiques des LLM étaient dues à l'absence d'une fenêtre de contexte suffisamment grande pour effectuer certaines tâches. Cela a conduit à l'adoption rapide de la génération augmentée par récupération (RAG) et d'autres techniques qui fournissent au modèle des informations contextuelles pertinentes de manière dynamique. Désormais, avec des fenêtres de contexte de plus en plus grandes, de nouvelles techniques deviennent disponibles, ouvrant la voie à de nouveaux cas d'utilisation.

Voici quelques cas d'utilisation émergents et standards du contexte long basé sur du texte :

  • Résumer de grands corpus de texte
    • Les options de résumé précédentes avec des modèles de contexte plus petits nécessitaient une fenêtre glissante ou une autre technique pour conserver l'état des sections précédentes lorsque de nouveaux jetons sont transmis au modèle.
  • Questions et réponses
    • Auparavant, cela n'était possible qu'avec l'approche RAG, en raison de la quantité limitée de contexte et du faible rappel factuel des modèles.
  • Workflows agentifs
  • Le texte est essentiel pour que les agents conservent un état de ce qu'ils ont accompli et de ce qu'ils doivent faire. Un manque d'informations sur le monde et sur les objectifs des agents limite leur fiabilité.

L'apprentissage en contexte "multi-shot" est l'une des fonctionnalités les plus remarquables offertes par les modèles de contexte longs. Les recherches ont montré que l'utilisation du paradigme commun "one-shot" ou "multi-shot", où le modèle reçoit un ou plusieurs exemples d'une tâche, et les fait évoluer jusqu'à des centaines, des milliers, voire des centaines de milliers d'exemples, peut entraîner de nouvelles capacités pour le modèle. Cette approche "multi-shot" a également montré des performances comparables à celles des modèles qui ont été affinés pour une tâche spécifique. Pour les cas d'utilisation où les performances d'un modèle Gemini ne sont pas encore suffisantes pour un déploiement en production, vous pouvez essayer l'approche "multi-shot". Comme vous pourrez le découvrir plus tard dans la section sur l'optimisation du contexte long, la mise en cache de contexte rend ce type de charge de travail à jetons d'entrée élevés beaucoup plus économique et avec une latence encore plus faible dans certains cas.

Vidéo longue

L'utilité du contenu vidéo a longtemps été limitée par le manque d'accessibilité du support lui-même. Il était difficile de parcourir le contenu, les transcriptions ne parviennent souvent pas à capturer les nuances d'une vidéo, et la plupart des outils ne traitent pas les images, le texte et l'audio simultanément. Avec Gemini, les fonctionnalités textuelles à contexte long se traduisent par la capacité à raisonner et à répondre aux questions sur les entrées multimodales avec des performances soutenues.

Voici quelques cas d'utilisation émergents et standards du contexte long basé sur de la vidéo :

  • Questions et réponses sur la vidéo
  • Mémoire vidéo, comme illustré avec Project Astra de Google
  • Sous-titrage des vidéos
  • Systèmes de recommandation vidéo, en enrichissant les métadonnées existantes grâce à une nouvelle compréhension multimodale
  • Personnalisation des vidéos, en examinant un corpus de données et des métadonnées vidéo associées, puis en supprimant les parties des vidéos qui ne sont pas pertinentes pour le lecteur
  • Modération de contenu vidéo
  • Traitement vidéo en temps réel

Lorsque vous travaillez avec des vidéos, il est important de tenir compte de la façon dont les vidéos sont traitées en jetons, car cela affecte la facturation et les limites d'utilisation. Pour en savoir plus sur les requêtes avec des fichiers vidéo, consultez le guide des requêtes.

Audio long

Les modèles Gemini étaient les premiers grands modèles de langage multimodaux natifs pouvant comprendre du contenu audio. Auparavant, le workflow de développeur classique impliquait l'association de plusieurs modèles spécifiques à un domaine, tels qu'un modèle de reconnaissance vocale et un modèle texte-vers-texte, afin de traiter le contenu audio. Cela entraînait une latence supplémentaire en raison des multiples requêtes aller-retour nécessaires, et une baisse des performances, généralement attribuée aux architectures déconnectées de la configuration à plusieurs modèles.

Voici quelques cas d'utilisation émergents et standards du contexte audio :

  • Transcription et traduction en temps réel
  • Questions et réponses sur un podcast/une vidéo
  • Transcription et résumé des réunions
  • Assistants vocaux

Pour en savoir plus sur les invites avec des fichiers audio, consultez le guide des invites.

Optimisations de contexte long

L'optimisation principale lorsque vous travaillez avec le contexte long et les modèles Gemini consiste à utiliser le mise en cache du contexte. Au-delà de l'impossibilité de traiter de nombreux jetons dans une seule requête auparavant, l'autre contrainte principale était le coût. Si vous disposez d'une application de type "discuter avec vos données" où un utilisateur importe 10 fichiers PDF, une vidéo et des documents de travail, vous auriez dû utiliser un outil/framework de génération augmentée par récupération (RAG) plus complexe afin de traiter ces requêtes et de payer un montant important pour les jetons déplacés dans la fenêtre de contexte. Vous pouvez désormais mettre en cache les fichiers importés par l'utilisateur et payer pour les stocker à l'heure. Le coût d'entrée / sortie par requête avec Gemini Flash, par exemple, est environ quatre fois inférieur au coût d'entrée / sortie standard. Par conséquent, si l'utilisateur discute suffisamment avec ses données, cela représente une économie considérable pour vous en tant que développeur.

Limites de contexte long

Dans différentes sections de ce guide, nous avons expliqué comment les modèles Gemini obtiennent des performances élevées lors de différents tests de récupération de type "aiguille dans une botte de foin". Ces tests prennent en compte la configuration la plus élémentaire, dans laquelle vous recherchez une seule aiguille. Si vous recherchez plusieurs "aiguilles" ou informations spécifiques, le modèle ne fonctionne pas avec la même précision. Les performances peuvent varier considérablement en fonction du contexte. Il est important de prendre en compte ce point, car il existe un compromis inhérent entre la récupération des bonnes informations et le coût. Vous pouvez obtenir des performances à hauteur de 99 % sur une seule requête, mais vous devez payer le coût du jeton d'entrée chaque fois que vous envoyez cette requête. Par conséquent, pour récupérer 100 informations, si vous avez besoin de performances à 99 %, vous devrez probablement envoyer 100 requêtes. C'est un bon exemple de cas où la mise en cache du contexte peut réduire considérablement les coûts associés à l'utilisation des modèles Gemini tout en maintenant des performances élevées.

Questions fréquentes

Où est-il préférable de placer ma requête dans la fenêtre de contexte ?

Dans la plupart des cas, en particulier si le contexte total est long, les performances du modèle seront meilleures si vous placez votre requête / question à la fin de l'invite (après tout le reste du contexte).

Les performances du modèle sont-elles affectées lorsque j'ajoute des jetons à une requête ?

En règle générale, si vous n'avez pas besoin de transmettre des jetons au modèle, il est préférable de ne pas les transmettre. Toutefois, si vous disposez d'un grand nombre de jetons contenant des informations et que vous souhaitez poser des questions à leur sujet, le modèle est très efficace pour les extraire (jusqu'à 99% de précision dans de nombreux cas).

Comment réduire mes coûts avec les requêtes à long contexte ?

Si vous disposez d'un ensemble de jetons / contexte similaire que vous souhaitez réutiliser plusieurs fois, la mise en cache de contexte peut vous aider à réduire les coûts associés à la formulation de questions sur ces informations.

La longueur du contexte a-t-elle une incidence sur la latence du modèle ?

Une certaine latence fixe est associée à chaque requête, quelle que soit sa taille. Toutefois, en général, les requêtes plus longues ont une latence plus élevée (temps d'accès au premier jeton).