Share via


Perspetiva do Azure Well-Architected Framework sobre o Serviço OpenAI do Azure

O Serviço OpenAI do Azure fornece acesso à API REST a modelos de linguagem grande (LLMs) openAI, adicionando capacidades de rede e segurança do Azure. Este artigo fornece recomendações de arquitetura para o ajudar a tomar decisões informadas quando utiliza o Azure OpenAI como parte da arquitetura da sua carga de trabalho. A documentação de orientação baseia-se nos pilares do Azure Well-Architected Framework.

Importante

Como utilizar este guia

Cada secção tem uma lista de verificação de design que apresenta áreas de interesse arquitetónicas, juntamente com estratégias de design localizadas no âmbito 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 as respetivas dependências. Em vez disso, listam as principais recomendações mapeadas para as perspetivas de estrutura. Utilize as recomendações para criar a prova de conceito ou otimizar os seus ambientes existentes.

Arquitetura fundamental que demonstra as principais recomendações: arquitetura de referência de chat ponto a ponto do OpenAI de linha de base.

Âmbito da tecnologia

Esta análise centra-se apenas no Azure OpenAI.

Fiabilidade

O objetivo do pilar Fiabilidade é fornecer funcionalidades contínuas ao criar resiliência suficiente e a capacidade de recuperar rapidamente de falhas.

Os princípios de conceção de fiabilidade fornecem uma estratégia de design de alto nível aplicada a componentes individuais, fluxos de sistema e ao sistema como um todo.

Lista de verificação de estruturação

Inicie a sua estratégia de conceção com base na lista de verificação de revisão de design para Fiabilidade. Determine a sua relevância para os seus requisitos empresariais. Expanda a estratégia para incluir mais abordagens conforme necessário.

  • Resiliência: escolha a opção de implementação adequada de débito pay as you go ou aprovisionado com base no seu caso de utilização. Uma vez que a capacidade reservada aumenta a resiliência, escolha o débito aprovisionado para soluções de produção. A abordagem pay as you go é ideal para ambientes de desenvolvimento/teste.

  • Redundância: adicione os gateways adequados à frente das implementações do Azure OpenAI. O gateway tem de ter a capacidade de suportar falhas transitórias, como a limitação e também encaminhar para várias instâncias do Azure OpenAI. Considere encaminhar para instâncias em diferentes regiões para criar redundância regional.

  • Resiliência: se estiver a utilizar o débito aprovisionado, considere também implementar uma instância pay as you go para lidar com o excesso. Pode encaminhar chamadas para a instância pay as you go através do gateway quando o modelo de débito aprovisionado for limitado. Também pode utilizar a monitorização para prever quando o modelo será limitado e encaminhar preventivamente chamadas para a instância pay as you go.

  • Resiliência: monitorize a utilização da capacidade para garantir que não está a exceder os limites de débito. Reveja regularmente a utilização da capacidade para obter uma previsão mais precisa e ajudar a evitar interrupções de serviço devido a restrições de capacidade.

  • Resiliência: siga as orientações para ficheiros de dados grandes e importe os dados de um arquivo de blobs do Azure. Os ficheiros grandes, 100 MB ou superiores, podem tornar-se instáveis quando carregados através de formulários multipart, porque os pedidos são atómicos e não podem ser repetidos ou retomados.

  • Recuperação: defina uma estratégia de recuperação que inclua um plano de recuperação para modelos otimizados e para dados de preparação carregados para o Azure OpenAI. Uma vez que o Azure OpenAI não tem ativação pós-falha automática, tem de conceber uma estratégia que abranja todo o serviço e todas as dependências, como o armazenamento que contém dados de preparação.

Recomendações

Recomendação Vantagem
Monitorizar os limites de taxa para pay as you go: se estiver a utilizar a abordagem pay as you go, faça a gestão dos limites de taxa para as implementações do modelo e monitorize a utilização de tokens por minuto (TPM) e pedidos por minuto (RPM). Estas informações de débito importantes fornecem informações necessárias para garantir que atribui TPM suficiente a partir da quota para satisfazer a procura das suas implementações.

