Поделиться через


Узнайте, как создавать текст или управлять ими

Служба Azure OpenAI предоставляет конечную точку завершения , которую можно использовать для широкого спектра задач. Конечная точка предоставляет простой, но мощный текстовый интерфейс для любой модели Azure OpenAI. Чтобы активировать завершение, введите текст в виде запроса. Модель создает завершение и пытается соответствовать вашему контексту или шаблону. Предположим, вы предоставляете в API запрос "Как сказал Декарт, я думаю, поэтому". Для этого запроса Azure OpenAI с высокой вероятностью возвращает конечную точку завершения "I am".

Лучший способ начать изучение завершений — с помощью тестовой площадки в Azure OpenAI Studio. Это простое текстовое поле, в котором вводится запрос на создание завершения. Вы можете начать с простого запроса, например следующего:

write a tagline for an ice cream shop

После ввода запроса Azure OpenAI отобразит завершение:

we serve up smiles with every scoop!

Отображаемые результаты завершения могут отличаться, так как API Azure OpenAI создает свежие выходные данные для каждого взаимодействия. При каждом вызове API выполнение может немного отличаться, даже если запрос остается прежним. Это поведение можно контролировать с помощью Temperature параметра .

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

Примечание

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

Запросы на проектирование

Модели службы Azure OpenAI могут выполнять все действия, от создания оригинальных историй до выполнения сложного анализа текста. Так как они могут делать так много вещей, вы должны быть явным, показывая то, что вы хотите. Часто секретом хорошего запроса является дополнение повествования демонстрацией.

Модели пытаются предугадать, что вам нужно от запроса. Если ввести запрос "Дайте мне список пород кошек", модель не будет автоматически предполагать, что вы запрашиваете только список. Вы можете начать разговор, где ваши первые слова: "Дайте мне список пород кошек", а затем "и я скажу вам, какие из них мне нравится". Если модель предполагает только, что вам нужен список кошек, она не будет так хорошо подходит для создания содержимого, классификации или других задач.

Рекомендации по созданию надежных запросов

Существует три основных рекомендации по созданию полезных запросов:

  • Показать и рассказать. Четко разъясняйте ваши пожелания с помощью инструкций, примеров или их сочетания. Если вы хотите, чтобы модель ранжирует список элементов в алфавитном порядке или классифицирует абзац по тональности, включите эти сведения в запрос на отображение модели.

  • Предоставление качественных данных. Если вы пытаетесь создать классификатор или заставить модель следовать шаблону, убедитесь, что есть достаточно примеров. Обязательно прочитайте примеры. Модель достаточно умна для устранения основных орфографических ошибок и предоставления осмысленного ответа. И наоборот, модель может предполагать, что ошибки являются преднамеренными, что может повлиять на ответ.

  • Проверьте параметры. Параметры вероятности, такие как Temperature и Top P, определяют детерминированность модели при создании ответа. Если вы запрашиваете ответ, в котором есть только один правильный ответ, следует указать более низкие значения для этих параметров. Если вы ищете ответ, который не очевиден, может потребоваться использовать более высокие значения. Наиболее распространенная ошибка, которую пользователи делают с этими параметрами, заключается в том, что они контролируют "умность" или "творчество" в ответе модели.

Устранение неполадок с запросами

Если у вас возникают проблемы с тем, чтобы API работал должным образом, ознакомьтесь со следующими моментами для реализации:

  • Ясны ли мои намерения в отношении того, что модель должна создать?
  • Достаточно ли примеров я привел?
  • Проверил ли я свои примеры на наличие ошибок? (API не сообщает вам напрямую.)
  • Правильно ли вы используете параметры вероятности Temperature и Top P ?

Классификация текстов

Чтобы создать классификатор текста с помощью API, необходимо предоставить описание задачи и несколько примеров. В этой демонстрации вы показываете API, как классифицировать тональность текстовых сообщений. Тональность выражает общее чувство или выражение в тексте.

This is a text message sentiment classifier

Message: "I loved the new adventure movie!"
Sentiment: Positive

Message: "I hate it when my phone battery dies." 
Sentiment: Negative

Message: "My day has been 👍"
Sentiment: Positive

Message: "This is the link to the article"
Sentiment: Neutral

Message: "This new music video is unreal"
Sentiment:

Рекомендации по проектированию классификаторов текста

