uutiset

Flying padde framework Advanced 3.0!Artikkelissa selitetään viisi uutta ominaisuutta, mukaan lukien "Integroitu suurten mallien harjoittelu ja työntäminen"

2024-08-01

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Perusohjelmistona syväoppimiskehys ei ainoastaan ​​edistä syvän oppimisteknologian nopeaa edistymistä, vaan luo myös vankan pohjan tekoälyteknologian laajalle leviämiselle.

Syväoppimiskehys tarjoaa kehittäjille käteviä ja helppokäyttöisiä kehitysrajapintoja, jotka antavat erittäin abstraktin datan ja toiminnot, jolloin kehittäjät voivat keskittyä enemmän algoritmien ja mallien suunnitteluun ilman, että heidän tarvitsee juuttua taustalla olevan tiedonkäsittelyn yksityiskohtiin. Näiden rajapintojen kautta kehittäjien ei tarvitse suoraan havaita ja käsitellä monimutkaisia ​​taustalla olevia laitteistokehityksen yksityiskohtia, mikä parantaa huomattavasti kehitystehokkuutta ja kokemusta. Toiseksi syväoppimiskehys tarjoaa myös tehokkaan automaattisen eriyttämisen toiminnon. Kehittäjien tarvitsee yleensä kirjoittaa eteenpäin etenemisverkon koodi, kun taas hankalia takaisinetenemisverkko täydentää automaattisesti.

Fei Paddle on Kiinan ensimmäinen itse kehitetty, monipuolinen, avoimen lähdekoodin ja avoin syväoppimisalusta, joka on julkaistu versiosta 1.0, joka käyttää oletusarvoisesti staattisia kuvia, versioon 2.0, joka käyttää oletusarvoisesti dynaamisia kuvia ja pystyy toteuttamaan integraation. dynaamisten ja staattisten kuvien sekä harjoittelun ja työntämisen ansiosta. Se on pystynyt integroimaan täydellisesti dynaamisen grafiikan joustavuuden ja staattisen grafiikan tehokkuuden, ja se tukee äskettäin kehitettyä mallien hybridiharjoitusta 3.0 suurten mallien aikakausi, on virallisesti julkaistu! Flying Paddle on virallisesti avannut uuden sukupolven runkoteknologian innovaatioita!

Suunnitteluajattelu

Syväoppimisen viitekehyksen suunnittelu on keskeistä tekoälyteknologian kehityksen edistämisessä, ja sen suunnittelun ydintavoite on helpottaa syväoppimisteknologian innovointia ja soveltamista.

Miten tämä tehdään?

Kehyksen on otettava täysin huomioon kehittäjien ja laitevalmistajien tarpeet.

Käyttäjän näkökulmasta erinomaisen syvän oppimiskehyksen pitäisi tarjota kehittäjille äärimmäinen kehityskokemus. Tämä ei tarkoita vain käyttäjäystävällisen kehitysympäristön tarjoamista, vaan mikä tärkeintä, sen on kyettävä vähentämään merkittävästi kehittäjien oppimiskustannuksia ja aikakustannuksia ja samalla parantaa merkittävästi kehittämisen mukavuutta. Tätä tarkoitusta varten Flying Paddle Framework esittää käsitteen "liikkeen ja staattisen liikkeen yhdistäminen, harjoittelun ja työntämisen integrointi sekä automaattinen rinnakkaisuus", mikä parantaa huomattavasti kehityksen tehokkuutta.

Laitteiston mukauttamisen näkökulmasta nykyaikaisten syväoppimissovellusten on usein toimittava erilaisilla laitteistoalustoilla. Siksi kehyksen on oltava yhteensopiva useiden erilaisten laitteistojen kanssa. Tämä edellyttää, että kehys eristää älykkäästi erot eri laitteistorajapintojen välillä ja saavuttaa laajan laitteiston mukautuvuuden. Samaan aikaan, jotta laitteiston suorituskyky olisi täysi, kehyksen on myös kyettävä toimimaan yhdessä ohjelmistojen ja laitteistojen kanssa optimaalisen suorituskyvyn varmistamiseksi laitteistoresursseja käytettäessä.

