IBM aprende como programar processadores inspirados no cérebro
Computadores que aprendem
Em 2011, a IBM apresentou os seus primeiros processadores cognitivos.
Apesar de terem sido anunciados como sendo processadores “capazes de aprender”, logo ficou bem claro que as coisas não eram tão simples.
O problema é que os processadores cognitivos são tão diferentes dos processadores eletrônicos tradicionais que programá-los mostrou-se uma tarefa mais difícil de aprender do que parecia – é muito difícil dizer a eles o que aprender.
“Os programas não eram nem um pouco intuitivos e extremamente difíceis de debugar. A situação parecia sem esperança,” confessa Dharmendra Modha, coordenador do projeto.
Mas dois anos de trabalho intenso foram suficientes para reacender as esperanças: a equipe de Modha esqueceu a forma tradicional de fazer software e desenvolveu uma nova forma de programar.
Como são maciçamente paralelos, os processadores cognitivos precisam primeiro aprender como coordenar seus diversos blocos para que eles operem em conjunto e deem resultados que façam sentido.
Depois disso, basta criar blocos com as funcionalidades desejadas.
Corelets
A saída foi criar blocos de código, que os engenheiros da IBM batizaram de corelets.
Cada corelet executa apenas uma parte do programa. Eles podem ser aninhados, para que pequenos blocos cooperem para formar grandes corelets.
O programador pode então se concentrar na parte mais difícil da tarefa, que é conectar os blocos para que, operando independentemente, eles possam se entender na hora de dizer aos outros o que cada um já fez e, no final, juntar os resultados.
“Isto abre uma forma totalmente nova de pensar sobre como lidar com sistemas grandes,” disse Modha.
Até o momento, a equipe construiu uma biblioteca de cerca de 100 corelets, que podem ser usados para montar os programas para os chips neuromórficos.
Assim, programar passa a ser essencialmente um trabalho de projetar a fiação que possa interconectar os diversos módulos – imagine montar um brinquedo Lego em que as peças não se encaixem automaticamente, tornando necessário projetar as conexões.
Mas os corelets não contêm apenas rotinas triviais, como as usadas nos programas tradicionais.
Um exemplo da capacidade de aprender e interagir com o ambiente dos processadores cognitivos pode ser visto na tarefa executada por um dos corelets da biblioteca, que consegue identificar se uma música foi composta por Bach ou por Beethoven – ele aprendeu isso analisando os padrões das músicas dos dois compositores.
Modha garante que o número de funções embutidas nos módulos da biblioteca vai crescer exponencialmente: “Conforme novos corelets vão sendo escritos e adicionados à biblioteca, haverá muitas outras combinações para colocar os corelets trabalhando juntos.”
Carros sem motorista e robôs sensoriais
Os chips cognitivos da IBM, chamados TrueNorth, contêm memória, processadores e canais de comunicação ligados às sinapses artificiais, que imitam os neurônios e axônios de um cérebro.
A ideia fundamental é que o chip possa ser ligado em grandes redes, com milhares deles trabalhando paralelamente.
Os processadores cognitivos, projetados para imitar a forma como os nossos cérebros funcionam, deverão estrear em computadores que lidam com muitas entradas de dados de uma só vez – de forma similar às múltiplas entradas sensoriais que nosso cérebro processa o tempo todo.
Para determinados tipos de tarefa, como responder rapidamente às grandes quantidades de entrada de dados dos sensores, eles são muito mais rápidos e consomem menos energia do que os processadores convencionais.
A expectativa é que, no futuro, eles possam substituir os reflexos humanos em carros sem motorista ou criar sistemas sensoriais para robôs, por exemplo.
O projeto da IBM que pretende transformar essas possibilidades em realidade chama-se Synapse (Systems of Neuromorphic Adaptive Plastic Scalable Electronics).
Fonte: inovação tecnológica