Saiba como gerar ou manipular texto

O Serviço OpenAI do Azure fornece um ponto final de conclusão que pode ser utilizado para uma grande variedade de tarefas. O ponto final fornece uma interface de texto simples, mas poderosa, de saída de texto para qualquer modelo openAI do Azure. Para acionar a conclusão, introduz algum texto como um pedido. O modelo gera a conclusão e tenta corresponder ao seu contexto ou padrão. Suponha que fornece o pedido "Como o Descartes disse, penso eu, portanto" à API. Para este pedido, o Azure OpenAI devolve o ponto final de conclusão "Sou" com alta probabilidade.

A melhor forma de começar a explorar as conclusões é através do recreio no Azure OpenAI Studio. É uma caixa de texto simples onde introduz um pedido para gerar uma conclusão. Pode começar com um pedido simples como este:

write a tagline for an ice cream shop

Depois de introduzir o pedido, o Azure OpenAI apresenta a conclusão:

we serve up smiles with every scoop!

Os resultados de conclusão que vê podem ser diferentes porque a API OpenAI do Azure produz uma saída nova para cada interação. Poderá obter uma conclusão ligeiramente diferente sempre que chamar a API, mesmo que o pedido permaneça igual. Pode controlar este comportamento com a Temperature definição .

A interface de texto simples de saída de texto significa que pode "programar" o modelo do Azure OpenAI ao fornecer instruções ou apenas alguns exemplos do que gostaria que fizesse. Geralmente, o sucesso da saída depende da complexidade da tarefa e da qualidade do pedido. Uma regra geral é pensar em como escreveria um problema de palavra para um estudante pré-adolescente resolver. Um pedido bem escrito fornece informações suficientes para que o modelo saiba o que pretende e como deve responder.

Nota

Os dados de preparação do modelo podem ser diferentes para cada tipo de modelo. Atualmente, os dados de preparação do modelo mais recente prolongam-se apenas até setembro de 2021. Consoante a sua linha de comandos, o modelo poderá não ter conhecimento de eventos atuais relacionados.

Pedidos de estrutura

Os modelos do Serviço Azure OpenAI podem fazer tudo, desde gerar histórias originais até realizar análises de texto complexas. Como podem fazer tantas coisas, tem de ser explícito para mostrar o que pretende. Mostrar, não apenas dizer, é muitas vezes o segredo para uma boa linha de comandos.

Os modelos tentam prever o que pretende da linha de comandos. Se introduzir o pedido "Dê-me uma lista de raças de gatos", o modelo não assume automaticamente que está a pedir apenas uma lista. Podes estar a começar uma conversa em que as tuas primeiras palavras são "Dá-me uma lista de raças de gatos" seguidas de "e eu digo-te quais são as que eu gosto." Se o modelo apenas assumisse que queria uma lista de gatos, não seria tão bom na criação, classificação ou outras tarefas de conteúdo.

Diretrizes para criar pedidos robustos

Existem três diretrizes básicas para criar pedidos úteis:

  • Mostrar e contar. Torne claro o que pretende através de instruções, exemplos ou uma combinação dos dois. Se quiser que o modelo classifique uma lista de itens por ordem alfabética ou que classifique um parágrafo por sentimento, inclua estes detalhes no pedido para mostrar o modelo.

  • Forneça dados de qualidade. Se estiver a tentar criar um classificador ou a fazer com que o modelo siga um padrão, certifique-se de que existem exemplos suficientes. Certifique-se de que lê os seus exemplos. O modelo é suficientemente inteligente para resolver erros ortográficos básicos e dar-lhe uma resposta significativa. Por outro lado, o modelo pode assumir que os erros são intencionais, o que pode afetar a resposta.

  • Verifique as suas definições. As definições de probabilidade, como Temperature e Top P, controlam o quão determinista o modelo está na geração de uma resposta. Se estiver a pedir uma resposta em que existe apenas uma resposta correta, deve especificar valores mais baixos para estas definições. Se estiver à procura de uma resposta que não seja óbvia, poderá querer utilizar valores mais elevados. O erro mais comum que os utilizadores cometem com estas definições é assumir que controlam a "inteligência" ou a "criatividade" na resposta do modelo.

Resolução de problemas de pedidos

Se estiver a ter problemas para que a API funcione conforme esperado, veja os seguintes pontos para a sua implementação:

  • É claro qual deve ser a geração pretendida?
  • Existem exemplos suficientes?
  • Viu os seus exemplos de erros? (A API não lhe diz diretamente.)
  • Está a utilizar as Temperature definições de probabilidade e Top P corretamente?

Classificar texto

Para criar um classificador de texto com a API, forneça uma descrição da tarefa e forneça alguns exemplos. Nesta demonstração, irá mostrar à API como classificar o sentimento das mensagens sms. O sentimento expressa a sensação ou expressão geral no texto.

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:

