À propos des modèles génératifs

Les modèles d'intelligence artificielle (IA) générative comme la famille de modèles les modèles peuvent créer du contenu à partir de différents types d'entrées de données, y compris du texte, des images et de l'audio. À leur niveau le plus élémentaire, ces modèles fonctionnent comme des applications de saisie semi-automatique sophistiquées. Le texte d'entrée fourni ("Vous pouvez guider un cheval à l'eau), un modèle génératif peut prédire que le texte de sortie statistiquement susceptible de suivre ("mais vous ne pouvez pas boire"), d'après à partir de leurs données d'entraînement. Vous pouvez utiliser cette propriété de base génératifs pour des applications diverses:

  • Générer des textes créatifs comme des poèmes, des nouvelles, des métaphores, articles de blog
  • Convertir des données structurées en texte au format libre
  • Extraire et synthétiser les informations d'un texte au format libre
  • Générer du code
  • Traduire d'une langue à une autre

L'utilisation de modèles génératifs pour créer ces caractéristiques ne nécessite aucune machine en apprentissage automatique (ML). Vous n'avez pas besoin de collecter un grand ensemble de données ni d'entraîner dans un modèle de ML. Tout ce qu'il faut pour démarrer votre premier prototype est de décrire ce que vous voulez le modèle à faire en quelques phrases.

Les modèles génératifs qui ne gèrent que l'entrée et la sortie de texte sont également appelés grands modèles de langage (LLM). La famille de modèles Gemini peut traiter davantage que les données textuelles. Bien qu'ils puissent exécuter les fonctions d'un LLM, ce n'est pas plus connus sous le nom de modèles génératifs.

Exemples d'applications

Les exemples suivants illustrent des entrées de texte types vers et depuis une génératif.

Générer un poème

Entrée utilisateur: Write me a four-line poem about puppies and Android phones. Make sure it rhymes.

Sortie du modèle:

Puppies are cute,
Android phones are neat,
They both bring joy,
And make life complete.

Générer une liste

Entrée utilisateur: Generate a bulleted list of items I need to pack for a three-day camping trip.

Sortie du modèle:

*   Tent
*   Sleeping bag
*   Sleeping pad
*   Camp stove
*   Pots and pans
*   Utensils
*   Food
*   Water
*   First-aid kit
*   Sunscreen
*   Insect repellent
*   ...

Les modèles génératifs produisent toutes sortes de comportements utiles, comme Il suffit de créer le texte d'entrée approprié, également appelé requête. L'art et la recherche de la formulation appropriée pour que les modèles génératifs répondent la conception de requête (également appelée "ingénierie des requêtes" ou simplement "demander").

Introduction à la conception de requêtes

Dans la section précédente, vous avez vu quelques exemples de requêtes contenant comme "Écris-moi un poème". Ce type d'instruction peut convenir certains types de tâches. Toutefois, pour d'autres applications, une autre demande appelée requête few-shot peut mieux fonctionner. Les requêtes few-shot grâce aux grands modèles de langage incroyablement efficaces à reconnaître et à répliquer des modèles dans des données textuelles. L'idée est d'envoyer un modèle textuel qu'il apprend à compléter. Par exemple, supposons que vous à créer une application qui prend en entrée le nom d'un pays et génère son capitale. Voici une requête textuelle conçue à cet effet:

Italy : Rome
France : Paris
Germany :

Dans cette invite, vous établissez un modèle: [country] : [capital]. Si vous envoyez à un grand modèle de langage, la saisie semi-automatique du modèle afficher un résultat semblable à celui-ci:

     Berlin
Turkey : Ankara
Greece : Athens

Cette réponse peut sembler un peu étrange. Le modèle a renvoyé non seulement capitale de l'Allemagne (le dernier pays de votre requête manuscrite), mais aussi de pays et de majuscules supplémentaires. En effet, le modèle génératif, c'est de « continuer le modèle ». Si tout ce que vous essayez de faire créez une fonction qui vous indique la capitale d'un pays d'entrée ("Allemagne : Berlin), vous ne vous souciez probablement pas du texte que le modèle génère après « Berlin ». En tant que concepteurs d'applications, vous voudriez probablement pour tronquer ces exemples superflus. De plus, vous voudriez probablement paramétrer l'entrée, de sorte que Allemagne ne soit pas une chaîne fixe, mais une variable fournies par l'utilisateur final:

Italy : Rome
France : Paris
<user input here> :

Vous venez d'écrire une requête few-shot pour générer des capitales de pays.

Vous pouvez accomplir un grand nombre de tâches en suivant cette requête few-shot modèle. Voici une requête few-shot dans un format légèrement différent qui convertit Python en JavaScript:

Convert Python to JavaScript.
Python: print("hello world")
JavaScript: console.log("hello world")
Python: for x in range(0, 100):
JavaScript: for(var i = 0; i < 100; i++) {
Python: ${USER INPUT HERE}
JavaScript:

Ou prenez ce "dictionnaire inversé" requête. À partir d'une définition, il renvoie mot qui correspond à cette définition:

Given a definition, return the word it defines.
Definition: When you're happy that other people are also sad.
Word: schadenfreude
Definition: existing purely in the mind, but not in physical reality
Word: abstract
Definition: ${USER INPUT HERE}
Word:

Vous avez peut-être remarqué que le modèle exact de ces requêtes few-shot varie un peu. En plus de contenir des exemples, vous devez fournir des instructions est une stratégie supplémentaire à prendre en compte lors de la rédaction de vos propres requêtes, il est utile de communiquer vos intentions au modèle.

Comparaison entre le développement logiciel traditionnel et la génération de requêtes

Contrairement aux logiciels traditionnels, conçus selon une spécification rédigée avec soin, le comportement des modèles génératifs est en grande partie opaque, même pour les formateurs de modèles. En tant que vous ne pouvez pas prédire à l'avance les types de structures de requêtes les mieux adaptés à un modèle donné. De plus, le comportement d'un modèle est déterminé en grande partie par ses données d'entraînement. s'adapte continuellement à de nouveaux ensembles de données, le modèle change parfois suffisamment pour change par inadvertance les structures de requêtes les plus efficaces. Qu'est-ce que cela signifie pour vous ? Faites des tests ! Essayez différents formats de requête.

Paramètres du modèle

Chaque requête envoyée au modèle inclut des valeurs de paramètre qui contrôlent la façon dont le modèle génère une réponse. Le modèle peut générer différents résultats pour différentes valeurs de paramètre. Les paramètres de modèle les plus courants sont les suivants:

  1. Nombre maximal de jetons de sortie:spécifie le nombre maximal de jetons pouvant être générées dans la réponse. Un jeton correspond environ à quatre caractères. 100 les jetons correspondent à environ 60 à 80 mots.

  2. Température:la température contrôle le degré de hasard dans le jeton. de votre choix. La température est utilisée pour l'échantillonnage lors de la génération de la réponse, qui se produit lorsque topP et topK sont appliqués. Des températures plus basses sont bénéfiques pour les requêtes qui nécessitent une réponse plus déterministe ou moins ouverte, tandis que des températures plus élevées peuvent donner des résultats plus diversifiés ou créatifs. A une température de 0 est déterministe, c'est-à-dire que la probabilité la plus élevée est toujours sélectionnée.

  3. topK:le paramètre topK modifie la façon dont le modèle sélectionne les jetons pour de sortie. Un topK de 1 signifie que le jeton sélectionné est le plus probable parmi tous les jetons du vocabulaire du modèle (également appelé "décodage glouton"), tandis qu'un topK de 3 signifie que le jeton suivant est sélectionné parmi les 3 les plus probables en se basant sur la température. Pour chaque étape de sélection des jetons, le topK jetons ayant les probabilités les plus élevées sont échantillonnés. Les jetons sont ensuite Filtrage supplémentaire en fonction de topP, le dernier jeton étant sélectionné à l'aide de et l'échantillonnage de température.

  4. topP:le paramètre topP modifie la façon dont le modèle sélectionne les jetons pour de sortie. Les jetons sont sélectionnés du plus probable au moins probable jusqu'à ce que la somme de leurs probabilités sont égales à la valeur topP. Par exemple, si les jetons A, B et C ont une probabilité de 0,3, 0,2 et 0,1, et que la valeur topP est de 0,5, le modèle sélectionne alors A ou B comme jeton suivant en utilisant température et exclure C comme candidat. La valeur par défaut de topP est 0,95.

  5. stop_sequences:définissez une séquence d'arrêt sur au modèle d'arrêter de générer du contenu. Une séquence d'arrêt peut être une séquence de caractères. Évitez d'utiliser une séquence de caractères qui peuvent apparaître dans le contenu généré.

Types de requêtes

Selon le niveau d'informations contextuelles qu'elles contiennent, les invites sont généralement classées en trois types.

Requêtes zero-shot

Ces invites ne contiennent pas d'exemples que le modèle doit répliquer. Zero-shot montrent essentiellement la capacité du modèle à exécuter la requête des exemples ou des informations supplémentaires. Cela signifie que le modèle doit s'appuyer sur des connaissances préexistantes pour générer une réponse plausible.

Voici quelques modèles de requête zero-shot couramment utilisés:

  • Instructions
<Overall instruction>
<Content to operate on>

Par exemple,

Summarize the following into two sentences at the third-grade level:

Hummingbirds are the smallest birds in the world, and they are also one of the
most fascinating. They are found in North and South America, and they are known
for their long, thin beaks and their ability to fly at high speeds.

Hummingbirds are made up of three main parts: the head, the body, and the tail.
The head is small and round, and it contains the eyes, the beak, and the brain.
The body is long and slender, and it contains the wings, the legs, and the
heart. The tail is long and forked, and it helps the hummingbird to balance
while it is flying.

Hummingbirds are also known for their coloration. They come in a variety of
colors, including green, blue, red, and purple. Some hummingbirds are even able
to change their color!

Hummingbirds are very active creatures. They spend most of their time flying,
and they are also very good at hovering. Hummingbirds need to eat a lot of food
in order to maintain their energy, and they often visit flowers to drink nectar.

Hummingbirds are amazing creatures. They are small, but they are also very
powerful. They are beautiful, and they are very important to the ecosystem.
  • instructions-contenu-instruction
<Overall instruction or context setting>
<Content to operate on>
<Final instruction>

Par exemple,

Here is some text I'd like you to summarize:

Hummingbirds are the smallest birds in the world, and they are also one of the
most fascinating. They are found in North and South America, and they are known
for their long, thin beaks and their ability to fly at high speeds. Hummingbirds
are made up of three main parts: the head, the body, and the tail. The head is
small and round, and it contains the eyes, the beak, and the brain. The body is
long and slender, and it contains the wings, the legs, and the heart. The tail
is long and forked, and it helps the hummingbird to balance while it is flying.
Hummingbirds are also known for their coloration. They come in a variety of
colors, including green, blue, red, and purple. Some hummingbirds are even able
to change their color! Hummingbirds are very active creatures. They spend most
of their time flying, and they are also very good at hovering. Hummingbirds need
to eat a lot of food in order to maintain their energy, and they often visit
flowers to drink nectar. Hummingbirds are amazing creatures. They are small, but
they are also very powerful. They are beautiful, and they are very important to
the ecosystem.

Summarize it in two sentences at the third-grade reading level.
  • Suite. Parfois, vous pouvez faire en sorte que le modèle continue instructions. Par exemple, voici une requête zero-shot dans laquelle le modèle est destiné à poursuivre l'entrée fournie:
Once upon a time, there was a little sparrow building a nest in a farmer's
barn. This sparrow

Utilisez des requêtes zero-shot pour générer des formats textuels créatifs, comme des poèmes, du code, des scripts, des morceaux de musique, des e-mails ou des lettres.

Requêtes ponctuelles

Ces invites fournissent au modèle un seul exemple qu'il doit répliquer et continuer le modèle. Cela permet de générer des réponses prévisibles dans un modèle de ML.

Par exemple, vous pouvez générer des associations de plats comme:

Food: Apple
Pairs with: Cheese
Food: Pear
Pairs with:

Requêtes few-shot

Ces invites fournissent au modèle plusieurs exemples à répliquer. Utilisez des requêtes few-shot pour effectuer des tâches complexes, telles que la synthèse de données selon un modèle.

Voici un exemple de requête:

Generate a grocery shopping list for a week for one person. Use the JSON format
given below.
{"item": "eggs", "quantity": "6"}
{"item": "bread", "quantity": "one loaf"}

Les modèles génératifs en arrière-plan

Cette section vise à répondre à la question suivante : Y a-t-il un caractère aléatoire dans des modèles ou sont-elles déterministes ?

Pour faire court : oui aux deux. Lorsque vous demandez un modèle génératif, est générée en deux étapes. Dans un premier temps, le modèle génératif traite la requête d'entrée et génère une distribution de probabilités sur les jetons possibles (mots) qui sont susceptibles d'arriver ensuite. Par exemple, si vous demandez avec le texte d'entrée "Le chien a sauté par-dessus ...", le modèle génératif produit un tableau des mots suivants probables:

[("fence", 0.77), ("ledge", 0.12), ("blanket", 0.03), ...]

Ce processus est déterministe ; un modèle génératif produit le même résultat chaque fois qu'il saisit le même texte de requête.

Dans la deuxième étape, le modèle génératif convertit ces distributions en des réponses textuelles réelles en utilisant l'une des stratégies de décodage. Une requête peut sélectionner le jeton le plus probable à chaque étape. Ce serait toujours déterministe. Toutefois, vous pouvez choisir de générer une réponse par échantillonnage aléatoire sur la distribution renvoyée par la dans un modèle de ML. Ce processus est stochastique (aléatoire). Contrôlez le degré de le caractère aléatoire autorisé dans ce processus de décodage en réglant la température. A une température de 0 signifie que seuls les jetons les plus probables sont sélectionnés et qu'il n'y a pas le caractère aléatoire. À l'inverse, une température élevée injecte un degré élevé de hasard. dans les jetons sélectionnés par le modèle, ce qui donne lieu à des résultats plus inattendus des réponses du modèle.

Documentation complémentaire

  • Maintenant que vous comprenez mieux les requêtes et les modèles génératifs, essayez de rédiger vos propres requêtes en utilisant Google AI Studio
  • Consultez les consignes concernant les invites pour en savoir plus les bonnes pratiques de création de requêtes.