Mojo-språk for AI-utvikler

Teknologiens verden er alltid i bevegelse. Den nyeste gutten i blokken er programmeringsspråket Mojo. Det tar kappen å forbedre utførelseshastigheter for Python-baserte prosjekter, og gir utviklere hastigheter som ligner på C.

Python er et av de beste programmeringsspråkene. Det er et allsidig programmeringsspråk som er lett å lære, og som tilbyr nye elever en inngangsport til programmering/datavitenskap.

Dessuten er det et utmerket programmeringsspråk for hendene til kompetente utviklere som kan bruke det til å lage komplekse apper. En av de viktigste ulempene med Python er imidlertid utførelseshastigheten. Og det er her Mojo kommer inn.

Denne artikkelen dekker Mojo og hvordan den forholder seg til Python-økosystemet. La oss komme i gang.

Hva er Mojo?

Mojo er et moderne programmeringsspråk på høyt nivå. Den tilbyr en intuitiv design for å hjelpe utviklere med å lage applikasjoner raskt. I tillegg har den som mål å bygge bro mellom produksjon og forskning ved å la brukere bruke metaprogrammeringsfunksjoner og systemprogrammering med Pythons syntaks og økosystem.

Den låner mye fra Rust og gir raske utførelseshastigheter til Python-økosystemet. Teknisk sett er Mojo et supersett av Python, som gir deg tilgang.

Teamet bak Mojo er fra Modular, et AI-infrastrukturselskap. Og det betyr også at det er et programmeringsspråk for AI-utviklere. Ved siden av Mojo-programmeringsspråket introduserte de også Interference Engine, som lar utviklere forbedre arbeidsflyten sin, skalere AI-produkter og redusere inferensforsinkelse (mer om det senere).

  Hvordan sjekke Apple TV Remote-batteri

Ifølge administrerende direktør i Modular, Chris Lattner, er Mojo 35 000 ganger raskere enn Python. Han står også bak den raske utviklingen av programmeringsspråk. Hastighetsgevinstene oppnås på grunn av hvordan Mojo bruker LLVM-kompilatorverktøykjeden og MILR (Multi-level Intermediate Representation Overview) kompilatorinfrastruktur.

Målene med Mojo programmeringsspråk inkluderer:

  • Arbeid med fullstendig kompatibilitet med Python-økosystemet.
  • Gjør det mulig for utviklere å distribuere kodedelsett til akseleratorer.
  • Kontroll på lavt nivå for å sikre forutsigbar ytelse.
  • Sikre ingen økosystemfragmentering.

For å prøve Mojo, må du bruke den gjennom deres skybaserte vertsmiljø, Mojo Playground. Den vil be deg om å logge på, og du kan få et arbeidsmiljø!

Hvorfor trenger vi Mojo?

Kjerneideen bak Mojo er å forene ML/AI-infrastruktur ved å tilby et programmeringsspråk som fungerer på tvers av stabelen. Videre sikrer det brukervennlighet ved å fjerne behovet for å skrive MLIR-kode.

I følge Modular vil Mojo tilby en skalerbar og innovativ programmeringsmodell. Ved å gjøre det vil AI-brukerne finne det enkelt å jobbe med akseleratorer og heterogene systemer.

Teknisk sett gjør det Mojo til et programmeringsspråk som støtter kompileringstidsmetaprogrammering. Den støtter også andre funksjoner, for eksempel caching under kompileringsflyt, adaptive kompileringsteknikker osv. Disse funksjonene finnes ikke i andre programmeringsspråk.

Hvis du vil lese mer om Mojos filosofi, sjekk ut Modular Docs – Why Mojo🔥

Funksjoner i Mojo-programmeringsspråket

I denne delen skal vi se på nøkkelfunksjonene til Mojo-programmeringsspråket.

#1. Fullstendig kompatibilitet med Python

Mojo har som mål å jobbe med Pythons økosystem og ikke mot det. Dette er tydelig fra det faktum at Mojo bruker de samme funksjonene, bibliotekene og funksjonene som Python tilbyr. Så du kan bruke hvilket som helst Python-bibliotek du vil i Mojo.

For å importere må du bruke følgende kode:

from PythonInterface import Python

Når du er ferdig, kan du bruke Python.import_module() til å importere et hvilket som helst Python-bibliotek.

  Hvordan lage ditt eget Slack Workspace gratis

For eksempel, for å importere numpy, må du bruke følgende kodelinje.

let np = Python.import_module(“numpy”)

