O mundo da tecnologia está sempre em movimento. O mais novo garoto do quarteirão é a linguagem de programação Mojo. É necessário melhorar as velocidades de execução para projetos baseados em Python, dando aos desenvolvedores velocidades semelhantes a C.
Python é uma das principais linguagens de programação. É uma linguagem de programação versátil e fácil de aprender que oferece aos novos alunos um portal para programação/ciência da computação.
Além disso, é uma excelente linguagem de programação para as mãos de desenvolvedores competentes que podem usá-la para criar aplicativos complexos. No entanto, uma das desvantagens mais significativas do Python é sua velocidade de execução. E é aí que entra o Mojo.
Este artigo aborda o Mojo e como ele se relaciona com o ecossistema Python. Vamos começar.
últimas postagens
O que é Mojo?
Mojo é uma linguagem de programação moderna de alto nível. Ele oferece um design intuitivo para ajudar os desenvolvedores a criar aplicativos rapidamente. Além disso, visa preencher a lacuna entre produção e pesquisa, permitindo que os usuários usem recursos de metaprogramação e programação de sistemas com a sintaxe e o ecossistema do Python.
Ele se baseia fortemente no Rust e fornece velocidades de execução rápidas para o ecossistema Python. Tecnicamente, o Mojo é um superconjunto do Python, que fornece acesso.
A equipe por trás do Mojo é da Modular, uma empresa de infraestrutura de IA. E isso também significa que é uma linguagem de programação para desenvolvedores de IA. Juntamente com a linguagem de programação Mojo, eles também introduziram o Interference Engine, que permite aos desenvolvedores melhorar seu fluxo de trabalho, escalar produtos de IA e reduzir a latência de inferência (mais sobre isso mais tarde).
Segundo o CEO da Modular, Chris Lattner, o Mojo é 35.000 vezes mais rápido que o Python. Ele também está por trás do rápido desenvolvimento da linguagem de programação. Os ganhos de velocidade são alcançados devido à forma como o Mojo usa a cadeia de ferramentas do compilador LLVM e a infraestrutura do compilador MILR (visão geral de representação intermediária multinível).
Os objetivos das linguagens de programação Mojo incluem:
- Trabalhe com total compatibilidade com o ecossistema Python.
- Permita que os desenvolvedores implantem subconjuntos de código em aceleradores.
- Controle de baixo nível para garantir desempenho previsível.
- Garantir que não haja fragmentação do ecossistema.
Para experimentar o Mojo, você precisará usá-lo por meio do ambiente hospedado na nuvem, o Mojo Playground. Ele solicitará que você faça login e você poderá obter um ambiente de trabalho!
Por que precisamos de Mojo?
A ideia central por trás do Mojo é unificar a infraestrutura de ML/IA, fornecendo uma linguagem de programação que funcione em toda a pilha. Além disso, garante facilidade de uso, eliminando a necessidade de escrever código MLIR.
De acordo com a Modular, a Mojo oferecerá um modelo de programação escalável e inovador. Ao fazer isso, os usuários de campo de IA acharão fácil trabalhar com aceleradores e sistemas heterogêneos.
Tecnicamente, faz do Mojo uma linguagem de programação que suporta metaprogramação em tempo de compilação. Ele também oferece suporte a outros recursos, como cache durante o fluxo de compilação, técnicas de compilação adaptáveis, etc. Esses recursos não estão presentes em outras linguagens de programação.
Se você quiser ler mais sobre a filosofia do Mojo, confira o Modular Docs – Why Mojo🔥
Características da linguagem de programação Mojo
Nesta seção, veremos os principais recursos da linguagem de programação Mojo.
#1. Compatibilidade completa com Python
Mojo visa trabalhar com o ecossistema do Python e não contra ele. Isso fica evidente pelo fato de o Mojo usar as mesmas funções, bibliotecas e recursos que o Python oferece. Portanto, você pode usar qualquer biblioteca Python que desejar no Mojo.
Para importar, você precisará usar o seguinte código:
from PythonInterface import Python
Feito isso, você pode usar Python.import_module() para importar qualquer biblioteca Python.
Por exemplo, para importar numpy, você precisará usar a seguinte linha de código.
let np = Python.import_module(“numpy”)
Em Python, você precisará fazer “import numpy as np”
Como é importado, agora você pode usá-lo para criar arrays, fazer cálculos, etc.
array = np.array([1, 2, 3]) print(array)
Da mesma forma, você pode importar matplotlib.pyplot para criar um gráfico no Mojo.
É assim que fica quando executo o código no Mojo Playground.
Se você quiser experimentar o código, copie e cole abaixo.
from PythonInterface import Python let np = Python.import_module("numpy") array = np.array([1, 2, 3, 4, 5]) print(array)
#2. MILR
MILR significa Multi-Level Intermediate Representation. Mojo suporta MILR. Isso, em troca, permite que os desenvolvedores tirem uma gama completa de novos recursos avançados. Esses recursos incluem unidades de hardware de IA, threads e vetores.
O MILR melhora o desempenho devido à simultaneidade, tornando o Mojo mais rápido que o Python. Além disso, permite que os desenvolvedores aproveitem vários núcleos.
#3. Verificador de propriedade e mutuário
O gerenciamento de memória do Python é seguro. Ele usa um coletor de lixo, portanto, os programadores devem garantir que o código não entre em condições de corrida.
O Mojo, semelhante ao Rust, implementa um modelo estrito de verificador de propriedade e mutuário. Atualmente, encontra-se parcialmente implementado. A ideia por trás do uso do modelo é melhorar a simultaneidade e fornecer um excelente gerenciamento de memória.
O modelo de propriedade também garante uma abordagem thread-safe, ideal para fornecer excelente suporte à simultaneidade. Dessa forma, os programas não entram em condições de corrida. Além disso, o verificador de empréstimo garante que as variáveis sejam sempre verificadas durante o tempo de execução.
#4. Custo Zero de Abstração
O Mojo oferece abstrações de custo zero, permitindo que os desenvolvedores assumam o controle total do armazenamento. Aqui, os programadores podem fazer valores de alocação em linha para estruturas.
#5. Afinação automática
Mojo também oferece auto-tune. Isso garante que a alocação automática dos melhores valores seja definida para os parâmetros, dependendo do hardware de destino.
O ajuste automático elimina a necessidade de otimizar manualmente seu código de acordo com o hardware de destino.
Velocidade: Quão rápida é a linguagem Mojo?
Python é uma linguagem de programação de alto nível que visa facilidade de uso e manutenção. Infelizmente, isso o torna lento em comparação com outras soluções ou linguagens de programação.
No teste da Modular, eles descobriram que o Mojo é 35000x. Eles usaram o algoritmo de Mandelbrot e o executaram em uma instância da AWS com um processador Intel Xeon. Eles testaram PYPY, SCALAR C++ e MOJO, junto com Python. Os resultados foram super rápidos e você pode ver os resultados abaixo.
Fonte: modular.com
Para ler mais sobre a velocidade do Mojo, confira esta postagem na comunidade Julialang.
Mecanismo de inferência modular – execute modelos de IA de forma econômica
A Modular também está desenvolvendo um Mecanismo de Interferência Modular que torna mais barato executar modelos de IA na produção. O Mojo suporta o Modular Interfence Engine por padrão. Ele permite que as equipes simplifiquem seu fluxo de trabalho. Ele também permite que os desenvolvedores reduzam a latência de inferência, facilitando o escalonamento de produtos de IA.
Além disso, os desenvolvedores não precisam alterar seu modelo para usar o mecanismo. Uma vez carregado, ele pode sobrecarregar os modelos PyTorch e TensorFlow, capazes de executar um alto desempenho com amplo suporte de hardware.
Ele substituirá o Python?
Mojo é novo. Parece promissor. Portanto, levará tempo para atingir seu público-alvo, como cientistas de dados ou linguagens de programação. E, sim, resolve problemas específicos para entusiastas e alunos de IA. No entanto, existem muitas soluções semelhantes que melhoram a velocidade da linguagem Python. Por exemplo, você encontrará Jax, Codon e Julia — uma linguagem orientada para a ciência de dados.
Então, duas coisas podem acontecer. Primeiro, ele cresce exponencialmente em termos de recursos e a comunidade o adota. Outro resultado é que ela se torna uma linguagem de programação ad-hoc que utiliza bibliotecas Python e o Modular Interference Engine.
Então, o Mojo substituirá o Python? Só o tempo pode dizer.
Em seguida, confira os one-liners úteis do Python para simplificar tarefas comuns.