Jazyk Mojo pro vývojáře AI

Svět technologií je neustále v pohybu. Nejnovějším dítětem v bloku je programovací jazyk Mojo. Zrychlení spouštění projektů založených na Pythonu vyžaduje plášť, což vývojářům poskytuje rychlosti podobné C.

Python je jedním z nejlepších programovacích jazyků. Jedná se o všestranný snadno naučitelný programovací jazyk, který novým studentům nabízí bránu k programování/informatice.

Navíc je to vynikající programovací jazyk pro ruce kompetentních vývojářů, kteří jej mohou používat k vytváření složitých aplikací. Jednou z nejvýznamnějších nevýhod Pythonu je však rychlost provádění. A to je místo, kde přichází Mojo.

Tento článek pojednává o Mojo a o tom, jak souvisí s ekosystémem Python. Začněme.

Co je Mojo?

Mojo je moderní programovací jazyk na vysoké úrovni. Nabízí intuitivní design, který pomáhá vývojářům rychle vytvářet aplikace. Kromě toho si klade za cíl překlenout propast mezi výrobou a výzkumem tím, že uživatelům umožní používat funkce metaprogramování a systémové programování se syntaxí a ekosystémem Pythonu.

Hodně si půjčuje od Rust a poskytuje rychlé spouštění ekosystému Python. Technicky je Mojo nadmnožinou Pythonu, která vám poskytuje přístup.

Tým za Mojo je ze společnosti Modular, která se zabývá infrastrukturou AI. A to také znamená, že je to programovací jazyk pro vývojáře AI. Spolu s programovacím jazykem Mojo představili také Interference Engine, který umožňuje vývojářům zlepšit pracovní postup, škálovat produkty AI a snížit latenci odvození (více o tom později).

  11 Výhody používání antivirového softwaru – důležitost online zabezpečení

Podle generálního ředitele Modular Chrise Lattnera je Mojo 35 000krát rychlejší než Python. Stojí také za rychlým vývojem programovacího jazyka. Zvýšení rychlosti je dosaženo díky tomu, jak Mojo používá LLVM kompilátor toolchain a MILR (Multi-level Intermediate Representation Overview) infrastrukturu kompilátoru.

Mezi cíle programovacích jazyků Mojo patří:

  • Pracujte s úplnou kompatibilitou s ekosystémem Python.
  • Umožněte vývojářům nasadit podmnožiny kódu do akcelerátorů.
  • Nízkoúrovňová kontrola pro zajištění předvídatelného výkonu.
  • Zajistěte, aby nedošlo k fragmentaci ekosystému.

Chcete-li Mojo vyzkoušet, budete jej muset používat prostřednictvím jejich cloudového hostovaného prostředí Mojo Playground. Požádá vás o přihlášení a můžete získat pracovní prostředí!

Proč potřebujeme Mojo?

Základní myšlenkou Mojo je sjednotit infrastrukturu ML/AI poskytnutím programovacího jazyka, který funguje napříč celým zásobníkem. Kromě toho zajišťuje snadné použití tím, že odstraňuje nutnost psát kód MLIR.

Podle Modular bude Mojo nabízet škálovatelný a inovativní programovací model. Díky tomu bude pro uživatele AI v terénu snadné pracovat s akcelerátory a heterogenními systémy.

Technicky to dělá Mojo programovacím jazykem, který podporuje metaprogramování v době kompilace. Podporuje také další funkce, jako je ukládání do mezipaměti během toku kompilace, techniky adaptivní kompilace atd. Tyto funkce nejsou přítomny v jiných programovacích jazycích.

Pokud si chcete přečíst více o filozofii Mojo, podívejte se na Modular Docs – Why Mojo🔥

Vlastnosti programovacího jazyka Mojo

V této části se podíváme na klíčové vlastnosti programovacího jazyka Mojo.

#1. Kompletní kompatibilita s Pythonem

Mojo si klade za cíl pracovat s ekosystémem Pythonu a ne proti němu. To je zřejmé ze skutečnosti, že Mojo používá stejné funkce, knihovny a vlastnosti, které nabízí Python. V Mojo tedy můžete použít jakoukoli knihovnu Pythonu, kterou chcete.

  Google I/O 2023 SquareX pro Security Twinr App Creator

Chcete-li importovat, budete muset použít následující kód:

from PythonInterface import Python

Po dokončení můžete použít Python.import_module() k importu libovolné knihovny Pythonu.

Chcete-li například importovat numpy, budete muset použít následující řádek kódu.

let np = Python.import_module(“numpy”)

