Linguagem Mojo para Desenvolvedor de IA

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.

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).

  Como encontrar e excluir fotos duplicadas no seu iPhone

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.

  BTFO Significado: O que significa BTFO?

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.

  Por que o Deep Linking é essencial para o marketing do seu aplicativo

#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.