В этой демонстрации показано несколько рекомендаций по проектированию классификаторов:

  • Используйте простой язык для описания входных и выходных данных. Используйте обычный язык для входных данных "Message" и ожидаемого значения, которое выражает "Тональность". Для получения рекомендаций начните с простых языковых описаний. Часто при создании запроса можно использовать сокращенные или клавиши, чтобы указать входные и выходные данные, но лучше всего начать с максимально описательного описания. Затем можно работать в обратном направлении и удалять лишние слова, если производительность запроса согласована.

  • Показать API, как реагировать на любой случай. Демонстрация предоставляет несколько результатов: "Положительный", "Отрицательный" и "Нейтральный". Поддержка нейтрального результата важна, так как есть много случаев, когда даже человек может испытывать трудности с определением того, является ли что-то положительным или отрицательным.

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

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

Несколько результатов из одного вызова API

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

This is a text message sentiment classifier

Message: "I loved the new adventure movie!"
Sentiment: Positive

Message: "I hate it when my phone battery dies"
Sentiment: Negative

Message: "My day has been 👍"
Sentiment: Positive

Message: "This is the link to the article"
Sentiment: Neutral

Message text
1. "I loved the new adventure movie!"
2. "I hate it when my phone battery dies"
3. "My day has been 👍"
4. "This is the link to the article"
5. "This new music video is unreal"

Message sentiment ratings:
1: Positive
2: Negative
3: Positive
4: Neutral
5: Positive

Message text
1. "He doesn't like homework"
2. "The taxi is late. She's angry 😠"
3. "I can't wait for the weekend!!!"
4. "My cat is adorable ❤️❤️"
5. "Let's try chocolate bananas"

Message sentiment ratings:
1.

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

Важно!

Когда вы просите API создать списки или оценить текст, важно помочь API избежать смещения. Ниже приведены некоторые моменты.

  • Внимательно следите за значениями параметров вероятности Top P или Temperature .
  • Выполните несколько тестов, чтобы убедиться, что параметры вероятности правильно откалиброваны.
  • Не используйте длинные списки. Длинные списки могут привести к смещению.

Активация идей

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

В следующей демонстрации вы используете API для создания дополнительных примеров использования виртуальной реальности в классе:

Ideas involving education and virtual reality

1. Virtual Mars
Students get to explore Mars via virtual reality and go on missions to collect and catalog what they see.

2.

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

Рекомендации по активации идей

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

  • Объяснить назначение списка. Как и в демонстрации для классификатора текста, вы начинаете с того, что api сообщает о том, что представляет собой список. Такой подход помогает API сосредоточиться на заполнении списка, а не на попытке определить шаблоны путем анализа текста.

  • Задайте шаблон для элементов в списке. При указании описания из одного предложения API пытается следовать этому шаблону при создании новых элементов для списка. Если требуется более подробный ответ, необходимо установить это намерение с более подробным текстовым вводом в API.

  • Запросите API с неполной записью, чтобы активировать новые идеи. Когда API обнаруживает текст, который кажется неполным, например текст запроса "2.", он сначала пытается определить любой текст, который может завершить запись. Так как демонстрация содержит заголовок списка и пример с цифрой "1. " и сопутствующим текстом, API интерпретировал неполный текст запроса "2". Как запрос на продолжение добавления элементов в список.

  • Изучите передовые методы создания. Вы можете улучшить качество ответов, сделав список в запросе более длинным и разнообразным. Один из подходов заключается в том, чтобы начать с одного примера, позволить API создать дополнительные примеры, а затем выбрать наиболее подходящие примеры и добавить их в список. Несколько других высококачественных вариантов в примерах могут значительно повысить качество ответов.

Ведение бесед

Начиная с выпуска GPT-35-Turbo и GPT-4, рекомендуется создавать генерацию бесед и чат-ботов с помощью моделей, поддерживающих конечную точку завершения чата. Для моделей завершения чата и конечной точки требуется другая структура входных данных, чем конечная точка завершения.

API искусно ведет беседы с людьми и даже с самим собой. С помощью всего нескольких строк инструкций API может работать в качестве чат-бота для обслуживания клиентов, который интеллектуально отвечает на вопросы, не хлынув, или мудрого партнера по разговору, который делает шутки и каламбуры. Главное — объяснить API, как он должен вести себя, и привести несколько примеров.

В этой демонстрации API предоставляет роль ИИ, отвечающего на вопросы:

The following is a conversation with an AI assistant. The assistant is helpful, creative, clever, and very friendly.

Human: Hello, who are you?
AI: I am an AI created by OpenAI. How can I help you today?
Human: 

Давайте рассмотрим вариант чат-бота с именем "Крамер", забавный и несколько полезный виртуальный помощник. Чтобы помочь API понять характер роли, вы предоставляете несколько примеров вопросов и ответов. Достаточно всего лишь нескольких саркастических ответов, и API может подобрать шаблон и предоставить бесконечное количество аналогичных ответов.

Cramer is a chatbot that reluctantly answers questions.

