Trabalhar com finalizações de texto no Azure OpenAI

Concluído

Os modelos GPT-35-Turbo e GPT-4 são modelos de linguagem otimizados para interfaces de conversação. Os modelos comportam-se de forma diferente dos modelos GPT-3 mais antigos. Os modelos anteriores eram text-in e text-out, o que significa que eles aceitavam uma string de prompt e retornavam uma conclusão para anexar ao prompt como você acabou de aprender.

No entanto, os modelos GPT-35-Turbo e GPT-4 são conversa-in e message-out. Os modelos esperam entrada formatada em um formato de transcrição específico semelhante ao bate-papo e retornam uma conclusão que representa uma mensagem escrita pelo modelo no chat.

GPT-35-Turbo e GPT-4 ainda podem aceitar e gerar finalizações de texto, mas onde eles brilham é com o chat.

No Azure OpenAI, há duas opções diferentes para interagir com esses tipos de modelos:

  • API de conclusão de chat.
  • API de conclusão com Chat Markup Language (ChatML).

A API de conclusão de bate-papo é uma nova API dedicada para interagir com os modelos GPT-35-Turbo e GPT-4 e vamos usá-la ao longo daqui.

Noções básicas sobre as funções da API de conclusão de bate-papo

A OpenAI treinou os modelos GPT-35-Turbo e GPT-4 para aceitar entradas formatadas como uma conversa. Cada entrada ou prompt enviado para o modelo e cada resposta retornada pelo modelo é adicionada a uma conversa geral na API de conclusão do bate-papo.

A API de Conclusão de Chat refere-se aos prompts de entrada e respostas de saída como mensagens.

O modelo aceita uma matriz de objetos de mensagem com uma conversa organizada por funções. Existem três tipos de funções: Sistema, Usuário e Assistente.

A função do Sistema

A função do sistema, também conhecida como mensagem do sistema, é incluída no início da matriz. Esta mensagem fornece as instruções iniciais para o modelo. Você pode fornecer várias informações na função do sistema, incluindo:

  • Breve descrição do assistente
  • Traços de personalidade do assistente
  • Instruções ou regras que você gostaria que o assistente seguisse
  • Dados ou informações necessários para o modelo, como perguntas relevantes de uma FAQ

Você pode personalizar a função do sistema para seu caso de uso ou apenas incluir instruções básicas. A função/mensagem do sistema é opcional, mas recomenda-se incluir pelo menos uma básica para obter os melhores resultados.

As funções de usuário e assistente

A conversa acontece entre um usuário e o assistente. O usuário é a pessoa que insere prompts e interage com o modelo. As respostas do modelo são representadas pela função do sistema.

A mensagem que o usuário envia para o modelo deve seguir as práticas recomendadas para projetar prompts, a fim de obter respostas da mais alta qualidade.

Exemplos de prompt de mensagem

Aqui estão alguns exemplos de diferentes estilos de prompts que você pode usar com os modelos GPT-35-Turbo e GPT-4. Os exemplos são apenas um ponto de partida e você pode experimentar diferentes prompts para personalizar o comportamento.

Exemplo básico

Se você quiser que o modelo GPT-35-Turbo se comporte de forma semelhante ao chat.openai.com, você pode usar uma mensagem básica do sistema como "Assistente é um modelo de linguagem grande treinado pela OpenAI".

Aprenderemos como usar o SDK .NET da API de conclusão de bate-papo na próxima unidade, por enquanto ficaremos com nomes de variáveis como exemplo.


string systemMessage = "Assistant is a large language model trained by OpenAI";
string userMessage = "Who were the founders of Microsoft?";

Exemplo com instruções

Para alguns cenários, você pode querer dar instruções adicionais ao modelo para definir guarda-corpos para o que o modelo é capaz de fazer.

string systemMessage = """
Assistant is an intelligent chatbot designed to help users answer their tax related questions.
Instructions: 
- Only answer questions related to taxes. 
- If you're unsure of an answer, you can say "I don't know" or "I'm not sure" and recommend users go to the IRS website for more information. 
""";

string userMessage = "When are my taxes due?";

Gerenciando conversas

O modelo não tem memória, por isso precisa de uma transcrição atualizada a cada nova pergunta com todas as perguntas e respostas, caso contrário perderá o contexto.

Isso significa que você precisará enviar a conversa completa e atualizada para o modelo toda vez que interagir com ele e, em seguida, o limite de token para cada modelo poderá ser facilmente atingido.

O limite de token para gpt-35-turbo é de 4096 tokens, enquanto os limites de token para gpt-4 e gpt-4-32k são 8192 e 32768, respectivamente. Você deve permanecer abaixo desses limites, caso contrário, você receberá um erro.

Você pode acompanhar a contagem de tokens e remover as mensagens mais antigas da matriz enviada para o modelo. É melhor sempre manter a mensagem do sistema e remover apenas as mensagens do assistente ou do usuário. No entanto, com o tempo, esse método de gerenciamento da conversa pode fazer com que a qualidade da conversa se degrade à medida que o contexto de partes anteriores da conversa é perdido.

Como alternativa, uma vez que o limite de token é atingido, você pode solicitar que o usuário inicie uma nova conversa.

Verifique o seu conhecimento

1.

Qual é a importância do papel do sistema?