Em Usando ChatGPT para Testes Automatizados, falamos sobre maneiras fáceis de fazer a IA Generativa escrever scripts de teste e bibliotecas de software, facilitando a comunicação com seu equipamento de teste. Agora que você está familiarizado com a automação dos seus scripts de teste, é hora de automatizar o processamento dos seus dados de teste também. Usar o ChatGPT para análise de dados pode ser simples e eficiente. Neste artigo, vamos ver como fazer isso com dados de teste recentes dos meus últimos testes de bateria.
Recentemente, realizei alguns testes para perfilar uma bateria inteligente e queria ver quão precisos eram alguns dos registros de relatório
especificamente:
Os dados de saída que coletei do meu script de teste estavam em formato CSV, então foi fácil importá-los para o Microsoft Excel. Naturalmente, como a maioria dos engenheiros, eu poderia ter usado planilhas com tabelas sofisticadas, gráficos e um pouco de mágica de fórmulas do Excel para encontrar os dados que estava procurando. No entanto, decidi que o que eu realmente queria era um assistente a quem eu pudesse fazer uma série de perguntas e obter de volta os dados que estava procurando.
Com a IA e seu Modelo de Linguagem Natural, posso fazer perguntas em inglês simples sobre meus dados e obter os resultados que estou procurando. O que é ainda melhor é a recente adição do plugin de Análise Avançada de Dados (anteriormente conhecido como "Intérprete de Código") no GPT-4. Ele não apenas me mostra o código Python que escreve enquanto processa minhas instruções, mas também pode grafar dados para mim usando a biblioteca Matplotlib em Python. Note que estou me referindo a uma versão paga do ChatGPT, mas você ainda pode obter a maior parte do que está procurando na versão gratuita do ChatGPT (ou outros sistemas de IA Generativa).
Antes de começar, queria ter uma ideia do que minha IA poderia e não poderia fazer por mim. Eu enviei meus dados de teste em CSV para o ChatGPT e fiz perguntas simples sobre os dados, como “Qual é a temperatura média relatada pela bateria?” Descobri muito rapidamente que o conjunto de dados que dei era grande demais. Eu tinha duas escolhas: reduzir meus dados ou pedir que ele me fornecesse comandos para executar contra meus dados localmente. Decidi fazer ambos. Com o plugin de Análise Avançada de Dados, ele fornecerá o trecho de código (em Python) que executa em suas máquinas. Uma vez que forneci ao GPT-4 meu arquivo reduzido, ele foi capaz de começar a analisar os dados.
Ao longo deste artigo, você verá trechos de código que ele fornece que podem ser executados localmente contra o conjunto maior de dados também. Ter o GPT-4 executar o código primeiro é um componente chave que estava faltando quando eles lançaram o ChatGPT. Eu, frequentemente, recebia código gerado que não funcionava. Com a Análise Avançada de Dados, isso parou de acontecer (já que tentaria se corrigir após uma falha).
Quando você carrega seus dados pela primeira vez, é bom testar as águas um pouco. Para começar, eu dou ao ChatGPT a chance de analisar meus dados e me dizer o que acha que pode fazer:
Figura 1: Carregamento inicial de dados
Depois disso, ele me dá sugestões sobre o que acho que gostaria de ver:
Figura 2: Sugestões de análises
Estou curioso sobre a matriz de correlação. Estou me perguntando como a temperatura se correlaciona com a tensão e corrente de alimentação, então vou perguntar:
Mostre-me a correlação entre temperatura, tensão/corrente de alimentação e tensão/corrente de carga.
Ele me dá uma boa decomposição de como todas as variáveis se correlacionam:
Figura 3: Matriz de correlação
E se eu pedir ao ChatGPT para plotar para mim, eu obtenho:
Figura 4: Gráfico da matriz de correlação
Ele me dá algumas correlações extras, que realmente não me interessam, mas estou bem em ignorá-las.
Agora que realizei alguma exploração de dados, gostaria de passar para a validação dos meus conjuntos de dados. Como mencionado acima, quero ter uma ideia de quão bem a bateria inteligente relata sua tensão e corrente internas. A maneira mais simples de acompanhar isso é ler a potência de alimentação e carga dos meus instrumentos e compará-la com a potência relatada pela bateria. Obviamente, haverá alguma perda nos cabos e queda de eficiência no carregador, então vamos apenas olhar para a correlação entre os dois e determinar nossa precisão a partir daí.
Embora o modelo de linguagem natural que o ChatGPT fornece seja muito bom, certamente não é perfeito. Existem certos conceitos que ele pode não entender completamente. Se você pedir para realizar análise estatística, geralmente entende o que fazer, mas pode não sempre entender termos de engenharia simples. Para contornar isso, tento fazer meus pedidos da forma mais simples possível para evitar problemas a jusante. Peço ao ChatGPT para criar três novas colunas:
Vamos criar três novas colunas de dados:
- Potência de Alimentação: Tensão de Alimentação * Corrente de Alimentação
- Potência de Carga: Tensão de Carga * Corrente de Carga
- Potência da Bateria: abs(Tensão * Corrente)/1000/1000
Também preciso indicar que quando minha potência de carga = 0 (ou seja, a carga eletrônica DC não está drenando corrente do dispositivo em teste) isso significa que estamos carregando. Quando a potência de carga é diferente de zero, isso é uma indicação de que estamos descarregando a bateria. Novamente, para não confundir o GPT-4, menciono isso na solicitação assim:
Trace a potência de carga e a potência da bateria contra os carimbos de tempo, mas apenas quando a potência de carga é diferente de zero
O resultado que obtenho é um gráfico interessante:
Figura 5: Gráfico de Potência de Carga e Bateria
Agora que os dados parecem bons, posso pedir uma correlação e outras análises:
Mostre-me a correlação entre os dois (apenas em um cenário não nulo)
Figura 6: Cálculo de correlação
E quando peço outras estatísticas:
Qual é a diferença média, desvio padrão e variância entre os dois (apenas não nulo) [em porcentagens]
Figura 7: Estatísticas sobre Potência de Carga e Bateria
Isso me ajuda a validar minha intuição de que os dois estão intimamente ligados, já que há apenas uma pequena perda no cabo. Agora realizo a mesma análise na parte de carregamento:
Vamos realizar a mesma análise, mas traçando a potência de fornecimento e a potência da bateria contra os carimbos de tempo quando a potência de carga é 0
Figura 8: Gráfico de Potência de Fornecimento e Bateria
Como você pode ver, tenho algumas falhas. Isso se deve à telemetria da bateria inteligente estar fora de sincronia com meus instrumentos. Idealmente, eu deveria entrar no modo de carga (ou seja, desligar a carga eletrônica e ligar a fonte de alimentação) e depois esperar mais alguns segundos antes de coletar a telemetria. A razão para isso é porque há uma série de comandos que são enviados entre a bateria e o carregador para “negociar” quanto poder entregar à bateria. Pense nisso como uma versão simplificada do USB-C Power Delivery (se você estiver familiarizado com o conceito).
Infelizmente, eu não incorporei isso ao meu script de coleta de telemetria, então agora tenho anomalias para filtrar. Sem problemas, o ChatGPT também pode fazer isso. Após algumas iterações, eu “treino” meu IA para “aprender” o que é considerado um glitch e o que não é (por exemplo, o que é considerado uma discrepância que não é contabilizada nas funções padrão de análise estatística) e então ele aplica esse conhecimento:
Figura 9: Gráfico filtrado de energia de Suprimento e Bateria
Quando peço as mesmas estatísticas, recebo uma análise completa:
Figura 10: Estatísticas no gráfico filtrado de energia de Suprimento e Bateria
Isso é uma boa notícia. Estou esperando uma diferença maior entre os valores porque há perda tanto no cabo quanto no conversor de energia.
O ChatGPT também pode atuar como um limpador para seus dados, procurando por anomalias. No passado, eu vi alguns glitches onde o registro de temperatura ficou um pouco fora de controle. Eu peço ao ChatGPT para “me dizer se você ver algum glitch nos meus dados” e ele retorna com:
Figura 11: Procurando por anomalias nos dados de Temperatura
Isso pode dar um bom ponto de partida para identificar glitches. Neste teste específico, parece que o registro de temperatura estava funcionando corretamente. Considere este gráfico de eficiência energética que peço ao ChatGPT para plotar para mim:
Figura 12: Plotando eficiência energética
É bastante evidente que há algumas anormalidades nos meus dados. Certamente não é possível ter eficiência > 100% e o GPT-4 sabe disso também:
Figura 13: A opinião do ChatGPT sobre a anomalia
Após minha investigação, descobri que havia, de fato, uma falha no barramento de comunicação. Peço ao ChatGPT para filtrar todos os pontos de dados onde a eficiência é > 100%. Neste ponto, posso solicitar um link para baixar os dados filtrados, plotá-los novamente ou filtrá-los ainda mais.
Neste artigo, olhamos para maneiras de utilizar o ChatGPT para analisar, filtrar e manipular nossos dados de teste a partir de nossos relatórios de teste. Começamos fazendo o upload dos dados de teste e perguntando ao ChatGPT o que ele poderia fazer e, em seguida, avançamos para a validação e limpeza dos dados. A principal conclusão aqui é que podemos utilizar a linguagem natural para nos proporcionar explorações guiadas através do nosso conjunto de dados. Nos próximos meses, veremos outros players no espaço da IA começar a oferecer recursos como este integrados às suas aplicações. À medida que entramos neste ecossistema de pareamento, usaremos a IA para nos apoiar e guiar através de nossa análise em vez de nos substituir. À medida que a IA se torna mais onipresente no processamento de dados, nossas capacidades como indivíduos crescerão, desbloqueando inúmeras possibilidades e potenciais.