О генеративных моделях

Модели генеративного искусственного интеллекта (ИИ), такие как семейство моделей Gemini, способны создавать контент из различных типов входных данных, включая текст, изображения и аудио. На самом базовом уровне эти модели работают как сложные приложения с автозаполнением. Учитывая входной текст («Вы можете привести лошадь к воде»), генеративная модель может предсказать, что выходной текст, который статистически вероятно последует («но вы не можете заставить ее пить»), основываясь на шаблонах, извлеченных в ходе их обучения данные. Вы можете использовать это основное свойство генеративных моделей для различных приложений:

  • Создавайте творческие тексты, такие как стихи, рассказы, метафоры и сообщения в блогах.
  • Преобразование структурированных данных в текст произвольной формы
  • Извлечение и обобщение информации из текста произвольной формы.
  • Создать код
  • Переводить между языками

Использование генеративных моделей для создания этих функций не требует каких-либо знаний в области машинного обучения (ML). Вам не нужно собирать большой набор данных или обучать модель. Все, что нужно для создания первого прототипа, — это в нескольких предложениях описать, что вы хотите от модели.

Генеративные модели, которые обрабатывают только ввод и вывод текста, также известны как модели большого языка (LLM). Семейство моделей Gemini может обрабатывать не только текстовые данные, и, хотя они могут выполнять функции LLM, их более правильно называть генеративными моделями .

Примеры приложений

В следующих примерах показаны типичные входные и выходные данные генеративной модели.

Создать стихотворение

Пользовательский ввод: Write me a four-line poem about puppies and Android phones. Make sure it rhymes.

Выход модели:

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

Создать список

Пользовательский ввод: Generate a bulleted list of items I need to pack for a three-day camping trip.

Выход модели:

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

Вы можете заставить генеративные модели создавать всевозможные полезные действия, подобные этому, просто создав правильный входной текст, также называемый подсказкой . Искусство и наука подбора правильных формулировок, позволяющих заставить генеративные модели делать то, что вы хотите, называется быстрым проектированием (также называемым «оперативным проектированием» или просто «подсказкой»).

Подскажите дизайн 101

В предыдущем разделе было показано несколько примеров подсказок, содержащих инструкции, например «Напиши мне стихотворение». Этот вид инструкций может хорошо работать для определенных типов задач. Однако для других приложений лучше может работать другой метод подсказок, называемый подсказками с несколькими выстрелами . Небольшие подсказки используют тот факт, что большие языковые модели невероятно хороши в распознавании и воспроизведении шаблонов в текстовых данных. Идея состоит в том, чтобы отправить генеративной модели текстовый шаблон, который она научится завершать. Например, предположим, что вы хотите создать приложение, которое принимает в качестве входных данных название страны и выводит ее столицу. Вот текстовая подсказка, предназначенная именно для этого:

Italy : Rome
France : Paris
Germany :

В этом приглашении вы устанавливаете шаблон: [country] : [capital] . Если вы отправите это приглашение в большую языковую модель, она автоматически заполнит шаблон и вернет что-то вроде этого:

     Berlin
Turkey : Ankara
Greece : Athens

Реакция этой модели может показаться немного странной. Модель вернула не только столицу Германии (последняя страна в вашей рукописной подсказке), но и целый список дополнительных пар стран и столиц. Это потому, что генеративная модель «продолжает шаблон». Если все, что вы пытаетесь сделать, это создать функцию, которая сообщит вам столицу введенной страны («Германия: Берлин»), вас, вероятно, не волнует текст, который модель генерирует после «Берлин». Действительно, как разработчикам приложений, вы, вероятно, захотите сократить эти посторонние примеры. Более того, вы, вероятно, захотите параметризовать входные данные, чтобы Германия была не фиксированной строкой, а переменной, которую предоставляет конечный пользователь:

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

Вы только что написали краткую инструкцию по созданию столиц стран.

Вы можете выполнить большое количество задач, следуя этому шаблону подсказок, состоящему из нескольких шагов . Вот краткая подсказка в немного другом формате, которая преобразует Python в 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:

Или возьмите эту подсказку «обратного словаря». Учитывая определение, он возвращает слово, соответствующее этому определению:

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:

Возможно, вы заметили, что точная схема этих подсказок из нескольких кадров немного различается. Помимо примеров, предоставление инструкций в подсказках является дополнительной стратегией, которую следует учитывать при написании собственных подсказок, поскольку это помогает передать ваше намерение модели.

Подсказки и традиционная разработка программного обеспечения

В отличие от традиционного программного обеспечения, разработанного в соответствии с тщательно написанными спецификациями, поведение генеративных моделей в значительной степени неясно даже для инструкторов моделей. В результате вы часто не можете заранее предсказать, какие типы структур подсказок лучше всего подойдут для конкретной модели. Более того, поведение генеративной модели во многом определяется ее обучающими данными, а поскольку модели постоянно настраиваются на новые наборы данных, иногда модель меняется настолько, что непреднамеренно меняется, какие структуры подсказок работают лучше всего. Что это значит для тебя? Экспериментируйте! Попробуйте разные форматы подсказок.

Параметры модели