Samalla hyvässä viitekehyksessä on otettava huomioon myös tekoälyteknologian kehityksen yleinen trendi ja alan todelliset sovellustarpeet.

Teknologisen kehityksen kannalta huipputeknologiat, kuten Large Language Model (LLM), MOE (Mixture of Experts), multimodaalisuus ja tieteellinen älykkyys (AI for Science) ovat vähitellen tulleet uusiksi tutkimuskohteiksi. Mallin monimutkaisuuden kasvaessa ongelmat, kuten tietojenkäsittelyn pullonkaulat, tallennustilan pullonkaulat, muistin käytön pullonkaulat ja kommunikoinnin pullonkaulat korostuvat vähitellen, ja hajautetun koulutuksen ja yleisen suorituskyvyn optimoinnin tarve tulee yhä kiireellisemmäksi.

Teollistumisen tasolla viitekehyksellä on oltava täyden prosessin ominaisuudet, jotka tukevat koulutuksen, pakkaamisen ja päättelyn integrointia. Tämä tarkoittaa, että mallikoulutuksesta optimointiin ja todelliseen käyttöönottoon ja päättelyyn, kehyksen pitäisi tarjota täydellinen ja tehokas ratkaisu alan todellisiin syväoppimisteknologian tarpeisiin.

Vain kehys, joka pysyy trendeissä ja kestää kiillotusta, voi tarjota jatkuvaa ja vakaata tukea kehittäjille kaikilta elämänaloilta teollisuudessa, korkeakouluissa ja tutkimuksessa.


Flying Paddle Frame 3.0:n suunnittelukonsepti ja pääominaisuudet

Yhteenvetona edellä esitetyistä vaatimuksista Fei Paddle tarjoaa kehittäjille syvän oppimiskehyksen, joka "yhdistää dynaamisen ja staattisen, integroi harjoittelun ja työnnön, automaattisen rinnakkaisuuden, automaattisen optimoinnin ja laajan laitteiston mukauttamisen Kehittäjät voivat kirjoittaa hajautettua koodia aivan kuten kirjoitustelineen". -yksin koodi, ilman tarvetta havaita monimutkaista viestintä- ja ajoituslogiikkaa, voit kehittää suuria malleja Pythonissa, kuten kirjoittaessasi matemaattisia kaavoja, käyttämättä laitteiston kehityskieliä monimutkaisten operaattoriydinkoodien kirjoittamiseen; voi saavuttaa tehokkaan toiminnan.

Flying Paddle Framework -versio 3.0 syntyi, ja se jatkaa dynaamisen ja staattisen yhdistävän 2.x-version suunnittelukonseptia. Sen kehitysliittymä on täysin yhteensopiva 2.x-version kanssa. Tämä tarkoittaa, että versiolla 2.x kehitetty koodi voi toimia suoraan versiossa 3.0 ilman muutoksia useimmissa tapauksissa. Se keskittyy lanseeraamaan neljä uutta ominaisuutta: dynaaminen ja staattinen yhdistetty automaattinen rinnakkaiskytkentä, kääntäjien automaattinen optimointi, laaja mallin koulutus ja push-integraatio sekä laajan mallin usean laitteiston mukauttaminen. Näitä ominaisuuksia on kehitetty Flying Paddle Frameworkin versiosta 2.6 tai aiemmasta lähtien, ja ne ovat nyt saavuttaneet ulkoisen kokeilukäytön vaiheen. Nämä uudet ominaisuudet ovat tuoneet merkittäviä parannuksia käyttökokemukseen, suorituskykyyn, toissijaisen kehityksen mukavuuteen ja laitteiston mukautumiseen virallisesti julkaistuun versioon 3.0. Tämä versio sisältää parannuksia joihinkin Framework 2.x -version olemassa oleviin toimintoihin, ja se on kypsä ja vakaa ilman uusia ominaisuuksia.

Kehysarkkitehtuurin yleiskatsaus

