Azure OpenAI On Your Data

Use este artigo para saber mais sobre o OpenAI do Azure On Your Data, que torna mais fácil para os desenvolvedores conectar, ingerir e basear seus dados corporativos para criar copilotos personalizados (versão prévia) rapidamente. Ele aumenta a compreensão do usuário, agiliza a conclusão de tarefas, melhora a eficiência operacional e auxilia na tomada de decisões.

O que é o Azure OpenAI On Your Data

O OpenAI do Azure On Your Data permite que você execute modelos avançados de IA, como o GPT-35-Turbo e o GPT-4, em seus próprios dados corporativos sem a necessidade de treinar ou ajustar modelos. Você pode conversar e analisar seus dados com maior precisão. Você pode especificar fontes para dar suporte às respostas com base nas informações mais recentes disponíveis em suas fontes de dados designadas. Você pode acessar o OpenAI do Azure On Your Data usando uma API REST, por meio do SDK ou da interface baseada na Web no Estúdio OpenAI do Azure. Você também pode criar um aplicativo Web que se conecte aos seus dados para habilitar uma solução de chat aprimorada ou implantá-la diretamente como um copiloto no Copilot Studio (versão prévia).

Introdução

Para começar, conecte sua fonte de dados usando o Estúdio OpenAI do Azure e comece a fazer perguntas e conversar com seus dados.

Observação

Para começar, você precisa ter acesso ao OpenAI do Azure aprovado e ter um recurso do Serviço OpenAI do Azure em uma região de suporte com os modelos gpt-35-turbo ou gpt-4.

Controles de acesso baseado em função do Azure (RBAC do Azure) para adicionar fontes de dados

Para usar totalmente o Azure OpenAI On Your Data, você precisa definir uma ou mais funções RBAC do Azure. Consulte Usar o Azure OpenAI On Your Data com segurança para obter mais informações.

Formatos de dados e tipos de arquivo

O OpenAI do Azure On Your Data dá suporte para os seguintes tipos de arquivo:

  • .txt
  • .md
  • .html
  • .docx
  • .pptx
  • .pdf

Há um limite de upload, e há algumas advertências sobre a estrutura do documento e como isso pode afetar a qualidade das respostas do modelo:

  • Se você estiver convertendo dados de um formato não compatível para um formato compatível, otimize a qualidade da resposta do modelo garantindo a conversão:

    • Não resulte em uma perda significativa de dados.
    • Não adicione ruído inesperado aos seus dados.
  • Se os seus arquivos tiverem formatação especial, como tabelas e colunas, ou marcadores, prepare os dados com o script de preparação de dados disponível no GitHub.

  • Para documentos e conjuntos de dados com texto longo, você deve usar o script de preparação de dados disponível. O script particiona os dados para que as respostas do modelo sejam mais precisas. Esse script também dá suporte a imagens e arquivos PDF digitalizados.

Fontes de dados com suporte

Você precisa se conectar a uma fonte de dados para carregar seus dados. Quando você deseja usar seus dados para conversar com um modelo OpenAI do Azure, seus dados são divididos em um índice de pesquisa para que os dados relevantes possam ser encontrados com base nas consultas do usuário.

O Banco de dados vetorial integrado ao Azure Cosmos DB for MongoDB baseado em vCore dá suporte nativo à integração ao Azure OpenAI On Your Data.

Para algumas fontes de dados, como o upload de arquivos do seu computador local (versão prévia) ou dados contidos em uma conta de armazenamento de blobs (versão prévia), a Pesquisa de IA do Azure é usada. Quando você escolhe as seguintes fontes de dados, seus dados são ingeridos em um índice da Pesquisa de IA do Azure.

Dica

Se você usar o Azure Cosmos DB (exceto sua API baseada em vCore para MongoDB), poderá estar qualificado para a oferta do Azure AI Advantage, que fornece o equivalente a até US$ 6.000 em créditos de taxa de transferência do Azure Cosmos DB.