Каждое приглашение, которое вы отправляете в модель, включает значения параметров, которые управляют тем, как модель генерирует ответ. Модель может генерировать разные результаты для разных значений параметров. Наиболее распространенными параметрами модели являются:

  1. Максимальное количество токенов вывода: указывает максимальное количество токенов, которые могут быть созданы в ответе. Токен состоит примерно из четырех символов. 100 токенов соответствуют примерно 60-80 словам.

  2. Температура: температура контролирует степень случайности при выборе токенов. Температура используется для выборки во время генерации ответа, которая происходит при применении topP и topK . Более низкие температуры хороши для подсказок, требующих более детерминированного или менее открытого ответа, в то время как более высокие температуры могут привести к более разнообразным или творческим результатам. Температура 0 является детерминированной, что означает, что всегда выбирается ответ с наибольшей вероятностью.

  3. topK : параметр topK изменяет способ выбора токенов моделью для вывода. Значение topK , равное 1, означает, что выбранный токен является наиболее вероятным среди всех токенов в словаре модели (также называемое жадным декодированием), а значение topK , равное 3, означает, что следующий токен выбирается из трех наиболее вероятных с использованием температуры. На каждом этапе выбора токена отбираются токены topK с наибольшей вероятностью. Затем токены дополнительно фильтруются на основе topP , причем последний токен выбирается с использованием температурной выборки.

  4. topP : параметр topP изменяет способ выбора токенов моделью для вывода. Токены выбираются от наиболее к наименее вероятным до тех пор, пока сумма их вероятностей не станет равна значению topP . Например, если токены A, B и C имеют вероятность 0,3, 0,2 и 0,1, а значение topP равно 0,5, то модель выберет A или B в качестве следующего токена, используя температуру, и исключит C как кандидат. Значение topP по умолчанию составляет 0,95.

  5. stop_sequences : установите последовательность остановки, чтобы сообщить модели о прекращении генерации контента. Последовательность остановки может представлять собой любую последовательность символов. Старайтесь избегать использования последовательности символов, которая может появиться в сгенерированном контенте.

Типы подсказок

В зависимости от уровня содержащейся в них контекстной информации подсказки подразделяются на три типа.

Подсказки с нулевым выстрелом

Эти подсказки не содержат примеров для репликации модели. Подсказки с нулевым выстрелом по существу показывают способность модели выполнить подсказку без каких-либо дополнительных примеров или информации. Это означает, что модель должна полагаться на уже существующие знания, чтобы дать правдоподобный ответ.

Некоторые часто используемые шаблоны подсказок с нулевым выстрелом:

  • Содержание инструкции
<Overall instruction>
<Content to operate on>

Например,

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.
  • Инструкция-содержание-инструкция
<Overall instruction or context setting>
<Content to operate on>
<Final instruction>

Например,

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.
  • Продолжение. Иногда модель может продолжать текст без каких-либо инструкций. Например, вот подсказка с нулевым выстрелом, в которой модель предназначена для продолжения предоставленных входных данных:
Once upon a time, there was a little sparrow building a nest in a farmer's
barn. This sparrow

Используйте простые подсказки для создания творческих текстовых форматов, таких как стихи, коды, сценарии, музыкальные произведения, электронные письма или письма.

Одноразовые подсказки

Эти подсказки предоставляют модели единственный пример для воспроизведения и продолжения шаблона. Это позволяет генерировать предсказуемые ответы модели.

Например, вы можете создавать сочетания продуктов, например:

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

Несколько кадров

Эти подсказки предоставляют модели несколько примеров для воспроизведения. Используйте короткие подсказки для выполнения сложных задач, таких как синтез данных на основе шаблона.

Пример приглашения может быть таким:

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"}

Генеративные модели под капотом

Целью этого раздела является ответ на вопрос: есть ли случайность в ответах генеративных моделей или они детерминированы?

Короткий ответ – да для обоих. Когда вы запрашиваете генеративную модель, текстовый ответ генерируется в два этапа. На первом этапе генеративная модель обрабатывает входное приглашение и генерирует распределение вероятностей по возможным токенам (словам), которые, скорее всего, будут следующими. Например, если вы подскажете вводимый текст «Собака перепрыгнула через...», генеративная модель создаст массив возможных следующих слов:

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

Этот процесс является детерминированным; генеративная модель будет создавать одно и то же распределение каждый раз, когда вводится один и тот же текст подсказки.

На втором этапе генеративная модель преобразует эти распределения в реальные текстовые ответы с помощью одной из нескольких стратегий декодирования. Простая стратегия декодирования может выбирать наиболее вероятный токен на каждом временном шаге. Этот процесс всегда будет детерминированным. Однако вместо этого вы можете сгенерировать ответ путем случайной выборки из распределения, возвращаемого моделью. Этот процесс будет стохастическим (случайным). Управляйте степенью случайности, допустимой в этом процессе декодирования, путем установки температуры. Температура 0 означает, что выбираются только наиболее вероятные токены и нет случайности. И наоборот, высокая температура привносит высокую степень случайности в токены, выбранные моделью, что приводит к более неожиданным и удивительным реакциям модели.

дальнейшее чтение

  • Теперь, когда вы глубже разбираетесь в подсказках и генеративных моделях, попробуйте написать собственные подсказки с помощью Google AI Studio .
  • Обратитесь к рекомендациям по созданию подсказок , чтобы узнать больше о рекомендациях по созданию подсказок.