Um breve histórico sobre IA
O Teste de Turing, originalmente chamado de Jogo de Imitação por Alan Turing, é um teste da capacidade de uma máquina de exibir um comportamento inteligente equivalente ou indistinguível do de um ser humano. O teste foi introduzido por Turing em seu artigo de 1950 “Computing Machinery and Intelligence” enquanto trabalhava na Universidade de Manchester. Turing propôs que um avaliador humano julgaria as conversas em linguagem natural entre um humano e uma máquina projetada para gerar respostas semelhantes às humanas. Resumidamente, se o avaliador não pudesse distinguir com segurança a máquina do ser humano, dir-se-ia que a máquina passou no teste.
A partir de contribuições fundamentais nas pesquisas de Turing ele é considerado o pai da Inteligência artificial juntamente com McCulloch/Pitts (1943) que criaram o modelo de redes neurais (base da IA moderna) e John McCarthy (1956) que cunhou o termo “inteligência artificial”.
Chatbot baseado em IA
Um chatbot pode ser definido como um programa de computador projetado para interagir com os usuários usando linguagem natural ou texto de uma forma que o usuário pense que está dialogando com um humano.
Os chatbots tradicionais, anteriores ao advento da popularização do Chat GPT, apenas criavam uma ilusão de inteligência ao empregar técnicas muito mais simples de combinação de padrões e design de processamento de strings para sua interação com os usuários. Ainda que constituam uma excelente solução para área de automação no atendimento ao cliente, esses chatbots estão muito distantes da complexidade empregada nos chatbots que utilizam inteligência artificial generativa com modelos de alta complexidade, o foco do nosso artigo.
A partir do ChatGPT (Chat Generative Pre-trained Transformer) da Open AI Co., ocorre a união entre uma interface amigável dos chatbots tradicionais e um sistema complexo de IA generativa. De forma simples podemos abstrair a IA generativa como uma tecnologia que cria conteúdo — incluindo texto, imagens, vídeo e código de computador — identificando padrões em grande volume de dados de treinamento e, em seguida, criando material original com características semelhantes.
Com o surgimento de novas tecnologias (tanto de hardware como de software), os chamados Large Language Models (LLMs) conseguem processar volumes gigantescos de dados. Com isso, as técnicas de aprendizado profundo para treinamento extensivo estão cada vez mais avançados em relação ao tipo de conteúdo (output) gerado e à precisão da interpretação da entrada feita pelo usuário (input).
Gerando scripts a partir de Chatbot baseado em IA
Em 2023 um dos assuntos com maior atenção na área de tecnologia sem dúvida foi o Chat GPT que fora lançado ao público no final de 2022.
Esse fabuloso “novo mundo” inaugurado pela Open AI foi trazido para o contexto da computação em nuvem no canal do Raphael através do vídeo intitulado Criando scripts Terraform e Azure PowerShell com ChatGPT :
Baseado nessa proposta do vídeo do canal #partiunuvem, o presente artigo pretende cumprir os seguintes objetivos:
- Utilizar um roteiro de inputs nos quatro chatbots baseados em IA escolhidos: ChatGPT (Open AI), Copilot (Microsoft), Perplexity (Perplexity) e Gemini (Google);
- A partir do roteiro de inputs, obter scripts (código) como outputs;
- Utilizar o código gerado para provisionar recursos no Azure via PowerShell;
- Avaliar possíveis bugs na utilização dos scripts gerados;
- Avaliar aspectos de usabilidade durante a utilização;
- Avaliar a precisão dos outputs.
Para podermos estabelecer uma comparação sem interferência de fatores aleatórios ou não controlados, consideramos os seguintes critérios:
- Foram utilizadas somente licenças do tipo trial ou free;
- Quando solicitada autenticação, utilizou-se conta de e-mail inédito, nunca antes cadastrado na ferramenta;
- Utilizou-se aba anônima;
- Partiu-se sempre do mesmo texto e ordem dos inputs;
- Os testes foram realizados na mesma data e faixa de tempo.
Hands On – Parte I: verificando requisitos
Antes de começarmos a gerar os scripts para criar os recursos no Azure, precisamos verificar alguns requisitos na nossa máquina local.
Para isso vamos utilizar o seguinte input:
Como utilizar o powershell para o Azure?
Hands On – Parte I: comparando resultados
1) Chat GPT
Para utilizarmos o ChatGPT não precisamos obrigatoriamente estar logados dentro da plataforma da Open AI (basta acessar https://chat.openai.com/):
PRÓS 1:
- Na atual versão não exige mais autenticação por e-mail;
- Ordenação e espaço delimitado para o código;
- Lista os passos básicos: instalação do módulo para Azure, conectar, desconectar
CONTRAS 1:
- Não fornece referências, como a documentação oficial, por exemplo;
- Não faz considerações sobre a versão do PowerShell.
2) Copilot
Para utilizarmos o Copilot, não precisamos estar logados:
PRÓS 2:
- Cita o requisito da versão do PowerShell;
- Referências dos outputs;
- Sintaxe do código em cores.
CONTRAS 2:
- Interface poderia melhorar a usabilidade (melhor organizada e mais enxuta)
3) Perplexity
Optou-se novamente por utilizar na versão anônima, sem a necessidade de login/autenticação (link para acessar – https://www.perplexity.ai/):
PRÓS 3:
- Provavelmente a interface com design mais bonito e melhor usabilidade do conjunto avaliado;
- Para cada output existe uma referência;
- Forneceu seção adicional (Related) com informações relevantes
CONTRAS 3:
- Não expõe o código/script
4) Gemini
Depois de aposentar o Bard, o Google apresenta sua nova versão (link para o Gemini: https://gemini.google.com/):
PRÓS 4:
- Design amigável, muito semelhante ao Perplexity;
- Indica referências, incluindo documentação da Microsoft;
- Indica os passos em ordem lógica, desde a instalação até a autenticação no Portal Azure.
CONTRAS 4:
- Necessita login/autenticação;
- Não expõe (verbosidade) os scripts
Hands On – Parte II: criando recursos no Azure
Aqui nossa avaliação será focada no código gerado a partir do nosso input.
Para essa etapa utilizaremos o seguinte input:
Crie um script powershell com resource group chamado rg-chatbotia e um storage account chamado tftecloud001 na região eastus
Hands On – Parte II: comparação dos resultados
1) Chat GPT
O resultado do output fornecido pela ferramenta é mostrado abaixo:
Ainda que seja bastante óbvio a operação de autenticação/login como primeiro passo para utilização do do Portal Azure, a forma como output foi apresentado pode levar ao seguinte erro:
Ou seja, temos um pequeno equívoco de ordenamento dos processos. Esse tipo de situação pode ser restrita a somente esse tipo de contexto ou abranger outro tipo de processo.
2) Copilot
Para o resultado do Copilot temos o output da figura abaixo:
Ainda que na fase anterior foram levantadas algumas possíveis melhoriais com relação à usabilidade, em relação à qualidade do output do script, tudo foi gerado na ordem e na sintaxe correta coforme pode se verificadona saída abaixo:
3) Perplexity
O output para a solicitação do script é observado na figura abaixo:
Aqui novamente o problema da ordenação se apresenta sendo que a etapa de autenticação não é citada.
4) Gemini
O resultado da última ferramenta é mostrado abaixo:
O Gemini além dos comandos de criação também forneceu alguns comandos de exibição para o Storage Account. No entanto, o comando inicial de autenticação/login na subscription não está incluído no script gerado!
Considerações finais
Ainda que Gemini, ChatGPT e Perplexity apresentaram muitas vantagens em relação ao Copilot na primeira etapa da avaliação, em relação à qualidade da sintaxe e precisão no script, a solução da Microsoft dentro do contexto da proposta demonstrou vantagem em relação aos demais.
Para o próximo artigo vamos aumentar a complexidade dos scripts e quem sabe incluir também Terraform! O que vocês acham?!
Bons estudos e nos vemos no próximo conteúdo!