paint-brush
Joustavan kehyksen luominen multimodaalista tiedonsyöttöä varten suuriin kielimalleihinkirjoittaja@ritabratamaiti
223 lukemat

Joustavan kehyksen luominen multimodaalista tiedonsyöttöä varten suuriin kielimalleihin

kirjoittaja ritabratamaiti5m2024/11/19
Read on Terminal Reader

Liian pitkä; Lukea

AnyModal on avoimen lähdekoodin kehys, joka on suunniteltu helpottamaan multimodaalisten LLM-yritysten koulutusta vähentämällä kattilaa ja yksinkertaistamalla erilaisten tietotyyppien, kuten tekstin, kuvien ja äänen, integrointia. Se tarjoaa modulaarisia komponentteja tokenointiin, ominaisuuksien koodaukseen ja projisointiin, jolloin kehittäjät voivat keskittyä sovellusten rakentamiseen käsittelemättä multimodaalisen integraation monimutkaisuutta. Demot sisältävät VLM:ien koulutusta kuvien tekstitystä, LaTeX OCR:ää ja radiologista tekstitystä varten.
featured image - Joustavan kehyksen luominen multimodaalista tiedonsyöttöä varten suuriin kielimalleihin
ritabratamaiti HackerNoon profile picture
0-item
1-item

Avoimen lähdekoodin projektini: Joustava multimodaalinen kielimallikehys PyTorchille


Multimodaalisen tekoälyn lupaus on kaikkialla, edistyneestä terveydenhuollon diagnostiikasta rikkaampien ja dynaamisempien asiakaskokemusten luomiseen. Mutta niille meistä, jotka ovat juoksuhaudoissa, multimodaalisten järjestelmien rakentaminen – jotka pystyvät käsittelemään tekstiä, kuvia, ääntä ja muutakin – tuntuu usein räätälöityjen integraatioiden, vakiokoodin ja yhteensopivuusongelmien loputtomalta sotkulta. Tämä oli turhautumiseni, ja se johti lopulta AnyModalin luomiseen.


Miksi multimodaalinen AI?

Todettakoon: ihmisten vuorovaikutus maailman kanssa ei rajoitu vain yhteen tietotyyppiin. Tulkitsemme sanoja, visuaalisia kuvia, ääniä ja fyysisiä tuntemuksia samanaikaisesti. Multimodaalisen tekoälyn käsite juontaa juurensa juuri tästä ideasta. Tuomalla usean tyyppistä dataa samaan käsittelyputkeen, multimodaalinen tekoäly mahdollistaa mallien selviytymisen tehtävistä, jotka olivat aiemmin liian monimutkaisia yksimodaalisille järjestelmille. Kuvittele terveydenhuollon sovelluksia, jotka analysoivat röntgensäteitä ja lääketieteellisiä muistiinpanoja yhdessä, tai asiakaspalvelujärjestelmiä, jotka ottavat huomioon sekä teksti- että äänivihjeet asiakkaan tunteen arvioimiseksi tarkasti.


Mutta tässä on haaste: vaikka yksimuotoiset mallit tekstille (kuten GPT) tai kuville (kuten ViT) ovat vakiintuneita, niiden yhdistäminen sujuvaan vuorovaikutukseen ei ole yksinkertaista. Tekninen monimutkaisuus on estänyt monia tutkijoita ja kehittäjiä tutkimasta tehokkaasti multimodaalista tekoälyä. Anna AnyModal .


Ongelma olemassa olevissa multimodaalisissa ratkaisuissa

Omassa työssäni koneoppimisen parissa huomasin, että vaikka työkalut, kuten GPT, ViT ja ääniprosessorit, ovat tehokkaita erikseen, multimodaalisten järjestelmien luominen yhdistämällä näitä työkaluja tarkoittaa usein niiden yhdistämistä kömpelöllä, projektikohtaisella koodilla. Tämä lähestymistapa ei skaalaudu. Nykyiset integrointiratkaisut ovat joko pitkälle erikoistuneita, suunniteltu vain tiettyihin tehtäviin (kuten kuvien tekstitys tai visuaalinen kysymys vastaaminen), tai ne vaativat turhauttavan määrän lisäkoodia vain saadakseen tietotyypit toimimaan yhdessä.