Atribuir quota suficiente impede a limitação de chamadas para os modelos implementados.
Monitorizar a utilização gerida pela aprovisionamento para débito aprovisionado: se estiver a utilizar o modelo de pagamento de débito aprovisionado , monitorize a utilização gerida pela aprovisionamento. É importante monitorizar a utilização gerida pelo aprovisionamento para garantir que não excede os 100%, para impedir a limitação de chamadas para os modelos implementados.
Ativar a funcionalidade de quota dinâmica: se o orçamento da carga de trabalho o suportar, execute o sobreaprovisionamento ao ativar a quota dinâmica em implementações de modelos. A quota dinâmica permite que a implementação consuma mais capacidade do que a quota normalmente, desde que exista capacidade disponível numa perspetiva do Azure. A capacidade de quota adicional pode potencialmente impedir a limitação indesejada.
Otimizar filtros de conteúdo: ajuste os filtros de conteúdo para minimizar os falsos positivos de filtros demasiado agressivos. Os filtros de conteúdo bloqueiam pedidos ou conclusões com base numa análise de risco opaca. Certifique-se de que os filtros de conteúdo estão otimizados para permitir a utilização esperada da carga de trabalho.

Segurança

O objetivo do pilar segurança é fornecer garantias de confidencialidade, integridade e disponibilidade à carga de trabalho.

Os princípios de conceção de segurança fornecem uma estratégia de design de alto nível para atingir esses objetivos ao aplicar abordagens ao design técnico em torno do Azure OpenAI.

Lista de verificação de estruturação

Inicie a sua estratégia de conceção com base na lista de verificação de revisão de design para Segurança e identifique vulnerabilidades e controlos para melhorar a postura de segurança. Em seguida, reveja a linha de base de segurança do Azure para o Azure OpenAI. Por fim, expanda a estratégia para incluir mais abordagens conforme necessário.

  • Proteger a confidencialidade: se carregar dados de preparação para o Azure OpenAI, utilize chaves geridas pelo cliente para encriptação de dados, implemente uma estratégia de rotação de chaves e elimine dados de resultados de preparação, validação e preparação. Se utilizar um arquivo de dados externo para dados de preparação, siga as melhores práticas de segurança para esse arquivo. Por exemplo, para Armazenamento de Blobs do Azure, utilize chaves geridas pelo cliente para encriptação e implemente uma estratégia de rotação de chaves. Utilize o acesso gerido baseado na identidade, implemente um perímetro de rede com pontos finais privados e ative os registos de acesso.

  • Proteger a confidencialidade: proteja-se contra a exfiltração de dados ao limitar os URLs de saída aos quais os recursos do Azure OpenAI podem aceder.

  • Proteger a integridade: implemente controlos de acesso para autenticar e autorizar o acesso do utilizador ao sistema utilizando o princípio de menor privilégio e utilizando identidades individuais em vez de chaves.

  • Proteger a integridade: implemente a deteção de risco de jailbreak para salvaguardar as implementações do modelo de linguagem contra ataques de injeção rápida.

  • Proteger a disponibilidade: utilize controlos de segurança para evitar ataques que possam esgotar as quotas de utilização do modelo. Pode configurar controlos para isolar o serviço numa rede. Se o serviço tiver de estar acessível a partir da Internet, considere utilizar um gateway para bloquear suspeitas de abuso através do encaminhamento ou limitação.

Recomendações

Recomendação Vantagem
Chaves seguras: se a sua arquitetura necessitar de autenticação baseada em chaves do Azure OpenAI, armazene essas chaves no Azure Key Vault e não no código da aplicação. Separar segredos do código ao armazená-los em Key Vault reduz a possibilidade de fuga de segredos. A separação também facilita a gestão central de segredos, facilitando responsabilidades como a rotação de chaves.
Restringir o acesso: desative o acesso público ao Azure OpenAI, a menos que a carga de trabalho o exija. Crie pontos finais privados se estiver a ligar a partir de consumidores numa rede virtual do Azure. Controlar o acesso ao Azure OpenAI ajuda a evitar ataques de utilizadores não autorizados. A utilização de pontos finais privados garante que o tráfego de rede permanece privado entre a aplicação e a plataforma.
Microsoft Entra ID: utilize Microsoft Entra ID para autenticação e para autorizar o acesso ao Azure OpenAI através do controlo de acesso baseado em funções (RBAC). Desative a autenticação local nos Serviços de IA do Azure e defina disableLocalAuth como true. Conceda identidades que executem as conclusões ou a geração de imagens da função Utilizador OpenAI dos Serviços Cognitivos . Conceda pipelines de automatização de modelos e acesso ad-hoc data-science a uma função como Contribuidor OpenAI dos Serviços Cognitivos. Utilizar Microsoft Entra ID centraliza o componente de gestão de identidades e elimina a utilização de chaves de API. A utilização do RBAC com Microsoft Entra ID garante que os utilizadores ou grupos têm exatamente as permissões necessárias para realizarem o seu trabalho. Este tipo de controlo de acesso detalhado não é possível com as chaves da API OpenAI do Azure.
Utilizar chaves geridas pelo cliente: utilize chaves geridas pelo cliente para modelos otimizados e dados de preparação carregados para o Azure OpenAI. A utilização de chaves geridas pelo cliente dá-lhe maior flexibilidade para criar, rodar, desativar e revogar controlos de acesso.
Proteger contra ataques de jailbreak: utilize o Segurança de conteúdo de IA do Azure Studio para detetar riscos de jailbreak. Detetar tentativas de jailbreak para identificar e bloquear pedidos que tentam ignorar os mecanismos de segurança das suas implementações do Azure OpenAI.

