O recente lançamento do Chat-GPT pela OpenAI, seguido do Google Bard e da Meta AI, entre outros, gerou grande comoção no mercado de tecnologia e também muita curiosidade entre o público geral.
Assim, o tema da IA ganhou bastante destaque e, como era de se esperar, muita gente especulando sobre o tema. Da noite para o dia vimos surgir diversos "especialistas" em IA falando em blogs e canais no YouTube e TikTok. Assim como o futebol, a política e a religião, parece que todo mundo tem uma opinião a dar sobre a IA.
Mas, afinal, o que é IA? Abaixo você tem a visão da COGИITIVA para o tema. Você pode ler - e aprender um pouco mais sobre o tema - ou pular diretamente para a Conclusão, onde sumarizamos o tema de forma simples e direta.
[ Conceito ]
A IA (Inteligência Artificial, ou AI - Artificial intelligence) é um ramo da Ciência da Computação dedicado à replicação sintética do raciocínio humano. Ela é dita artificial para diferenciar da inteligência humana ou dos animais. É geralmente aplicada na forma de máquinas (hardware) ou sistemas computacionais (software). Como todo programa de computador, a IA é baseada em algoritmos, que são instruções construídas a partir de uma lógica e destinadas a uma finalidade.
Visto que o neurônio é a célula responsável pelo raciocínio nos seres inteligentes, e que a finalidade de IA é reproduzir os mecanismos de raciocínio de forma artificial, é natural que os cientistas tenham escolhido reproduzir os neurônios dentro dos computadores e assim simular os processos cerebrais de forma a alcançar comportamentos semelhantes, ainda que em pequena escala, ao aprendizado.
[ Algoritmo ]
Como dito anteriormente, algoritmos são construções lógicas destinadas a processar ou transformar dados, gerando ou extraindo destes alguma utilidade.
Os algoritmos seguem uma lógica que pode ser mais simples ou complexa dependendo, dentre outros fatores, do trabalho que irão desempenhar, da pessoa que os escreveu ou da linguagem na qual foram implementados (ou programados).
Existem diversos algoritmos disponíveis para uso em IA e, habitualmente, cada um deles tem maior facilidade em processar um determinado tipo de informação. Deste modo, você encontrará algoritmos mais indicados para o processamento de texto, outros mais focados em processamento de som, e outros focados no processamento de imagem (estática, como fotos, ou dinâmica, como videos).
[ Aprendizado ]
Como os algoritmos destinados à resolver problemas podem se tornar muito complexos, e com o conhecimentos sobre o funcionamento dos neurônios e axônios dentro do nosso cérebro, os cientistas pensaram que seria uma boa idéia criar um algoritmo que não só simulasse o comportamento neuronal, mas que também fosse capaz de "aprender". Isso eliminaria a necessidade de se escrever código de programação cada vez que uma variação na tarefa a ser executada acontecesse. Veremos mais adiante como isto foi implementado.
[ Linguagem de Programação ]
Assim como qualquer algoritmo, aqueles utilizados pela IA precisam ser escritos em uma linguagem que os computadores possam entender. As linguagens de programação mais comuns atualmente são o C++, o Java e suas variantes e o Python. Algumas pessoas irão se lembrar de outras linguagens de programação, como o COBOL, o Visual Basic, o ASP/ASP.NET, PHP ou mesmo Delphi/Pascal. Apesar de ainda utilizadas, são menos comuns na atualidade do que as anteriores, e ainda menos comumente vistas na implementação de bibliotecas de IA.
[ Qual a Linguagem de Programação da IA? ]
A rigor, qualquer algoritmo pode existir ou ser implementado em qualquer linguagem. Da mesma forma, algoritmos usados em IA podem ser implementados em C++ ou Java, por exemplo, e de fato isso acontece com bastante frequência. O que determina a escolha da melhor linguagem de programação para a implementação de um algoritmo é um conjunto de fatores que vão desde o que o algoritmo irá fazer até a familiaridade do programador e a disponibilidade de bibliotecas, e não é incomum você encontrar um algoritmo que utiliza mais de uma linguagem de programação para resolver um problema.
No âmbito da IA a linguagem de programação mais utilizada é a Python, devido a fatores históricos, mas principalmente ao fato de ser interpretada, ou seja, você pode digitar um comando e o computador executa na hora (como era nos primeiros computadores com linguagem BASIC). Ela é relativamente fácil de aprender e de entender e dispõe de uma vasta biblioteca de funções estatísticas e matemáticas, gráficas e de manipulação de dados.
[ Bibliotecas de IA ]
Ninguém gosta de perder tempo, muito menos os programadores. É por isto que existem coleções de algoritmos previamente implementados que podem ser facilmente reutilizados nos novos programas. Essas coleções normalmente estão agrupadas em "bibliotecas" que congregam várias funcionalidades comuns. Dentre as bibliotecas Python disponíveis e comumente utilizadas para implementar algoritmos de IA, temos Pandas, SciPy, NumPy, TensorFlow, Keras, PyTorch, Matplotlib, Scikit-learn, dentre outras. Como cada biblioteca concentra funções específicas, normalmente são utilizadas múltiplas bibliotecas para se resolver um único problema.
[ Placas Gráficas e a IA ]
Você já deve ter ouvido falar ou lido alguma manchete dando conta de que as empresas que produzem placas gráficas estão fornecendo estas placas para empresas de IA. A razão por trás disso é a grande habilidade destas placas em lidar com cálculos matemáticos complexos de forma rápida e eficaz, pois mesmo os gráficos mais complexos dos videogames mais sofisticados nada mais são do que milhares de pontos com propriedades matemáticas como localização, cor, duração, etc.
Lembre-se que os modelos de IA se baseiam em probabilidades, e que probabilidades são também grandezas matemáticas. Portanto, faz muito sentido utilizar placas que conseguem fazer bilhões de cálculos por segundo para fazer funcionar os pesadíssimos algoritmos de IA.
[ ALERTA DE NERD: O tema fica mais profundo a partir daqui. Se quiser, pule direto para a Conclusão ]
[ Redes Neurais Artificiais]
Já sabemos que a IA visa recriar no computador o comportamento que nós conhecemos como inteligência. Mas como ela faz isso? Como vimos anteriormente, no nosso cérebro as células responsáveis pela inteligência, memória, raciocínio e outros processos cognitivos são os neurônios e, na IA, existem algoritmos que implementam neurônios artificiais.
Se tivermos tarefas muito complexas, é comum dizermos que vamos precisar "queimar alguns neurônios" para isso. Na IA isto também acontece.
Por exemplo, digamos que você trabalha no órgão de trânsito e precisa escrever um programa para reconhecer placas de carro. É uma tarefa bastante complexa, se você pensar na quantidade de combinações existentes, nos diversos modelos de fontes utilizadas para escrever estas placas, no fato de que nem toda placa fica no mesmo lugar nos carros e motos e que o estado de conservação das placas pode ser bom ou muito ruim. Você até pode escrever um programa que reconheça o número "0" e o diferencie com sucesso da letra "O". Agora imagine fazer um programa diferente para cada número e letra da placa. É um trabalho descomunal, nada prático, mas possível, embora talvez você demore tanto que depois de pronto já não tenhamos mais veículos circulando nas ruas...
Agora, se houvesse a possibilidade de criar um algoritmo mais genérico, que pudesse ser "ensinado" (treinado é o termo mais comumente usado na IA) a reconhecer padrões como letras e números, que não fosse determinístico e sim baseado na probabilidade de que um "O" é realmente a letra "O", você teria uma excelente ferramenta nas mãos.
Pois foi assim que nasceu o aprendizado de máquina (machine learning). São algoritmos implementados em uma linguagem de programação (pode ser Python ou outra qualquer), baseados em redes neurais artificiais (aquelas que simulam o funcionamento dos neurônios do cérebro) que conseguem aprender com uma razoável taxa de sucesso (quanto mais perto de 100% melhor!) a diferenciar e reconhecer padrões, classificar informações, escolher caminhos, fazer sugestões e até mesmo tomar decisões. Para fazer a sintonia fina destes modelos utilizam-se parâmetros, que no final são como pesos que vão mediar a probabilidade deste ou daquele neurônio ser o próximo escolhido.
[ Aprendizado "Profundo" ]
Nosso cérebro não se vale apenas de alguns poucos neurônios para formar uma memória ou um pensamento. Estas são ações que requerem centenas, milhares de neurônios acionados de uma só vez e interconectados entre si.
Da mesma forma, os cientistas buscaram simular uma tarefa utilizando mais e mais "camadas" de neurônios artificiais, as assim chamadas redes neurais artificiais, e com isto construir modelos cada vez mais complexos e cada vez mais capazes, regulados por um número cada vez maior de pesos na escala de probabilidades, pesos estes que em IA são chamados de parâmetros.
O número crescente de parâmetros e, principalmente, de camadas de redes neurais, levou ao que se chama de deep learning (aprendizado profundo), porque parte do aprendizado acontece já nas camadas mais internas (ou profundas) das redes neurais.
Alguns dos algoritmos mais utilizados de deep learning são os utilizados no reconhecimento de imagens e sons, como Keras e TensorFlow.
A utilização de um número maior de camadas de redes neurais permitiu o surgimento de algoritmos focados no processamento da linguagem natural (NLP - Natural Language Processing) com um elevado grau de sucesso na tradução de textos e no desenvolvimento de mecanismos de busca mais eficientes. O aprimoramento destes modelos através do crescimento de camadas de neurônios artificiais e do consequente aumento no número de parâmetros levou ao surgimento dos LLMs (Large Language Models - Grandes Modelos de Linguagem, numa tradução livre).
[ Modelos Generativos ]
O constante aperfeiçoamento dos LLMs, aliado também ao seu crescente tamanho em parâmetros e à capacidade de serem treinados em grandes volumes de dados, permitiu um segundo passo evolutivo onde os modelos de linguagem passaram a poder "prever" quais palavras deveriam seguir uma determinada palavra escolhida ou eleita pelo usuário, passando agora não só a sugerir sinônimos ou traduções, mas a sugerir trechos inteiros, dando a impressão de que agora os LLMs são capazes de gerar conteúdo.
O surgimento de modelos de IA generativos (que geram conteúdo), capazes de fazer sugestões complexas não só em texto, mas também imagem, vídeo e áudio, são conhecidos como GPTs (Generative Pre-Trained Models ou Modelos Generativos Pré-Treinados). São baseados em deep learning e possuem alguns bilhões de parâmetros. Por isto mesmo são extremamente grandes, "pesados", requerem muito poder computacional para rodar e são treinados em volumes igualmente gigantescos de dados. Desta forma, são poucas as empresas que os oferecem, e quando o fazem, são fornecidos de forma pré-treinada, ou seja, os usuários podem interagir com os modelos prontos sem a necessidade de treiná-los primeiro, como ocorre com as outras bibliotecas de IA. Isto permitiu o surgimento de chat-bots mais inteligentes, como o Chat-GPT da OpenAI e o Google Bard, e geradores de imagem como o Dall-e, também da Open-AI (para saber mais sobre o Dall-e e a geração de imagens por IA, leia este artigo).
[ As Máquinas Pensam? ]
Por mais complexos e gigantescos que os GPTs sejam, eles ainda não conseguem gerar um texto, áudio ou imagem por si sós, eles ainda precisam ser "comandados", instruídos no que fazer. Isto se deve ao fato de os GPTs serem uma derivação de LLMs, e os LLMs "inferem" probabilisticamente a próxima palavra, sentença ou parágrafo. A chave aqui é "próxima". Isto implica que é necessário que alguém indique ao menos por onde o modelo deve começar a gerar. Ou seja, não, as máquinas não pensam, ainda. Mas o resultado dos GPTs é tão extraordinário que chega a dar esta impressão, não é mesmo?
[ A Inteligência Geral Artificial ]
O Santo Graal da IA é o que se convencionou chamar de Inteligência Geral Artificial (Artificial General Intelligence). Ao contrário do que ocorre nos modelos generativos, onde as respostas do modelo são concatenadas a partir de uma dica dada inicialmente, um modelo de IGA seria capaz de criar raciocínio a partir do nada. Assim, ao invés de dar continuidade à uma conversa, um modelo de IGA seria capaz então de iniciar a conversação sem seguir um caminho necessariamente pré-informado.
É muito provável que uma IGA seja uma derivação de modelos LLM e GPT, ou que faça uso destes em um grau bastante elevado. Também é esperado que sejam modelos extremamente complexos, com um número de parâmetros na casa dos trilhões, e que consuma enorme poder computacional. Existem estimativas de que seriam necessários todos os computadores de todos os Data Centers para isto. Na verdade, não sabemos quando este objetivo será alcançado, nem qual a infraestrutura necessária para que ele consiga rodar, e alguns céticos se perguntam se isso é mesmo necessário. Provavelmente não, e é bastante razoável supor que os modelos GPTs existentes possam ser muito bem usados ainda por um bom tempo e para uma ampla gama de operações, mas não faz sentido tentar parar o progresso. Afinal, foram as pesquisas neste sentido - que por sinal seguem em andamento - que nos deram a IA como a conhecemos hoje.
[ Conclusão ]
IA é a simulação do raciocínio lógico humano num computador.
O que move a IA são os algoritmos, ou esquemas lógicos que descrevem como resolver um problema.
Os algoritmos devem ser escritos numa linguagem de programação (ou script, no jargão moderno) para o computador poder interpretá-los e executá-los.
Alguns algoritmos foram concebidos para simular num computador a forma como os neurônios agem no nosso cérebro, formando as chamadas redes neurais artificiais.
Os neurônios artificiais se valem de parâmetros, ou pesos, que modificam dinamicamente as probabilidades associadas.
Estas redes neurais artificiais podem ser treinadas, processo ao qual se denomina aprendizado de máquina (ou machine learning).
Existem modelos que utilizam um número muito grande de camadas de redes neurais artificiais, num processo chamado de aprendizado profundo (ou deep learning).
Modelos de deep learning gigantescos - como os LLMs - são usados para tratar informações complexas, como o processamento da linguagem natural, a tradução de textos e o reconhecimento de imagens.
O surgimento de modelos LLM ainda maiores, com um número de parâmetros na casa dos bilhões, possibilitou o surgimento da IA generativa, ou seja, modelos que sugerem palavras, frases ou textos que façam mais sentido do ponto de vista das probabilidades, como a família GPT.
O comportamento dos modelos GPT se assemelha bastante ao pensamento humano, mas ainda não é possível a um modelo de IA iniciar uma conversa, criando um contexto do nada, logo, as máquinas (ainda) não pensam.
O modelo que os pesquisadores vêm buscando é o de uma Inteligência Geral Artificial (IGA ou AGI - Artificial General Intelligence).
Em resumo, a IA é probabilística, e não determinística. Isto quer dizer que, ao contrário dos programas normais de computador onde "O" sempre vai ser a letra "O" (sistemas determinísticos), para uma IA a probabilidade de "O" ser a letra "O" é de 99,9999999999999999999...9%. Por mais sofisticados que os sistemas de IA sejam, ainda não são capazes de criar contexto a partir do nada, portanto não são capazes de pensar. Ainda.
Comentários