Yllämainittujen syväoppimiskehyksen ominaisuuksien toteuttamiseksi viitekehyksen arkkitehtuuri on suunniteltava huolellisesti siten, että se pystyy tukemaan erilaisia ​​monimutkaisia ​​mallirakenteita ja saavuttamaan saumattoman integroinnin erilaisten sirujen kanssa. Seuraavaksi intuitiivisen arkkitehtuurikaavion avulla esitellään yksityiskohtaisesti Flying Paddlen uuden sukupolven viitekehyksen kattamat toiminnalliset moduulit sekä näiden moduulien väliset vuorovaikutukset ja yhteydet. Seuraavassa on Flying Paddle Framework 3.0:n arkkitehtuurikaavio.


Flying Paddle Framework 3.0 -arkkitehtuurikaavio

Rikkaat käyttöliittymät: Flying Paddle Framework tarjoaa erilaisia ​​syväoppimiseen liittyviä kehitysrajapintoja, kuten tensoriesitys, matemaattiset laskelmat, malliverkko, optimointistrategiat jne. Näiden käyttöliittymien kautta kehittäjät voivat helposti rakentaa ja kouluttaa omia syväoppimismallejaan menemättä taustalla oleviin teknisiin yksityiskohtiin.

Kehitysrajapinnan alla Flying Paddle Framework voidaan jakaa neljään tasoon: esityskerros, ajoituskerros, operaattorikerros ja adaptaatiokerros.

Esityskerros: keskittyy laskennallisten kaavioiden ilmaisuun ja muuntamiseen ja tarjoaa ydintoimintoja, kuten dynaamisen staattisiksi (dynaamiset graafit staattisiksi kaavioiksi), automaattisen erottelun, automaattisen rinnakkaisuuden, operaattoriyhdistelmän ja laskennallisen kuvaajan optimoinnin erittäin skaalautuvan PIR-väliesityksen avulla. Kiinteä tuki.

Ajoituskerros: Vastaa koodien tai laskentakaavioiden älykkäästä orkestroinnista ja tehokkaasta ajoituksesta sekä kyvystä hallita ja optimoida grafiikkamuistia ja muistia todellisten tarpeiden mukaan sekä tukea dynaamisten ja staattisten kuvaajien tehokasta suoritusta. Riippumatta siitä, käyttävätkö kehittäjät mallinkehitykseen dynaamista grafiikkaa tai staattista grafiikkaa, Flying Paddle Framework voi tarjota tehokkaan suoritusympäristön ja varmistaa resurssien optimaalisen käytön.

Operaattorikerros: Se koostuu neuroverkkokääntäjästä CINN ja operaattorikirjastosta PHI, joka kattaa avaintoiminnot, kuten tensorin määrittelyn, operaattorin määrittelyn, automaattisen operaattorifuusion ja operaattoriytimen toteutuksen.

Mukautuskerros: Sitä käytetään mukauttamiseen taustalla olevaan siruun, mukaan lukien toiminnot, kuten laitehallinta, operaattorin mukauttaminen, viestintäsovitus ja käännöskäyttö.

Seuraavassa keskitytään Flying Paddle 3.0 -version arkkitehtuurin uuteen ja suureen päivitykseen. Tämä päivitys sisältää pääasiassa seuraavat moduulit:

1) Erittäin skaalautuva väliesitys PIR, joka luo yhtenäisen väliesityksen koko arkkitehtuurille, murtaa jokaisen kehyskerroksen moduulin esteet ja parantaa Flying Paddlen potentiaalia tieteellisen laskennan, kokoamisen optimoinnin ja suurten mallien aloilla. ;

2) Neuroverkon kääntäjä optimoi automaattisesti ja parantaa huomattavasti mallin päästä päähän -suorituskykyä automaattisen fuusion ja politiikan virityksen avulla;

3) Automaattinen rinnastus vähentää mallinkehityksen kustannuksia ja suurten mallikohtausten suorituskyvyn optimointia ja parantaa huomattavasti suurten mallikohtausten käyttökokemusta.

Erittäin laajennettu PIR-väliesitys

