Ola,
No artigo de hoje vamos dissecar os valores e quando custa termos nossa própria versão do OpenAI rodando no Azure.
Muito tem se falado e comentado nas redes e alguns clientes têm mostrado interesse em utilizar os modelos do OpenAI em seus sistemas e/ou desenvolver ideias novas. Nós mesmo aqui na PowerTuning estamos testando alguns recursos para dar mais agilidade nos atendimentos do dia a dia.
Mas apesar de todo o buzz que temos em cima dos termos relacionados a Inteligência Artificial, uma pergunta é sempre comum: Quanto Custa?
Minha ideia no artigo de hoje é explicar o que é cada componente disponível e como a cobrança é feita.
Vale ressaltar um ponto muito importante: enquanto escrevo esse artigo a implementação do OpenAI no Azure ainda esta em preview fechado e até o lançamento oficial muita coisa pode e deve mudar.
Azure OpenAI
O OpenAI é um laboratório de pesquisa que produziu vários modelos de inteligência artificial, incluindo GPT-3, Dall-E e ChatGPT, entre outros.
Usando os modelos da OpenAI, os desenvolvedores podem gerar previsões de texto e imagem a partir de um prompt, como “Escreva um post para blog sobre OpenAi e Azure” ou “Como mover arquivos entre storage accounts no Azure?”.
Você já deve ter usado ou ao menos escutado falar sobre ChatGPT. ChatGPT é uma variação do modelo GPT-3.5
Agora a primeira pergunta que temos é: Por que OpenAI no Azure quando OpenAI já existe como um serviço separado?
Podemos citar alguns pontos. Em primeiro lugar, o OpenAI no Azure permite que você execute seus modelos na mesma região que seus serviços. Isso permite que você melhore o desempenho e elimine a necessidade de seus dados saírem dessa região do Azure se a segurança for fundamental para você (e regras de compliance também).
Em segundo lugar, o Azure já possui uma quantidade poderosa de infraestrutura e serviços por trás dele e usar esses mesmos serviços para proteger, controlar e gerenciar suas despesas para OpenAI será popular para muitas organizações. Quando falamos de nuvem, escalabilidade é um fator-chave e o Azure pode fornecer toda a escalabilidade que você precisa.
Em terceiro lugar, a longo prazo, provavelmente será mais conveniente para desenvolvedores familiarizados com o trabalho com o Azure trabalhar com os recursos do OpenAI no Azure do que descobrir o que eles precisam fazer para se integrar ao OpenAI fora do Azure.
E, finalmente, ter esses modelos no Azure nos permite aproveitar a escalabilidade e resiliência da Microsoft com suas datas centers existentes em todo o mundo.
Preços
Assim como muitas outras ofertas no Azure, incluindo ofertas de IA como, Serviços Cognitivos do Azure, os serviços OpenAI são cobrados em um modelo por uso, o que significa que você é cobrado principalmente pelas chamadas de API feitas.
Essas chamadas de API se enquadram em um dos seguintes tipos:
- Modelos de Linguagem (incluindo Texto, Código e ChatGPT)
- Modelos com Ajuste Fino
- Modelos Incorporados
Modelos de Linguagem
Os modelos de linguagem são modelos baseados em transformadores treinados em grande massa de dados e, em seguida, disponibilizados ao público para consumo.
Esses modelos levam algum tempo para treinar e validar e, portanto, novos modelos são lançados periodicamente após serem examinados.
Como a OpenAI está constantemente procurando maneiras de expandir seus modelos e melhorar seu desempenho, isso significa que os modelos mais antigos tendem a ter um desempenho pior do que os mais novos. Além disso, o tamanho desses modelos cresceu significativamente ao longo do tempo, o que significa que os modelos mais novos são mais caros para hospedar e também podem levar mais tempo para gerar uma resposta.
Devido a esses fatores, o preço dos modelos depende do modelo que você deseja, com os modelos mais antigos, como Ada e Babbage, sendo extremamente acessíveis e os modelos mais recentes, como Davinci, custando mais, mas sendo significativamente mais capazes e semelhantes aos humanos em suas respostas.
Tokens
Os modelos de texto são precificados com base em tokens. Tokens de uma maneira simplificada são trechos, palavras e símbolos individuais (como sinais de pontuação) nos prompts enviados ao modelo e nas respostas geradas a partir do modelo.
Uma definição mais completa extraida do proprio site da OpenAi.
A família de modelos GPT processa texto usando tokens, que são sequências comuns de caracteres encontrados em texto. Os modelos entendem as relações estatísticas entre esses tokens e se destacam na produção do próximo token em uma sequência de tokens.
Por exemplo a pergunta qual a melhor época para viajar para Banff no Canadá? Poderia ser traduzida nos seguintes tokens: ["qual", "a", "melhor", "época", "para", "viajar", "para", "Banff", "no", "Canadá", "?"], mas utilizando a ferramenta de geração de tokens da própria OpenAI temos uma transformação em 17 tokens.
Normalmente, quando você chama os serviços OpenAI, especifica o prompt, bem como o máximo de tokens a serem gerados. O modelo gerará até a contagem máxima de tokens e os retornará para você. Você será cobrado com base no consumo do modelo.
Enquanto escrevo o artigo, esses são os preços para uso de tokens
O ideal é prototipar seus aplicativos usando modelos mais baratos como o Text-Ada e validar periodicamente se eles funcionam bem com os outros modelos. À medida que se aproxime do lançamento, sua organização deve realizar uma análise de custo/benefício para determinar se o custo ou a qualidade é o fator determinante e escolher o modelo apropriado com base nesses fatores.
Também recomendo que você mantenha seu limite de token razoável para evitar que as respostas do seu modelo sejam desnecessariamente longas e acumulem custos rapidamente.
Modelos de Código
Os modelos de código são muito semelhantes aos modelos de texto, exceto que são criados para o código-fonte.
Como esses modelos são mais novos e muito mais especializados do que os modelos de texto genéricos, seu preço é significativamente mais caro por token.
Atualmente, existem dois modelos de código dedicados disponíveis: Cushman e Davinci que custam respectivamente 2,4 e 10 centavos de dólar por 1.000 tokens.
Como o código é muito denso em símbolos e os símbolos são tokens, esse custo pode aumentar rapidamente, então eu recomendaria começar no Cushman e ter uma noção da quantidade de tokens que você está gerando em suas primeiras chamadas e, em seguida, aumentar as coisas conforme necessário.
Este é outro cenário em que você precisa avaliar a qualidade da produção que está obtendo e determinar qual preço faz sentido, de acordo com suas necessidades de qualidade e demandas de volume.
ChatGPT
Fechando nossos modelos de texto está o ChatGPT conforme o comunicado de imprensa da Microsoft, o ChatGPT custa $ 0,002 USD por 1.000 tokens.
Isso torna o serviço ChatGPT tão acessível quanto o modelo de texto Curie e mais acessível por token do que qualquer modelo de código atual disponível. No entanto, o ChatGPT pode ser bastante detalhado e, portanto, você pode descobrir que sua contagem de tokens está acumulando mais rápido do que o esperado, portanto, faça alguns testes de validação simples antes de aumentar seu uso.
Modelos de Imagem
Como os modelos de imagem geram imagens de saída em vez de uma série de tokens, sua precificação é muito mais simples: as imagens são precificadas no nível por imagem, independentemente de qual prompt você deu ao modelo.
No momento em que escrevo, as imagens Dall-E custam US$ 2 por 100 imagens geradas ou 2 centavos por imagem.
Modelos com Ajuste Fino
Você pode também customizar/criar seu próprio modelo utilizando como base um dos modelos pré-existentes
A primeira decisão que você toma é provavelmente a mais crítica: você precisa determinar em qual modelo base seu modelo ajustado será construído. Isso afeta a qualidade geral do modelo treinado e também afeta significativamente o preço durante o treinamento, a hospedagem e as requisições.
Treinamento
Sua primeira despesa neste processo será pagar pelo tempo gasto treinando ativamente seu modelo. Este é o processo de ajuste fino do modelo para se adaptar aos dados personalizados que você fornece.
O tempo gasto dependerá dos dados de treinamento que você enviar ao Azure. Quanto mais dados você fornecer, mais o seu modelo poderá se adaptar aos seus casos, mas também levará mais tempo para o treinamento.
No momento, o tempo de treinamento é cobrado por hora de computação para treinamento e os preços variam de US$ 20 a US$ 84 por hora, dependendo do modelo básico selecionado. Semelhante à geração de token acima, os modelos mais simples são mais baratos por hora em comparação com os modelos básicos mais avançados.
Como o treinamento pode ser um grande compromisso, recomendo que você determine qual modelo básico deseja antes de experimentar o ajuste fino de um modelo, pois toda vez que avaliar um modelo diferente, precisará treinar um modelo ajustado com base nesse modelo básico.
Deploy
Depois que seu modelo for treinado, você precisará implantá-lo. Neste ponto, você paga pela hospedagem ativa por hora, assim como faria se implantasse um modelo treinado do Azure Machine Learning. Como antes, os custos de hospedagem dependerão do modelo básico que você selecionou.
Atualmente, a hospedagem é uma despesa por hora que varia de 5 centavos a 3 dólares a hora, dependendo do seu modelo básico.
Consumindo o Modelo
Por fim, depois que um modelo é implantado, os custos de uso padrão ainda se aplicam na forma de custos por mil tokens.
Atualmente, esses custos são idênticos aos custos dos modelos básicos. Isso significa que, se você ajustar um modelo, seus custos adicionais para essa personalização do processo de treinamento e implantação, mas você ainda pagará custos de uso para gerar tokens desses modelos.
Devido a essa estrutura de taxas, eu só consideraria o ajuste fino de um modelo se tivesse um caso crítico para o qual os modelos básicos fossem insuficientes. Dito isso, o ajuste fino de um modelo oferece controle adicional e a capacidade de implantar algo exclusivo para sua organização e seus usuários, e pode haver muito valor nisso.
Conclusão
Antes de escrever minhas considerações finais, se voce leu até aqui deve estar curioso para saber o quanto custaria de fato para implementarmos OpenAI em nossos projetos, vou deixar aqui duas simulações.
Utilizando Modelos Existentes
Nos modelos pré-treinados temos apenas o custo de uso por tokens, nesse ponto seria extremamente dificil estimar quantos tokens seriam usados em um mes, mas para termos uma média, fiz um calculo considerando 1 milhão de tokens.
Utilizando modelos com ajuste fino
Como a idéia seria personalizar um modelo com casos de uso do dia a dia para podermos oferecer alem da base de conhecimento geral respostas baseada em nossa expertise temos dois custos:
O custo de treinamento, pago uma única vez (ou quando fossemos aprimorar o modelo)
E o custo para hospedar e gerar os tokens
Sendo bem otimista estamos falando de um custo mensal de +/- $500 dólares no minimo.
O tema subjacente com OpenAI no Azure é que você deve tomar uma decisão sobre onde você se enquadra entre otimizar para custos reduzidos e otimizar para maior qualidade do conteúdo gerado.
Enquanto alguns serviços são pagos por chamada ou por hora, a maioria das coisas com OpenAI são cobradas em nível de token. Isso significa que, se você precisar enviar muito texto ao OpenAI ou precisar gerar respostas detalhadas, estará pagando significativamente mais ao longo do tempo do que um sistema que precisa apenas de perguntas e respostas simples.
Eu o encorajaria a fazer algumas experiências direcionadas e testes internos para ver qual nível de qualidade sua organização considera aceitável e quão justificável é o preço desse nível de serviço para sua empresa.
Por último e não menos importante, se precisar de ajuda com testes e implementação nos chame para um bate papo, nossas ferramentas de FinOps serão uma aliada na hora de monitorar e prever seus custos com OpenAI.