Nykyiset puitteet keskittyvät vain tiettyihin modaliteetin yhdistelmiin, mikä vaikeuttaa laajentamista uusiin tietotyyppeihin tai saman asennuksen mukauttamista erilaisiin tehtäviin. Tämä tekoälymallien "siilotettu" rakenne tarkoitti, että keksin pyörää jatkuvasti uudelleen. Silloin päätin rakentaa AnyModalin – joustavan, modulaarisen kehyksen, joka yhdistää kaikentyyppiset tiedot ilman vaivaa.


Mikä on AnyModal?

AnyModal on kehys, joka on suunniteltu yksinkertaistamaan ja virtaviivaistamaan multimodaalista tekoälyn kehitystä. Se on suunniteltu vähentämään eri syöttötyyppien yhdistämisen monimutkaisuutta käsittelemällä muiden kuin tekstisyötteiden tokenointia, koodausta ja luomista, mikä helpottaa uusien tietotyyppien lisäämistä suuriin kielimalleihin (LLM).


Konsepti pyörii modulaarisen lähestymistavan ympärillä syöttöputkeen. AnyModalilla voit vaihtaa ominaisuuskooderit (kuten Vision Transformerin kuville tai spektrogrammiprosessorin ääntä varten) ja yhdistää ne saumattomasti LLM:ään. Kehys tiivistää suuren osan monimutkaisuudesta, mikä tarkoittaa, että sinun ei tarvitse viettää viikkoja koodin kirjoittamiseen, jotta nämä järjestelmät olisivat yhteensopivia keskenään.

AnyModalin perusteet: Input Tokenization

AnyModalin olennainen osa on syöttötokenizer , joka kattaa ei-tekstuaalisen datan ja LLM:n tekstipohjaisen syöttökäsittelyn välisen kuilun. Näin se toimii:

  • Ominaisuuksien koodaus : Jokaiselle modaalille (kuten kuville tai äänelle) käytetään erityistä enkooderia tärkeiden ominaisuuksien poimimiseen. Esimerkiksi työskennellessään kuvien kanssa AnyModal voi käyttää Vision Transformeria (ViT), joka käsittelee kuvan ja tulostaa sarjan piirrevektoreita. Nämä vektorit tallentavat keskeisiä näkökohtia, kuten objekteja, tilasuhteita ja tekstuureja, jotka ovat olennaisia sovelluksissa, kuten kuvien tekstityksessä tai visuaalisissa kysymyksiin vastaamisessa.
  • Projektiokerros : Koodauksen jälkeen piirrevektorit eivät usein vastaa LLM:n merkkiavaruutta. Sujuvan integraation varmistamiseksi AnyModal käyttää projektiokerrosta, joka muuntaa nämä vektorit linjatakseen LLM:n syöttötunnisteiden kanssa. Esimerkiksi ViT:n koodatut vektorit kartoitetaan LLM:n upotusavaruuteen, mikä mahdollistaa multimodaalisen datan yhtenäisen virran LLM:n arkkitehtuurin sisällä.

Tämä kaksikerroksinen lähestymistapa mahdollistaa sen, että malli käsittelee multimodaalista dataa yhtenä sekvenssinä, jolloin se voi luoda vastauksia, jotka vastaavat kaikkia syötetyyppejä. Pohjimmiltaan AnyModal muuntaa erilaiset tietolähteet yhtenäiseen muotoon, jota LLM:t voivat ymmärtää.


Kuinka se toimii: Esimerkki kuvatuloista