Diretrizes para estruturar classificadores de texto

Esta demonstração revela várias diretrizes para conceber classificadores:

  • Utilize linguagem simples para descrever as entradas e saídas. Utilize linguagem simples para a entrada "Mensagem" e o valor esperado que expressa o "Sentimento". Para melhores práticas, comece com descrições de idioma simples. Muitas vezes, pode utilizar teclas ou abreviaturas para indicar a entrada e a saída ao criar o pedido, mas é melhor começar por ser o mais descritivo possível. Em seguida, pode trabalhar para trás e remover palavras adicionais, desde que o desempenho da linha de comandos seja consistente.

  • Mostrar à API como responder a qualquer caso. A demonstração fornece vários resultados: "Positivo", "Negativo" e "Neutro". Apoiar um resultado neutro é importante porque há muitos casos em que mesmo um humano pode ter dificuldade em determinar se algo é positivo ou negativo.

  • Utilize emojis e texto de acordo com a expressão comum. A demonstração mostra que o classificador pode ser uma mistura de texto e emoji 👍. A API lê emojis e até pode converter expressões de e para as mesmas. Para obter a melhor resposta, utilize formas comuns de expressão para os seus exemplos.

  • Utilize menos exemplos para tarefas familiares. Este classificador fornece apenas alguns exemplos porque a API já tem uma compreensão do sentimento e do conceito de uma mensagem de texto. Se estiver a criar um classificador para algo com o qual a API pode não estar familiarizada, poderá ser necessário fornecer mais exemplos.

Vários resultados de uma única chamada à API

Agora que compreende como criar um classificador, vamos expandir a primeira demonstração para torná-la mais eficiente. Quer ser capaz de utilizar o classificador para obter múltiplos resultados de volta a partir de uma única chamada à 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.

Esta demonstração mostra à API como classificar mensagens de texto por sentimento. Fornece uma lista numerada de mensagens e uma lista de classificações de sentimentos com o mesmo índice de números. A API utiliza as informações na primeira demonstração para saber como classificar o sentimento de uma única mensagem de texto. Na segunda demonstração, o modelo aprende a aplicar a classificação de sentimentos a uma lista de mensagens sms. Esta abordagem permite que a API classifique cinco (e ainda mais) mensagens sms numa única chamada à API.

Importante

Quando pede à API para criar listas ou avaliar texto, é importante ajudar a API a evitar desvios. Seguem-se alguns pontos a seguir:

  • Preste atenção aos seus valores para as Top P definições de probabilidade ou Temperature .
  • Execute vários testes para se certificar de que as definições de probabilidade estão corretamente calibradas.
  • Não utilize listas longas. Listas longas podem levar a desvios.

Acionar ideias

Uma das tarefas mais poderosas mas mais simples que pode realizar com a API é gerar novas ideias ou versões de entrada. Suponha que está a escrever um romance misterioso e precisa de algumas ideias de história. Pode dar à API uma lista de algumas ideias e esta tenta adicionar mais ideias à sua lista. A API pode criar planos de negócio, descrições de carateres, slogans de marketing e muito mais a partir de apenas um pequeno punhado de exemplos.

Na próxima demonstração, vai utilizar a API para criar mais exemplos sobre como utilizar a realidade virtual na sala de aula:

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.

Esta demonstração fornece à API uma descrição básica para a sua lista, juntamente com um item de lista. Em seguida, utilize um pedido incompleto de "2" para acionar uma resposta da API. A API interpreta a entrada incompleta como um pedido para gerar itens semelhantes e adicioná-los à sua lista.

Diretrizes para acionar ideias

Embora esta demonstração utilize um pedido simples, realça várias diretrizes para acionar novas ideias:

  • Explicar a intenção da lista. Semelhante à demonstração do classificador de texto, começa por indicar à API sobre o que se trata a lista. Esta abordagem ajuda a API a concentrar-se na conclusão da lista em vez de tentar determinar padrões ao analisar o texto.

  • Defina o padrão para os itens na lista. Quando fornece uma descrição de uma frase, a API tenta seguir esse padrão ao gerar novos itens para a lista. Se quiser uma resposta mais verbosa, tem de estabelecer essa intenção com uma entrada de texto mais detalhada para a API.

  • Pedir à API uma entrada incompleta para acionar novas ideias. Quando a API encontra texto que parece incompleto, como o texto de pedido "2",primeiro tenta determinar qualquer texto que possa concluir a entrada. Uma vez que a demonstração tinha um título de lista e um exemplo com o número "1" e o texto que acompanhava, a API interpretou o texto de pedido incompleto "2" como um pedido para continuar a adicionar itens à lista.

  • Explore técnicas de geração avançada. Pode melhorar a qualidade das respostas ao criar uma lista mais diversificada no seu pedido. Uma abordagem é começar com um exemplo, permitir que a API gere mais exemplos e, em seguida, selecionar os exemplos que mais gosta e adicioná-los à lista. Mais algumas variações de alta qualidade nos seus exemplos podem melhorar significativamente a qualidade das respostas.

