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 ouvre la voie à de nombreux nouveaux cas d'utilisation et paradigmes pour les développeurs.
Le code que vous utilisez déjà pour des cas tels que la génération de texte ou les entrées multimodales fonctionnera sans aucune modification avec le 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 la taille de la 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 sur les 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 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 la suppression arbitraire des anciens messages, la synthèse 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 vaste fenêtre de contexte 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 d'énormes capacités de contexte, ils font preuve d'un puissant apprentissage en contexte. Par exemple, en utilisant uniquement des supports pédagogiques contextuels (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 de 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 nativement le texte, les vidéos, l'audio et les images. Pour plus de commodité, elles sont accompagnées de l'API Gemini qui accepte les types de fichiers multimodaux.
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 synthèse 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 à mesure que de nouveaux jetons étaient 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é dans 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 sur les 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 requêtes avec des fichiers audio, consultez le guide sur les requêtes.
Optimisations de contexte long
Lorsque vous travaillez avec un contexte long et les modèles Gemini, l'optimisation principale consiste à utiliser la 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 que l'utilisateur importe 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 tiennent compte de la configuration la plus élémentaire, où vous recherchez une seule aiguille. Dans les cas où vous recherchez plusieurs "aiguilles" ou informations spécifiques, le modèle n'est pas aussi précis. Les performances peuvent varier considérablement en fonction du contexte. Il est important d'en tenir compte, car il existe un compromis inhérent entre l'obtention 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. Ainsi, pour récupérer 100 informations, si vous avez besoin d'une performance de 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ù dois-je 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 la requête (après tout le reste du contexte).
Les performances du modèle se dégradent-elles 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 le faire. Toutefois, si vous disposez d'un grand nombre de jetons contenant des informations et que vous souhaitez poser des questions à ce sujet, le modèle est tout à fait capable d'extraire ces informations (avec une précision pouvant atteindre 99 % dans de nombreux cas).
Comment puis-je réduire mes coûts avec les requêtes de contexte long ?
Si vous disposez d'un ensemble de jetons / de contexte similaire que vous souhaitez réutiliser plusieurs fois, la mise en cache du contexte peut vous aider à réduire les coûts associés à la pose de questions sur ces informations.
La longueur du contexte affecte-t-elle la latence du modèle ?
Il existe une latence fixe pour chaque requête, quelle que soit sa taille. Toutefois, les requêtes plus longues ont généralement une latence plus élevée (temps avant le premier jeton).