Python turbinado: IA acelera a velocidade de computação milhares de vezes
Por Universidade de Massachusetts Amherst30 de agosto de 2023
Pesquisadores da Universidade de Massachusetts Amherst apresentaram o Scalene, um criador de perfil Python de última geração. Ao contrário dos criadores de perfil tradicionais, o Scalene usa IA para identificar e sugerir correções para ineficiências de código. Este desenvolvimento ganha importância à medida que o futuro se inclina para uma melhor programação para melhorias de velocidade.
Seu desenvolvimento Scalene, uma ferramenta de código aberto para acelerar drasticamente a linguagem de programação Python, contorna problemas de hardware que limitam a velocidade de processamento do computador.
Uma equipe de cientistas da computação da Universidade de Massachusetts Amherst, liderada por Emery Berger, revelou recentemente um premiado criador de perfis Python chamado Scalene. Os programas escritos com Python são notoriamente lentos – até 60.000 vezes mais lentos do que o código escrito em outras linguagens de programação – e o Scalene trabalha para identificar com eficiência exatamente onde o Python está atrasado, permitindo que os programadores solucionem problemas e simplifiquem seu código para obter maior desempenho.
Existem muitas linguagens de programação diferentes – C++, Fortran e Java são algumas das mais conhecidas – mas, nos últimos anos, uma linguagem tornou-se quase onipresente: Python.
“Python is a ‘batteries-included’ language,” says Berger, who is a professor of computer science in the Manning College of Information and Computer Sciences at UMass Amherst, “and it has become very popular in the age of data science and machine learningMachine learning is a subset of artificial intelligence (AI) that deals with the development of algorithms and statistical models that enable computers to learn from data and make predictions or decisions without being explicitly programmed to do so. Machine learning is used to identify patterns in data, classify data into different categories, or make predictions about future events. It can be categorized into three main types of learning: supervised, unsupervised and reinforcement learning." data-gt-translate-attributes="[{"attribute":"data-cmtooltip", "format":"html"}]"> aprendizado de máquina porque é muito fácil de usar. A linguagem vem com bibliotecas de ferramentas fáceis de usar e possui uma sintaxe intuitiva e legível, permitindo aos usuários começar a escrever código Python rapidamente.
“Os computadores não estão mais ficando mais rápidos. Melhorias futuras na velocidade virão menos de um hardware melhor e mais de uma programação mais rápida e eficiente.”
— Emery Berger, professor de ciência da computação na Manning College of Information and Computer Sciences da UMass Amherst
“Mas Python é extremamente ineficiente”, diz Berger. “Ele é facilmente executado de 100 a 1.000 vezes mais lento do que outras linguagens, e algumas tarefas podem levar 60.000 vezes mais tempo em Python.”
Professor de Ciência da Computação da UMass Amherst, Emery Berger. Crédito: UMass Amherst
Os programadores já sabem disso há muito tempo e, para ajudar a combater a ineficiência do Python, eles podem usar ferramentas chamadas “profilers”. Os criadores de perfil executam programas e identificam por que e quais partes estão lentas.
Infelizmente, os criadores de perfil existentes fazem surpreendentemente pouco para ajudar os programadores Python. Na melhor das hipóteses, eles indicam que uma região do código é lenta e deixam para o programador descobrir o que pode ser feito, se houver.
A equipe de Berger, que incluía os estudantes de graduação em ciência da computação da UMass, Sam Stern e Juan Altmayer Pizzorno, construiu o Scalene para ser o primeiro criador de perfil que não apenas identifica com precisão ineficiências no código Python, mas também usa IA para sugerir como o código pode ser melhorado.
“Scalene primeiro revela onde seu programa está desperdiçando tempo”, diz Berger. Ele se concentra em três áreas principais – CPU, GPU e uso de memória – que são responsáveis pela maior parte da velocidade lenta do Python.
Depois que Scalene identifica onde o Python está tendo problemas para acompanhar, ele usa IA – aproveitando a mesma tecnologia que sustenta o ChatGPT – para sugerir maneiras de otimizar linhas individuais ou até mesmo agrupamentos de código.
“Este é um painel acionável”, diz Berger. “Não é apenas um velocímetro que informa a velocidade ou lentidão do seu carro, ele informa se você poderia ir mais rápido, por que sua velocidade foi afetada e o que você pode fazer para atingir a velocidade máxima.”