Log in

Os números não mentem

José Estêvão de Melo

Ouvimos muitas vezes dizer que os números não mentem, o que está correto. Mas isto porque o ato de mentir está associado a uma intenção de enganar, e apenas entidades com capacidade de intencionalidade são capazes de mentir, sendo os números desprovidos de qualquer intencionalidade, então é correto dizer que não mentem, da mesma maneira que não acusamos ninguém de mentir quando acredita legitimamente que o que está a dizer é verdade, independentemente de ser verdade ou não o que foi dito. Se não é verdade dizemos que estava enganado. Um paralelo simples para interiorizar este conceito é o caso de bater com o dedo mindinho do pé num móvel, o móvel não é bom nem mau, porque não é capaz de maldade ou bondade.

Estabelecemos até aqui que os números não mentem, mas os números também não representam a totalidade da realidade, por exemplo, em certas partes rurais de Inglaterra algumas zonas com mais cegonhas tinham mais bebés. É verdade, mas não é toda a verdade. Não podemos olhar para estes números, que são verdadeiros, e dizer que as cegonhas trazem bebés, ou que gostam de bebés, ou que os bebés trazem cegonhas. Estes dois números estão correlacionados, mas não existe uma relação causal entre os dois, isto porque existem outros fatores não representados nestes números que afetam o número de crianças ou o número de cegonhas, como por exemplo a disponibilidade de alimento em zonas rurais ser maior e por isso mais atrativa para as cegonhas.

Uma relação causal é quando um acontecimento é causado por, ou causa outro. Por exemplo, podemos dizer que a chuva molha o chão, mas não podemos dizer que choveu só porque o chão está molhado. Há outros motivos que fazem o chão ficar molhado para além da chuva, como por exemplo lavar o quintal para a festa. No caso das cegonhas existe uma correlação entre o número de bebés e o número de cegonhas, mas não existe uma relação causal entre os dois, no sentido em que ambos podem mudar sem influência mútua.

A estatística faz parte da nossa vida, e a prova disto é que muitas das nossas escolhas são feitas com base em estatísticas, por exemplo sempre que escolhemos a forma de sair de casa, tendencialmente descemos as escadas em vez de saltarmos da janela do primeiro andar, que apesar de ser mais rápido, tem maior probabilidade de partir ossos, ou se ao me pesar a balança indicar menos 10 kg, apesar de ser possível ter perdido este peso, era mais provável a balança estar avariada, e fui ver se tinha alguma coisa debaixo da balança, e para infelicidade minha tinha uma pequena peça de plástico entre o prato da balança e o chão.

A inteligência artificial de atualmente, aprende por inferências estatísticas, que como já vimos não é suficiente para decidir corretamente. Um caso conhecido foi com a deteção de melanomas por inteligência artificial, que em termos estatísticos tem melhores resultados a detetar melanomas do que os profissionais humanos, no entanto um estudo de 2017 publicado na revista Nature, verificou que as imagens que continham uma régua tinham uma taxa de positividade maior, isto porque os modelos de inteligência artificial aprenderam a associar à positividade de melanoma outros elementos contextuais como a presença de uma régua, não porque a régua tenha uma relação causal com a existência de melanoma, mas porque quando um profissional de saúde humano identifica um melanoma coloca uma régua ao lado para monitorizar a sua evolução, e o modelo de inteligência artificial aprendeu que as imagens que continham réguas eram mais prováveis de ser positivo e atribuiu um relação causal entre a presença de uma régua e a positividade de melanoma, quando não existe esta causalidade, apenas correlação.

Em conclusão, os números não mentem, mas também não dizem a verdade — e isso pelo mesmo motivo: são o que são e precisam apenas ser interpretados. É necessária uma inteligência geral (que a artificial ainda não possui) para olhar para os números, avaliar se são suficientes para tirar conclusões e, se não forem, ter a coragem de não concluir — ou então persistir na procura de mais e melhor informação, para concluir com honestidade e causalidade.

Será que a nuvem é mesmo segura?

José Estêvão de Melo

A nuvem (Cloud) parece ser a solução para todos os problemas de armazenamento de dados. As ofertas disponíveis no mercado são vastas — e, em muitos casos, cada vez mais integradas de forma quase automática nos nossos dispositivos. Todas as grandes marcas, como Apple, Google e Microsoft, têm os seus próprios serviços de armazenamento na nuvem. É uma solução prática e com custo relativamente baixo, com mensalidades que variam entre 1 e 3 euros por mês para algumas dezenas de gigabytes de espaço.

De forma resumida, a nuvem é um sistema composto por dezenas, centenas ou milhares de computadores, chamados nós, que podem estar distribuídos por todo o mundo e que trabalham em cooperação. Qualquer um desses nós pode ser substituído a qualquer momento por outro e, como são muitos, nenhum é indispensável — sendo possível até que vários apresentem falhas simultaneamente sem comprometer o funcionamento do sistema.

Essa organização permite um crescimento praticamente ilimitado, capaz de armazenar quantidades de dados difíceis até de imaginar.