Laskennallisten kuvaajien välimuotoinen esitys (IR) on tärkeä kulmakivi syväoppimiskehyksen suorituskyvyn optimoinnissa, päätelmien käyttöönotossa, kääntäjässä ja muissa suunnissa. Viime vuosina yhä useammat viitekehykset ja tutkijat ovat ottaneet käännösteknologiaa neuroverkkomallien optimointiin syväoppimista varten, ja tämän pohjalta he ovat käyttäneet kääntäjäkonsepteja, teknologioita ja työkaluja neuroverkkojen automaattiseen optimointiin ja koodaamiseen. Suurten mallien aikakaudella IR:lle asetetaan korkeammat vaatimukset joustavuuden, skaalautuvuuden ja täydellisyyden suhteen.

Siksi versiossa 3.0 Feipiao standardoi keskitason edustuksen IR:n määritelmän infrastruktuuritasolla saavuttaakseen koko arkkitehtuurin yhtenäisen edustuksen ja kehitystulosten jakamisen kaikkiin suuntiin ylä- ja alavirtaan. Feipiaon uuden sukupolven IR-arkkitehtuuri keskittyy kahteen tärkeään ulottuvuuteen, jotka ovat korkea joustavuus ja korkea skaalautuvuus. Se on kehitetty täydellisempien ja vankempien semanttisten ilmaisuominaisuuksien, koko arkkitehtuurin yhtenäisen esityksen ja tehokkaan kytkettävän suorituskyvyn optimointistrategian (Pass) avulla monimutkaisten semanttisten ominaisuuksien saavuttamiseksi. tukea, tukevat kätevämmin monipuolisia segmentointistrategioita suurten mallien automaattisessa rinnakkaiskäytössä ja muodostavat saumattomasti yhteyden hermoverkkokääntäjään automaattisen suorituskyvyn optimoinnin ja usean laitteiston mukauttamisen saavuttamiseksi.



Paddle Intermediate Representation (PIR) tiivistää joukon erittäin skaalautuvia peruskomponentteja alareunassa, joka kattaa tyypin, attribuutin, op, ominaisuuden ja käyttöliittymän, ja esittelee murteen käsitteen, joka antaa kehittäjille mahdollisuuden joustavasti laajentaa ja mukauttaa vapaasti, mikä tarjoaa kattavan ja vankat semanttiset ilmaisuominaisuudet. Malliesitystasolla useiden murteiden modulaarisen hallinnan ja yhtenäisen monipääteesityksen avulla saavutetaan yhtenäinen esitys koko arkkitehtuurista, joka yhdistää koulutuksen ja päättelyn, saavutetaan saumaton yhteys operaattoreiden ja kääntäjien välillä sekä automaattinen optimointi ja monilaitteistosovitus. ovat tuettuja. Yhdistämällä taustalla olevat moduulit ja yksinkertaistamalla peruskonsepteja kaavion muunnoskerroksessa se tarjoaa käyttäjille edullisen, helppokäyttöisen ja tehokkaan kehityskokemuksen sekä monipuolisen ja kytkettävän Pass-optimointimekanismin. Flying Paddle PIR noudattaa staattisen yksittäisen osoituksen (SSA) periaatetta varmistaakseen, että malli vastaa suunnattua asyklistä kuvaajaa, ja käyttää arvoa ja operaatiota laskentakaavion abstraktointiin, jossa Operaatio edustaa solmuja ja Arvo edustaa reunoja.

Operaatio edustaa solmua laskentakaaviossa: jokainen operaatio edustaa operaattoria ja sisältää nolla tai useampia alueita. Alue edustaa sulkemista, joka voi sisältää nolla tai useampia lohkoja. Lohko edustaa peruslohkoa, joka noudattaa staattisen yksittäisen osoituksen (SSA) periaatetta ja sisältää nollan tai useamman toiminnon. Silmukan sisäkkäisyyden avulla näiden kolmen välillä voidaan rakentaa mielivaltaisen monimutkaisia ​​kieliopillisia rakenteita.

Arvo edustaa suunnattua reunaa laskentakaaviossa: sitä käytetään yhdistämään kaksi Operaatiota, mikä kuvaa ohjelman Use-Define-ketjua (eli UD-ketjua). Niistä OpResult toimii määritelmän päätteenä ja sitä käytetään arvon määrittämiseen, kun taas OpOperand toimii käyttöpäätteenä ja kuvaa tietyn arvon käyttöä.