Fonte de dados Descrição
Azure AI Search Use um índice existente da Pesquisa de IA do Azure com o OpenAI do Azure On Your Data.
Azure Cosmos DB A API do Azure Cosmos DB para Postgres e a API baseada em vCore para MongoDB oferecem indexação de vetores integrada nativamente; portanto, eles não exigem o IA do Azure Search. No entanto, as suas outras APIs requerem o IA do Azure Search para indexação de vetores. O banco de dados vetorial nativamente integrado do Azure Cosmos DB for NoSQL será lançado em meados de 2024.
Carregar arquivos (versão prévia) Faça upload de arquivos do seu computador local para serem armazenados em um banco de dados do Armazenamento de Blobs do Azure e ingeridos na Pesquisa de IA do Azure.
URL/Endereço Web (versão prévia) O conteúdo da Web das URLs é armazenado no Armazenamento de Blobs do Azure.
Armazenamento de Blobs do Azure (versão prévia) Faça upload de arquivos do Armazenamento de Blobs do Azure para serem ingeridos em um índice da Pesquisa de IA do Azure.

Diagrama de serviços de indexação vetorial.

Pré-requisitos

Limitações

Preparação de dados

Use o script fornecido no GitHub para preparar seus dados.

Mapeamento de campos de índice

Ao adicionar a fonte de dados do Azure Cosmos DB for MongoDB baseado em vCore, você pode especificar campos de dados para mapear adequadamente seus dados para recuperação.

  • Dados de conteúdo (obrigatório): um ou mais campos fornecidos a serem usados para fundamentar o modelo em seus dados. Para vários campos, separe os valores com vírgulas, sem espaços.
  • Nome do arquivo/título/URL: usado para exibir mais informações quando um documento é referenciado no chat.
  • Campos de vetor (obrigatório): selecione o campo no banco de dados que contém os vetores.

Uma captura de tela mostrando as opções de mapeamento de campos de índice para Mongo DB.

Implantar em um copiloto (versão prévia) ou aplicativo Web

Depois de conectar seu OpenAI do Azure aos seus dados, você poderá implantá-lo usando o botão Implantar no estúdio do Azure OpenAI.

Captura de tela mostrando o botão de implantação de modelo no Azure OpenAI Studio.

Isso dá a você a opção de implantar um aplicativo Web autônomo para que você e seus usuários interajam com os modelos de chat usando uma interface gráfica do usuário. Consulte Usar o aplicativo Web do OpenAI do Azure para obter mais informações.

Você também pode implantar em um copiloto no Copilot Studio (versão prévia) diretamente do Estúdio do OpenAI do Azure, permitindo que você traga experiências de conversação para vários canais, como: Microsoft Teams, sites, Dynamics 365 e outros canais do Serviço de Bot do Azure. O locatário usado no serviço OpenAI do Azure e no Copilot Studio (versão prévia) deve ser o mesmo. Para obter mais informações, confira Usar uma conexão com o Azure OpenAI On Your Data.

Observação

A implantação em um copiloto no Copilot Studio (versão prévia) está disponível apenas nas regiões dos EUA.

Use o Azure OpenAI On Your Data com segurança

Você pode usar o OpenAI do Azure On Your Data de forma segura, protegendo dados e recursos com o controle de acesso baseado em função do Microsoft Entra ID, redes virtuais e pontos de extremidade privados. Você também pode restringir os documentos que podem ser usados em respostas para diferentes usuários com os filtros de segurança da Pesquisa de IA do Azure. Consulte Usar com segurança o Azure OpenAI On Your Data.

Práticas recomendadas

Use as seções a seguir para saber como melhorar a qualidade das respostas fornecidas pelo modelo.

Parâmetro de ingestão

Quando os dados forem ingeridos na Pesquisa de IA do Azure, será possível modificar as seguintes configurações adicionais no estúdio ou na API de ingestão.

Tamanho da parte (versão prévia)

