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


Узнайте, как создавать или манипулировать текстом с помощью API устаревших завершений

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

Внимание

Если вам не требуется конечная точка завершения, рекомендуется использовать конечную точку завершения чата, которая позволяет воспользоваться новейшими моделями, такими как GPT-4o, GPT-4o mini и GPT-4 Turbo.

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

write a tagline for an ice cream shop

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

we serve up smiles with every scoop!

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

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

Примечание.

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

Запросы конструктора

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

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

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

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

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

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

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

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

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

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

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

Чтобы создать классификатор текста с помощью 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:

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

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

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

  • Показать 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 может выполняться как чат-бот службы клиентов, который интеллектуально отвечает на вопросы, не получая беглого, или мудрый партнер по разговору, который делает шутки и puns. Главное — объяснить 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 реагировать таким образом, что это тангенциальное намерение, описанное в запросе.

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

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

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 Service.

Следующие шаги

  • Узнайте, как работать с моделями GPT-35-Turbo и GPT-4.
  • Дополнительные сведения о моделях службы Azure OpenAI.