Antaaksemme sinulle käsityksen siitä, miten AnyModal toimii, katsotaanpa esimerkkiä kuvatietojen käyttämisestä LLM:ien kanssa.

 from transformers import ViTImageProcessor, ViTForImageClassification from anymodal import MultiModalModel from vision import VisionEncoder, Projector # Step 1: Initialize Vision Components processor = ViTImageProcessor.from_pretrained('google/vit-base-patch16-224') vision_model = ViTForImageClassification.from_pretrained('google/vit-base-patch16-224') vision_encoder = VisionEncoder(vision_model) # Step 2: Define Projection Layer for Compatibility vision_tokenizer = Projector(in_features=vision_model.config.hidden_size, out_features=768) # Step 3: Initialize LLM and Tokenizer from transformers import AutoTokenizer, AutoModelForCausalLM llm_tokenizer = AutoTokenizer.from_pretrained("gpt2") llm_model = AutoModelForCausalLM.from_pretrained("gpt2") # Step 4: Build the AnyModal Multimodal Model multimodal_model = MultiModalModel( input_processor=None, input_encoder=vision_encoder, input_tokenizer=vision_tokenizer, language_tokenizer=llm_tokenizer, language_model=llm_model, input_start_token='<|imstart|>', input_end_token='<|imend|>', prompt_text="Describe this image: " )

Tämän modulaarisen asennuksen avulla kehittäjät voivat kytkeä ja pelata eri enkoodereita ja LLM:itä ja mukauttaa mallia erilaisiin multimodaalisiin tehtäviin kuvien tekstityksestä kysymyksiin vastaamiseen.


AnyModalin nykyiset sovellukset

AnyModalia on jo sovellettu useisiin käyttötapauksiin jännittävin tuloksin:

  • LaTeX OCR : monimutkaisten matemaattisten yhtälöiden kääntäminen luettavaksi tekstiksi.
  • Rintakehän röntgenkuvaus : Lääketieteellisten kuvausten luominen terveydenhuollon diagnostista tukea varten.
  • Kuvatekstit : Luo automaattisesti kuvatekstejä visuaaliseen sisältöön, mikä on hyödyllistä esteettömyys- ja mediasovelluksissa.

Abstrahoimalla eri tietotyyppien käsittelyn monimutkaisuudesta AnyModal antaa kehittäjille mahdollisuuden rakentaa nopeasti prototyyppejä tai jalostaa edistyneitä järjestelmiä ilman multimodaalisen integraation tyypillisiä pullonkauloja.


Miksi käyttää AnyModalia?

Jos yrität rakentaa multimodaalista järjestelmää, olet todennäköisesti kohdannut seuraavat haasteet:

  • Erittäin monimutkainen eri tietotyyppien kohdistaminen LLM:ien kanssa.
  • Ylimääräinen ja työläs kattilakoodi jokaiselle modaliteetille.
  • Rajoitettu skaalautuvuus uusia tietotyyppejä lisättäessä.

AnyModal korjaa nämä kipukohdat vähentämällä kattilalevyä, tarjoamalla joustavia moduuleja ja mahdollistamalla nopean mukauttamisen. Sen sijaan, että taistelevat yhteensopivuusongelmien kanssa, kehittäjät voivat keskittyä älykkäiden järjestelmien rakentamiseen nopeammin ja tehokkaammin.


Mitä AnyModalille seuraavaksi?

AnyModalin matka on vasta alussa. Työskentelen parhaillaan lisätäkseni tukea lisämodaliteeteille, kuten äänitekstityksille, ja laajentaakseni viitekehystä, jotta se olisi entistä mukautuvampi niche-käyttötapauksiin. Yhteisön palaute ja panokset ovat ratkaisevan tärkeitä sen kehittämisessä – jos olet kiinnostunut multimodaalisesta tekoälystä, kuulisin mielelläni ideasi tai yhteistyön.


Mistä löytää AnyModal




Jos olet innostunut multimodaalisesta tekoälystä tai haluat virtaviivaistaa kehitysprosessiasi, kokeile AnyModalia. Tehdään yhteistyötä avataksemme tekoälyn innovaation seuraavan rajan.