O Azure OpenAI On Your Data processa os documentos dividindo-os em partes antes de ingeri-los. O tamanho da parte é o tamanho máximo em termos do número de tokens de qualquer parte no índice de pesquisa. O tamanho da parte e o número de documentos recuperados juntos controlam a quantidade de informações (tokens) incluídas no prompt enviado para o modelo. Em geral, o tamanho da parte multiplicado pelo número de documentos recuperados é o número total de tokens enviados ao modelo.

Definir o tamanho da parte para o seu caso de uso

O tamanho da parte padrão é de 1.024 tokens. No entanto, dada a exclusividade dos seus dados, talvez um tamanho de parte diferente (como 256, 512 ou 1.536 tokens) seja mais eficaz.

Ajustar o tamanho do bloco pode melhorar o desempenho do chatbot. Embora encontrar o tamanho ideal da parte exija alguma tentativa e erro, comece considerando a natureza do conjunto de dados. Um tamanho de parte menor geralmente é melhor para conjuntos de dados com fatos diretos e menos contexto, enquanto um tamanho de parte maior poderá ser favorável para informações mais contextuais, embora possa afetar o desempenho da recuperação.

Um tamanho de parte pequena, como 256, produz partes mais granulares. Esse tamanho também significa que o modelo utilizará menos tokens para gerar a saída (a menos que o número de documentos recuperados seja muito alto), potencialmente custando menos. Pedaços menores também significam que o modelo não precisa processar e interpretar longas seções de texto, reduzindo ruído e distração. No entanto, essa granularidade e foco representam um problema potencial. Informações importantes poderão não estar entre as partes mais altas recuperadas, especialmente se o número de documentos recuperados estiver definido com um valor baixo, como 3.

Dica

Tenha em mente que alterar o tamanho da parte exigirá que os documentos sejam ingeridos novamente, portanto, é importante ajustar primeiro os parâmetros de runtime como a rigidez e o número de documentos recuperados. Se você ainda não estiver obtendo os resultados desejados, altere o tamanho das partes:

  • Se você encontrar um grande número de respostas como "Não sei" para perguntas com respostas que deveriam estar nos seus documentos, considere reduzir o tamanho da parte para 256 ou 512 para melhorar a granularidade.
  • Se o chatbot estiver fornecendo alguns detalhes corretos, mas faltando outros, o que se tornará evidente nas citações, aumentar o tamanho da parte para 1.536 poderá ajudar a capturar mais informações contextuais.

Parâmetros de runtime

Na seção Parâmetros de dados do Estúdio OpenAI do Azure, você pode modificar as configurações adicionais e a API a seguir. Você não precisa ingerir novamente seus dados quando atualiza esses parâmetros.

Nome do parâmetro Descrição
Limitar respostas aos seus dados Este sinalizador configura a abordagem do chatbot para lidar com consultas não relacionadas à fonte de dados ou quando os documentos de pesquisa são insuficientes para fornecer uma resposta completa. Quando esta configuração se encontra desabilitada, o modelo complementa as respostas com o seu próprio conhecimento, além dos documentos que você tem. Quando esta configuração se encontra habilitada, o modelo tenta contar apenas com os seus documentos para gerar respostas. Esse é o parâmetro inScope na API, definido como true por padrão.
Documentos recuperados Este parâmetro é um inteiro que pode ser definido como 3, 5, 10 ou 20 e controla o número de partes de documento fornecidas para o modelo de linguagem grande para formular a resposta final. Por padrão, ele é definido como 5. O processo de busca pode ser ruidoso e, às vezes, devido ao particionamento, informações relevantes podem estar espalhadas por vários fragmentos no índice de pesquisa. Selecionar um número top-K, como 5, garante que o modelo possa extrair informações relevantes, apesar das limitações inerentes à pesquisa e agrupamento. No entanto, aumentar para um número muito alto pode potencialmente distrair o modelo. Além disso, o número máximo de documentos que podem ser usados efetivamente depende da versão do modelo, pois cada um tem um tamanho de contexto e capacidade diferentes para lidar com documentos. Se você descobrir que está faltando contexto importante nas respostas, tente aumentar esse parâmetro. Esse é o parâmetro topNDocuments na API, 5 por padrão.
Rigorosidade Determina a agressividade do sistema na filtragem de documentos de pesquisa com base em suas pontuações de similaridade. O sistema consulta o Azure Search ou outros repositórios de documentos e decide quais documentos fornecer a modelos de linguagem grandes, como o ChatGPT. Filtrar documentos irrelevantes pode melhorar significativamente o desempenho do chatbot de ponta a ponta. Alguns documentos serão excluídos dos resultados de top-K se tiverem pontuações de similaridade baixas antes de encaminhá-los para o modelo. Isso é controlado por um valor inteiro que varia de 1 a 5. Definir esse valor como 1 significa que o sistema filtrará minimamente documentos com base na similaridade da pesquisa com a consulta do usuário. Por outro lado, uma configuração de 5 indica que o sistema filtrará os documentos agressivamente, aplicando um limite de similaridade muito alto. Se você descobrir que o chatbot está omitindo informações relevantes, reduza a rigidez do filtro (defina o valor para mais próximo de 1) para incluir mais documentos. Por outro lado, se documentos irrelevantes distraírem as respostas, aumente o limite (defina o valor para mais próximo de 5). Esse é o strictness parâmetro na API, definido como 3 por padrão.