Um exemplo impressionante é o do CERN, onde o volume de dados atualmente ultrapassa 1 Exabyte — o equivalente a 1 milhão de Terabytes. Considerando que um computador portátil comum tem capacidade para cerca de meio Terabyte, seriam necessários aproximadamente 2 milhões de portáteis para armazenar toda essa informação.

Ao utilizarmos serviços de nuvem para armazenar os nossos dados, estamos, na maioria dos casos, a ceder o controlo dos mesmos às entidades que gerem esses serviços. Dizem-nos que os nossos dados estão seguros, mas o termo “seguro” é bastante amplo.

Se por segurança entendermos que, em caso de perda do telemóvel, podemos recuperar as fotografias a partir da nuvem, então sim — os dados estão seguros nesse sentido. No entanto, se segurança significar garantir que ninguém (nem sequer o fornecedor) pode aceder ou ler os dados armazenados, então poucos serviços oferecem essa proteção.

Além da possibilidade de acesso indevido por parte do fornecedor, existe o risco de ciberataques. Um exemplo conhecido é o da Uber, em 2016, quando um ataque informático resultou no roubo dos dados de 57 milhões de condutores e clientes. A empresa acabou por pagar aos atacantes para que a informação não fosse divulgada — um caso que demonstra como mesmo grandes empresas estão vulneráveis.

O objetivo deste artigo não é gerar medo, mas sim consciência. A melhor forma de garantir que a informação armazenada na nuvem não possa ser lida por terceiros é através da criptografia.

A criptografia é o processo que transforma os dados em informação ilegível, que só pode ser decifrada com a senha correta. Alguns serviços oferecem criptografia ponto-a-ponto (end-to-end encryption), o que significa que os dados são cifrados antes de saírem do seu dispositivo, e nem sequer o fornecedor consegue vê-los.

Infelizmente, os serviços mais populares (como Google Drive, iCloud ou OneDrive) não oferecem esta funcionalidade por padrão. Por isso, é importante refletir sobre que tipo de informação está a armazenar e, se necessário, utilizar ferramentas externas para cifrar os dados antes de enviá-los para a nuvem.

A nuvem é uma tecnologia poderosa e conveniente, mas não está isenta de riscos. A responsabilidade pela segurança dos nossos dados é partilhada — cabe também a cada utilizador proteger a sua informação.

Cifre antes de enviar. Saiba o que partilha. E escolha bem onde armazena os seus dados.

Programação Orientada por Inteligência Artificial

José Estêvão de Melo

O título escolhido para este artigo, para os mais ligados ao meio, é um paralelo imediato com a Programação Orientada a Objetos, mas para a grande maioria dos leitores, tem o efeito pretendido de anunciar uma crescente vaga, em que a programação é realizada não por programadores, mas por software de inteligência artificial (IA) como o GitHub Copilot, Cursor ou, o famigerado, ChatGPT.

Para contextualizar o leitor, o desenvolvimento de aplicações informáticas é feito através de linguagens de programação, que ao contrário das linguagens naturais que usamos para comunicar uns com os outros, são extremamente rígidas, dependendo de uma estruturação inflexível quer ao nível da sua sintaxe, quer ao nível da ordem de especificação das instruções, não havendo lugar a interpretações múltiplas. A mesma frase em linguagem natural (como o português) pode dar origem a dois resultados distintos dependendo de quem a ouve, já numa linguagem de programação o resultado será sempre o mesmo.

Esta rigidez associada a todas as complexidades informáticas de gestão de memória, complexidade algorítmica, e outros pormenores dos sistemas informáticos com os quais não desejo sobrecarregar o leitor, fazem com que a programação seja de difícil acesso àqueles que não tem formação na área.

O rápido crescimento das ferramentas de IA, tem colocado em foco o termo Vibe Coding. Coding refere-se a codificação, considerando as regras das linguagens de programação, parece-se mais com codificar, talvez por ser impercetível a quem não é da área (e às vezes também para quem é). Já o termo Vibe está mais associado a um estado de espírito do que a algo tão rígido como as linguagens de programação. O paradoxo destes dois termos é apenas possível pela introdução de IA, nomeadamente dos LLM (Large Language Models) que, sem entrar em detalhe, são algoritmos alimentados com enormíssimos volumes de dados em linguagem natural e, com recurso mecanismos de aprendizagem são capazes de a interpretar. Com estas ferramentas passa a ser possível especificar em linguagem natural a aplicação que se pretende desenvolver, ficando a cargo da IA toda a codificação e a rigidez a ela inerente. Tudo o que parece bom demais para ser verdade, normalmente é, podendo ter origem numa compreensão incompleta da tecnologia, ou aproveitamento mal-intencionado da mesma.

A programação é um processo desafiante, complexo e acima de tudo extremamente gratificante. Quem programa, conhece a sensação de resolver um problema após uma noite em claro, e a satisfação de compreender um assunto de tal forma que o conseguimos decompor instrução a instrução, de fio a pavio. Mas também a sensação de querer transformar o teclado em reciclagem.

