Perspetiva do Azure Well-Architected Framework no Serviço Azure OpenAI
O Serviço OpenAI do Azure fornece acesso à API REST a LLMs (modelos de linguagem grande) 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 Azure OpenAI como parte da arquitetura da sua carga de trabalho. A orientação é baseada nos pilares do Azure Well-Architected Framework.
Importante
Como usar este guia
Cada seção tem uma lista de verificação de projeto que apresenta áreas arquitetônicas de preocupação, juntamente com estratégias de projeto localizadas para o escopo da tecnologia.
Também estão incluídas recomendações sobre as capacidades tecnológicas 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 Azure OpenAI e suas dependências. Em vez disso, eles listam as principais recomendações mapeadas para as perspetivas 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.
Âmbito da tecnologia
Esta análise concentra-se exclusivamente no Azure OpenAI.
Fiabilidade
O objetivo do pilar Confiabilidade é fornecer funcionalidade contínua, construindo resiliência suficiente e a capacidade de se recuperar rapidamente de falhas.
Os princípios de projeto de confiabilidade fornecem uma estratégia de projeto de alto nível aplicada a componentes individuais, fluxos do sistema e o sistema como um todo.
Lista de verificação de estruturação
Inicie sua estratégia de design com base na lista de verificação de revisão de projeto para Confiabilidade. Determine sua relevância para os requisitos do seu negócio. Alargar a estratégia de modo a incluir mais abordagens, conforme necessário.
Resiliência: escolha a opção de implantação apropriada de taxa de transferência pré-paga ou provisionada com base no 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 Azure OpenAI. 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 Azure OpenAI. 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 de pagamento conforme o uso para lidar com o estouro. Você pode rotear chamadas para a instância de pagamento 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. Analise 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 orientações para ajustar com arquivos de dados grandes e importe os dados de um repositório de blob do Azure. Arquivos grandes, de 100 MB ou mais, podem se tornar instáveis quando carregados por meio de formulários com 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 projetar uma estratégia que abranja todo o serviço e todas as dependências, como o armazenamento que contém dados de treinamento.
Recomendações
Recomendação | Benefício |
---|---|
Monitore os 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 informações necessárias para garantir que você atribua TPM suficiente de sua cota para atender à demanda de suas implantações. A atribuição de 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. |
Habilite o recurso de cota dinâmica: se o orçamento da carga de trabalho oferecer 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, desde que haja capacidade disponível de uma perspetiva do Azure. A capacidade adicional da quota pode potencialmente evitar uma 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. Certifique-se de que 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 essas metas, aplicando abordagens ao design técnico em torno do Azure OpenAI.
Lista de verificação de estruturação
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 Azure OpenAI. Por último, alargar a estratégia de modo a incluir mais abordagens, conforme necessário.
Proteja a confidencialidade: se você carregar dados de treinamento no Azure OpenAI, use chaves gerenciadas pelo cliente para criptografia de dados, implemente uma estratégia de rotação de chaves e exclua dados de treinamento, validação e resultados de treinamento. Se você usar um armazenamento de dados externo para dados de treinamento, siga as práticas recomendadas 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 logs de acesso.
Proteja a confidencialidade: proteja-se contra a exfiltração de dados limitando as URLs de saída que os recursos do Azure OpenAI 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.
Proteja a integridade: implemente a deteção de risco de jailbreak para proteger suas implantações de modelo de linguagem contra ataques de injeção imediata.
Proteja 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 tiver de ser acessível a partir da Internet, considere a possibilidade de utilizar um gateway para bloquear suspeitas de abuso utilizando o encaminhamento ou a limitação.
Recomendações
Recomendação | Benefício |
---|---|
Chaves seguras: se sua arquitetura exigir autenticação baseada em chave do Azure OpenAI, armazene essas chaves no Cofre de Chaves do Azure, não no código do aplicativo. | Separar segredos de código armazenando-os no Cofre de Chaves reduz a chance de vazar segredos. A separação também facilita a gestão central de segredos, facilitando responsabilidades como a rotação de chaves. |
Restringir acesso: desative o acesso público ao Azure OpenAI, a menos que sua carga de trabalho o exija. Crie pontos de extremidade privados se você estiver se conectando a partir de consumidores em uma rede virtual do Azure. | Controlar o acesso ao Azure OpenAI 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 Azure OpenAI 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 identidades que executam finalizações ou geração de imagens a função de Usuário OpenAI dos Serviços Cognitivos. Conceda pipelines de automação de modelos e acesso ad-hoc à ciência de dados uma função como Colaborador 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. Usar o RBAC com o Microsoft Entra ID garante que os usuários ou grupos tenham exatamente as permissões necessárias para fazer seu trabalho. Esse tipo de controle de acesso refinado não é possível com chaves de API do Azure OpenAI. |
Usar chaves gerenciadas pelo cliente: use chaves gerenciadas pelo cliente para modelos ajustados e dados de treinamento carregados no Azure OpenAI. | 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 Azure AI Content Safety Studio para detetar riscos de jailbreak. | Detete tentativas de jailbreak para identificar e bloquear prompts que tentam ignorar os mecanismos de segurança de suas implantações do Azure OpenAI. |
Otimização de Custos
A Otimização de Custos concentra-se na deteçã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 de Otimização de Custos para saber mais sobre as abordagens para atingir esses objetivos e as compensações necessárias nas escolhas de design técnico relacionadas ao Azure OpenAI.
Lista de verificação de estruturação
Inicie sua estratégia de design com base na lista de verificação de revisão de projeto 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.
Gestão de custos: Desenvolva o seu modelo de custos, considerando tamanhos rápidos. Compreender os tamanhos de entrada e resposta de 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 pré-pagos para o Azure OpenAI até que seu uso de 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 uma 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 incorporaçã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, alcançar 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 finalizações a serem geradas.Otimização de uso: maximize os pontos de interrupção de preço do Azure OpenAI, por exemplo, ajuste fino e pontos de interrupção de modelo, como geração de imagem. Como o ajuste fino é cobrado por hora, use o tempo disponível por hora para melhorar os resultados do ajuste fino, evitando deslizar para o próximo período de faturamento. Da mesma forma, o custo para gerar 100 imagens é o mesmo que o custo para 1 imagem. Maximize os pontos de interrupção de preços 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 de prompt e o comprimento da resposta. Prompts mais longos aumentam os custos consumindo mais tokens. No entanto, os prompts que estão faltando 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 custos: Como os modelos têm diferentes custos de ajuste fino, considere esses custos se sua solução exigir ajustes finos.
Monitorar e otimizar: configure um sistema de controle de custos que monitore o uso do modelo. Use essas informações para ajudar a informar as escolhas de modelo e tamanhos de prompt.
Recomendações
Recomendação | Benefício |
---|---|
Projetar código de cliente para definir limites: seus clientes personalizados devem usar os recursos de limite da API de conclusão do Azure OpenAI, como limite máximo do número de tokens por modelo (max_tokens ) ou número de finalizações para geração (n ). A definiçã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 de 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 de pagamento conforme o uso: Se você usar a abordagem de pagamento conforme o uso, monitore o uso de TPM e RPM. Use essas informações para informar decisões de projeto de arquitetura, como quais modelos usar, e para otimizar tamanhos de prompt. | O monitoramento contínuo de TPM e RPM fornece métricas relevantes para otimizar o custo dos modelos OpenAI do Azure. Você pode combinar esse monitoramento com recursos de modelo e preços de modelo para otimizar o uso do modelo. Você também pode usar esse monitoramento para otimizar o tamanho 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 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 estiver subutilizando a 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 prestação de contas apropriados. |
Excelência Operacional
A Excelência Operacional concentra-se principalmente em procedimentos para práticas de desenvolvimento, observabilidade e gerenciamento de releases.
Os princípios de design de Excelência Operacional fornecem uma estratégia de design de alto nível para alcançar essas metas em relação aos requisitos operacionais da carga de trabalho.
Lista de verificação de estruturação
Inicie sua estratégia de design com base na lista de verificação de revisão de projeto para Excelência Operacional. Esta lista de verificação define processos para observabilidade, teste e implantação relacionados ao Azure OpenAI.
Cultura do Azure DevOps: garanta a implantação de instâncias do Azure OpenAI em seus vários ambientes, como desenvolvimento, teste e produção. Certifique-se de ter ambientes para suportar a aprendizagem contínua e a experimentação durante todo o ciclo de desenvolvimento.
Observabilidade: Monitorar, agregar e visualizar métricas apropriadas.
Observabilidade: Se o diagnóstico do Azure OpenAI for insuficiente para suas necessidades, considere usar um gateway como o Gerenciamento de API do Azure na frente do Azure OpenAI para registrar solicitações de entrada e respostas de saída, onde permitido. Essas informações podem ajudá-lo a entender a eficácia do modelo para solicitações de entrada.
Implantar com confiança: use a infraestrutura como código (IaC) 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 do Azure OpenAI, incluindo implantação, ajuste fino e engenharia de prompt.
Automatize para obter eficiência: se você usar a autenticação baseada em chaves, 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 Diagnostics coleta e analisa métricas e logs, ajudando você a monitorar a disponibilidade, o desempenho e a operação do Azure OpenAI. |
Eficiência de Desempenho
A Eficiência de Desempenho consiste em manter a experiência do usuário mesmo quando há um aumento na carga por meio do gerenciamento de capacidade. A estratégia inclui dimensionar recursos, identificar e otimizar potenciais gargalos e otimizar para obter o máximo desempenho.
Os princípios de design de Eficiência de Desempenho fornecem uma estratégia de projeto de alto nível para atingir essas metas de capacidade em relação ao uso esperado.
Lista de verificação de estruturação
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 em indicadores-chave de desempenho para cargas de trabalho do Azure OpenAI.
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: Requisitos de consumo de token de referência 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 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 latência aumentada 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 Azure OpenAI. 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 seu uso previsto e complemente essas PTUs com uma implantação de TPM para lidar com elasticidade acima desse limite. Essa abordagem combina a taxa de transferência de base 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 de 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 esteja alinhado com 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 concebidos para a velocidade oferecem tempos de resposta mais rápidos, o que pode ser benéfico para aplicações que requerem interações rápidas. Por outro lado, modelos mais sofisticados podem fornecer resultados de maior qualidade em detrimento 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 melhorar o desempenho percebido dos aplicativos OpenAI do Azure fornecendo respostas aos usuários de maneira incremental, melhorando a experiência do usuário.
Alcance o 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 de recuperação (RAG) não funcionem ou sejam comprovadamente mais caras.
Alcance o 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 a Eficiência de Desempenho para o Azure OpenAI.
Azure Policy
O Azure fornece um extenso conjunto de políticas internas relacionadas ao Azure OpenAI e suas dependências. Algumas das recomendações anteriores podem ser auditadas por meio da Política do Azure. Considere as seguintes definições de política:
- Desativar o acesso à chave
- Restringir o acesso à rede
- Desativar o acesso à rede pública
- Usar o Azure Private Link
- Habilite a criptografia de dados com chaves gerenciadas pelo cliente
Essas definições de Política do Azure também são recomendações de práticas recomendadas de segurança do Azure Advisor para o Azure OpenAI.
Próximos passos
Considere os seguintes artigos como recursos que demonstram as recomendações destacadas neste artigo.
- Use esta arquitetura de referência como um exemplo de como você pode aplicar a orientação deste artigo a uma carga de trabalho: Baseline OpenAI end-to-end chat reference architecture.
- Crie experiência em implementação usando a documentação do produto Azure Machine Learning .