Introdução ao Azure Open AI

Anselmo Borges
Rescue Point
Published in
7 min readJan 26, 2024
Aquele resumão do cara que estuda direitinho, rs

Fala pessoal, tudo bem? Recentemente comecei a estudar sobre Open AI na página de documentação da ferramenta, mas aproveitando que trabalho bastante com a cloud Azure, vi que existe um roteiro de estudo voltado para utilização do Azure Open AÍ, E com isso segue alguns pontos sobre meus estudos.

O que é o Azure Open AÍ?

Diferente do que conhecemos no site da Open AI, o Azure Open AI, é uma infraestrutura criada dentro da sua subscrição azure, onde consigo integrar qualquer recurso já existente na minha cloud com os serviços oferecidos de LLM. Atualmente esse recurso está em Public Preview e você só consegue ativá-lo preenchendo um questionário onde você vincula a subscrição onde quer criar.

Segue o link abaixo pra solicitar a ativação do recurso na sua subscrição:

Ativação não é imediata e o prazo de validação é de 24hs. Outro ponto importante é que são poucas as regiões onde o serviço está ativado, por exemplo, para o Brasil não existe nenhum recurso ativado por enquanto.

Segue abaixo o link Com as regiões em que o serviço encontra-se ativo atualmente:

Hoje na Porto, estou trabalhando com toda minha infraestrutura de dados na região do Brasil, por conta de LGPD e também pelo fato que na conectividade (hub/spoke) onde meu hub também encontra-se em São Paulo. Não tenho ativado esse serviço lá, até mesmo porque o fato de criar-lo numa região como US EAST me traria um custo chamado Inter regional data transfer.

Optei por realizar meus testes de estudo na minha conta pessoal da Azure, onde preenchi o formulário citado acima estou aguardando a liberação. Enquanto não consigo mexer efetivamente vou fazendo esse post com tudo que encontrei e que pode ser útil pra você.

Vamos começar com alguns pontos básicos…

Criando o Recurso

Primeiramente você cria o recurso do Open AI na Azure, onde você configura em qual subscription, qual resource group, qual o nome do seu recurso e qual o modelo de preço você vai usar.

Criando o recuso do Open AI na Azure

O recurso pode ser criado também via Azure CLI assim como qualquer recurso Azure. Segue um comando abaixo que roubei do treinamento na larga, basta substituir pelos seus dados mas fique atento a região, como disse, não são todas que possuem o serviço.

az cognitiveservices account create \
-n MyOpenAIResource \
-g OAIResourceGroup \
-l eastus \
- kind OpenAI \
- sku s0 \
- subscription subscriptionID

No meu caso, como ainda não está liberado (preenchi o formulário de liberação que falei acima e estou aguardando) a criação do recurso ainda se encontra indisponível conforme a imagem abaixo:

Ainda não fui liberado! Tomara que eu seja

Azure Open AÍ Studio

Com ro ecurso criado, você pode fazer uso do Azure Open AI studio. Trata-se de uma interface onde consigo gerenciar e configurar todos os meus modelos de IA. Essa pagina também pode ser acessada pelo link abaixo:

Segue também um exemplo da página inicial:

Azure Open AI Studio

Implementações

Logo de cara no menu inicial ele já te oferece a possibilidade de criar uma implementação, o ponto inicial de uma implementação é a escolha de um modelo, e os modelos inicialmente podem ser:

  • GPT-4
  • GPT-3.5
  • Modelos de inserção que convertem texto em vetores numéricos e são úteis em cenários de análise de linguagem, como comparar fontes de texto as semelhanças
  • Modelos DALL-E, que são usados para gerar imagem com base em prompts de linguagem natural

Mas vamos falar um pouco de modelos:

Modelos

Modelos no ChatGPT são como cérebros digitais que aprendem a entender e a gerar texto. Eles leem muitos livros, artigos e conversas para aprender como as palavras e as frases se encaixam. Quando você conversa com o ChatGPT, ele usa o que aprendeu para entender sua mensagem e responder de uma maneira que faça sentido, como se fosse uma conversa entre duas pessoas. Conforme dito acima, os modelos se dividem em modelos, versões e funções.

Toda cobrança é baseada no tipo de modelo usado eu número de tokens solicitados a eles. vamos aproveitar e já falar sobre os Tokens

Tokens

Os tokens no ChatGPT referem-se às unidades básicas de texto que o modelo processa. Quando você digita uma mensagem, ela é dividida em tokens, que podem ser palavras, partes de palavras ou até mesmo pontuação. O modelo então analisa esses tokens para entender o que você está dizendo e gerar uma resposta apropriada.

Se liga no exemplo abaixo:

Na frase “Olá, como você está?”. Na tokenização, essa frase pode ser dividida da seguinte forma:

1. Olá

2. ,

3. como

4. você

5. está

6. ?

