Ruka hadi maudhui makuu
Mafunzo ya AI

Handwired: Geuza Programu za JavaScript Kuwa Mitandao ya Neva Inayotofautishika

Mafunzo haya yanaeleza mbinu ya Handwired ya kubadilisha masharti, mizunguko na hali ya programu kuwa uzidishaji wa matriki na utendakazi wa mtindo wa ReLU. Utaweka mradi kwa kutumia Bun, kuchunguza mifano yake ya maonyesho, kuelewa mabadiliko ya kihisabati, na kujifunza mahali ambapo programu zake zinazotofautishika zinaweza kutumika.

Handwired: Geuza Programu za JavaScript Kuwa Mitandao ya Neva Inayotofautishika

Handwired Ni Nini?

Handwired hubadilisha msimbo wa kawaida wa JavaScript kuwa hesabu inayofanana na mtandao wa neva bila kuhitaji mafunzo. Badala ya kuwakilisha programu kama mtiririko wa kawaida wa udhibiti, hubadilisha mantiki kama masharti, mizunguko, na hali kuwa kuzidisha matriki pamoja na utendaji wa reglu kwenye thamani za sehemu zinazoelea.

Programu inayotokana nayo hubaki tofauti kikamilifu, huku uzani wake ukiandikwa mwenyewe badala ya kujifunzwa. Handwired inaweza kutekeleza hesabu hizi katika JavaScript au kwa kutumia WebGPU.

Onyesho la HandwiredOS

Kwa Nini Kubadilisha Programu Kuwa Hesabu ya Kineva?

Handwired hupunguza tabia ya programu kuwa seti ndogo ya vihisabati vya msingi, hasa kujumlisha, kuzidisha, na utendaji wa aina ya ReLU. Mbinu hii hutoa sifa kadhaa za kuvutia:

  • Programu nzima hubaki tofauti.
  • Uzani hauhitaji kufunzwa kwa sababu huandikwa mwenyewe.
  • Uboreshaji wa GPU kama vile kuunganisha, uhaba, na kupanga upya utendaji unaweza kufanya kazi na hesabu hii iliyorahisishwa.
  • Msimbo wa kawaida wa JavaScript unaweza uwezekano wa kufikia ulinganifu wa kiwango cha GPU unapowakilishwa kwa namna hii.

Mradi huu pia huunda uwezekano wa majaribio. Unaweza kuondoa hali ya kugandisha uzani uliobainishwa mwenyewe na kuchunguza mafunzo yanachozalisha, au kuunganisha programu iliyogandishwa kwenye mtandao wa neva wa jumla na kufunza mfumo uliounganishwa kutoka mwanzo hadi mwisho.

Sanidi Mradi

Handwired inajumuisha maonyesho ya moja kwa moja na msimbo chanzi unaohitajika ili kuchunguza utekelezaji wake kwenye kompyuta yako. Utahitaji kuwa na Bun iliyosakinishwa kwenye mfumo wako.

  1. Fanya kloni ya hazina ya Handwired.
  2. Ham ia kwenye saraka ya mradi.
  3. Sakinisha vitegemezi kwa kutumia bun install.
  4. Anzisha maonyesho ya ndani kwa kutumia bun start.
git clone <handwired-repository-url>
cd handwired
bun install
bun start

Baada ya kuanzisha mradi, tumia anwani ya ndani iliyoonyeshwa na Bun ili kukagua maonyesho. Unaweza pia kujaribu maonyesho yaliyopangishwa kwenye chenglou.me/handwired.

Elewa Mabadiliko ya Msingi

Fikiria sharti hili rahisi la JavaScript:

const a = 5
const result = (a > 4) ? 10 : 12

Handwired huonyesha sharti hilo kwa kutumia hesabu. Kwa thamani kamili, tofauti ifuatayo ya utendaji wa ReLU huunda kichaguzi ambacho ni 1 wakati a > 4 na 0 wakati a <= 4:

const a = 5
const above4 = Math.max(0, a - 4) - Math.max(0, a - 5)
const result = above4 * 10 + (1 - above4) * 12

Matawi yote mawili yanahesabiwa, lakini above4 huchagua matokeo yanayofaa. Kwa a = 5, kichaguzi ni 1, hivyo thamani ya mwisho ni 10, inayolingana na usemi wa awali wa sharti.

Jinsi Uwakilishi wa Kihisabati Unavyofanya Kazi

