Partilhar via


Azure OpenAI em seus dados

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

O que é o Azure OpenAI em seus dados

O Azure OpenAI On Your Data permite que você execute modelos avançados de IA, como GPT-35-Turbo e 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 nas fontes de dados designadas. Você pode acessar o Azure OpenAI On Your Data usando uma API REST, por meio do SDK ou da interface baseada na Web no Azure OpenAI Studio. Você também pode criar um aplicativo Web que se conecta aos seus dados para habilitar uma solução de bate-papo aprimorada ou implantá-lo diretamente como um copiloto no Copilot Studio (visualização).

Desenvolvendo com o Azure OpenAI em seus dados

Um diagrama mostrando um fluxo de trabalho de exemplo.

Normalmente, o processo de desenvolvimento que você usaria com o Azure OpenAI On Your Data é:

  1. Ingerir: carregue arquivos usando o Azure OpenAI Studio ou a API de ingestão. Isso permite que seus dados sejam quebrados, fragmentados e incorporados em uma instância do Azure AI Search que pode ser usada por modelos de IA aberta do Azure. Se você tiver uma fonte de dados suportada, também poderá conectá-la diretamente.

  2. Desenvolver: Depois de experimentar o Azure OpenAI On Your Data, comece a desenvolver seu aplicativo usando a API REST e os SDKs disponíveis, que estão disponíveis em vários idiomas. Ele criará prompts e intenções de pesquisa para passar para o serviço Azure OpenAI.

  3. Inferência: Depois que seu aplicativo for implantado em seu ambiente preferido, ele enviará prompts para o Azure OpenAI, que executará várias etapas antes de retornar uma resposta:

    1. Geração de intenção: o serviço determinará a intenção do prompt do usuário para determinar uma resposta adequada.

    2. Recuperação: o serviço recupera partes relevantes de dados disponíveis da fonte de dados conectada consultando-a. Por exemplo, usando uma pesquisa semântica ou vetorial. Parâmetros como rigor e número de documentos a recuperar são utilizados para influenciar a recuperação.

    3. Filtragem e reclassificação: os resultados da pesquisa da etapa de recuperação são melhorados classificando e filtrando dados para refinar a relevância.

    4. Geração de resposta: Os dados resultantes são enviados juntamente com outras informações, como a mensagem do sistema para o Large Language Model (LLM) e a resposta é enviada de volta para o aplicativo.

Para começar, conecte sua fonte de dados usando o Azure OpenAI Studio e comece a fazer perguntas e conversar sobre seus dados.

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

Para usar o Azure OpenAI em seus dados completamente, você precisa definir uma ou mais funções do Azure RBAC. Consulte Usar o Azure OpenAI em seus dados com segurança para obter mais informações.

Formatos de dados e tipos de ficheiro

O Azure OpenAI On Your Data suporta os seguintes tipos de ficheiro:

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

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

  • Se você estiver convertendo dados de um formato sem suporte em um formato suportado, otimize a qualidade da resposta do modelo garantindo a conversão:

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

  • Para documentos e conjuntos de dados com texto longo, deve utilizar o script de preparação de dados disponível. O script segmenta dados para que as respostas do modelo sejam mais precisas. Este script também suporta ficheiros PDF digitalizados e imagens.

Supported data sources (Origens de dados suportadas)

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 agrupados 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 no Azure Cosmos DB para MongoDB baseado em vCore oferece suporte nativo à integração com o Azure OpenAI On Your Data.

Para algumas fontes de dados, como carregar arquivos de sua máquina local (visualização) ou dados contidos em uma conta de armazenamento de blob (visualização), o Azure AI Search é usado. Quando você escolhe as seguintes fontes de dados, seus dados são ingeridos em um índice do Azure AI Search.

Dados ingeridos através da Pesquisa de IA do Azure Description
Azure AI Search Use um índice existente do Azure AI Search com o Azure OpenAI On Your Data.
Carregar ficheiros (pré-visualização) Carregue arquivos de sua máquina local para serem armazenados em um banco de dados do Armazenamento de Blobs do Azure e ingeridos no Azure AI Search.
URL/Endereço Web (pré-visualização) O conteúdo da Web das URLs é armazenado no Armazenamento de Blobs do Azure.
Armazenamento de Blobs do Azure (visualização) Carregue arquivos do Armazenamento de Blobs do Azure para serem ingeridos em um índice do Azure AI Search.

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