A utilização de IA não elimina o bom nem o mau, bem utilizada permite reduzir as tarefas mais repetitivas, mas mal utilizada é uma fonte de problemas futuros com custos potencialmente muito maiores. A IA é excecionalmente boa a resolver problemas bem definidos, mas em grandes aplicações, um pequeno erro pode ser catastrófico em partes aparentemente não relacionadas, cuja correção implica períodos de indisponibilidade, trabalho a corrigir dados que nunca deviam ter ficado mal causando elevados custos operacionais e até legais.

A programação é um processo formal, por vezes frustrante, mas extremamente criativo, e é este último aspeto que não devemos, nem podemos, delegar em ferramentas de IA, porque simplesmente não a possuem. A utilização destas ferramentas na minha atividade profissional aumenta a produtividade, mas apenas ao reduzir tarefas que, apesar de necessárias, são morosas e sem acrescento de valor. A IA ainda não têm a capacidade de contextualização necessária para produzir aplicações interligadas, estáveis, escaláveis e de fácil manutenção.

Pessoalmente, considero um risco a utilização de IA por profissionais com pouca experiência e sem capacidade de avaliar todos os impactos das soluções propostas. Ao fazê-lo, e à semelhança de um atleta, estão a saltar o aquecimento que lhes permite realizar a prova em segurança, ficando sem a capacidade de reagir e resolver os problemas, pelo menos em tempo útil, que inexoravelmente irão acontecer! Boa programação!

Não custa dizer obrigado, ou custa?

José Estêvão de Melo

Ao longo da vida, e desde muito pequenos, aprendemos a agradecer a ajuda recebida, desde um simples copo de água a uma manobra de Heimlich que salva uma vida. São várias as escolas de pensamento que encorajam a gratidão, como o estoicismo que ensina que devemos estar gratos pelo bom e pelo mau que nos acontece na vida, pois ambos fazem parte da mesma e aprendemos com os dois.

A Inteligência Artificial (IA) tem vindo a desempenhar um papel cada vez mais presente nas nossas vidas, sendo utilizada em tarefas tão complexas como desenvolver aplicações informáticas, a outras tão simples como perguntar que ingrediente pode ser utilizado em substituição de outro, ao temperar uma peça de entrecosto para defumar. Nesta relação com a IA, que apesar de não ser igual às nossas relações com outros humanos, é normal transportarmos os nossos hábitos, e por norma agradecemos a ajuda recebida, mas quanto custa dizer obrigado?

Na interação entre humanos, dizer obrigado não tem custo, nem tão pouco preço, mas com ferramentas IA não é o caso, tem um custo muito real e não negligenciável. A grande maioria das ferramentas de IA têm por base um modelo de análise de linguagem natural (como o português) que com algoritmos de aprendizagem são capazes de a interpretar. Cada frase dita a uma ferramenta de IA tem de ser analisada, por computadores que necessitam de eletricidade para trabalhar, e quanto mais palavras houver na frase, maior a necessidade de processamento, e, à semelhança de um carro que quanto mais carregado estiver mais combustível gasta, os computadores quanto mais processamento realizam mais eletricidade gastam.

No caso do ChatGPT, uma estimativa é que o consumo médio para responder a uma pergunta seja de 2.9Wh, o que pode ser comparado a uma lâmpada LED de 3W, tipicamente usada numa luz de mesa de cabeceira, ligada durante uma hora. Há perguntas que tem uma análise simples e por isso envolvem menos processamento, e outras muito complexas que requerem muito mais recursos para responder. De acordo com informação publicada pela OpenAI (empresa responsável pelo ChatGPT) em Maio, a mesma tem 500 milhões de utilizadores por semana. Considerando um obrigado por utilizador por semana, estamos a falar de 500 milhões de obrigados, a um consumo de 2.9Wh, representa um total de 1.5 milhões de KWh por semana. Aplicando o custo de 11 cêntimos por KWh da tarifa tri-horária em horas de vazio, equivale a nada mais nada menos que 638 000€ por mês, ou pouco mais de 7 milhões e meio de euros por ano. Sam Altman, CEO da OpenAI, quando confrontado com a pergunta de quanto custa agradecer ao ChatGPT respondeu “dezenas de milhões de dólares, bem gastos”.

Sabendo este custo, e com todas as preocupações com o ambiente e descarbonização, devemos continuar a agradecer às ferramentas de IA? A meu ver, é um claro sim, pois caso contrário corremos o risco de normalizar um comportamento indesejável e desvalorizar a ajuda recebida, pois um mau hábito é um hábito na mesma, e da mesma forma que transportamos os nossos hábitos das relações interpessoais para a relação com a IA, o inverso também irá acontecer. Outro motivo para agradecer, é que todas as ferramentas de IA aprendem com todas as interações, e se num futuro próximo ou não, formos dominados por uma IA, quero que a mesma diga obrigado, ou que pelo menos se lembre de mim como um dos que lhe agradeceram a ajuda.

Em resumo, dizer obrigado custa, mas não dizer custa mais!