Referências não citadas

É possível que o modelo retorne "TYPE":"UNCITED_REFERENCE" em vez de "TYPE":CONTENT na API para documentos recuperados da fonte de dados, mas não incluídos na citação. Isso poderá ser útil para depuração e você poderá controlar esse comportamento modificando a rigidez e os parâmetros de runtime dos documentos recuperados descritos acima.

Mensagem do sistema

Você pode definir uma mensagem do sistema para orientar a resposta do modelo ao usar o OpenAI do Azure On Your Data. Essa mensagem permite que você personalize suas respostas com base no padrão de geração aumentada de recuperação (RAG) que o OpenAI do Azure On Your Data usa. A mensagem do sistema é usada além de um prompt de base interno para fornecer a experiência. Para dar suporte a isso, truncamos a mensagem do sistema após um número específico de tokens para garantir que o modelo possa responder a perguntas usando seus dados. Se você estiver definindo um comportamento adicional além da experiência padrão, certifique-se de que seu prompt do sistema seja detalhado e explique exatamente a personalização esperada.

Depois de selecionar a adição do conjunto de dados, você poderá usar a seção Mensagem do sistema no Estúdio OpenAI do Azure ou o roleInformationparâmetro na API.

Uma captura de tela mostrando a opção de mensagem do sistema no Azure OpenAI Studio.

Padrões de uso em potencial

Definir uma função

Você pode definir a função que deseja para o seu assistente. Por exemplo, se você estiver criando um bot de suporte, poderá adicionar "Você é um assistente de suporte a incidentes especializado que ajuda os usuários a resolver novos problemas.".

Definir o tipo de dados que está sendo recuperado

Você também pode adicionar a natureza dos dados que está fornecendo ao assistente.

  • Defina o tópico ou o escopo do seu conjunto de dados, como "relatório financeiro", "artigo acadêmico" ou "relatório de incidentes". Por exemplo, para suporte técnico, você pode adicionar "Responda a consultas usando informações de incidentes semelhantes nos documentos recuperados.".
  • Se seus dados tiverem determinadas características, você poderá adicionar esses detalhes à mensagem do sistema. Por exemplo, se seus documentos estiverem em japonês, você pode adicionar "Você recuperará documentos em japonês e deverá lê-los, cuidadosamente em japonês, e responder em japonês.".
  • Se os seus documentos incluírem dados estruturados, como tabelas de um relatório financeiro, você também poderá adicionar esse fato ao prompt do sistema. Por exemplo, se os dados tiverem tabelas, você pode acrescentar "Você recebe dados na forma de tabelas referentes a resultados financeiros e deve ler a tabela linha por linha para fazer cálculos e responder às perguntas do usuário.".

Definir o estilo de saída