Feipiao tarjoaa kaksi Pass-kehitysmekanismia, PatternRewriter ja Declarative Rewrite Rule (lyhyesti DRR), jotka ottavat huomioon mukauttamisen joustavuuden ja kehittämisen helppouden. Kolmivaiheisen Pass-kehitysmenetelmän avulla kehittäjät voivat keskittyä enemmän Pass-logiikan käsittelyyn kiinnittämättä huomiota taustalla olevan IR:n yksityiskohtiin. Käyttämällä PIR:n Pass-kehitysmekanismia Pass-kehityskustannukset pienenevät 58 %, kun niitä sovelletaan päättelyskenaarioihin, yli 84 % mallipäätelmistä nopeutuu yli 10 %.

Neuroverkkokääntäjän automaattinen optimointi

On kolme syytä, miksi meidän on kehitettävä kääntäjätekniikkaa:

1) Laitteiston kehitystrendi: yhdistämällä laitteistokehityksen historian ja teknologian kehityksen ominaisuudet, laskentatehon kehitysnopeus on paljon nopeampi kuin muistin käyttökyky, suorittimen suorituskyky ja väylän kaistanleveys vaikuttavat muistiintensiivisten operaattoreiden suorituskykyyn (; normiluokka, aktivointi jne.), CPU:n suorituskyky ja väylän kaistanleveys vaikuttavat aikataulutukseen, suorituskykyyn. Kääntäjäpohjainen automaattinen fuusiooptimointitekniikka voi yhdistää useita operaattoreita yhdeksi suureksi operaattoriksi. Se voi parantaa huomattavasti mallin suorituskykyä.

2) Mallin kehitystrendi: Mallin rakenteessa on diversiteetin ominaisuudet, ja monimuotoisuuden kysyntä riippuu suuresti kääntäjän yleisestä optimoinnista.

3) Useiden laitteistojen optimointi: Markkinoilla on monenlaisia ​​laitteistoja, joiden ominaisuudet ja optimointivaatimukset ovat erilaisia alentaa kustannuksia huomattavasti.

Havainnollistakaamme tätä esimerkin avulla. Otetaan esimerkkinä RMS-normalisointi (Root Mean Square Layer Normalization), jota käytetään usein Llama-mallissa. Sen laskentakaava on suhteellisen yksinkertainen ja selkeä.



Oletetaan, että meidän on suoritettava RMS-normalisoinnin laskenta koodi on seuraava:



Yllä oleva koodi on helppo kehittää, mutta sen suorituskyky on heikko ja se vie paljon videomuistia. Kehittäjät voivat ottaa käyttöön FusedRMSNormin, mutta kehittäjien vaatimukset ovat korkeammat ja kustannukset korkeammat.

Neuraaliverkkojen kääntäjätekniikan avulla voimme saavuttaa merkittäviä suorituskyvyn parannuksia säilyttäen samalla korkean joustavuuden ja helppokäyttöisyyden. Seuraavat RMSNorm-operaattorin suorituskykytestitulokset A100-alustalla ovat selvä todiste: Python-kehitysrajapintojen yhdistelmää käyttävään toteutukseen verrattuna käännetty ja optimoitu operaattori toimii 4 kertaa nopeammin, vaikka se olisi integroitu manuaaliseen In-operaattoriin vertailussa saavutettiin myös 14 % suorituskyvyn parannus. Tämä tulos osoittaa täysin ihanteellisen tasapainon joustavuuden ja suorituskyvyn välillä, jonka perhomelakehys löytää.

Tästä syystä Feipiao pitää hermoverkkokääntäjäteknologiaa tärkeänä tutkimus- ja kehityssuuntana. Seuraavassa on Feipiaon kääntäjän kokonaisarkkitehtuurikaavio.



