Ao criar nosso roteiro usando IA, um dos assuntos que eu queria falar e estudar era usar a OpenAI dentro do Azure.
Na verdade, o meu objetivo era aprender (isto é, saber se é possível) subir modelos da OpenAI em uma infraestrutura só minha, sem compartilhar com mais ninguém. Na época, eu já via os termos Azure e OpenAI juntos, então, pensei que tivesse algo ali.
E, após testes, estudar, fuçar, eu finalmente conseguir entender melhor qual a proposta da Microsoft. O objetivo desse artigo é fixar uma parte desse conhecimento e servir como um guia básico para o funcionamento da OpenAI dentro do Azure!
Antes, eu imaginava que o Azure te permitia subir um modelo da OpenAI criando um servidor virtual pra você, associando ele com alguma GPU e te dando uma URL para a API (e, cheguei até imaginar que você teria uma interface prontinha parecida com a do ChatGPT para usar…). Acertei na trave em alguns pontos, mas é bem interessante a forma que está estrutura, pois você pode balancear entre pagar pelo uso ou pagar pela exclusividade de uso!
E nessa brincadeira, me deparei com uma alguns novos de conceitos e ferramentas. E vi que, para entender melhor como você provisiona sua infra de AI no Azure, fica tudo mais fácil quando você entende o que é e a diferença dessas coisas:
- Azure OpenAI
Esse é um resource type no Azure. Quando você cria esse resource você tem basicamente a URL (e keys de autenticação) para acessar seus modelos da OpenAI, mas não tem o modelo ainda. - Azure AI Services
Aqui é um outro resource do Azure. Igualmente com OpenAI, ele também te fornece a URL e autenticação, mas ainda não tem modelo sim. Imagine que tanto este, quanto o Azure OpenAI, são a porta de entrada do mundo para os modelos que você vai subir. Você sobe usando o Azure AI Foundry.
A principal diferença desse resource para o Azure OpenAI é que com esse você também pode acessar modelos que não são da OpenAI. Internamente, ele tem um Azure OpenAI embutido, o que te permite acessar OpenAI com ele também. - Azure AI Foundry (antigo Azure Ai Studio)
Este é o portal onde você pode subir modelos. Você conecta o Foundry com sua assinatura do azure e cria resources Azure OpenAI ou Azure AI Services. Então, você pode fazer o deploy de modelos conectando nesses resources que você criou, permitindo que acesse os modelos através da URL gerada.
O Azure Ai Foundry contém o que chama de Hubs e Projects, permitindo que você possa organizar o acesso a estes recursos de uma maneira mais fácil. - Azure AI Hub
Um Hub é um objeto que contém usuários, projetos e modelos. Você cria um Hub no Azure AI Foundry, conecta ele com uma assinatura e então pode criar modelos e/ou projetos. - Azure AI Project
Um projeto é mais um elemento de organização, porém dentro do Hub. O projeto, além de organizar usuários, também traz algumas algumas apps (como o prompt flow) para facilitar o desenvolvimento e testes de modelos. Como ele é parte de um Hub, que está conectado a uma conta do Azure, todos esses modelos e apps usam esses recursos para determinar onde salvar dados e alocar recursos. - Models
Os modelos são, de fato, os LLM que você sobe e usa através da API. Dentro de um projeto, ou de um hub, você pode criar esses modelos e acessá-los via API. Esse é um processo que ele chama de “Model Deployment”. Você pode fazer esse deploy de várias maneiras: Pode alocar uma VM com GPU só pra você… ou pode usar recurso compartilhado (serverless), etc. Cada escolha pode ter um custo e impactos em aspectos como latência. Essas maneiras são chamadas de “Deployment Types” - Deployments Types
Os Deployments Types controlam como você aloca recursos pro modelo. Há várias opções.
Algumas comuns:- Global Standard ( serverless )
Aqui as requisições para a API são roteadas para o modelo em algum lugar na infraestrutura global do Azure. A escolha é dinâmica baseada em fatores como latência, disponibilidade, carga, etc. Você paga pelo uso em tokens. - Standard ( serverless )
O mesmo que Global, porém considera rotear somente para uma região específica. - Global Provisioned-managed
Aqui uma máquina é alocada para unicamente para você e você paga por hora, independente do uso. A máquina pode ser alocada em qualquer local do mundo - Provisioned-managed
A mesma coisa que o anterior, porém aloca a máquina somente em uma região.
- Global Standard ( serverless )
Note que estas não são as únicas opções de Deploy dos modelos. Há outras, mas essas são as principais e mais fáceis de compreender. A partir delas é mais fácil entender o resto. Cada uma delas possui vantagens e desvantagens, que envolvem desde custo até latência, passando por questões como privacidade e questões legais a respeito do local de processamento dos dados. Este artigo é um bom ponto de partida: Understanding Azure OpenAI Service deployment types – Azure AI services | Microsoft Learn
Este vídeo mostra um exemplo prático de tudo isso que falei. Mostro como criar estes resources direto no portal do Azure, e depois, via Ai Foundry, como criamos um Hub e subimos um modelo gpt-4o-mini, da OpenAI. Por fim, testamos esse modelo com python e powershell, mostrando que funciona bem. Recomendo que veja para melhor entendimento:
Acho que podemos parar por aqui para dar tempo de você revisar esses conceitos, ver o vídeo e tentar por conta própria. Nos próximos post, trago mais informações e detalhes de novas coisas que aprendi.
Aqui estão alguns links que usei para aprender:
- Documentação do Azure OpenAI
What is Azure OpenAI Service? – Azure AI services | Microsoft Learn - Deployments Types
Understanding Azure OpenAI Service deployment types – Azure AI services | Microsoft Learn - Documentação do Azure AI Foundry
What is Azure AI Foundry? – Azure AI Foundry | Microsoft Learn - Deployment Overview
Deploy models in Azure AI Foundry portal – Azure AI Foundry | Microsoft Learn
Apaixonado por tecnologia e veterano em bancos de dados SQL Server, este entusiasta agora se aventura no fascinante universo da Inteligência Artificial.
Atualmente é o Head de Inovação da Power Tuning, onde é o responsável por trazer novas ideias para produtos e serviços, que melhorem a produtividade do time ou a experiência do cliente! Com muita experiência em programação, hardware, sistemas operacionais, e mais, agora quer juntar tudo isso nesse novo mundo e trazer muitas ideias e conhecimento sobre Inteligência Artificial!
Neste blog, vai compartilhar sua jornada de aprendizado e uso da IA, focando em como transformar nossa maneira de resolver problemas e inovar.