I Python må du gjøre «import numpy som np»

Ettersom den importeres, kan du nå bruke den til å lage arrays, gjøre beregninger osv.

array = np.array([1, 2, 3])

print(array)

På samme måte kan du importere matplotlib.pyplot eller lage et plott i Mojo.

Slik ser det ut når jeg kjører koden i Mojo Playground.

Hvis du vil prøve ut koden, copy-paste den nedenfra.

from PythonInterface import Python

let np = Python.import_module("numpy")

array = np.array([1, 2, 3, 4, 5])

print(array)

#2. MILR

MILR står for Multi-Level Intermediate Representation. Mojo støtter MILR. Dette gjør til gjengjeld utviklere i stand til å ta av et komplett utvalg av nye avanserte funksjoner. Disse funksjonene inkluderer AI-maskinvareenheter, tråder og vektorer.

MILR forbedrer ytelsen på grunn av samtidighet, noe som gjør Mojo raskere enn Python. I tillegg lar det utviklere dra nytte av flere kjerner.

#3. Eierskap og låntaker

Pythons minnebehandling er trygg. Den bruker en søppeloppsamler, så programmerere må sørge for at koden ikke kjører inn i raseforhold.

Mojo, i likhet med Rust, implementerer en streng eierskaps- og lånerkontrollmodell. Foreløpig er det delvis implementert. Ideen bak bruk av modellen er å forbedre samtidighet og gi utmerket minnehåndtering.

Eierskapsmodellen sikrer også en trådsikker tilnærming, som er ideell for å gi utmerket samtidighetsstøtte. På denne måten kjører ikke programmer inn i løpsforhold. Lånekontrollen sørger også for at variabler alltid sjekkes under kjøring.

#4. Null kostnad for abstraksjon

Mojo tilbyr null-kostnad abstraksjoner, slik at utviklere kan ta full kontroll over lagring. Her kan programmerere gjøre inline allokeringsverdier til strukturer.

#5. Auto-tuning

Mojo tilbyr også automatisk tuning. Dette sikrer at automatisk tildeling av de beste verdiene er satt for parameterne, avhengig av målmaskinvaren.

  9 beste læringsstyringssystemer (LMS) for SMB

Automatisk justering fjerner behovet for å manuelt optimalisere koden din i henhold til målmaskinvaren.

Hastighet: Hvor raskt er Mojo-språket?

Python er et programmeringsspråk på høyt nivå som tar sikte på brukervennlighet og vedlikehold. Dessverre gjør dette det tregt sammenlignet med andre løsninger eller programmeringsspråk.

I Modulars test fant de at Mojo var 35000x. De brukte Mandelbrot-algoritmen og kjørte den på en AWS-instans med en Intel Xeon-prosessor som drev den. De testet PYPY, SCALAR C++ og MOJO, sammen med Python. Resultatene var superraske, og du kan se resultatene nedenfor.

Kilde: modular.com

For å lese mer om Mojo-hastighet, sjekk ut dette innlegget på Julialang-fellesskapet.

Modular Inference Engine – Kjør AI-modeller billig

Modular utvikler også en Modular Interference Engine som gjør det billigere å kjøre AI-modeller i produksjon. Mojo støtter Modular Interfence Engine som standard. Det gjør det mulig for team å forenkle arbeidsflyten. Det lar også utviklere redusere inferensforsinkelse, noe som gjør det enkelt å skalere AI-produkter.

Utviklere trenger heller ikke å endre modellen for å bruke motoren. Når den er lastet, kan den overlade PyTorch- og TensorFlow-modeller, som er i stand til å kjøre høy ytelse med bred maskinvarestøtte.

Vil det erstatte Python?

Mojo er ny. Det ser lovende ut. Så det vil ta tid å nå sine målgrupper, for eksempel dataforskere eller programmeringsspråk. Og ja, det løser spesielle problemer for AI-entusiaster og elever. Imidlertid er mange lignende løsninger der ute som forbedrer Python-språkhastigheten. For eksempel finner du Jax, Codon og Julia – et datavitenskapsorientert språk.

Så to ting kan skje. For det første vokser det eksponentielt når det gjelder funksjoner, og samfunnet tar det i bruk. Et annet resultat er at det blir et ad-hoc programmeringsspråk som bruker Python-biblioteker og Modular Interference Engine.

Så, vil Mojo erstatte Python? Bare tiden kan vise.

Deretter kan du sjekke ut nyttige Python one-liners for å forenkle vanlige oppgaver.