Implantar em um copiloto (visualização), aplicativo do Teams (visualização) ou aplicativo Web

Depois de conectar o Azure OpenAI aos seus dados, você pode implantá-lo usando o botão Implantar em no Azure OpenAI Studio.

Uma captura de tela mostrando o botão de implantação do modelo no Azure OpenAI Studio.

Isso oferece várias opções para implantar sua solução.

Você pode implantar em um copiloto no Copilot Studio (visualização) diretamente do Azure OpenAI Studio, 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 Azure OpenAI e no Copilot Studio (visualização) deve ser o mesmo. Para obter mais informações, consulte Usar uma conexão com o Azure OpenAI em seus dados.

Nota

A implantação em um copiloto no Copilot Studio (visualização) só está disponível em regiões dos EUA.

Use o Azure OpenAI em seus dados com segurança

Você pode usar o Azure OpenAI On Your Data com segurança 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 do Azure AI Search. Consulte Usar o Azure OpenAI com segurança em seus dados.

Melhores práticas

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

Parâmetro de ingestão

Quando seus dados são ingeridos no Azure AI Search, você pode modificar as seguintes configurações adicionais no estúdio ou na API de ingestão.

Tamanho do bloco (visualização)

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

Definindo o tamanho do bloco para seu caso de uso

O tamanho de bloco padrão é 1.024 tokens. No entanto, dada a exclusividade de seus dados, você pode achar um tamanho de bloco diferente (como 256, 512 ou 1.536 tokens) mais eficaz.

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

Um pedaço pequeno como 256 produz pedaços mais granulares. Esse tamanho também significa que o modelo utilizará menos tokens para gerar sua 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 seções longas de texto, reduzindo o ruído e a distração. Esta granularidade e foco, no entanto, representam um problema potencial. Informações importantes podem não estar entre os principais blocos recuperados, especialmente se o número de documentos recuperados estiver definido como um valor baixo, como 3.

Gorjeta

Lembre-se de que alterar o tamanho do bloco requer que seus documentos sejam reingeridos, por isso é útil primeiro ajustar os parâmetros de tempo de execução, como rigor e o número de documentos recuperados. Considere alterar o tamanho do bloco se ainda não estiver obtendo os resultados desejados:

  • Se você estiver encontrando um grande número de respostas, como "Não sei" para perguntas com respostas que deveriam estar em seus documentos, considere reduzir o tamanho do bloco para 256 ou 512 para melhorar a granularidade.
  • Se o chatbot estiver fornecendo alguns detalhes corretos, mas faltando outros, o que se torna aparente nas citações, aumentar o tamanho do bloco para 1.536 pode ajudar a capturar mais informações contextuais.

Runtime parameters (Parâmetros de runtime)

Você pode modificar as seguintes configurações adicionais na seção Parâmetros de dados no Azure OpenAI Studio e na API. Você não precisa reingest seus dados quando atualizar esses parâmetros.