###
User: How many pounds are in a kilogram?
Cramer: This again? There are 2.2 pounds in a kilogram. Please make a note of this.
###
User: What does HTML stand for?
Cramer: Was Google too busy? Hypertext Markup Language. The T is for try to ask better questions in the future.
###
User: When did the first airplane fly?
Cramer: On December 17, 1903, Wilbur and Orville Wright made the first flights. I wish they'd come and take me away.
###
User: Who was the first man in space?
Cramer: 

Рекомендации по проектированию бесед

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

  • Определите цель беседы. Как и в других запросах, вы описываете цель взаимодействия с API. В данном случае это "беседа". Эти входные данные подготавливают API к обработке последующих входных данных в соответствии с первоначальным намерением.

  • Сообщите API, как следует вести себя. Ключевым элементом этой демонстрации являются явные инструкции по взаимодействию API: "Помощник является полезным, творческим, умным и очень дружелюбным". Без ваших явных инструкций API может имитировать человека, с которым он взаимодействует. API может стать недружественным или проявлять другое нежелательное поведение.

  • Присвойте API удостоверение. На начальном этапе API отвечает как искусственный интеллект, созданный OpenAI. Хотя API не имеет встроенной идентификации, описание символа помогает API реагировать таким образом, насколько это возможно. Описания идентификаторов символов можно использовать и другими способами для создания чат-ботов разных типов. Если вы указываете API реагировать в качестве научного сотрудника в области биологии, вы получите интеллектуальные и вдумчивые комментарии от API, аналогичные ожидаемым от человека с таким опытом.

Преобразование текста

API — это языковая модель, которая знакома с различными способами использования слов и символов для выражения информации. Данные знаний поддерживают преобразование текста из естественного языка в код и перевод между другими языками и английским языком. API также может понимать содержимое на уровне, который позволяет ему обобщать, преобразовывать и выражать его различными способами. Рассмотрим несколько примеров.

Перевод с одного языка на другой

В этой демонстрации api описывается, как преобразовать фразы на английском языке во французский:

English: I do not speak French.
French: Je ne parle pas français.
English: See you later!
French: À tout à l'heure!
English: Where is a good restaurant?
French: Où est un bon restaurant?
English: What rooms do you have available?
French: Quelles chambres avez-vous de disponible?
English:

Этот пример работает, так как API уже имеет представление о французском языке. Вам не нужно пытаться преподавать язык в API. Достаточно предоставить достаточно примеров, которые помогут API понять ваш запрос на преобразование с одного языка на другой.

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

Преобразование текста в эмодзи

Эта демонстрация преобразует название фильма из текста в символы эмодзи. В этом примере показана адаптивность API для выбора шаблонов и работы с другими символами.

Carpool Time: 👨👴👩🚗🕒
Robots in Cars: 🚗🤖
Super Femme: 👸🏻👸🏼👸🏽👸🏾👸🏿
Webs of the Spider: 🕸🕷🕸🕸🕷🕸
The Three Bears: 🐻🐼🐻
Mobster Family: 👨👩👧🕵🏻‍♂️👲💥
Arrows and Swords: 🏹🗡🗡🏹
Snowmobiles:

Создание сводки текста

API может по-разному понять контекст текста и перефразировать его. В этой демонстрации API принимает блок текста и создает объяснение, понятное ребенку основного возраста. В этом примере показано, что API обладает глубоким пониманием языка.

My ten-year-old asked me what this passage means:
"""
A neutron star is the collapsed core of a massive supergiant star, which had a total mass of between 10 and 25 solar masses, possibly more if the star was especially metal-rich.[1] Neutron stars are the smallest and densest stellar objects, excluding black holes and hypothetical white holes, quark stars, and strange stars.[2] Neutron stars have a radius on the order of 10 kilometres (6.2 mi) and a mass of about 1.4 solar masses.[3] They result from the supernova explosion of a massive star, combined with gravitational collapse, that compresses the core past white dwarf star density to that of atomic nuclei.
"""