Você também pode alterar a saída do modelo definindo uma mensagem do sistema. Por exemplo, se você deseja garantir que as respostas do assistente sejam em francês, você pode adicionar um prompt como "Você é um assistente de IA que ajuda usuários que entendem francês a encontrar informações". As perguntas do usuário podem estar em inglês ou francês. Leia atentamente os documentos recuperados e responda-os em francês. Favor traduzir o conhecimento dos documentos para o francês para garantir que todas as respostas estejam em francês.".

Reafirmar o comportamento crítico

O OpenAI do Azure On Your Data funciona enviando instruções para um modelo de linguagem grande na forma de prompts para responder às consultas do usuário usando seus dados. Se houver um determinado comportamento que seja essencial para o aplicativo, você poderá repetir o comportamento na mensagem do sistema para aumentar sua precisão. Por exemplo, para orientar o modelo a responder apenas a partir de documentos, você pode adicionar "Por favor, responda usando apenas os documentos recuperados e sem usar o seu conhecimento. Gere citações para os documentos recuperados em cada declaração na sua resposta. Se a pergunta do usuário não puder ser respondida usando os documentos recuperados, explique o motivo pelo qual os documentos são relevantes para as consultas do usuário. Em qualquer caso, não responda usando seu próprio conhecimento.".

Truques de Engenharia de Prompts

Há muitos truques na engenharia de prompt que você pode tentar para melhorar o resultado. Um exemplo é a solicitação de cadeia de pensamentos, em que você pode adicionar "Vamos pensar passo a passo sobre as informações nos documentos recuperados para responder às consultas do usuário. Extrair conhecimento relevante para consultas de usuários a partir de documentos, passo a passo, e formar uma resposta de baixo para cima a partir das informações extraídas de documentos relevantes.".

Observação

A mensagem do sistema é usada para modificar como o assistente GPT responde a uma pergunta do usuário com base na documentação recuperada. Isso não afeta o processo de recuperação. Se você quiser fornecer instruções para o processo de recuperação, é melhor incluí-las nas perguntas. A mensagem do sistema é apenas uma orientação. O modelo pode não seguir todas as instruções especificadas porque foi preparado com determinados comportamentos, como a objetividade, e evita instruções controversas. Poderá ocorrer um comportamento inesperado se a mensagem do sistema entrar em contradição com esses comportamentos.

Resposta máxima

Defina um limite no número de tokens por resposta de modelo. O limite superior para o OpenAI do Azure On Your Data é 1.500. Isso é equivalente à definição do parâmetro max_tokens na API.

Limitar respostas aos seus dados

Essa opção incentiva o modelo a responder usando apenas seus dados e está selecionada por padrão. Se você desmarcar essa opção, o modelo poderá aplicar mais facilmente seu conhecimento interno para responder. Determine a seleção correta com base em seu caso de uso e cenário.

Interação com o modelo

Use as práticas a seguir para alcançar os melhores resultados ao conversar com o modelo.

Histórico de conversas

  • Antes de iniciar uma nova conversa (ou fazer uma pergunta que não esteja relacionada às anteriores), limpe o histórico do chat.
  • É possível obter respostas diferentes para a mesma pergunta entre o primeiro turno de conversação e as próximas rodadas, pois o histórico da conversa altera o estado atual do modelo. Se você receber respostas incorretas, relate-a como um bug de qualidade.

Resposta do modelo

  • Se você não estiver satisfeito com a resposta do modelo para uma pergunta específica, tente tornar a pergunta mais específica ou mais genérica para ver como o modelo responde e reformule sua pergunta adequadamente.

  • A solicitação da cadeia de pensamento tem sido eficaz em fazer com que o modelo produza saídas desejadas para perguntas/tarefas complexas.

Comprimento da pergunta

Evite fazer perguntas longas e divida-as em várias perguntas, se possível. Os modelos de GPT têm limites para o número de tokens que podem aceitar. Os limites de token são contados para: a pergunta do usuário, a mensagem do sistema, os documentos de pesquisa recuperados (partes), prompts internos, o histórico da conversa (se houver) e a resposta. Se a pergunta exceder o limite de token, ela será truncada.

