Perspectiva do Azure Well-Architected Framework no Serviço OpenAI do Azure
O Serviço OpenAI do Azure fornece acesso à API REST para LLMs (modelos de linguagem grande) do OpenAI, adicionando recursos de rede e segurança do Azure. Este artigo fornece recomendações de arquitetura para ajudá-lo a tomar decisões informadas ao usar o OpenAI do Azure como parte da arquitetura da carga de trabalho. As diretrizes são baseadas nos pilares do Azure Well-Architected Framework.
Importante
Como usar este guia
Cada seção tem uma lista de verificação de design que apresenta áreas arquitetônicas de preocupação, juntamente com estratégias de design localizadas no escopo da tecnologia.
Também estão incluídas recomendações sobre os recursos tecnológicos que podem ajudar a materializar essas estratégias. As recomendações não representam uma lista exaustiva de todas as configurações disponíveis para o OpenAI do Azure e suas dependências. Em vez disso, eles listam as principais recomendações mapeadas para as perspectivas de design. Use as recomendações para criar sua prova de conceito ou otimizar seus ambientes existentes.
Arquitetura fundamental que demonstra as principais recomendações: Arquitetura de referência de bate-papo de ponta a ponta OpenAI de linha de base.
Escopo da tecnologia
Esta revisão se concentra exclusivamente no Azure OpenAI.
Confiabilidade
O objetivo do pilar Confiabilidade é fornecer funcionalidade contínua, criando resiliência suficiente e a capacidade de se recuperar rapidamente de falhas.
Os princípios de design de confiabilidade fornecem uma estratégia de design de alto nível aplicada a componentes individuais, fluxos do sistema e ao sistema como um todo.
Lista de verificação de projeto
Comece sua estratégia de design com base na lista de verificação de revisão de design para Confiabilidade. Determine sua relevância para seus requisitos de negócios. Estenda a estratégia para incluir mais abordagens, conforme necessário.
Resiliência: escolha a opção de implantação apropriada de taxa de transferência paga conforme o uso ou provisionada com base em seu caso de uso. Como a capacidade reservada aumenta a resiliência, escolha a taxa de transferência provisionada para soluções de produção. A abordagem de pagamento conforme o uso é ideal para ambientes de desenvolvimento/teste.
Redundância: adicione os gateways apropriados na frente de suas implantações do OpenAI do Azure. O gateway deve ter a capacidade de resistir a falhas transitórias, como limitação, e também rotear para várias instâncias do OpenAI do Azure. Considere o roteamento para instâncias em diferentes regiões para criar redundância regional.
Resiliência: se você estiver usando a taxa de transferência provisionada, considere também implantar uma instância paga conforme o uso para lidar com o estouro. Você pode rotear chamadas para a instância paga conforme o uso por meio do gateway quando o modelo de taxa de transferência provisionada estiver limitado.
Resiliência: monitore o uso da capacidade para garantir que você não esteja excedendo os limites de taxa de transferência. Revise regularmente o uso da capacidade para obter previsões mais precisas e ajudar a evitar interrupções de serviço devido a restrições de capacidade.
Resiliência: siga as diretrizes para ajustar com arquivos de dados grandes e importe os dados de um repositório de blobs do Azure. Arquivos grandes, de 100 MB ou mais, podem se tornar instáveis quando carregados por meio de formulários de várias partes porque as solicitações são atômicas e não podem ser repetidas ou retomadas.
Recuperação: defina uma estratégia de recuperação que inclua um plano de recuperação para modelos ajustados e para dados de treinamento carregados no Azure OpenAI. Como o Azure OpenAI não tem failover automático, você deve criar uma estratégia que englobe todo o serviço e todas as dependências, como o armazenamento que contém dados de treinamento.
Recomendações
Recomendação | Benefício |
---|---|
Monitorar limites de taxa para pagamento conforme o uso: se você estiver usando a abordagem de pagamento conforme o uso, gerencie os limites de taxa para suas implantações de modelo e monitore o uso de tokens por minuto (TPM) e solicitações por minuto (RPM). | Essas informações importantes de taxa de transferência fornecem as informações necessárias para garantir que você atribua TPM suficiente de sua cota para atender à demanda por suas implantações. Atribuir cota suficiente evita a limitação de chamadas para seus modelos implantados. |
Monitorar a utilização gerenciada por provisionamento para taxa de transferência provisionada: se você estiver usando o modelo de pagamento de taxa de transferência provisionada, monitore a utilização gerenciada por provisionamento. | É importante monitorar a utilização gerenciada por provisionamento para garantir que ela não exceda 100%, para evitar a limitação de chamadas para seus modelos implantados. |
Habilitar o recurso de cota dinâmica: se o orçamento da carga de trabalho der suporte a ele, execute o provisionamento excessivo habilitando a cota dinâmica em implantações de modelo. | A cota dinâmica permite que sua implantação consuma mais capacidade do que sua cota normalmente consumia, desde que haja capacidade disponível de uma perspectiva do Azure. A capacidade de cota extra pode impedir a limitação indesejada. |
Ajustar filtros de conteúdo: ajuste os filtros de conteúdo para minimizar falsos positivos de filtros excessivamente agressivos. | Os filtros de conteúdo bloqueiam prompts ou conclusões com base em uma análise de risco opaca. Verifique se os filtros de conteúdo estão ajustados para permitir o uso esperado para sua carga de trabalho. |
Segurança
O objetivo do pilar Segurança é fornecer garantias de confidencialidade, integridade e disponibilidade para a carga de trabalho.
Os princípios de design de Segurança fornecem uma estratégia de design de alto nível para atingir esses objetivos aplicando abordagens ao design técnico em torno do OpenAI do Azure.
Lista de verificação de projeto
Inicie sua estratégia de design com base na lista de verificação de revisão de design para Segurança e identifique vulnerabilidades e controles para melhorar a postura de segurança. Em seguida, revise a linha de base de segurança do Azure para o OpenAI do Azure. Por fim, estenda a estratégia para incluir mais abordagens, conforme necessário.
Proteger a confidencialidade: Se você carregar dados de treinamento no OpenAI do Azure, use as chaves gerenciadas pelo cliente para criptografia de dados, implementar uma estratégia de rotação de chaves e excluir dados de treinamento, validação e resultados de treinamento. Se você usar um armazenamento de dados externo para dados de treinamento, siga as melhores práticas de segurança para esse armazenamento. Por exemplo, para o Armazenamento de Blobs do Azure, use chaves gerenciadas pelo cliente para criptografia e implemente uma estratégia de rotação de chaves. Use o acesso gerenciado baseado em identidade, implemente um perímetro de rede usando pontos de extremidade privados e habilite os logs de acesso.
Proteger a confidencialidade: Proteja-se contra a exfiltração de dados limitando as URLs de saída que os recursos do OpenAI do Azure podem acessar.
Proteger a integridade: Implemente controles de acesso para autenticar e autorizar o acesso do usuário ao sistema usando o princípio de privilégios mínimos e usando identidades individuais em vez de chaves.
Proteger a integridade: Implemente a detecção de risco de jailbreak para garantia da suas implantações de modelos de linguagem contra ataques de injeção de solicitação.
Proteger a disponibilidade: Use controles de segurança para evitar ataques que possam esgotar as cotas de uso do modelo. Você pode configurar controles para isolar o serviço em uma rede. Se o serviço precisar ser acessado pela Internet, considere o uso de um gateway para bloquear suspeitas de abuso por meio de roteamento ou limitação.
Recomendações
Recomendação | Benefício |
---|---|
Chaves seguras: Se sua arquitetura exigir autenticação baseada em chave do OpenAI do Azure, armazene essas chaves no Azure Key Vault, não no código do aplicativo. | Separar os segredos do código, armazenando-os no Key Vault, reduz a chance de vazamento de segredos. A separação também facilita o gerenciamento central dos segredos, facilitando responsabilidades como a rotação de chaves. |
Acesso restrito: Desabilitar o acesso público ao OpenAI do Azure, a menos que sua carga de trabalho exija isso. Crie pontos de extremidade privados se estiver se conectando a partir de consumidores em uma rede virtual do Azure. | O controle do acesso ao OpenAI do Azure ajuda a evitar ataques de usuários não autorizados. O uso de pontos de extremidade privados garante que o tráfego de rede permaneça privado entre o aplicativo e a plataforma. |
Microsoft Entra ID: Use o Microsoft Entra ID para autenticação e para autorizar o acesso ao OpenAI do Azure usando o controle de acesso baseado em função (RBAC). Desabilite a autenticação local nos Serviços de IA do Azure e defina disableLocalAuth como true . Conceda às identidades que realizam conclusões ou geração de imagens a função Usuário do OpenAI de Serviços Cognitivos. Conceda às pipelines de automação de modelos e ao acesso ad-hoc de ciência de dados um papel como Colaborador do OpenAI de Serviços Cognitivos. |
O uso do Microsoft Entra ID centraliza o componente de gerenciamento de identidade e elimina o uso de chaves de API. O uso do RBAC com o Microsoft Entra ID garante que os usuários ou grupos tenham exatamente as permissões necessárias para realizar seu trabalho. Esse tipo de controle de acesso refinado não é possível com as chaves de API do OpenAI do Azure. |
Usar chaves gerenciadas pelo cliente: Usar chaves gerenciadas pelo cliente para modelos ajustados e dados de treinamento que são carregados no OpenAI do Azure. | O uso de chaves gerenciadas pelo cliente oferece maior flexibilidade para criar, girar, desabilitar e revogar controles de acesso. |
Proteja-se contra ataques de jailbreak: Use o Estúdio de Segurança de Conteúdo de IA do Azure para detectar riscos de jailbreak. | Detecte tentativas de jailbreak para identificar e bloquear prompts que tentam contornar os mecanismos de segurança de suas implantações do OpenAI do Azure. |
Otimização de custos
A otimização de custos se concentra na detecção de padrões de gastos, priorizando investimentos em áreas críticas e otimizando em outras para atender ao orçamento da organização e, ao mesmo tempo, atender aos requisitos de negócios.
Leia os princípios de design da Otimização de Custos para saber mais sobre as abordagens para atingir essas metas e as compensações necessárias nas escolhas de design técnico relacionadas ao Azure OpenAI.
Lista de verificação de projeto
Inicie sua estratégia de design com base na lista de verificação de revisão de design para Otimização de Custos para investimentos. Ajuste o design para que a carga de trabalho esteja alinhada com o orçamento alocado. Seu design deve usar os recursos apropriados do Azure, monitorar investimentos e encontrar oportunidades para otimizar ao longo do tempo.
Gerenciamento de custos: desenvolva seu modelo de custo, considerando os tamanhos dos prompts. Entender os tamanhos de entrada e resposta do prompt e como o texto se traduz em tokens ajuda a criar um modelo de custo viável.
Otimização de uso: comece com preços pagos conforme o uso do Azure OpenAI até que o uso do token seja previsível.
Otimização de taxa: quando o uso do token for suficientemente alto e previsível durante um período de tempo, use o modelo de preços de taxa de transferência provisionada para melhor otimização de custos.
Otimização de uso: considere os preços e os recursos do modelo ao escolher modelos. Comece com modelos menos dispendiosos para tarefas menos complexas, como geração de texto ou tarefas de conclusão. Para tarefas mais complexas, como tradução de idiomas ou compreensão de conteúdo, considere o uso de modelos mais avançados. Considere diferentes recursos de modelo e limites máximos de uso de token ao escolher um modelo apropriado para casos de uso como inserção de texto, geração de imagem ou cenários de transcrição. Ao selecionar cuidadosamente o modelo que melhor se adapta às suas necessidades, você pode otimizar os custos e, ao mesmo tempo, obter o desempenho desejado do aplicativo.
Otimização de uso: use as restrições de limitação de token oferecidas pelas chamadas de API, como
max_tokens
en
, que indicam o número de conclusões a serem geradas.Otimização de uso: maximize os pontos de interrupção de preço do Azure OpenAI, por exemplo, o ajuste fino e os pontos de interrupção do modelo, como geração de imagens. Como o ajuste fino é cobrado por hora, use o tempo que tiver disponível por hora para melhorar os resultados do ajuste fino, evitando passar para o próximo período de cobrança. Da mesma forma, o custo para gerar 100 imagens é o mesmo que o custo de 1 imagem. Maximize os pontos de interrupção de preço a seu favor.
Otimização de uso: remova modelos ajustados não utilizados quando eles não estiverem mais sendo consumidos para evitar incorrer em uma taxa de hospedagem contínua.
Ajuste o uso: Otimize a entrada imediata e o comprimento da resposta. Prompts mais longos aumentam os custos consumindo mais tokens. No entanto, os prompts que não têm contexto suficiente não ajudam os modelos a produzir bons resultados. Crie prompts concisos que forneçam contexto suficiente para que o modelo gere uma resposta útil. Certifique-se também de otimizar o limite do comprimento da resposta.
Eficiência de custos: solicitações em lote sempre que possível para minimizar a sobrecarga por chamada, o que pode reduzir os custos gerais. Certifique-se de otimizar o tamanho do lote.
Eficiência de custo: como os modelos têm custos de ajuste fino diferentes, considere esses custos se sua solução exigir ajuste fino.
Monitore e otimize: configure um sistema de rastreamento de custos que monitore o uso do modelo. Use essas informações para ajudar a informar as escolhas de modelo e os tamanhos de prompt.
Recomendações
Recomendação | Benefício |
---|---|
Criar código do cliente para definir limites: seus clientes personalizados devem usar os recursos de limite da API de conclusões do OpenAI do Azure, como limite máximo no número de tokens por modelo (max_tokens ) ou número de conclusões para geração (n ). A configuração de limites garante que o servidor não produza mais do que o cliente precisa. |
O uso de recursos de API para restringir o uso alinha o consumo do serviço com as necessidades do cliente. Isso economiza dinheiro, garantindo que o modelo não gere uma resposta excessivamente longa que consuma mais tokens do que o necessário. |
Monitore o uso pago conforme o uso: se você usar a abordagem paga conforme o uso, monitore o uso do TPM e do RPM. Use essas informações para informar as decisões de projeto de arquitetura, como quais modelos usar e para otimizar os tamanhos dos prompts. | O monitoramento contínuo do TPM e do RPM fornece métricas relevantes para otimizar o custo dos modelos do OpenAI do Azure. Você pode acoplar esse monitoramento aos recursos do modelo e aos preços do modelo para otimizar o uso do modelo. Você também pode usar esse monitoramento para otimizar os tamanhos dos prompts. |
Monitorar o uso da taxa de transferência provisionada: se você usar a taxa de transferência provisionada, monitore a utilização gerenciada por provisionamento para garantir que você não esteja subutilizando a taxa de transferência provisionada adquirida. | O monitoramento contínuo da utilização gerenciada por provisionamento fornece as informações necessárias para entender se você está subutilizando sua taxa de transferência provisionada. |
Gerenciamento de custos: use recursos de gerenciamento de custos com o OpenAI para monitorar custos, definir orçamentos para gerenciar custos e criar alertas para notificar as partes interessadas sobre riscos ou anomalias. | O monitoramento de custos, a definição de orçamentos e a definição de alertas fornecem à governança os processos de responsabilidade apropriados. |
Excelência operacional
A Excelência Operacional se concentra principalmente em procedimentos para práticas de desenvolvimento, observabilidade e gerenciamento de versões.
Os princípios de design de Excelência Operacional fornecem uma estratégia de design de alto nível para atingir essas metas em relação aos requisitos operacionais da carga de trabalho.
Lista de verificação de projeto
Comece sua estratégia de design com base na lista de verificação de revisão de design para Excelência Operacional. Esta lista de verificação define processos de observabilidade, teste e implantação relacionados ao Azure OpenAI.
Cultura do Azure DevOps: garanta a implantação de instâncias do OpenAI do Azure em seus vários ambientes, como desenvolvimento, teste e produção. Certifique-se de ter ambientes para dar suporte ao aprendizado e à experimentação contínuos durante todo o ciclo de desenvolvimento.
Observabilidade: monitore, agregue e visualize métricas apropriadas.
Observabilidade: se o diagnóstico do OpenAI do Azure for insuficiente para suas necessidades, considere usar um gateway como o Gerenciamento de API do Azure na frente do OpenAI do Azure para registrar prompts de entrada e respostas de saída, quando permitido. Essas informações podem ajudá-lo a entender a eficácia do modelo para prompts de entrada.
Implante com confiança: use a IaC (infraestrutura como código) para implantar o Azure OpenAI, implantações de modelo e outras infraestruturas necessárias para ajustar modelos.
Implante com confiança: siga as práticas de LLMOps (operações de modelo de linguagem grande) para operacionalizar o gerenciamento de seus LLMs OpenAI do Azure, incluindo implantação, ajuste fino e engenharia de prompt.
Automatize para eficiência: se você usar autenticação baseada em chave, implemente uma estratégia automatizada de rotação de chaves.
Recomendações
Recomendação | Benefício |
---|---|
Habilitar e configurar o Diagnóstico do Azure: habilite e configure o Diagnóstico para o Serviço OpenAI do Azure. | O Diagnóstico coleta e analisa métricas e logs, ajudando você a monitorar a disponibilidade, o desempenho e a operação do OpenAI do Azure. |
Eficiência de desempenho
A eficiência de desempenho trata de manter a experiência do usuário mesmo quando há um aumento na carga gerenciando a capacidade. A estratégia inclui dimensionar recursos, identificar e otimizar possíveis gargalos e otimizar o desempenho máximo.
Os princípios de design de eficiência de desempenho fornecem uma estratégia de design de alto nível para atingir essas metas de capacidade em relação ao uso esperado.
Lista de verificação de projeto
Inicie sua estratégia de design com base na lista de verificação de revisão de design para Eficiência de Desempenho para definir uma linha de base com base nos principais indicadores de desempenho para cargas de trabalho do OpenAI do Azure.
Capacidade: Estimar as demandas de elasticidade dos consumidores. Identifique o tráfego de alta prioridade que requer respostas síncronas e o tráfego de baixa prioridade que pode ser assíncrono e em lote.
Capacidade: Benchmark requisitos de consumo de token com base nas demandas estimadas dos consumidores. Considere usar a ferramenta de benchmarking do Azure OpenAI para ajudá-lo a validar a taxa de transferência se você estiver usando implantações de PTU (unidade de taxa de transferência provisionada).
Capacidade: use a taxa de transferência provisionada para cargas de trabalho de produção. A taxa de transferência provisionada oferece memória e computação dedicadas, capacidade reservada e latência máxima consistente para a versão do modelo especificada. A oferta de pagamento conforme o uso pode sofrer de problemas de vizinhos barulhentos, como aumento da latência e limitação em regiões sob uso intenso. Além disso, a abordagem de pagamento conforme o uso não oferece capacidade garantida.
Capacidade: adicione os gateways apropriados na frente de suas implantações do OpenAI do Azure. Certifique-se de que o gateway possa rotear para várias instâncias na mesma região ou em regiões diferentes.
Capacidade: aloque PTUs para cobrir o uso previsto e complemente essas PTUs com uma implantação de TPM para lidar com a elasticidade acima desse limite. Essa abordagem combina a taxa de transferência básica com a taxa de transferência elástica para eficiência. Como outras considerações, essa abordagem requer uma implementação de gateway personalizada para rotear solicitações para a implantação do TPM quando os limites da PTU forem atingidos.
Capacidade: envie solicitações de alta prioridade de forma síncrona. Enfileire solicitações de baixa prioridade e envie-as em lotes quando a demanda for baixa.
Capacidade: selecione um modelo que se alinhe aos seus requisitos de desempenho, considerando a compensação entre velocidade e complexidade de saída. O desempenho do modelo pode variar significativamente com base no tipo de modelo escolhido. Os modelos projetados para velocidade oferecem tempos de resposta mais rápidos, o que pode ser benéfico para aplicativos que exigem interações rápidas. Por outro lado, modelos mais sofisticados podem fornecer resultados de maior qualidade às custas do aumento do tempo de resposta.
Alcance o desempenho: para aplicativos como chatbots ou interfaces de conversação, considere implementar o streaming. O streaming pode aprimorar o desempenho percebido dos aplicativos OpenAI do Azure, fornecendo respostas aos usuários de maneira incremental, melhorando a experiência do usuário.
Obter desempenho: determine quando usar o ajuste fino antes de se comprometer com o ajuste fino. Embora existam bons casos de uso para ajuste fino, como quando as informações necessárias para orientar o modelo são muito longas ou complexas para caber no prompt, certifique-se de que as abordagens de engenharia imediata e geração aumentada por recuperação (RAG) não funcionem ou sejam comprovadamente mais caras.
Obter desempenho: considere o uso de implantações de modelo dedicadas por grupo de consumidores para fornecer isolamento de uso por modelo que pode ajudar a evitar vizinhos barulhentos entre seus grupos de consumidores.
Recomendações
Não há configurações recomendadas para Eficiência de Desempenho para Azure OpenAI.
Azure Policy
O Azure fornece um amplo conjunto de políticas internas relacionadas ao Azure OpenAI e suas dependências. Algumas das recomendações anteriores podem ser auditadas por meio do Azure Policy. Considere as seguintes definições de política:
- Desabilitar o acesso à chave
- Restringir o acesso à rede
- Desabilitar o acesso de redes públicas
- Usar o Link Privado do Azure
- Habilitar a criptografia de dados com chaves gerenciadas pelo cliente
Essas definições do Azure Policy também são recomendações de práticas recomendadas de segurança do Assistente do Azure para o Azure OpenAI.
Próximas etapas
Considere os artigos a seguir como recursos que demonstram as recomendações destacadas neste artigo.
- Use esta arquitetura de referência como um exemplo de como você pode aplicar as diretrizes deste artigo a uma carga de trabalho: Arquitetura de referência de chat de ponta a ponta do OpenAI de linha de base.
- Crie experiência em implementação usando a documentação do produto do Azure Machine Learning .