Otimização de Custos

A Otimização de Custos concentra-se na deteção de padrões de gastos, na atribuição de prioridades a investimentos em áreas críticas e na otimização noutros para cumprir o orçamento da organização ao cumprir os requisitos empresariais.

Leia os princípios de design da Otimização de Custos para saber mais sobre as abordagens para atingir esses objetivos e as vantagens necessárias nas escolhas de design técnico relacionadas com o Azure OpenAI.

Lista de verificação de estruturação

Inicie a sua estratégia de conceção com base na lista de verificação de revisão de design para Otimização de Custos para investimentos. Ajuste a estrutura para que a carga de trabalho esteja alinhada com o orçamento alocado. A sua estrutura deve utilizar as capacidades adequadas do Azure, monitorizar os investimentos e encontrar oportunidades para otimizar ao longo do tempo.

  • Gestão de custos: desenvolva o modelo de custos, tendo em conta os tamanhos dos pedidos. Compreender os tamanhos de entrada e resposta de pedidos e como o texto se traduz em tokens ajuda-o a criar um modelo de custos viável.

  • Otimização da utilização: comece com os preços pay as you go do Azure OpenAI até que a utilização do token seja previsível.

  • Otimização da taxa: quando a utilização do token for suficientemente elevada e previsível durante um período de tempo, utilize o modelo de preços de débito aprovisionado para uma melhor otimização de custos.

  • Otimização da utilização: considere os preços e as capacidades dos modelos quando escolher modelos. Comece com modelos menos dispendiosos para tarefas menos complexas, como a geração de texto ou tarefas de conclusão. Para tarefas mais complexas, como tradução de idiomas ou compreensão de conteúdos, considere utilizar modelos mais avançados. Considere diferentes capacidades de modelo e limites máximos de utilização de tokens quando escolher um modelo adequado para casos de utilização, como incorporação de texto, geração de imagens ou cenários de transcrição. Ao selecionar cuidadosamente o modelo que melhor se adequa às suas necessidades, pode otimizar os custos enquanto alcança o desempenho da aplicação pretendido.

  • Otimização da utilização: utilize as restrições de limitação de tokens oferecidas pelas chamadas à API, como max_tokens e n, que indicam o número de conclusões a gerar.

  • Otimização da utilização: maximize os pontos de interrupção de preços do Azure OpenAI, por exemplo, otimizar e modelar pontos de interrupção como a geração de imagens. Uma vez que a otimização é cobrada por hora, utilize o tempo que tiver disponível por hora para melhorar os resultados de otimização, evitando, ao mesmo tempo, deslizar para o próximo período de faturação. 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ços a seu favor.

  • Otimização da utilização: remova os modelos otimizados não utilizados quando já não estiverem a ser consumidos para evitar incorrer numa taxa de alojamento contínua.

  • Ajustar a utilização: otimize a entrada de pedidos e o comprimento da resposta. Pedidos mais longos aumentam os custos ao consumir mais tokens. No entanto, os pedidos que não têm contexto suficiente não ajudam os modelos a produzir bons resultados. Crie pedidos concisos que fornecem contexto suficiente para que o modelo gere uma resposta útil. Certifique-se também de que otimiza o limite do comprimento da resposta.

  • Eficiência de custos: os pedidos do Batch sempre que possível para minimizar a sobrecarga por chamada, o que pode reduzir os custos gerais. Certifique-se de que otimiza o tamanho do lote.

  • Eficiência de custos: uma vez que os modelos têm custos de otimização diferentes, considere estes custos se a sua solução necessitar de otimização.

  • Monitorizar e otimizar: configure um sistema de controlo de custos que monitorize a utilização do modelo. Utilize essas informações para ajudar a informar as escolhas dos modelos e os tamanhos dos pedidos.