Realizar conversações

A partir do lançamento de GPT-35-Turbo e GPT-4, recomendamos que crie chatbots e geração de conversação com modelos que suportem o ponto final de conclusão do chat. Os modelos de conclusão de chat e o ponto final requerem uma estrutura de entrada diferente do ponto final de conclusão.

A API é adepta a continuar conversas com humanos e até consigo mesma. Com apenas algumas linhas de instrução, a API pode funcionar como um chatbot de suporte ao cliente que responde inteligentemente a perguntas sem ficar esticada, ou um parceiro de conversação inteligente que faz piadas e trocadilhos. A chave é indicar à API como deve comportar-se e, em seguida, fornecer alguns exemplos.

Nesta demonstração, a API fornece a função de uma IA que responde a perguntas:

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: 

Vamos analisar uma variação para um chatbot chamado "Cramer", um divertido e algo útil assistente virtual. Para ajudar a API a compreender o caráter da função, forneça alguns exemplos de perguntas e respostas. Bastam apenas algumas respostas sarcásticas e a API pode captar o padrão e fornecer um número interminável de respostas semelhantes.

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: 

Diretrizes para conceber conversações

As nossas demonstrações mostram a facilidade com que pode criar um chatbot capaz de continuar uma conversação. Embora pareça simples, esta abordagem segue várias diretrizes importantes:

  • Defina a intenção da conversação. Tal como os outros pedidos, descreve a intenção da interação com a API. Neste caso, "uma conversa". Esta entrada prepara a API para processar a entrada subsequente de acordo com a intenção inicial.

  • Diga à API como se comportar. Um dos principais detalhes nesta demonstração são as instruções explícitas sobre como a API deve interagir: "O assistente é útil, criativo, inteligente e muito amigável." Sem as suas instruções explícitas, a API pode desviar-se e imitar o humano com o qual está a interagir. A API pode tornar-se pouco amigável ou apresentar outro comportamento indesejável.

  • Dê uma identidade à API. No início, tem a API a responder como uma IA criada pelo OpenAI. Embora a API não tenha uma identidade intrínseca, a descrição do caráter ajuda a API a responder de uma forma tão próxima da verdade quanto possível. Pode utilizar descrições de identidade de carateres de outras formas para criar diferentes tipos de chatbots. Se disser à API para responder como um cientista de investigação em biologia, receberá comentários inteligentes e atenciosos da API semelhantes ao esperado por alguém com esse passado.

Transformar o texto

A API é um modelo de linguagem que está familiarizado com várias formas de utilizar palavras e identidades de carateres para expressar informações. Os dados de conhecimento suportam a transformação de texto de linguagem natural em código e a tradução entre outros idiomas e o inglês. A API também é capaz de compreender o conteúdo num nível que lhe permite resumir, converter e expressá-lo de formas diferentes. Vejamos alguns exemplos.

Traduzir de um idioma para outro

Esta demonstração instrui a API sobre como converter expressões em inglês em francês:

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:

Este exemplo funciona porque a API já tem uma compreensão do idioma francês. Não precisa de tentar ensinar o idioma à API. Só precisa de fornecer exemplos suficientes para ajudar a API a compreender o seu pedido de conversão de um idioma para outro.

Se quiser traduzir do inglês para um idioma que a API não reconhece, tem de fornecer à API mais exemplos e um modelo otimizado que possa produzir traduções fluentes.

Converter entre texto e emoji

Esta demonstração converte o nome de um filme de texto em carateres de emoji. Este exemplo mostra a adaptabilidade da API para recolher padrões e trabalhar com outros carateres.

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

Resumir texto

A API pode compreender o contexto do texto e refragá-lo de diferentes formas. Nesta demonstração, a API utiliza um bloco de texto e cria uma explicação que é compreensível por uma criança da idade primária. Este exemplo ilustra que a API tem uma compreensão profunda da linguagem.

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

Diretrizes para a produção de resumos de texto