Suporte multilíngue

  • Atualmente, a pesquisa por palavra-chave e a pesquisa semântica no OpenAI do Azure On Your Data dão suporte a consultas no mesmo idioma que os dados no índice. Por exemplo, se os dados estiverem em japonês, as consultas também devem estar em japonês. Para a recuperação de documentos multilíngues, recomendamos criar o índice com a Pesquisa de vetor habilitada.

  • Para ajudar a melhorar a qualidade da recuperação de informações e da resposta do modelo, recomendamos habilitar a pesquisa semântica dos seguintes idiomas: inglês, francês, espanhol, português, italiano, alemão, chinês(Zh), japonês, coreano, russo, árabe

  • Recomendamos usar uma mensagem do sistema para informar ao modelo que seus dados estão em outro idioma. Por exemplo:

  • *"*Você é um assistente de IA desenvolvido para ajudar os usuários a extrair informações de documentos japoneses recuperados. Examine cuidadosamente os documentos japoneses antes de formular uma resposta. A consulta do usuário será em japonês e você também deverá responder em japonês."

  • Se você tiver documentos em vários idiomas, recomendamos criar um novo índice para cada idioma e conectá-los separadamente ao OpenAI do Azure.

Dados de streaming

Você pode enviar uma solicitação de transmissão usando o parâmetro stream, permitindo que os dados sejam enviados e recebidos de forma incremental, sem esperar toda a resposta da API. Isso pode melhorar o desempenho e a experiência do usuário, principalmente para dados grandes ou dinâmicos.

{
    "stream": true,
    "dataSources": [
        {
            "type": "AzureCognitiveSearch",
            "parameters": {
                "endpoint": "'$AZURE_AI_SEARCH_ENDPOINT'",
                "key": "'$AZURE_AI_SEARCH_API_KEY'",
                "indexName": "'$AZURE_AI_SEARCH_INDEX'"
            }
        }
    ],
    "messages": [
        {
            "role": "user",
            "content": "What are the differences between Azure Machine Learning and Azure AI services?"
        }
    ]
}

Histórico de conversas para alcançar melhores resultados

Quando você conversar com um modelo, fornecer um histórico do chat ajudará o modelo a retornar resultados de maior qualidade. Você não precisa incluir a propriedade context das mensagens do assistente em suas solicitações de API para obter melhor qualidade de resposta. Veja a documentação de referência da API para exemplos.

Chamada de função

Alguns modelos do OpenAI do Azure permitem definir ferramentas e parâmetros tool_choice para habilitar a chamada de função. Você poderá configurar a chamada de função por meio da API REST/chat/completions. Se tools e fontes de dados estiverem na solicitação, a política a seguir será aplicada.

  1. Se tool_choice for none, as ferramentas serão ignoradas e somente as fontes de dados serão utilizadas para gerar a resposta.
  2. Caso contrário, se tool_choice não for especificado ou especificado como auto ou um objeto, as fontes de dados serão ignoradas e a resposta conterá o nome das funções selecionadas e os argumentos, se houver. Mesmo se o modelo decidir que nenhuma função está selecionada, as fontes de dados ainda serão ignoradas.

Se a política acima não atender à sua necessidade considere outras opções, por exemplo: prompt flow ou API de Assistentes.

Estimativa de uso do token para o Azure OpenAI On Your Data

Azure OpenAI em seu serviço RAG (Geração Aumentada de Recuperação de Dados) que aproveita um serviço de pesquisa (como a Pesquisa de IA do Azure) e a geração (modelos do Azure OpenAI) para permitir que os usuários obtenham respostas para suas perguntas com base nos dados fornecidos.