Esityskerroksessa CINN-etumoduuli toteutetaan PIR:n laajennusominaisuuksien avulla käsittelemään kerrokseen liittyviä muunnoksia, mukaan lukien operaattorin jakaminen, uudelleenlaskenta, aligraafin jakaminen, dimensioiden johtamismoduulit ja muut moduulit, ja lopuksi hankkii useita kääntäjien taustaohjelmia. Luo optimoituja alikaavioita. Kääntäjän taustaohjelmassa näiden fuusioittavien aligraafien osalta kääntäjä kutsuu edelleen Compute-funktiota muuntaakseen ne matalan tason väliesitykseen (IR), joka koostuu abstraktista syntaksipuusta (AST), ja suorittaa silmukan tämän perusteella sen varmistamiseksi, että se voidaan integroida CINN:n taustalla olevaan IR-ytimeen, suoritetaan suorituskyvyn viritysanalyysi optimaalisen konfiguraation saamiseksi.

Generatiivisen suuren kielimallin Llaman kokeelliset tulokset osoittavat, että kääntäjän optimointitekniikkaa käyttämällä päättelynopeus on 36 % nopeampi verrattuna perusversioon ilman manuaalista suorituskyvyn optimointia.

Dynaaminen ja staattinen yhdistäminen ja automaattinen rinnakkaiskytkentä

Miksi teemme automaattista rinnakkaisuutta?

Nykyiset suurten mallien koulutusmenetelmät käyttävät useita rinnakkaisia ​​strategioita. Nämä rinnakkaiset strategiat perustuvat "manuaaliseen" rinnakkaismenetelmään, joka on toteutettu dynaamisessa graafitilassa, eli yhden kortin perusteella, segmentoinnin manuaaliseen käsittelyyn. Tensorien segmentointi, laskentakaaviot), viestintä (viestintäoperaattoreiden lisääminen), videomuistin optimointi (videomuistin jakaminen, uudelleenlaskenta), aikataulujen optimointi (putkilinjan orkestrointi, asynkroninen laskenta ja viestintä) ja muut strategiat mallin rakennetta, mutta myös syvällistä ymmärrystä rinnakkaisista strategioista ja kehyksistä. Ajoituslogiikka tekee suurten mallien kehittämisestä ja suorituskyvyn optimoinnista erittäin korkealle. Sen lisäksi, että mallialgoritmien innovaatiosta vastaava algoritmiryhmä on vastuussa, on oltava myös mallien rinnakkaisoptimoinnista vastaava ryhmä. Tämä tuo monia esteitä suurten mallien innovaatiolle ja iteraatiolle.

Otetaan yksinkertainen esimerkki suuren mallin kehittämisen ja yhden kortin logiikan eroista. Koska rinnakkaisstrategia muuttaa Tensorin ajonaikaista muotoa, muodonkäsittelyyn liittyvien operaattoreiden on harkittava, vaikuttaako rinnakkaisstrategia heihin. Kuten alla olevassa uudelleenmuodostuskäsittelyssä näkyy, segmentointistrategia muuttaa syötteen muodon, joten tulosteen muotoa on mukautettava kohtuullisesti segmentointistrategian mukaisesti:



Tätä varten ehdotamme automaattista rinnakkaisjärjestelmää, joka yhdistää dynaamiset ja staattiset ehdot. Kehittäjät tarvitsevat vain pienen määrän tensorisegmentointimerkintöjä, ja kehys voi automaattisesti johtaa kaikkien tensorien ja operaattoreiden hajautetun segmentoinnin tilan ja lisätä sopivia viestintäoperaattoreita tulosten oikeellisuuden varmistamiseksi. Lopuksi se perustuu mallirakenteeseen ja klusteritiedot yhdessä grafiikkamuistin ja ajoituskerroksen optimoinnin kanssa löytävät automaattisesti tehokkaimman hajautetun rinnakkaisstrategian.