O resumo de texto envolve frequentemente o fornecimento de grandes quantidades de texto à API. Para ajudar a impedir que a API desfase após processar um grande bloco de texto, siga estas diretrizes:

  • Coloque o texto entre aspas triplas para resumir. Neste exemplo, introduz três aspas (""") numa linha separada antes e depois do bloco de texto a resumir. Este estilo de formatação define claramente o início e o fim do grande bloco de texto a processar.

  • Explique a intenção de resumo e a audiência de destino antes e depois do resumo. Tenha em atenção que este exemplo difere dos outros porque fornece instruções à API duas vezes: antes e depois do texto a processar. As instruções redundantes ajudam a API a concentrar-se na tarefa pretendida e a evitar desvios.

Concluir entradas parciais de texto e código

Embora todos os pedidos resultem em conclusões, pode ser útil pensar na conclusão do texto como a sua própria tarefa em instâncias em que pretende que a API recolhia onde ficou.

Nesta demonstração, irá fornecer um pedido de texto à API que parece estar incompleta. Para a entrada de texto na palavra "e". A API interpreta o texto incompleto como um acionador para continuar a sua preparação de pensamento.

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

Esta demonstração seguinte mostra como pode utilizar a funcionalidade de conclusão para ajudar a escrever React componentes de código. Comece por enviar algum código para a API. Para a entrada de código com um parêntese (aberto . A API interpreta o código incompleto como um acionador para concluir a HeaderComponent definição constante. A API pode concluir esta definição de código porque tem uma compreensão da biblioteca correspondente React .

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

Diretrizes para gerar conclusões

Seguem-se algumas diretrizes úteis para utilizar a API para gerar conclusões de texto e código:

  • Reduza a Temperatura para manter a API focada. Defina valores mais baixos para a Temperature definição para instruir a API a fornecer respostas focadas na intenção descrita no seu pedido.

  • Aumente a Temperatura para permitir que a API se tangente. Defina valores mais elevados para a Temperature definição para permitir que a API responda de forma tangencial à intenção descrita no seu pedido.

  • Utilize os modelos GPT-35-Turbo e GPT-4 do Azure OpenAI. Para tarefas que envolvam compreender ou gerar código, a Microsoft recomenda a utilização dos modelos openAI do Azure e GPT-4 do GPT-35-Turbo Azure. Estes modelos utilizam o novo formato de conclusão de chat.

Gerar respostas factuais

A API aprendeu conhecimentos baseados em dados reais revistos durante a sua preparação. Utiliza estes dados aprendidos para formar as suas respostas. No entanto, a API também tem a capacidade de responder de uma forma que soa verdadeira, mas é, de facto, fabricada.

Existem algumas formas de limitar a probabilidade de a API criar uma resposta em resposta à sua entrada. Pode definir a base para uma resposta verdadeira e factual, pelo que a API redigi a resposta dos seus dados. Também pode definir um valor de baixa Temperature probabilidade e mostrar à API como responder quando os dados não estão disponíveis para uma resposta factual.

A demonstração seguinte mostra como ensinar a API a responder de uma forma mais factual. Fornece à API exemplos de perguntas e respostas que compreende. Também fornece exemplos de perguntas ("Q") que podem não reconhecer e utilizar um ponto de interrogação para a saída de resposta ("A"). Esta abordagem ensina a API a responder a perguntas que não pode responder factualmente.

Como salvaguarda, define a Temperature probabilidade como zero para que a API seja mais susceptível de responder com um ponto de interrogação (?) se houver alguma dúvida sobre a resposta verdadeira e factual.

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:

Diretrizes para gerar respostas factuais

Vamos rever as diretrizes para ajudar a limitar a probabilidade de a API criar uma resposta:

  • Forneça uma verdade básica para a API. Instrua a API sobre o que utilizar como base para criar uma resposta verdadeira e factual com base na sua intenção. Se fornecer à API um corpo de texto para utilizar para responder a perguntas (como uma entrada da Wikipédia), a API é menos provável de fabricar uma resposta.

  • Utilize uma baixa probabilidade. Defina um valor de baixa Temperature probabilidade para que a API se mantenha focada na sua intenção e não desfaça para criar uma resposta fabricada ou confabulada.

  • Mostre à API como responder com "Não sei". Pode introduzir perguntas e respostas de exemplo que ensinem a API a utilizar uma resposta específica para perguntas para as quais não consegue encontrar uma resposta factual. No exemplo, ensina a API a responder com um ponto de interrogação (?) quando não consegue encontrar os dados correspondentes. Esta abordagem também ajuda a API a aprender quando responder com "Não sei" é mais "correta" do que inventar uma resposta.

Trabalhar com código

A série de modelos Codex é um descendente da série GPT-3 base da OpenAI que foi preparada em linguagem natural e biliões de linhas de código. É mais capaz em Python e proficiente em mais de uma dezena de linguagens, incluindo C#, JavaScript, Go, Perl, PHP, Ruby, Swift, TypeScript, SQL e até Shell.

Para obter mais informações sobre como gerar conclusões de código, veja Codex models (Modelos Codex) e Azure OpenAI Service (Serviço OpenAI do Azure).

Passos seguintes