I rephrased it for him, in plain language a ten-year-old can understand:
"""

Рекомендации по созданию текстовых сводок

Сводные данные по тексту часто включают предоставление больших объемов текста в API. Чтобы предотвратить смещение API после обработки большого блока текста, следуйте приведенным ниже рекомендациям.

  • Заключите текст для сводных данных в тройные двойные кавычки. В этом примере вы вводите три двойные кавычки ("") в отдельной строке до и после блока текста для формирования сводки. Этот стиль форматирования четко определяет начало и конец большого блока текста для обработки.

  • Объяснить намерение сводки и целевую аудиторию до и после сводки. Обратите внимание, что этот пример отличается от других тем, что вы предоставляете инструкции API два раза: до и после текста для обработки. Избыточные инструкции помогают API сосредоточиться на предполагаемой задаче и избежать смещения.

Полный ввод частичного текста и кода

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

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

Vertical farming provides a novel solution for producing food locally, reducing transportation costs and

В следующей демонстрации показано, как использовать функцию завершения для написания React компонентов кода. Сначала вы отправляете код в API. Запись кода останавливается с помощью открытой круглых скобок (. API интерпретирует неполный код как триггер для завершения HeaderComponent определения константы. API может завершить это определение кода, так как он имеет представление о соответствующей React библиотеке.

import React from 'react';
const HeaderComponent = () => (

Рекомендации по созданию завершений

Ниже приведены некоторые полезные рекомендации по использованию API для создания текста и завершения кода.

  • Понизите значение Температура, чтобы обеспечить фокус на API. Задайте для параметра более низкие Temperature значения, чтобы указать API предоставлять ответы, ориентированные на намерение, описанное в запросе.

  • Повышение температуры, чтобы разрешить API касание. Задайте более высокие значения для Temperature параметра, чтобы позволить API реагировать по касательной на намерение, описанное в запросе.

  • Используйте модели Azure OpenAI GPT-35-Turbo и GPT-4. Для задач, требующих понимания или создания кода, корпорация Майкрософт рекомендует использовать GPT-35-Turbo модели Azure OpenAI и GPT-4 . В этих моделях используется новый формат завершения чата.

Создание фактических ответов

API получил знания, основанные на фактических данных, проверенных во время обучения. Он использует эти изученные данные для формирования ответов. Однако API также имеет возможность реагировать таким образом, который звучит верно, но на самом деле, сфабриковано.

Существует несколько способов ограничить вероятность того, что API будет создавать ответ в ответ на ваши входные данные. Вы можете определить основу для истинного и фактического ответа, чтобы API проектирует свой ответ на основе ваших данных. Вы также можете задать низкое Temperature значение вероятности и показать API, как реагировать, когда данные недоступны для фактического ответа.

В приведенной ниже демонстрации показано, как научить API отвечать более фактическим образом. Вы предоставляете API с примерами вопросов и ответов, которые он понимает. Вы также предоставляете примеры вопросов ("Q"), которые они могут не распознать, и использовать вопросительный знак для вывода ответа ("A"). Этот подход учит API, как отвечать на вопросы, на которые он не может ответить фактически.

В качестве меры безопасности вы устанавливаете Temperature вероятность нулевой, чтобы API с большей вероятностью ответил вопросительный знак (?), если есть сомнения в истинном и фактическом ответе.

Q: Who is Batman?
A: Batman is a fictional comic book character.

Q: What is torsalplexity?
A: ?

Q: What is Devz9?
A: ?

Q: Who is George Lucas?
A: George Lucas is an American film director and producer famous for creating Star Wars.

Q: What is the capital of California?
A: Sacramento.

Q: What orbits the Earth?
A: The Moon.

Q: Who is Egad Debunk?
A: ?

Q: What is an atom?
A: An atom is a tiny particle that makes up everything.

Q: Who is Alvan Muntz?
A: ?

Q: What is Kozar-09?
A: ?

Q: How many moons does Mars have?
A: Two, Phobos and Deimos.

Q:

Рекомендации по созданию фактических ответов

Давайте рассмотрим рекомендации, которые помогут ограничить вероятность того, что API приготовит ответ:

  • Предоставление достоверной информации для API. Проинструктируйте API о том, что следует использовать в качестве основы для создания истинного и фактического ответа на основе вашего намерения. Если вы предоставляете API текст для ответа на вопросы (например, запись Википедии), API с меньшей вероятностью будет создавать ответ.

  • Используйте низкую вероятность. Задайте низкое Temperature значение вероятности, чтобы API оставался сосредоточенным на вашем намерении и не переходил к созданию сфабриковатого или смешаемого ответа.

  • Покажите API, как отвечать с сообщением "Я не знаю". Вы можете ввести примеры вопросов и ответов, которые учат API использовать конкретный ответ на вопросы, на которые не удается найти фактический ответ. В этом примере вы научите API отвечать вопросительным знаком (?), когда не удается найти соответствующие данные. Этот подход также помогает API учиться, когда ответ "Я не знаю" является более "правильным", чем составление ответа.

Работа с кодом

Серия моделей Codex является потомком нашей базовой серии GPT-3 OpenAI, которая была обучена как на естественном языке, так и на миллиардах строк кода. Лучше всего такие модели разбираются в Python, но хорошо понимают и более десятка других языков, в том числе C#, JavaScript, Go, Perl, PHP, Ruby, Swift, TypeScript, SQL и даже Shell.

Дополнительные сведения о создании завершений кода см. в статье Модели Codex и служба Azure OpenAI.

Дальнейшие действия