Automaattisessa rinnakkaissuunnittelussa kehittäjät tarvitsevat vain pienen määrän tensorisegmentointiannotaatioita ja tarvitsemme kahdentyyppisiä segmentointimenetelmiä: segmentointitensorit (parametrit, syötteet) ja segmentointilaskentakaaviot (pipeline). Näiden kahdentyyppisten segmentointimenetelmien toteuttamiseksi kehys tarvitsee mekanismin kuvaamaan hajautettujen tensorien ja laskentalaitteiden välistä suhdetta. Tätä tarkoitusta varten esittelemme kaksi hajautettua käsitettä ProcessMesh ja Placements Prosessi kartoittaa useita laitteita yksi- tai moniulotteisiksi taulukoiksi, jotka koostuvat useista prosesseista. Seuraavassa kuvassa on kaksi erilaista ProcessMesh-abstraktia esitystä, jotka koostuvat kahdeksasta laitteesta.



Sijoittelut on luettelo, joka koostuu kolmesta hajautetusta tunnisteesta: Replicate, Shard ja Partial. Pituus on yhdenmukainen ProcessMesh-mitan kanssa. Sitä käytetään osoittamaan, mitä hajautettua tunnistetta käytetään hajautetun tensorin jakamiseen vastaavan laskentalaitteen mitoissa. Tämä Kolmen jaetun tunnisteen yksityiskohtaiset kuvaukset ovat seuraavat:

Kuten alla olevasta kuvasta näkyy, replikointi tarkoittaa, että tensori esiintyy replikoinnin muodossa eri laitteissa. Osittainen tarkoittaa, että laitteen tensori on epätäydellinen vaatii Reduce Sum tai Reduce Täydellinen tila voidaan saada vain Mean- ja muiden operaatioiden jälkeen.



Kun hajautetun tunnisteen abstraktio on suoritettu, kutsumme
Paddle.distributed.shard_tensor() -rajapinta toteuttaa tensorihakauksen merkinnän. Tensoriviipaloinnin merkinnän ja automaattisen johtamisen avulla voimme esittää monimutkaisen hajautetun hybridirinnakkaisisuuden. Seuraavassa kuvassa on erityinen esimerkki hybridin rinnakkaisuudesta, joka koostuu datan rinnakkaisuudesta, tensorimallin rinnakkaisuudesta ja liukuhihnan rinnakkaisuudesta.



Seuraava koodi näyttää erityisen esimerkin sekavasta rinnakkaisuudesta.



Ottamalla käyttöön automaattisen rinnakkaiskehityksen lähestymistavan, kehittäjien ei enää tarvitse ottaa huomioon monimutkaista viestintälogiikkaa. Esimerkkinä Llama-tehtävästä hajautetun koulutusydinkoodin määrää on vähennetty 50 %, mikä on vähentänyt huomattavasti kehityksen vaikeutta Joistakin kokeiluistamme on havaittavissa, että globaalien analyysien ja muiden optimointien avulla , suorituskyky on myös parempi kuin dynaamisten kaavioiden manuaalisen rinnakkaistamisen suorituskyky.

Tulevaisuudessa tutkimme edelleen täysin automaattista rinnakkaisuutta käyttämättä tensorin jakomerkkejä, jolloin kehittäjät voivat kirjoittaa hajautettua koodia aivan kuten kirjoittaessaan itsenäistä koodia, mikä parantaa entisestään suurten mallien kehityskokemusta.

Teollisuuden edut

Yleisesti ottaen uuden sukupolven Flying Paddle - Flying Paddle Framework 3.0-Beta -kehys on suunniteltu erityisesti suurille malleille ja heterogeenisille moniytimisille. Mallikoulutus ja päättely. Samalla siinä on neljä pääominaisuutta: yhtenäinen dynaaminen ja staattinen automaattinen rinnakkaiskytkentä, automaattinen kääntäjien optimointi, integroitu suurten mallien koulutus ja työntö sekä suuren mallin monilaitteistosovitus, joka parantaa kokonaisvaltaisesti kykyä palvella toimialaa.