Cada um desses elementos é um token. O modelo então usa esses tokens para entender a mensagem e gerar uma resposta. Note que até a pontuação (como a vírgula e o ponto de interrogação) são considerados tokens, pois eles também carregam significado no contexto da frase.

Agora que entendemos as 2 unidades de cobrança segue uma tabela dos preços com base nos modelos no link abaixo:

https://azure.microsoft.com/pricing/details/cognitive-services/openai-service/

Em resumo, uma implementação é quando eu escolho um modelo, a versão desse modelo e dou o nome para essa implementação. Com isso a Azure cria um endpoint para que eu faça as minhas requisições API.

Dados para implementação de um modelo

Assim como criamos o recurso, também podemos criar um modelo usando o Azure CLI, segue abaixo um comando pronto que roubei descaradamente da documentação:

az cognitiveservices account deployment create \
-g myResourceGroupName \
-n myResourceName \
- deployment-name MyModel \
- model-name gpt-35-turbo \
- model-version "0301" \
- model-format OpenAI \
- scale-settings-scale-type "Standard"

Usando prompts

Prompt é o texto enviado para o modelo com a pergunta que você quer que ele resolva. As respostas Desses trombes São chamadas de conclusão Que podem vir no formato de texto, código ou outros formatos como um dos exemplos imagens.

A qualidade da sua conclusão vai depender de:

  • A maneira como prompt é projetado, existem uma série de dicas e regrinhas que podem te auxiliar a obter uma conclusão mais assertivo
  • A conclusão depende muito também da forma de como esse modelo foi treinado.

Efetuando chamadas

A partir do momento que você tem o seu modelo, você pode realizar chamadas usando a API REST, com as linguagens Python e C#. Existem uma série de variáveis em pontos de extremidade de solicitação de acordo com cada modelo. Segue um link abaixo com uma documentação sobre eles:

Playgrounds

Como próprio nome já diz é uma área na UI do Azure Open AI Studio (existe também na Open AI convencional quando você seleciona API) em que você pode testar o seu modelo mesmo ainda não tendo um código de chamada pronto.

Existem alguns parâmetros que você pode ajustar pra ir testando seu modelo segue abaixo alguns:

  • temperatura: esse parâmetro serve pra quando você quer ajustar a aleatoriedade da resposta, ou seja, quanto menor a temperatura mas repetitivas e determinísticas serão as respostas, quanto maior a temperatura mais inesperadas e criativas serão as respostas.
  • Comprimento máximo de tokens: Já falamos sobre os tokens aqui, a API do modelo, dá um suporte máximo de 4000 tokens (desde o Prompt até a conclusão)
  • Principais probabilidades: é parecido com a temperatura mas ele restringe a seleção de token do modelo a token mais prováveis, ou seja, ela tem um foco mas nos tokens do que na conclusão, geralmente ou se usa essa variável ou se usa a temperatura, nunca se usam as duas juntas.
  • Penalidade de frequência: Diminui a probabilidade de repetir exatamente o mesmo texto em uma resposta
  • Penalidade de presença: Reduza a chance de repetir qualquer token que já tenha sido exibido no texto. aumenta a probabilidade de introduzir novos tópicos em uma resposta.
  • Texto pré resposta: Insira um texto após a entrada do usuário e antes da resposta do modelo isso pode ajudar a preparar o modelo para uma resposta
  • Texto pós resposta: Insira um texto depois da resposta gerada pelo modelo para incentivar mais entradas do usuário como modelar uma conversa.

Depois que você configurou todas essas variáveis Você pode acessar a área chat do Playground, basicamente é uma área onde você inicia uma sequência de perguntas e respostas com o modelo.

Playground de chat

Eu ainda posso configurar parâmetros na área de chat também, Basicamente ele tem os mesmos parâmetros citados anteriormente Mas tem também Alguns não disponíveis no anterior.

  • resposta máxima: como próprio nome já diz eu defino um número máximo de tokens na resposta.
  • Mensagens anteriores incluídas: a inclusão de mensagens anteriores ajuda a fornecer o contexto do modelo para novas consultas do usuário. Por exemplo, definir esse número como 10 incluirá cinco consultas do usuário e cinco respostas do sistema.

Contagem dos tokens

Como todas as chamadas a API são precificadas por token, O ajuste de token tanto na pergunta como na resposta pode ajudar a economizar.

No post de hoje foi isso, no próximo vou mostrar como é possível criar seu código Python para realizar chamadas a esse serviço criado (e que pode ser reaproveitado para um Open AI genérico sem problemas. A diferença básica que entendi entre um e outro são as funcionalidades de integrar com sua cloud, mante-lo privado e acessivel somente as aplicações que você deseja.

Deixa a palminha ae e te aguardo no próximo resumão!

Abraço,
Anselmo Borges

--

--

Anselmo Borges
Rescue Point

Bigdata Engineer, Cloud Architect, Nerd, Alcoholic, Brazilian Jiujitsu Black belt and hide and seek World champion.