I denne artikkelen om Mamba, skal vi utforske hvordan denne innovative tilstandsrommodellen (SSM) revolusjonerer sekvensmodellering. Utviklet av Albert Gu og Tri Dao, er Mamba kjent for sin effisiens i å prosessere komplekse sekvenser i felt som språkbehandling, genetikk og lydanalyse. Dens lineære tid-sekvensmodellering med selektive tilstandsrom gjør det mulig å oppnå eksepsjonell ytelse over disse ulike modalitetene.
Vi skal dykke ned i Mambas evne til å overvinne de komputasjonelle utfordringene som tradisjonelle Transformers møter, spesielt med lange sekvenser. Dens selektive tilnærming i tilstandsrommodeller gjør det mulig for raskere inferens og lineær skalering med sekvenslengde, noe som betyr en betydelig forbedring av gjennomstrømming.
Mambas unikhet ligger i dens rask prosesseringskapasitet, selektive SSM-lag og hardware-vennlig design inspirert av FlashAttention. Disse egenskapene gjør det mulig for Mamba å overgå mange eksisterende modeller, inkludert de som baserer seg på transformer-tilnærmingen, og gjør det til en merkeverdig fremgang i maskinlæring.
Transformers vs Mamba
Transformers, som GPT-4, har satt standarder i naturlig språkbehandling. Men deres effisiens synker med lengre sekvenser. Her er Mamba tar over, med sin evne til å prosessere lange sekvenser mer effektivt og sin unike arkitektur som forenkler hele prosessen.
Transformers er dyktige til å håndtere sekvenser av data, som tekst for språkmodeller. I motsetning til tidligere modeller som prosesserte data sekvensielt, prosesserer Transformers hele sekvenser samtidig, noe som gjør det mulig for dem å fange komplekse relasjoner innenfor dataene.
De bruker en oppmerksomhetsmekanisme, som gjør det mulig for modellen å fokusere på ulike deler av sekvensen når de gjør prediksjoner.
Dette oppmerksomheten beregnes ved hjelp av tre sett med vekter: spørsmål, nøkler og verdier, som er avledet fra inndata. Hvert element i en sekvens sammenlignes med hvert annet element, og gir en vekt som betegner viktigheten, eller “oppmerksomheten”, som hvert element bør motta når det gjelder å forutsi neste element i sekvensen.
Transformers har to hovedblokker: en encoder, som prosesserer inndata, og en decoder, som genererer utdata. Encoderen består av flere lag, hvor hvert lag inneholder to underlag: en multi-head selv-oppmerksomhetsmekanisme og et enkelt, posisjonsuavhengig fullstendig forbundet feed-forward nettverk. Normalisering og restanslutninger brukes på hvert underlag for å hjelpe med å trene dype nettverk.
Decoderen har også lag med to underlag som er lignende encoderen, men legger til et tredje underlag som utfører multi-head oppmerksomhet over encoderns utgang. Den sekvensielle naturen til decoderen sikrer at prediksjoner for en posisjon bare kan vurdere tidligere posisjoner, og bevare den autoregressive egenskapen.
I motsetning til Transformers, tar Mamba-modellen en annen tilnærming. Mens Transformers håndterer problemet med lange sekvenser ved å bruke mer komplekse oppmerksomhetsmekanismer, bruker Mamba selektive tilstandsrom, som gir en mer effektiv måte å prosessere sekvenser på.
Her er en oversikt over hvordan en transformer fungerer:
Inndata-prosessering: Transformers prosesserer først inndata til en format som modellen kan forstå, ofte ved å bruke innbedding som også inkorporerer posisjonen til hvert element i sekvensen.
Oppmerksomhetsmekanisme: I kjernen av transformer-modellen beregnes en score som representerer hvor mye fokus som skal legges på andre deler av inndata-sekvensen når det gjelder å forstå et gjeldende element.
Encoder-decoder-arkitektur: Transformer-modellen består av en encoder som prosesserer inndata og en decoder som genererer utdata. Hver består av flere lag som refinerer modellens forståelse av inndata.
Multi-head oppmerksomhet: Innenfor både encoderen og decoderen gjør multi-head oppmerksomhet det mulig for modellen å samtidig fokusere på ulike deler av sekvensen fra ulike representasjonssystemer, og forbedrer modellens evne til å lære fra ulike kontekster.
Posisjonsuavhengig feed-forward nettverk: Etter oppmerksomhet prosesserer et enkelt neuralt nettverk utgangen av hver posisjon separat og identisk. Dette kombineres med inndata gjennom en restanslutning og følges av lag-normalisering.
Utgangsgenerering: Decoderen predikerer så en utgangssekvens, påvirket av encoderns kontekst og hva den har generert så langt.
Transformerens evne til å håndtere sekvenser parallelt og dens robuste oppmerksomhetsmekanisme gjør det kraftig for oppgaver som oversettelse og tekstgenerering.
I motsetning opererer Mamba-modellen forskjellig ved å bruke selektive tilstandsrom til å prosessere sekvenser. Dette tilnærmingen adresserer den komputasjonelle ineffektiviteten i Transformers når det gjelder å håndtere lange sekvenser. Mambas design gjør det mulig for raskere inferens og skalerer lineært med sekvenslengde, og setter en ny standard for sekvensmodellering som kan være mer effektiv, spesielt når sekvenser blir stadig lengre.
Mamba
Hva gjør Mamba virkelig unik er dens avvik fra tradisjonell oppmerksomhet og MLP-blokker. Denne forenklingen fører til en lettere, raskere modell som skalerer lineært med sekvenslengden – en bedrift som ikke er matchet av dens forgjengere.
Nøkkel-egenskaper ved Mamba inkluderer:
Selektive SSM-er: Disse gjør det mulig for Mamba å filtrere irrelevante informasjon og fokusere på relevante data, og forbedre dens håndtering av sekvenser. Denne selektiviteten er avgjørende for effektiv innhold-basert resonnering.
Hardware-vennlig algoritme: Mamba bruker en parallell algoritme som er optimalisert for moderne hardware, spesielt GPU-er. Dette designet gjør det mulig for raskere beregning og reduserer minnekravene i forhold til tradisjonelle modeller.
Forenklet arkitektur: Ved å integrere selektive SSM-er og eliminere oppmerksomhet og MLP-blokker, tilbyr Mamba en enklere, mer homogen struktur. Dette fører til bedre skalerbarhet og ytelse.
Mamba har demonstrert overlegen ytelse i ulike domener, inkludert språk, lyd og genetikk, og overgår større Transformer-modeller i både forhånds-trening og domene-spesifikke oppgaver.
Mambas kode og forhånds-trente modeller er åpne og tilgjengelige for samfunnet på GitHub.
Standard Copying tasks are simple for linear models. Selective Copying and Induction Heads require dynamic, content-aware memory for LLMs.
Strukturerte tilstandsrom-modeller (S4) har nylig dukket opp som en løftende klasse av sekvensmodeller, som omfatter egenskaper fra RNN-er, CNN-er og klassiske tilstandsrom-modeller. S4-modeller er inspirert av kontinuerlige systemer, spesielt en type system som kartlegger én-dimensjonale funksjoner eller sekvenser gjennom en implisitt latent tilstand. I sammenheng med dypt læring representerer de en betydelig innovasjon, og gir en ny metode for å designe sekvensmodeller som er effektive og høyt tilpasningsdyktige.
Tilstandsrom-dynamikk i S4-modeller
SSM (S4) Dette er den grunnleggende strukturerte tilstandsrom-modellen. Den tar en sekvens x og produserer en utgang y ved å bruke lærte parametre A, B, C og en forsinkelsesparameter Δ. Transformasjonen innebærer å diskretisere parameterne (å omdanne kontinuerlige funksjoner til diskrete) og å anvende SSM-operasjonen, som er tid-uavhengig – det vil si at den ikke endrer seg over ulike tidspunkter.
Betydningen av diskretisering
Diskretisering er en nøkkelprosess som transformerer kontinuerlige parametre til diskrete gjennom fikse formularer, og gjør det mulig for S4-modellene å opprettholde en kobling til kontinuerlige tidssystemer. Dette utstyrer modellene med ekstra egenskaper, som oppløsning-uavhengighet, og sikrer korrekt normalisering, og forbedrer modellens stabilitet og ytelse. Diskretisering trekker også paralleller til gatede mekanismer funnet i RNN-er, som er avgjørende for å håndtere informasjonsflyten gjennom nettverket.
Lineær tid-uavhengighet (LTI)
En kjerne-egenskap ved S4-modellene er deres lineære tid-uavhengighet. Dette innebærer at modellens dynamikk forblir konsistent over tid, med parametrene fikset for alle tidspunkter. LTI er en hjørnestein for rekurranser og konvolusjoner, og tilbyr en forenklet, men kraftig ramme for å bygge sekvensmodeller.
Overvinning av grunnleggende begrensninger
S4-rammen har tradisjonelt vært begrenset av dens LTI-natur, som stiller utfordringer i å modellere data som krever adaptive dynamikk. Den nylige forskningsartikkelen presenterer en tilnærming som overvinner disse begrensningene ved å innføre tid-variante parametre, og fjerner begrensningen av LTI. Dette gjør det mulig for S4-modellene å håndtere en mer diversifisert mengde sekvenser og oppgaver, og utvider betydelig deres anvendelighet.
Begrepet “tilstandsrom-modell” dekker bredt sett alle rekurrerende prosesser som involverer en latent tilstand, og har blitt brukt til å beskrive ulike konsepter over flere disipliner. I sammenheng med dypt læring refererer S4-modeller, eller strukturerte SSM-er, til en spesifikk klasse av modeller som er optimalisert for effektiv beregning samtidig som de beholder evnen til å modellere komplekse sekvenser.
S4-modeller kan integreres i ende-til-ende neurale nettverks-arkitekturer, og fungere som selvstendige sekvens-transformasjoner. De kan sees på som analoge til konvolusjonslag i CNN-er, og gir ryggraden for sekvensmodellering i en rekke neurale nettverks-arkitekturer.
SSM vs SSM + Selection
Motivasjon for selektivitet i sekvensmodellering
Structured SSMs
Artikkelen argumenterer for at en grunnleggende aspekt av sekvensmodellering er komprimering av kontekst til en håndterbar tilstand. Modeller som kan selektivt fokusere på eller filtrere inndata tilbyr en mer effektiv måte å opprettholde denne komprimerte tilstanden, og fører til mer effektive og kraftige sekvensmodeller. Denne selektiviteten er avgjørende for at modellene kan adaptivt kontrollere hvordan informasjon flyter langs sekvens-dimensjonen, en essensiell evne for å håndtere komplekse oppgaver i språkmodellering og utenfor.
Selektive SSM-er forbedrer konvensjonelle SSM-er ved å tillate at deres parametre er avhengige av inndata, og introduserer en grad av adaptivitet som tidligere ikke var oppnåelig med tid-uavhengige modeller. Dette resulterer i tid-variante SSM-er som ikke lenger kan bruke konvolusjoner for effektiv beregning, men i stedet avhenger av en lineær rekurrans-mekanisme, en betydelig avvik fra tradisjonelle modeller.
SSM + Seleksjon (S6) Denne varianten inkluderer en seleksjonsmekanisme, og legger til inndata-avhengighet til parameterne B og C, og en forsinkelsesparameter Δ. Dette gjør det mulig for modellen å selektivt fokusere på bestemte deler av inndata-sekvensen x. Parameterne diskretiseres med hensyn til seleksjonen, og SSM-operasjonen anvendes på en tid-variant måte ved å bruke en skan-operasjon, som prosesserer elementer sekvensielt og justerer fokus dynamisk over tid.
Ytelses-høydepunkter for Mamba
Mamba is best-in-class on every single evaluation result
I forhold til ytelse, overgår Mamba både i inferens-hastighet og nøyaktighet. Dens design gjør det mulig for bedre utnyttelse av lengre kontekster, og dette demonstreres både i DNA- og lydmodellering, og overgår tidligere modeller på komplekse oppgaver som krever lang-rekke-avhengigheter. Dens fleksibilitet kommer også til syne i null-skudd-evalueringer over flere oppgaver, og setter en ny standard for slike modeller i forhold til effektivitet og skalerbarhet.
Komme i gang med Mamba
For de som er interesserte i å bruke Mamba, inkluderer de tekniske kravene en Linux-operativsystem, en NVIDIA-GPU, PyTorch 1.12+ og CUDA 11.6+. Installasjon innebærer enkle pip-kommandoer for å installere de nødvendige pakker fra Mamba-repositoriet. Hvis kompatibilitetsproblemer oppstår med PyTorch-versjoner, kan bruk av –no-build-isolation-flagget med pip hjelpe. Disse modellene, som er trent på omfattende datasett som Pile og SlimPajama-datasettet, er designet for å møte ulike komputasjonelle og ytelseskrav.
Mamba tilbyr ulike grensesnitt, fra det selektive SSM-laget til Mamba-blokken og fullstendige språkmodell-strukturer. Mamba-blokken, som er arkitekturens hovedmodul, bruker en kausalt Conv1d-lag og kan lett integreres i neurale nettverks-design. Eksempel-bruk i Python demonstrerer opprettelse av en Mamba-modell og prosessering av data gjennom den, og fremhever enkelheten og fleksibiliteten i systemet.
Forhånds-trente Mamba-modeller er tilgjengelige på Hugging Face, med størrelser som varierer fra 130M til 2,8M parametre, trent på det omfattende Pile-datasettet og SlimPajama-datasettet. Disse modellene er designet for å møte ulike komputasjonelle og ytelseskrav, og holder seg til de dimensjonelle standardene for GPT-3. Brukere kan forvente høy gjennomstrømming og nøyaktighet fra disse modellene, og gjør Mamba til et konkurrerende valg for ulike anvendelser, inkludert, men ikke begrenset til, språkmodellering.
Jeg har brukt de siste fem årene på å dykke ned i den fasiniserende verden av Maskinlæring og Dypt Læring. Min lidenskap og ekspertise har ledet meg til å bidra til over 50 ulike programvareprosjekter, med særlig fokus på AI/ML. Min pågående nysgjørhet har også trukket meg mot Naturlig Språkbehandling, et felt jeg er ivrig etter å utforske videre.