Yhtenäinen staattinen ja dynaaminen automaattinen rinnakkaiskytkentä: Tämä toiminto vähentää huomattavasti teollisuuden kehittämisen ja koulutuksen kustannuksia. Käyttäjien tarvitsee vain merkitä pieni määrä tensorisegmentointia yhden kortin pohjalta, ja Flying Paddle Framework suorittaa automaattisesti hajautetun segmentointitiedon johtamisen ja lisää viestintäoperaattoreita logiikan oikeellisuuden varmistamiseksi. Samanaikaisesti mallirakenteen ja klusteritietojen perusteella yhdistettynä videomuistin ja ajoituskerroksen optimointiin Flying Paddle voi automaattisesti löytää tehokkaimman hajautetun rinnakkaisstrategian, mikä vähentää huomattavasti hybridin rinnakkaiskoulutuksen kehityskustannuksia, mikä mahdollistaa kehittäjät keskittymään enemmän innovaatiomalleihin ja -algoritmeihin.

Kääntäjän automaattinen optimointi: Tämä ominaisuus vähentää merkittävästi suorituskyvyn optimoinnin kustannuksia. Fei Paddlen kääntäjä on suunniteltu integroitavaksi kehykseen, ja se voi tukea eri mallien, kuten generatiivisten mallien ja tieteellisten laskentamallien, tehokasta koulutusta ja muuttuvan muodon päättelyä, mikä tarjoaa hyvän tasapainon laskennan joustavuuden ja korkean suorituskyvyn välillä. Operaattoreiden ja koodintuotantoteknologian automaattisen yhdistämisen ansiosta generatiivisten mallien, kuten Llama2 ja Stable Diffusion, päättelykyky on parantunut yli 30 %.

Integroitu koulutus ja suurten mallien mainostaminen: Tämä ominaisuus tarjoaa teollisuudelle parhaan mahdollisen kehityskokemuksen. Se mahdollistaa koulutus- ja päättelykykyjen uudelleenkäytön toistensa kanssa, mikä tarjoaa yhtenäisen kehityskokemuksen ja huippuluokan koulutustehokkuuden koko suurten mallien prosessille. Siirtymällä liikkeestä hiljaisuuteen, harjoitustyö ja päättely voidaan yhdistää saumattomasti. RLHF (Reinforcement Learning with Human Feedback) harjoitusprosessin aikana suoritettuja generatiivisia laskelmia voidaan käyttää uudelleen päätelmien optimointiin, jolloin saadaan 2,1-kertainen kiihtyvyys. Samalla hajautetun automaattisen rinnakkaisstrategian tehokkuus päättely- ja kvantifiointiskenaarioiden uudelleenkäyttökoulutukseen kasvaa 3,8-kertaiseksi.

Suuren mallin monilaitteistosovitus: Yksi Flying Paddlen tärkeistä ominaisuuksista on mukautua heterogeenisiin moniytimiin ja vapauttaa laitteiston potentiaali täysimääräisesti. Pääsymekanismin suhteen Flying Paddle tarjoaa yksinkertaisen ja tehokkaan abstraktin käyttöliittymän ja peruskäyttöjärjestelmän, mikä vähentää sopeutumiskustannuksia. Toimintamekanismin suhteen se optimoi aikataulutuksen, tallennustilan jakamisen ja muut mekanismit aikataulutuksen tehokkuuden parantamiseksi. Operaattoriytimien näkökulmasta Feipiao tarjoaa kääntäjän automaattisen fuusioviritysratkaisun parantaakseen päästä päähän -suorituskykyä. Samaan aikaan Feipiao on myös rakentanut T&K-infrastruktuuria, kuten koodiintegraation, jatkuvan integroinnin ja mallin regressiotestauksen uusille laitevalmistajille. Nämä mekanismit varmistavat, että uudet laitteet sisältyvät Feipiaon normaaliin julkaisujärjestelmään, ja käyttäjät voivat asentaa ja kokeilla sitä suoraan ilman kääntämistä. Flying Paddlen täysin toimiva ja edullinen pääsymekanismi on houkutellut laitevalmistajat yhdessä antamaan 3 456 PR:tä Flying Paddleen, mukaan lukien yhteensä yli 25 000 sitoumusta.

Tämä on Fei Paddlen uuden sukupolven kehys 3.0. Tällä hetkellä 3.0-Beta-versio on avoin kehittäjille, ja kaikki kehitysliittymät ovat täysin yhteensopivia 2.0:n kanssa. Kehittäjät ovat tervetulleita käyttämään ja antamaan palautetta.