Wazo kuu ni kubadilisha matawi kwa vihisabati endelevu vya msingi. Sharti hubadilika kuwa mchanganyiko wa:

HandwiredOS

  • Utendaji wa ReLU wa kuunda kichaguzi kutoka kwenye ingizo.
  • Kuzidisha ili kutumia kichaguzi kwa kila tawi.
  • Kujumlisha ili kuunganisha matokeo ya matawi.

Baada ya utendaji huu kukusanywa, Handwired inaweza kuwakilisha hesabu hiyo kama kuzidisha matriki kubwa pamoja na utendaji husika wa uamilisho. Programu hiyo hiyo inaweza kisha kutathminiwa kwa kutumia JavaScript au WebGPU.

Matawi yote mawili huhesabu, na kichaguzi huchagua ni matokeo gani yanayochangia kwenye pato.

Chunguza Hazina

Unapofanya kazi na mradi huu, anza na saraka zilizoangaziwa kwenye README:

  • docs/ ina nyaraka na nyenzo za kuelewa mradi.
  • src/ ina utekelezaji.
  • template/ hutoa mwanzo wa kuufahamu mradi.
  • lab/ ina majaribio ya zamani ambayo unaweza kuchunguza au kuyapuuza.

Mtiririko wa kazi unaofaa ni kuendesha maonyesho kwanza, kisha kulinganisha tabia yake na faili husika za msimbo chanzi. Hii husaidia kuunganisha mifano inayoonekana na mabadiliko ya msingi kuwa utendaji wa matriki.

Jaribu Maonyesho

Onyesho lililopangishwa ndiyo njia ya haraka zaidi ya kuona Handwired ikifanya kazi. Maelezo ya mradi yanaangazia hasa onyesho la utafutaji wa JSON linalochakata nyaraka 100,000 kwa milisekunde. Linaonyesha lengo la mradi la kuleta ulinganifu mkubwa kwenye msimbo ulioandikwa awali kwa mtindo wa kawaida wa uzi mmoja.

Tumia maonyesho kuona tofauti kati ya muundo wa awali wa programu na uwakilishi wa kihisabati unaozalishwa. Pia ni mwanzo mzuri kabla ya kurekebisha msimbo chanzi wa ndani.

Mawazo ya Juu

Fanya Majaribio kwa Uzani Unaoweza Kufunzwa

Kwa kawaida Handwired hutumia uzani ulioandikwa mwenyewe, hivyo mafunzo hayahitajiki ili programu ifanye kazi. Jaribio moja linalopendekezwa na mradi ni kuondoa hali ya kugandisha uzani huo na kuona mchakato wa uboreshaji unachozalisha.

Unganisha Programu Zilizogandishwa na Mitandao ya Neva

Uwezekano mwingine ni kuunganisha programu maalum iliyogandishwa ya Handwired kwenye mtandao wa neva wa jumla na kufunza mfumo uliounganishwa kutoka mwanzo hadi mwisho. Hii inaweza kuruhusu modeli kuhifadhi programu iliyofafanuliwa kwa usahihi huku ikijifunza tabia nyingine.

Fikiri kwa Kuzingatia Utendaji wa Msingi

Unapobuni majaribio, zingatia jinsi mtiririko wa udhibiti unavyoweza kuonyeshwa kwa kutumia kujumlisha, kuzidisha, na utendaji wa aina ya ReLU. Kadiri hesabu inayotokana inavyokuwa rahisi, ndivyo inavyoweza kunufaika moja kwa moja na mbinu kama vile kuunganisha, uhaba, na kupanga upya.

Hitimisho

Handwired inaonyesha jinsi mantiki ya kawaida ya JavaScript inavyoweza kuandikwa upya kama hesabu za kihisabati zinazoweza kutofautishwa. Kwa kubadilisha mtiririko wa udhibiti kwa viteuzi vya kihisabati na kupunguza matokeo kuwa kuzidisha matriksi pamoja na shughuli za uamilisho, inafanya programu za jadi ziendane na mbinu za mitandao ya neva na utekelezaji wa JavaScript au WebGPU. Isakinishe kwa kutumia Bun, chunguza maonyesho, kisha kagua docs/, src/, na template/ ili kuanza kufanya majaribio.

Handwired: Geuza Programu za JavaScript Kuwa Mitandao ya Neva Inayotofautishika