Elixir komanda plėtoja skaitmeninio skaičiavimo projektą, planuoja daugiau mašininio mokymosi priedų • DEVCLASS


Nx 0,1

Po 14 mėnesių darbo daugiamatės tensorinės bibliotekos Nx kūrėjai nusprendė nutraukti savo pirmąjį oficialų leidimą ir bendrinti v0.1 su platesne Elixir ekosistema. Nx kūrėjas ir Elixir kūrėjas José Valim taip pat pasinaudojo galimybe greitai pažvelgti į ateitį tiems, kurie nori naudoti programavimo kalbą mašininiam mokymuisi.

Prieš dėdamas pastangas į „Elixir“, Valimas dažniausiai buvo žinomas kaip pagrindinės komandos, kuriančios žiniatinklio programų sistemą, narys. Ruby on Rails. Ten jis buvo susidūrė su padidėjusia paklausa kurti vienu metu veikiančias programas, o tai paskatino jo susidomėjimą kelių branduolių programine įranga. 2011 m. Valim nusprendė išspręsti šią problemą pradėdamas dirbti su Elixir, kurį jis apibūdino kaip „modernų požiūrį į Erlang VM programavimą“ ir įrankį, skirtą keičiamo dydžio, gedimams atsparioms ir prižiūrimoms programoms kurti. Pirmasis oficialus išleidimas įvyko 2012 m.

Nors po pirmojo dešimtmečio „Elixir“ negali būti įtraukta į aukščiausius programavimo kalbų sąrašus, ji buvo įtraukta į įvairias žiniatinklio programas dėl pristatymo garantijų ir lygiagretumo funkcijų. Ryškūs pavyzdžiai yra pagrindinės komunikacijos platformos „Discord“ paslaugos ir „PagerDuty“ pranešimų planavimo paslauga.

Nx reiškia pirmąjį žingsnį link to, ką Valim vadina Numerical Elixir – iniciatyva, kuria tikimasi patenkinti augantį susidomėjimą mašininiu mokymusi ir duomenų analize, siūlant atitinkamus įrankius. Be Nxpastangos matė Elixir neuroninių tinklų komponentą Aksonasduomenų rėmelių projekto naršyklė ir mokslo duomenų rinkinio normalizavimo įrankis scidata tapti savimi.

Nors kitos kalbų komandos nusprendė į savo kūrybą įtraukti Python įrišimus, kad palaikytų ML naudojimo atvejį, Elixir kūrėjai pasirinko pagrindinį projektą, siekdami panaudoti Erlang VM Elixir potencialą ir pasiūlyti alternatyvią platformą naujiems patobulinimams.

Nx daugiausia žada pateikti funkcijų ir duomenų tipų rinkinį skaitmeniniam skaičiavimui, taip pat kompiliatorius, leidžiančius juos efektyviai naudoti procesoriuose ir GPU. Pagrindinis jo bruožas yra „Elixir“ poaibis, vadinamas skaitiniais apibrėžimais (defn), kuris yra pritaikytas skaitmeniniam skaičiavimui ir sukuria „labai optimizuotą kodą, kuris veiktų CPU, GPU ar net debesies TPU“. Skaitiniai apibrėžimai taip pat yra „Axon“ pagrindas ir padeda projektui realizuoti tokius dalykus kaip konvoliuciniai, generaciniai, struktūriniai ir su regėjimu susiję neuroniniai tinklai.

Prieš pradedant 0.1 versiją, Nx išmoko dirbti while kilpos, kad palaikytų pasikartojančius modelius, tokius kaip tie, kurie ateityje bus naudojami kalbos atpažinimui, ir įgijo ryšį su skaitiniais apibrėžimais bei duomenų srautinio perdavimo galimybėmis. Pastarasis yra naudingas įgyvendinant paskirstytą mokymąsi – į ką „Valim“ ir įmonė planuoja pažvelgti kur nors lygiagrečiai – ir, be kita ko, daryti išvadas.

Nx 0.1 taip pat aprūpintas Nx.LinAlg moduliu, kuriame yra pradinė linijinės algebros funkcijų serija, skirta palaikyti modelius, pagrįstus matricos faktorizavimu. Per ateinančius mėnesius tikrai bus daugiau papildymų, tačiau šiuo metu „Valim“ planuose dėl Nx daugiausia dėmesio skiriama didesniems dalykams. Be kitų darbų, jis planuoja įdiegti patikros tašką, kad bibliotekos automatinio diferencijavimo sistema netrukus pradėtų veikti, kad sumažintų atminties naudojimą treniruojant didelius modelius.

Siekdama padėti vartotojams pereiti prie „Elixir“ savo mašininio mokymosi projektams, jo komanda taip pat tiria modelių mainų formato ONNX ir „Axon“ integraciją, kuri palengvintų jau apmokytų modelių naudojimą, ir siūlo iš anksto sukompiliuotus „Explorer“ sąsajas. Tuo tarpu „Elixir“ kodo užrašų knygelės „Livebook“ staliniams kompiuteriams skirta versija kūrėjams, norintiems pirmiausia išbandyti „Elixir“, turėtų padėti lengviau pradėti.