Como parte desse pipeline de RAG, existem três etapas em um alto nível:

  1. Reformule a consulta do usuário em uma lista de intenções de pesquisa. Isso é feito fazendo uma chamada para o modelo com uma solicitação que inclui instruções, a pergunta do usuário e o histórico de conversas. Vamos chamar isso de uma solicitação de intenção.

  2. Para cada intenção, várias partes de documento são recuperadas do serviço de pesquisa. Depois de filtrar partes irrelevantes com base no limite de rigidez especificado pelo usuário e reclassificar/agregar as partes com base na lógica interna, o número especificado pelo usuário de partes do documento é escolhido.

  3. Essas partes de documento, juntamente com a pergunta do usuário, o histórico de conversas, as informações de função e as instruções são enviadas ao modelo para gerar a resposta do modelo final. Vamos chamar isso de solicitação de geração.

No total, há duas chamadas feitas para o modelo:

  • Para processar a intenção: a estimativa de token para o prompt de intenção inclui aqueles para a pergunta do usuário, histórico de conversa e as instruções enviadas ao modelo para geração de intenção.

  • Para gerar a resposta: A estimativa de token para o prompt de geração inclui aqueles para a pergunta do usuário, histórico de conversação, a lista recuperada de partes do documento, informações de função e as instruções enviadas a ele para geração.

Os tokens de saída gerados pelo modelo (intenção e resposta) precisam ser levados em conta para a estimativa total do token. Resumindo, todas as quatro colunas abaixo fornecem a média total de tokens usados para gerar uma resposta.

Modelar Contagem de tokens de solicitação de geração Contagem de token de solicitação de intenção Contagem de token de resposta Contagem de token de intenção
gpt-35-turbo-16k 4297 1366 111 25
gpt-4-0613 3997 1385 118 18
gpt-4-1106-preview 4538 811 119 27
gpt-35-turbo-1106 4854 1372 110 26

Os números acima têm base em testes em um conjunto de dados com:

  • 191 conversas
  • 250 perguntas
  • Média de 10 tokens por pergunta
  • 4 turnos de conversa por conversa em média

E os seguintes parâmetros.

Configuração Valor
Número de documentos recuperados 5
Rigorosidade 3
Tamanho da parte 1024
Limitar respostas a dados ingeridos? Verdadeiro

Essas estimativas variarão de acordo com os valores definidos para os parâmetros acima. Por exemplo, se o número de documentos recuperados for definido como 10 e a restrição for definida como 1, a contagem de tokens aumentará. Se as respostas retornadas não estiverem limitadas aos dados ingeridos, haverá menos instruções fornecidas ao modelo e o número de tokens diminuirá.

As estimativas também dependem da natureza dos documentos e das perguntas que estão sendo feitas. Por exemplo, se as perguntas forem abertas, as respostas provavelmente serão mais longas. Da mesma forma, uma mensagem de sistema mais longa contribuiria para uma solicitação mais longa que consome mais tokens e, se o histórico da conversa for longo, a solicitação será mais longa.

Modelar Máximo de tokens para a mensagem do sistema Máximo de tokens para a resposta do modelo
GPT-35-0301 400 1500
GPT-35-0613-16K 1000 3200
GPT-4-0613-8K 400 1500
GPT-4-0613-32K 2000 6400

A tabela acima mostra o número máximo de tokens que podem ser usados para a mensagem do sistema e a resposta do modelo. Além disso, os seguintes também consomem tokens:

  • A meta solicitação: se você limitar as respostas do modelo ao conteúdo de dados de base (inScope=True na API), o número máximo de tokens será superior. Caso contrário (por exemplo, se inScope=False), o máximo será inferior. Esse número é variável dependendo do tamanho do token do histórico de conversas e perguntas dos usuários. Essa estimativa inclui o prompt básico e os prompts de reescrita de consulta para recuperação.

  • Pergunta e histórico do usuário: variável, mas com limite de 2.000 tokens.

  • Documentos recuperados (partes): o número de tokens usados pelas partes de documento recuperados depende de vários fatores. O limite superior para isso é o número de partes de documentos recuperados multiplicado pelo tamanho da parte. No entanto, será truncado com base nos tokens disponíveis para o modelo específico que está sendo usado após a contagem dos demais campos.

    20% dos tokens disponíveis são reservados para a resposta do modelo. Os 80% restantes dos tokens disponíveis incluem o prompt meta, o histórico de conversas e perguntas dos usuários e a mensagem do sistema. O orçamento restante de tokens é usado pelas partes de documento recuperados.

