Executando verificação de segurança...
1

Porquê continuamos a usar Python para criar soluções de Inteligência Artificial(IA) e Machine Learning (ML) mesmo sendo menos eficiente que outras linguagens em desempenho bruto?

Escrevo código em python já faz algum tempo. Enquanto estava estudando para aumentar minhas skills na linguagem me deparei com uma situação ou dado interessante.

Descobri que em termos de desempenho bruto python perde para outras linguagens ( como Rust ou C++) , ou seja , python é lenta. Apesar disso, python ainda é a escolha número 1 para IA e ML - me perguntei porquê, investiguei e decidi escrever sobre.

Então... Apesar de Python perder para outras linguagens em desempenho bruto, ela continua a ser amplamente utilizada em Inteligência Artificial, Machine Learning (ML) e até Ciência de dados por várias razões estratégicas, práticas ou por motivos de produtividade. Vou falar sobre aquelas razões que eu achei essenciais.

Facilidade de uso e produtividade

Python é uma das linguagens de alto nível com sintaxe simples e legível, isso permite pesquisadores e desenvolvedores se concentrar na lógica do problema e nos algoritmos específicos sem precisar se preocupar com detalhes complexos da linguagem. Isso é essencial em IA e ML, onde a prototipagem e experimentação são essências, fora que a maior parte dos profissionais vem de áreas como a matemática, ciências de dados ou estatística e não necessariamente da ciência da computação ou programação.

Ecossistema rico em bibliotecas

Python tem disponível uma grande coleção de bibliotecas e frameworks especializados em IA, ML e ciências de dados. Essas bibliotecas e frameworks cobrem áreas como : deep learning ( TensorFlow), manipulação de dados( Panda), visualização de dados( Matplotlib), machine learning( scikit - learn) e outras. Como essas bibliotecas são altamente especializadas e escritas em linguagem de baixo nível ( como C++), elas compensam a "lentidão" de Python.

Integração com outras tecnologias

Existe uma grande facilidade em integrar Python com outras linguagens e ferramentas o que permite que Python seja "rápida " onde importa mesmo não sendo a linguagem mais eficiente em deesempenho bruto.

Prototipagem rápida

Quando o assunto é IA e ML, poder testar ideias rapidamente é mais importante que "velocidade " no princípio. Essa capacidade permite a pesquisadores e desenvolvedores implementar e testar algoritmos de forma ágil - isso é crucial durante a experimentação.

Desempenho não é o fator mais crítico

Na grande maioria das aplicações de IA encontramos o gargalo do desempenho nos cálculos matemáticos intensivos, mas estes cálculos são realizados por bibliotecas otimizadas escritas em outras linguagens(linguagens de baixonível), Python atua como uma camada de abstração para uso dessas bibliotecas e o trabalho pesado é realizado por linguagens de baixo nível.

GPU's e TPU's

Os frameworks de Python usam GPU's e TPUs para acelerar os cálculo rodando códigos altamente otimizados, Python serve "unicamente" como interface para essas tecnologias.

Comunidade e Suporte

Graças a sua grande e ativa comunidade, a disseminação de conhecimento e resolução de problemas em python é facilitada. Tutoriais, fóruns , cursos, apostilas... Tudo isso ajuda bastantes no momento em que nos deparamos com algum problema.

Conclusão

Apesar de "lenta" se comparada com linguagens como Rust ou C++, Python ainda é a escolha ideal para trabalhar com IA e ML por razões como ecossistema rico, facilidade de integração com tecnologias de alto desempenho e facilidade de uso. Fora que quando bibliotecas otimizadas e hardware especializado são utilizado a velocidade de desenvolvimento e produtividade superam na maioria dos casos a necessidade de desempenho bruto.
Como forma de simplificação, podemos encarar Python como a cola que une as tecnologias necessárias na construção de soluções de IA e ML eficientes.

Carregando publicação patrocinada...
2

A grande maioria das pessoas que trabalham com IA não tem um forte background em desenvolvimento, são matematicos, estaticos e por ai vai. Logo Python encaixa nesta demanda pois é muito simples para aplicar os conceitos matematicos envolvido em todo processo de IA.

do que ter uma curva de aprendizado gigantesco com outra linguagem.

1

Exatamente, podemos visualizar Python como uma linguagem acadêmica e isso permite que não desenvolvedores trabalhem a vontade e com alguma eficácia.

1

Há de se lembrar que a maioria das bibliotecs em python para IA utilizam backends em C ou C++, com o python apenas exportando as APIs.

1

Muito interessante esta análise, vejo que a adoção é dado o fato da curva de aprendizado da linguagem que é menor do que outras, mesmo você conseguindo fazer o "mesmo" em outras o esforço e o nível de projeção delas eram focados inicialmente para "use cases" diferentes.

Contanto que novas abordagens estão surgindo para se obter o melhor dos mundos, como por exemplo com este conjunto:

https://www.modular.com/mojo

Bom demais a sua publicação para refletirmos sobre o uso de cada uma delas.

1

Não tinha como ser diferente, a curva de aprendizado de Python ser menor é um dos fatores determinante para sua adoção.

Dei uma olhada rápida no Mojo, e é muito interessante a proposta que ela traz. Não fui muito fundo e é bem difícil fazer previsões certeiras quando o assunto é tecnologia "emergente", mas parece que ela pode realmente usar o melhor dos dois mundos - isso é incrível, é um projeto e tanto!

1

Também tinha essa duvida kkkkk até ver o GeoHotz desenvolvendo o framework dele em python e C puros. Então descobri que é irrelevante a linguagem, pois quando chega na GPU, todas são processadas com a mesma eficiencia. Então a escolha de Python é puramente para acessibilidade. Já que um C++ não é pra qualquer um hahaha

1

Se C++ fosse para qualquer um...
Conheci Mojo através do link de um dos comentários, ela promete entregar muito mais do que apenas acessibilidade.

1

Eu costumo dizer coloquialmente que python tem uma pegada didática.

É uma linguagem usada muitas vezes com o objetivo de mostrar o source.

Eu tenho essa impressão a bastante tempo.