Nome do parâmetro Description
Limitar as respostas aos seus dados Esse 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 uma resposta completa. Quando essa configuração é desativada, o modelo complementa suas respostas com seu próprio conhecimento, além de seus documentos. Quando essa configuração está ativada, o modelo tenta confiar apenas em seus documentos para obter respostas. Este é o inScope parâmetro na API e definido como true por padrão.
Documentos recuperados Este parâmetro é um número inteiro que pode ser definido como 3, 5, 10 ou 20 e controla o número de blocos de documento fornecidos ao modelo de linguagem grande para formular a resposta final. Por padrão, isso é definido como 5. O processo de pesquisa pode ser barulhento e, às vezes, devido ao fragmentamento, informações relevantes podem ser espalhadas por vários blocos no índice de pesquisa. Selecionar um número de topo K, como 5, garante que o modelo possa extrair informações relevantes, apesar das limitações inerentes de pesquisa e fragmentação. No entanto, aumentar o número muito alto pode distrair o modelo. Além disso, o número máximo de documentos que podem ser efetivamente usados depende da versão do modelo, pois cada um tem um tamanho de contexto diferente e capacidade para lidar com documentos. Se você achar que as respostas estão faltando contexto importante, tente aumentar esse parâmetro. Este é o topNDocuments parâmetro na API e é 5 por padrão.
Rigor Determina a agressividade do sistema na filtragem de documentos de pesquisa com base em suas pontuações de similaridade. O sistema consulta a Pesquisa do Azure ou outros armazenamentos de documentos e, em seguida, 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 são excluídos dos resultados do top-K se tiverem baixas pontuações de similaridade antes de serem encaminhados 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 os documentos com base na semelhança da pesquisa com a consulta do usuário. Por outro lado, uma configuração de 5 indica que o sistema filtrará agressivamente os documentos, aplicando um limite de similaridade muito alto. Se você achar que o chatbot omite informações relevantes, diminua o rigor do filtro (defina o valor 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 mais próximo de 5). Este é o strictness parâmetro na API e 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 pode ser útil para depuração, e você pode controlar esse comportamento modificando o rigor e os parâmetros de tempo de execução de documentos recuperados descritos acima.

Mensagem do sistema

Você pode definir uma mensagem do sistema para orientar a resposta do modelo ao usar o Azure OpenAI On Your Data. Esta mensagem permite que você personalize suas respostas sobre o padrão de geração aumentada de recuperação (RAG) que o Azure OpenAI 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 extra sobre a experiência padrão, certifique-se de que o prompt do sistema seja detalhado e explique exatamente a personalização esperada.

Depois de selecionar adicionar seu conjunto de dados, você pode usar a seção Mensagem do sistema no Azure OpenAI Studio ou o role_information parâmetro na API.

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

Padrões de utilização potenciais

Definir uma função

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

Definir o tipo de dados que estão sendo recuperados

Também pode adicionar a natureza dos dados que está a fornecer 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 incidente". Por exemplo, para suporte técnico, você pode adicionar "Você responde a consultas usando informações de incidentes semelhantes nos documentos recuperados".
  • Se os seus dados tiverem determinadas características, pode adicionar estes detalhes à mensagem do sistema. Por exemplo, se seus documentos estiverem em japonês, você pode adicionar "Você recupera documentos japoneses e deve lê-los cuidadosamente em japonês e responder em japonês".
  • Se 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 seus dados tiverem tabelas, você pode adicionar "Você recebe dados na forma de tabelas referentes a resultados financeiros e deve ler a tabela linha por linha para executar cálculos para 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ê quiser garantir que as respostas do assistente estejam em francês, você pode adicionar um prompt como "Você é um assistente de IA que ajuda os usuários que entendem francês a encontrar informações. As perguntas dos utilizadores podem ser formuladas em inglês ou francês. Por favor, leia atentamente os documentos recuperados e responda-os em francês. Por favor, traduza o conhecimento dos documentos para o francês para garantir que todas as respostas estejam em francês."

Reafirmar o comportamento crítico

O Azure OpenAI On Your Data funciona enviando instruções para um modelo de linguagem grande na forma de prompts para responder a consultas do usuário usando seus dados. Se houver um determinado comportamento que é crítico para o aplicativo, você pode 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 documentos recuperados e sem usar seu conhecimento. Por favor, gere citações para documentos recuperados para cada reivindicação em sua resposta. Se a pergunta do usuário não puder ser respondida usando 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 rápidos

Há muitos truques na engenharia de prompt que você pode tentar melhorar a saída. Um exemplo é o aviso em cadeia de pensamento, onde você pode adicionar "Vamos pensar passo a passo sobre as informações em documentos recuperados para responder às perguntas dos usuários. Extraia conhecimento relevante para as consultas dos usuários a partir de documentos passo a passo e forme uma resposta de baixo para cima a partir das informações extraídas de documentos relevantes."

Nota

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 orientação. O modelo pode não aderir a todas as instruções especificadas porque foi preparado com certos comportamentos, como objetividade e evitar declarações controversas. Comportamento inesperado pode ocorrer se a mensagem do sistema contradiz com esses comportamentos.