Recomendações

Recomendação Vantagem
Estruturar o código de cliente para definir limites: os seus clientes personalizados devem utilizar as funcionalidades de limite da API de conclusões do Azure OpenAI, como o limite máximo do número de tokens por modelo (max_tokens) ou o número de conclusões para geração (n). Definir limites garante que o servidor não produz mais do que as necessidades do cliente. A utilização de funcionalidades de API para restringir a utilização alinha o consumo do serviço com as necessidades do cliente. Isto poupa dinheiro ao garantir que o modelo não gera uma resposta demasiado longa que consome mais tokens do que o necessário.
Monitorizar a utilização pay as you go: se utilizar a abordagem pay as you go, monitorize a utilização do TPM e do RPM. Utilize essas informações para informar as decisões de conceção de arquitetura, como os modelos a utilizar e para otimizar os tamanhos dos pedidos. A monitorização contínua do TPM e do RPM dá-lhe métricas relevantes para otimizar o custo dos modelos do Azure OpenAI. Pode associar esta monitorização a funcionalidades de modelo e preços de modelo para otimizar a utilização do modelo. Também pode utilizar esta monitorização para otimizar os tamanhos de pedidos.
Monitorizar a utilização do débito aprovisionado: se utilizar o débito aprovisionado, monitorize a utilização gerida pelo aprovisionamento para garantir que não está a subutilizar o débito aprovisionado que comprou. Monitorizar continuamente a utilização gerida pelo aprovisionamento dá-lhe as informações necessárias para compreender se está a subutilizar o débito aprovisionado.
Gestão de custos: utilize as funcionalidades de gestão de custos com a OpenAI para monitorizar os custos, definir orçamentos para gerir os custos e criar alertas para notificar os intervenientes de riscos ou anomalias. A monitorização de custos, a definição de orçamentos e a definição de alertas fornecem governação com os processos de responsabilidade adequados.

Excelência Operacional

A Excelência Operacional centra-se principalmente nos procedimentos para práticas de desenvolvimento, observabilidade e gestão de lançamentos.

Os princípios de conceção de Excelência Operacional fornecem uma estratégia de conceção de alto nível para alcançar esses objetivos em relação aos requisitos operacionais da carga de trabalho.

Lista de verificação de estruturação

Inicie a sua estratégia de conceção 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 implementação relacionados com o Azure OpenAI.

  • Cultura do Azure DevOps: garanta a implementação de instâncias do Azure OpenAI em vários ambientes, como desenvolvimento, teste e produção. Certifique-se de que tem ambientes para suportar a aprendizagem e experimentação contínuas ao longo do ciclo de desenvolvimento.

  • Observabilidade: monitorize, agregue e visualize as métricas adequadas.

  • Observabilidade: se os diagnósticos do Azure OpenAI forem insuficientes para as suas necessidades, considere utilizar um gateway como o Azure Gestão de API em frente ao Azure OpenAI para registar pedidos de entrada e respostas de saída sempre que permitido. Estas informações podem ajudá-lo a compreender a eficácia do modelo para pedidos recebidos.

  • Implementar com confiança: utilize a infraestrutura como código (IaC) para implementar o Azure OpenAI, implementações de modelos e outra infraestrutura necessária para otimizar modelos.

  • Implementar com confiança: siga as grandes práticas de operações de modelos de linguagem (LLMOps) para operacionalizar a gestão dos LLMs do Azure OpenAI, incluindo implementação, otimização e engenharia de pedidos.

  • Automatizar a eficiência: se utilizar a autenticação baseada em chaves, implemente uma estratégia automatizada de rotação de chaves.

Recomendações