Para calcular o número de tokens consumidos pela sua entrada (como sua pergunta, as informações de mensagem/função do sistema), use o exemplo de código a seguir.

import tiktoken

class TokenEstimator(object):

    GPT2_TOKENIZER = tiktoken.get_encoding("gpt2")

    def estimate_tokens(self, text: str) -> int:
        return len(self.GPT2_TOKENIZER.encode(text))
      
token_output = TokenEstimator.estimate_tokens(input_text)

Solução de problemas

Para resolver problemas de operações com falha, sempre procure os erros ou os avisos especificados na resposta à API ou no estúdio do OpenAI do Azure. Aqui estão alguns dos erros e avisos comuns:

Trabalhos de ingestão com falha

Problemas com o limite de cota

Não foi possível criar um índice com o nome X no serviço Y. A cota do índice foi excedida para esse serviço. Primeiro, você deve excluir índices não utilizados, adicionar um atraso entre as solicitações de criação de índices ou atualizar o serviço para obter limites mais altos.

A cota do indexador padrão de X foi excedida para esse serviço. Atualmente, você tem X indexadores padrão. Primeiro, você deve excluir os indexadores que não são utilizados, alterar o "executionMode" do indexador ou atualizar o serviço para obter limites mais altos.

Resolução:

Atualize para um tipo de preço mais alto ou exclua ativos não utilizados.

Problemas com o tempo limite de pré-processamento

Não foi possível executar a habilidade porque a solicitação da API Web falhou

Não foi possível executar a habilidade porque a resposta da habilidade da API Web é inválida

Resolução:

Divida os documentos enviados em documentos menores e tente novamente.

Problemas de permissões

Esta solicitação não está autorizada a realizar esta operação

Resolução:

Isso significa que a conta de armazenamento não pode ser acessada com as credenciais fornecidas. Nesse caso, revise as credenciais da conta de armazenamento passadas para a API e verifique se a conta de armazenamento não está oculta em um ponto de extremidade privado (se um ponto de extremidade privado não estiver configurado para esse recurso).

Cada mensagem de usuário pode se traduzir em várias consultas de pesquisa, todas enviadas para o recurso de pesquisa em paralelo. Isso pode produzir um comportamento de limitação quando o número de réplicas e partições de procura for baixo. O número máximo de consultas por segundo que uma única partição e uma única réplica podem dar suporte poderá não ser suficiente. Nesse caso, considere aumentar as réplicas e as partições ou adicionar lógica de suspensão/repetição no aplicativo. Para obter mais informações, consulte a documentação da Pesquisa de IA do Azure.

Disponibilidade regional e suporte a modelos

Você pode usar o OpenAI do Azure On Your Data com um recurso do OpenAI do Azure nas seguintes regiões:

  • Leste da Austrália
  • Sul do Brasil
  • Leste do Canadá
  • Leste dos EUA
  • Leste dos EUA 2
  • França Central
  • Leste do Japão
  • Centro-Norte dos EUA
  • Leste da Noruega
  • Norte da África do Sul
  • Centro-Sul dos Estados Unidos
  • Sul da Índia
  • Suécia Central
  • Norte da Suíça
  • Sul do Reino Unido
  • Europa Ocidental
  • Oeste dos EUA

Modelos com suporte

  • gpt-4 (0314)
  • gpt-4 (0613)
  • gpt-4 (0125)
  • gpt-4-32k (0314)
  • gpt-4-32k (0613)
  • gpt-4 (1106-preview)
  • gpt-35-turbo-16k (0613)
  • gpt-35-turbo (1106)

Se o seu recurso do OpenAI do Azure estiver em outra região, você não poderá usar o OpenAI do Azure On Your Data.

Próximas etapas