Resposta máxima

Defina um limite para o número de tokens por resposta do modelo. O limite superior para o Azure OpenAI On Your Data é 1500. Isso equivale a definir o max_tokens parâmetro na API.

Limitar as respostas aos seus dados

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

Interagindo com o modelo

Use as práticas a seguir para obter 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 com as anteriores), limpe o histórico de chat.
  • A obtenção de respostas diferentes para a mesma pergunta entre o primeiro turno de conversação e os turnos subsequentes pode ser esperada porque o histórico de conversas altera o estado atual do modelo. Se você receber respostas incorretas, reporte-o como um bug de qualidade.

Modelo de resposta

  • 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 de acordo.

  • O estímulo da cadeia de pensamento tem se mostrado eficaz para fazer com que o modelo produza os resultados desejados para perguntas/tarefas complexas.

Comprimento da pergunta

Evite fazer perguntas longas e divida-as em várias perguntas, se possível. Os modelos GPT têm limites no 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 de conversas (se houver) e a resposta. Se a pergunta exceder o limite de token, ela será truncada.

Suporte multilingue

  • Atualmente, a pesquisa por palavra-chave e a pesquisa semântica no Azure OpenAI On Your Data dão suporte a consultas no mesmo idioma que os dados no índice. Por exemplo, se seus dados estiverem em japonês, as consultas de entrada também precisarão estar em japonês. Para a recuperação de documentos multilingues, recomendamos a criação do índice com a pesquisa vetorial ativada.

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

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

  • *"*Você é um assistente de IA projetado para ajudar os usuários a extrair informações de documentos japoneses recuperados. Por favor, examine cuidadosamente os documentos japoneses antes de formular uma resposta. A consulta do usuário estará em japonês, e você deve responder também em japonês."

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

Transmissão em fluxo de dados

Você pode enviar uma solicitação de streaming usando o stream parâmetro, permitindo que os dados sejam enviados e recebidos incrementalmente, sem esperar pela resposta completa da API. Isso pode melhorar o desempenho e a experiência do usuário, especialmente 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 melhores resultados

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

Chamada de função

Alguns modelos do Azure OpenAI permitem definir ferramentas e tool_choice parâmetros para habilitar a chamada de função. Você pode configurar a chamada de função através da API /chat/completionsREST. Se ambas as tools fontes de dados estiverem na solicitação, a política a seguir será aplicada.

  1. Se tool_choice for none, as ferramentas são ignoradas e apenas as fontes de dados são usadas 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 que o modelo decida que nenhuma função é selecionada, as fontes de dados ainda são ignoradas.

Se a política acima não atender às suas necessidades, considere outras opções, por exemplo: fluxo imediato ou API de assistentes.

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

O Azure OpenAI On Your Data Retrieval Augmented Generation (RAG) é um serviço que aproveita um serviço de pesquisa (como o Azure AI Search) 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 RAG, há três etapas em um alto nível:

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

  2. Para cada intenção, vários blocos de documentos são recuperados do serviço de pesquisa. Depois de filtrar blocos irrelevantes com base no limite de rigor especificado pelo usuário e reclassificar/agregar os blocos com base na lógica interna, o número especificado pelo usuário de blocos de documento é escolhido.

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

No total, são feitas duas chamadas para o modelo:

  • Para processar a intenção: A estimativa de token para o prompt de intenção inclui aquelas para a pergunta do usuário, o histórico de conversas 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 conversas, 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ções e respostas) precisam ser levados em conta para a estimativa total do token. Somando todas as quatro colunas abaixo, obtém-se a média total de tokens usados para gerar uma resposta.

Modelo Contagem de tokens de prompt de geração Contagem de tokens de prompt de intenção Contagem de tokens de resposta Contagem de tokens de intenção
GPT-35-Turbo-16K 4297 1366 111 25
GPT-4-0613 3997 1385 118 18
gpt-4-1106-pré-visualização 4538 811 119 27
GPT-35-Turbo-1106 4854 1372 110 26