Recomendação Vantagem
Ativar e configurar Diagnóstico do Azure: Ativar e configurar Diagnósticos para o Serviço OpenAI do Azure. Os diagnósticos recolhem e analisam métricas e registos, ajudando-o a monitorizar a disponibilidade, o desempenho e o funcionamento do Azure OpenAI.

Eficiência de Desempenho

A Eficiência de Desempenho tem a ver com a manutenção da experiência do utilizador, mesmo quando existe um aumento de carga através da gestão da capacidade. A estratégia inclui dimensionar recursos, identificar e otimizar potenciais estrangulamentos e otimizar o desempenho máximo.

Os princípios de conceção da Eficiência de Desempenho fornecem uma estratégia de conceção de alto nível para alcançar esses objetivos de capacidade em relação à utilização esperada.

Lista de verificação de estruturação

Inicie a sua estratégia de conceção 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 exigências de elasticidade dos consumidores. Identifique o tráfego de alta prioridade que requer respostas síncronas e tráfego de baixa prioridade que pode ser assíncrono e em lotes.

  • Capacidade: requisitos de consumo de tokens de referência com base nas exigências estimadas dos consumidores. Considere utilizar a ferramenta de benchmarking do Azure OpenAI para o ajudar a validar o débito se estiver a utilizar implementações de unidades de débito aprovisionadas (PTU).

  • Capacidade: utilize o débito aprovisionado para cargas de trabalho de produção. O débito aprovisionado oferece memória e computação dedicadas, capacidade reservada e latência máxima consistente para a versão do modelo especificada. A oferta pay as you go pode sofrer de problemas ruidosos de vizinhos , como o aumento da latência e limitação em regiões em uso pesado. Além disso, a abordagem pay as you go não oferece capacidade garantida.

  • Capacidade: adicione os gateways adequados à frente das implementações do Azure OpenAI. Confirme que o gateway pode ser encaminhado para várias instâncias nas mesmas regiões ou em regiões diferentes.

  • Capacidade: aloque PTUs para cobrir a utilização prevista e complemente estas PTUs com uma implementação TPM para processar a elasticidade acima desse limite. Esta abordagem combina débito base com débito elástico para eficiência. Tal como outras considerações, esta abordagem requer uma implementação de gateway personalizado para encaminhar pedidos para a implementação do TPM quando os limites da PTU são atingidos.

  • Capacidade: envie pedidos de alta prioridade de forma síncrona. Coloque pedidos de baixa prioridade em fila e envie-os em lotes quando a procura é baixa.

  • Capacidade: selecione um modelo que se alinhe com os seus requisitos de desempenho, tendo em conta a desvantagem entre a complexidade da velocidade e da saída. O desempenho do modelo pode variar significativamente com base no tipo de modelo escolhido. Os modelos concebidos para acelerar 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, os modelos mais sofisticados podem fornecer saídas de maior qualidade em detrimento do aumento do tempo de resposta.

  • Alcançar o desempenho: para aplicações como chatbots ou interfaces de conversação, considere implementar a transmissão em fluxo. A transmissão em fluxo pode melhorar o desempenho percebido das aplicações OpenAI do Azure ao fornecer respostas aos utilizadores de forma incremental, melhorando a experiência do utilizador.

  • Alcançar o desempenho: determine quando deve utilizar a otimização antes de se comprometer com a otimização. Embora existam bons casos de utilização para otimização, como quando as informações necessárias para orientar o modelo são demasiado longas ou complexas para se ajustarem à linha de comandos, certifique-se de que as abordagens de engenharia e geração aumentada de obtenção (RAG) não funcionam ou são demonstravelmente mais caras.

  • Obter desempenho: considere utilizar implementações de modelos dedicados por grupo de consumidores para fornecer isolamento de utilização por modelo que pode ajudar a impedir vizinhos ruidosos entre os grupos de consumidores.

Recomendações

Não existem configurações recomendadas para a Eficiência de Desempenho para o Azure OpenAI.

Azure Policy

O Azure fornece um vasto conjunto de políticas incorporadas relacionadas com o Azure OpenAI e as respetivas dependências. Algumas das recomendações anteriores podem ser auditadas através de Azure Policy. Considere as seguintes definições de política:

Estas definições de Azure Policy também são recomendações de melhores práticas de segurança do Assistente do Azure para o Azure OpenAI.

Passos seguintes

Considere os seguintes artigos como recursos que demonstram as recomendações realçadas neste artigo.