V Pythonu budete muset provést „import numpy jako np“

Jakmile je importován, můžete jej nyní použít k vytváření polí, provádění výpočtů atd.

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

print(array)

Podobně můžete importovat matplotlib.pyplot a vytvořit graf v Mojo.

Takto to vypadá, když spustím kód v Mojo Playground.

Pokud chcete kód vyzkoušet, zkopírujte a vložte jej zespodu.

from PythonInterface import Python

let np = Python.import_module("numpy")

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

print(array)

#2. MILR

MILR znamená Multi-Level Intermediate Representation. Mojo podporuje MILR. To na oplátku umožňuje vývojářům využívat celou řadu nových pokročilých funkcí. Tyto funkce zahrnují hardwarové jednotky AI, vlákna a vektory.

MILR zlepšuje výkon díky souběžnosti, díky čemuž je Mojo rychlejší než Python. Navíc umožňuje vývojářům využít výhod více jader.

#3. Kontrola vlastnictví a dlužníka

Správa paměti Pythonu je bezpečná. Používá garbage collector, takže programátoři musí zajistit, aby kód nenarazil na závodní podmínky.

Mojo, podobně jako Rust, zavádí přísný model kontroly vlastnictví a dlužníka. V současné době je částečně realizován. Myšlenkou použití tohoto modelu je zlepšit souběžnost a poskytnout vynikající správu paměti.

Model vlastnictví také zajišťuje přístup bezpečný pro vlákna, který je ideální pro poskytování vynikající podpory souběžnosti. Tímto způsobem programy nenarazí na závodní podmínky. Vypůjčovač také zajišťuje, že proměnné jsou vždy kontrolovány za běhu.

#4. Nulové náklady na abstrakci

Mojo nabízí abstrakce s nulovými náklady a umožňuje vývojářům převzít úplnou kontrolu nad úložištěm. Zde mohou programátoři provádět inline přiřazení hodnot strukturám.

#5. Automatické ladění

Mojo také nabízí automatické ladění. Tím je zajištěno automatické přiřazení nejlepších hodnot parametrům v závislosti na cílovém hardwaru.

  Přehrávejte hudbu z libovolné složky nebo hudební knihovny ve Firefoxu

Automatické ladění odstraňuje nutnost ručně optimalizovat váš kód podle cílového hardwaru.

Rychlost: Jak rychlý je jazyk Mojo?

Python je programovací jazyk na vysoké úrovni, jehož cílem je snadné použití a udržovatelnost. Bohužel je to ve srovnání s jinými řešeními nebo programovacími jazyky pomalé.

V testu Modular zjistili, že Mojo je 35 000x. Použili Mandelbrotův algoritmus a spustili jej na instanci AWS s procesorem Intel Xeon, který jej poháněl. Spolu s Pythonem testovali PYPY, SCALAR C++ a MOJO. Výsledky byly super rychlé a výsledky můžete vidět níže.

Zdroj: modular.com

Chcete-li si přečíst více o rychlosti Mojo, podívejte se na tento příspěvek na komunitě Julialang.

Modular Inference Engine – provozujte modely AI levně

Modular také vyvíjí modul Modular Interference Engine, který zlevňuje provozování AI modelů ve výrobě. Mojo ve výchozím nastavení podporuje Modular Interfence Engine. Umožňuje týmům zjednodušit jejich pracovní postup. Umožňuje také vývojářům snížit latenci odvození, což usnadňuje škálování produktů AI.

Vývojáři také nemusí měnit svůj model, aby mohli používat Engine. Po načtení může přeplňovat modely PyTorch a TensorFlow, které jsou schopné provozovat vysoký výkon s širokou podporou hardwaru.

Nahradí Python?

Mojo je nové. Vypadá to slibně. Bude tedy chvíli trvat, než se dostane k cílovým skupinám, jako jsou datoví vědci nebo programovací jazyky. A ano, řeší konkrétní problémy pro nadšence a studenty AI. Existuje však spousta podobných řešení, která zlepšují rychlost jazyka Python. Najdete zde například Jax, Codon a Julia – jazyk orientovaný na datovou vědu.

Mohou se tedy stát dvě věci. Za prvé, exponenciálně roste, pokud jde o funkce, a komunita jej přijímá. Dalším výsledkem je, že se stává ad-hoc programovacím jazykem, který využívá knihovny Pythonu a Modular Interference Engine.

Takže Mojo nahradí Python? To může říct jen čas.

Dále se podívejte na užitečné jednoduché linky Pythonu pro zjednodušení běžných úloh.