Os números acima são baseados em testes em um conjunto de dados com:

  • 191 conversas
  • 250 questões
  • 10 tokens médios por pergunta
  • 4 voltas de conversação por conversa, em média

E os seguintes parâmetros.

Definição Value
Número de documentos recuperados 5
Rigor 3
Tamanho do bloco 1024
Limitar as respostas aos dados ingeridos? True

Estas estimativas variam com base nos valores definidos para os parâmetros acima. Por exemplo, se o número de documentos recuperados for definido como 10 e o rigor for definido como 1, a contagem de tokens aumentará. Se as respostas retornadas não se limitarem aos dados ingeridos, haverá menos instruções dadas ao modelo e o número de tokens diminuirá.

As estimativas dependem igualmente da natureza dos documentos e das perguntas colocadas. Por exemplo, se as perguntas forem abertas, é provável que as respostas sejam mais longas. Da mesma forma, uma mensagem de sistema mais longa contribuiria para um prompt mais longo que consome mais tokens e, se o histórico de conversas for longo, o prompt será mais longo.

Modelo Max tokens para mensagem do sistema
GPT-35-0301 400
GPT-35-0613-16K 1000
GPT-4-0613-8K 400
GPT-4-0613-32K 2000
GPT-35-turbo-0125 2000
GPT-4-turbo-0409 4000
GPT-4O 4000
GPT-4o-mini 4000

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

  • O prompt meta: se você limitar as respostas do modelo ao conteúdo de dados de aterramento (inScope=True na API), o número máximo de tokens será maior. Caso contrário (por exemplo, se inScope=False) o máximo é menor. Esse número é variável dependendo do comprimento do token da pergunta do usuário e do histórico de conversas. Essa estimativa inclui o prompt base e os prompts de reconfiguração de consulta para recuperação.

  • Pergunta do usuário e histórico: Variável, mas limitado a 2.000 tokens.

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

    20% dos tokens disponíveis são reservados para a resposta do modelo. Os 80% restantes dos tokens disponíveis incluem o meta prompt, a pergunta do usuário e o histórico de conversas e a mensagem do sistema. O orçamento de token restante é usado pelos blocos 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)

Resolução de Problemas

Para solucionar problemas de operações com falha, sempre procure erros ou avisos especificados na resposta da API ou no Azure OpenAI Studio. Aqui estão alguns dos erros e avisos comuns:

Trabalhos de ingestão falhados

Problemas de limitações de cota

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

A quota de indexador padrão de X foi excedida para este serviço. Atualmente, você tem indexadores padrão X. Você deve excluir indexadores não utilizados primeiro, alterar o indexador 'executionMode' ou atualizar o serviço para limites mais altos.

Resolução:

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

Problemas de tempo limite de pré-processamento

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

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

Resolução:

Divida os documentos de entrada em documentos menores e tente novamente.

Problemas de Permissões

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

Resolução:

Isso significa que a conta de armazenamento não está acessível 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 atrás de um ponto de extremidade privado (se um ponto de extremidade privado não estiver configurado para este recurso).

Cada mensagem de usuário pode se traduzir em várias consultas de pesquisa, todas as quais são 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 pesquisa é baixo. O número máximo de consultas por segundo que uma única partição e uma única réplica podem suportar pode não ser suficiente. Nesse caso, considere aumentar suas réplicas e partições ou adicionar lógica de suspensão/repetição em seu aplicativo. Consulte a documentação do Azure AI Search para obter mais informações.

Disponibilidade regional e suporte a modelos

País/Região gpt-35-turbo-16k (0613) gpt-35-turbo (1106) gpt-4-32k (0613) gpt-4 (1106-preview) gpt-4 (0125-preview) gpt-4 (0613) gpt-4o** gpt-4 (turbo-2024-04-09)
Leste da Austrália
Leste do Canadá
E.U.A. Leste
E.U.A. Leste 2
França Central
Leste do Japão
E.U.A. Centro-Norte
Leste da Noruega
E.U.A. Centro-Sul
Sul da Índia
Suécia Central
Norte da Suíça
Sul do Reino Unido
E.U.A. Oeste

**Esta é uma implementação somente texto

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

Próximos passos