paint-brush
Pagbuo ng Flexible Framework para sa Multimodal Data Input sa Malaking Modelo ng Wikasa pamamagitan ng@ritabratamaiti
223 mga pagbabasa

Pagbuo ng Flexible Framework para sa Multimodal Data Input sa Malaking Modelo ng Wika

sa pamamagitan ng ritabratamaiti5m2024/11/19
Read on Terminal Reader

Masyadong mahaba; Upang basahin

Ang AnyModal ay isang open-source na framework na idinisenyo upang gawing mas madali ang pagsasanay sa mga multimodal na LLM sa pamamagitan ng pagbabawas ng boilerplate at pagpapasimple sa pagsasama ng magkakaibang uri ng data tulad ng text, mga larawan, at audio. Nagbibigay ito ng mga modular na bahagi para sa tokenization, feature encoding, at projection, na nagpapahintulot sa mga developer na tumuon sa pagbuo ng mga application nang hindi nakikitungo sa mga kumplikado ng multimodal integration. Kasama sa mga demo ang pagsasanay sa mga VLM para sa captioning ng imahe, LaTeX OCR, at captioning ng radiology.
featured image - Pagbuo ng Flexible Framework para sa Multimodal Data Input sa Malaking Modelo ng Wika
ritabratamaiti HackerNoon profile picture
0-item
1-item

Aking Open Source Project: Isang Flexible Multimodal Language Model Framework para sa PyTorch


Ang pangako ng multimodal AI ay nasa lahat ng dako, mula sa mga advanced na diagnostic sa pangangalagang pangkalusugan hanggang sa paglikha ng mas mayaman, mas dynamic na mga karanasan ng customer. Ngunit para sa atin na nasa trenches, ang pagbuo ng mga multimodal system—na may kakayahang magproseso ng text, mga larawan, audio, at higit pa—ay kadalasang parang walang katapusang pagsasalu-salo ng mga custom na pagsasama, boilerplate code, at mga isyu sa compatibility. Ito ang aking pagkabigo, at sa huli ay humantong ito sa paglikha ng AnyModal .


Bakit Multimodal AI?

Aminin natin: ang pakikipag-ugnayan ng tao sa mundo ay hindi limitado sa isang uri ng data. Binibigyang-kahulugan namin ang mga salita, visual, tunog, at pisikal na sensasyon nang sabay-sabay. Ang konsepto ng multimodal AI ay nagmumula sa mismong ideyang ito. Sa pamamagitan ng pagdadala ng maraming uri ng data sa parehong pipeline sa pagpoproseso, binibigyang-daan ng multimodal AI ang mga modelo na harapin ang mga gawain na dati ay masyadong kumplikado para sa mga single-modality system. Isipin ang mga application sa pangangalagang pangkalusugan na nagsusuri ng mga X-ray at mga medikal na tala nang magkasama, o mga sistema ng serbisyo sa customer na isinasaalang-alang ang parehong text at audio na mga pahiwatig upang sukatin nang tumpak ang damdamin ng customer.


Ngunit narito ang hamon: habang ang mga modelo ng single-modality para sa teksto (tulad ng GPT) o mga larawan (tulad ng ViT) ay mahusay na itinatag, ang pagsasama-sama ng mga ito upang makipag-ugnayan nang tuluy-tuloy ay hindi diretso. Ang mga teknikal na kumplikado ay humadlang sa maraming mananaliksik at developer mula sa epektibong paggalugad ng multimodal AI. Ipasok ang AnyModal .


Ang Problema sa Mga Umiiral na Multimodal Solutions

Sa sarili kong gawain sa machine learning, napansin ko na habang ang mga tool tulad ng GPT, ViT, at mga audio processor ay makapangyarihan sa paghihiwalay, ang paglikha ng mga multimodal system sa pamamagitan ng pagsasama-sama ng mga tool na ito ay kadalasang nangangahulugan ng pagsasama-sama ng mga ito gamit ang clunky, project-specific na code. Ang diskarte na ito ay hindi sukat. Ang mga kasalukuyang solusyon para sa pagsasama-sama ng mga modalidad ay maaaring lubos na dalubhasa, idinisenyo lamang para sa mga partikular na gawain (tulad ng captioning ng larawan o visual na pagsagot sa tanong), o nangangailangan ang mga ito ng nakakadismaya na dami ng boilerplate code para lang mapagana ang mga uri ng data.


Ang mga kasalukuyang framework ay bahagyang nakatuon sa mga partikular na kumbinasyon ng mga modalidad, na nagpapahirap sa pagpapalawak sa mga bagong uri ng data o upang iakma ang parehong setup sa iba't ibang mga gawain. Ang "siloed" na istrukturang ito ng mga modelo ng AI ay nangangahulugang patuloy kong muling iniimbento ang gulong. Noon ako nagpasya na bumuo ng AnyModal —isang flexible, modular na framework na pinagsasama-sama ang lahat ng uri ng data nang walang abala.


Ano ang AnyModal?

Ang AnyModal ay isang framework na idinisenyo upang pasimplehin at i-streamline ang multimodal AI development. Ito ay ginawa upang bawasan ang pagiging kumplikado ng pagsasama-sama ng magkakaibang uri ng input sa pamamagitan ng paghawak sa tokenization, encoding, at pagbuo para sa mga non-text input, na ginagawang mas madaling magdagdag ng mga bagong uri ng data sa malalaking modelo ng wika (LLMs).


Ang konsepto ay umiikot sa isang modular na diskarte sa input pipeline. Sa AnyModal, maaari kang magpalit ng mga feature encoder (tulad ng Vision Transformer para sa mga larawan o isang spectrogram processor para sa audio) at walang putol na ikonekta ang mga ito sa isang LLM. Ang framework ay nag-abstract ng karamihan sa pagiging kumplikado, ibig sabihin ay hindi mo kailangang gumugol ng mga linggo sa pagsulat ng code upang gawing magkatugma ang mga system na ito sa isa't isa.

Ang Mga Pangunahing Kaalaman ng AnyModal: Input Tokenization

Ang isang mahalagang bahagi ng AnyModal ay ang input tokenizer , na nagtulay sa agwat sa pagitan ng hindi textuwal na data at ng text-based na pagpoproseso ng input ng LLM. Narito kung paano ito gumagana:

  • Pag-encode ng Feature : Para sa bawat modality (tulad ng mga larawan o audio), ginagamit ang isang espesyal na encoder upang i-extract ang mga mahahalagang feature. Halimbawa, kapag nagtatrabaho sa mga larawan, maaaring gumamit ang AnyModal ng Vision Transformer (ViT) na nagpoproseso ng imahe at naglalabas ng serye ng mga feature vector. Ang mga vector na ito ay kumukuha ng mga pangunahing aspeto, gaya ng mga bagay, spatial na relasyon, at mga texture, na mahalaga para sa mga application tulad ng captioning ng larawan o visual na pagsagot sa tanong.
  • Projection Layer : Pagkatapos ng pag-encode, ang mga feature vector ay kadalasang hindi tumutugma sa token space ng LLM. Upang matiyak ang maayos na pagsasama, gumagamit ang AnyModal ng projection layer na nagpapabago sa mga vector na ito upang iayon sa mga input token ng LLM. Halimbawa, ang mga naka-encode na vector mula sa ViT ay nakamapa sa espasyo ng pag-embed ng LLM, na nagbibigay-daan para sa magkakaugnay na daloy ng multimodal na data sa loob ng arkitektura ng LLM.

Ang dual-layer na diskarte na ito ay nagbibigay-daan sa modelo na ituring ang multimodal na data bilang isang solong pagkakasunud-sunod, na nagbibigay-daan dito na makabuo ng mga tugon na tumutugon sa lahat ng uri ng input. Sa pangkalahatan, binabago ng AnyModal ang magkakaibang mga pinagmumulan ng data sa isang pinag-isang format na mauunawaan ng mga LLM.


Paano Ito Gumagana: Isang Halimbawa na may Mga Input ng Larawan

Upang mabigyan ka ng ideya kung paano gumagana ang AnyModal, tingnan natin ang isang halimbawa ng paggamit ng data ng larawan sa mga LLM.

 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: " )

Ang modular setup na ito ay nagbibigay-daan sa mga developer na mag-plug at maglaro sa iba't ibang mga encoder at LLM, na iangkop ang modelo sa iba't ibang multimodal na gawain, mula sa pag-caption ng larawan hanggang sa pagsagot sa tanong.


Kasalukuyang Aplikasyon ng AnyModal

Nailapat na ang AnyModal sa ilang mga kaso ng paggamit, na may mga kapana-panabik na resulta:

  • LaTeX OCR : Pagsasalin ng mga kumplikadong mathematical equation sa nababasang teksto.
  • Chest X-Ray Captioning : Bumubuo ng mga medikal na paglalarawan para sa diagnostic na suporta sa pangangalagang pangkalusugan.
  • Image Captioning : Awtomatikong bumubuo ng mga caption para sa visual na nilalaman, na kapaki-pakinabang para sa accessibility at media application.

Sa pamamagitan ng pag-abstract sa mga kumplikado ng paghawak ng iba't ibang uri ng data, binibigyang kapangyarihan ng AnyModal ang mga developer na mabilis na bumuo ng mga prototype o pinuhin ang mga advanced na system nang walang mga bottleneck na karaniwang kasama ng multimodal integration.


Bakit Gumamit ng AnyModal?

Kung sinusubukan mong bumuo ng isang multimodal system, malamang na nakatagpo ka ng mga hamon na ito:

  • Mataas na kumplikado sa pag-align ng iba't ibang uri ng data sa mga LLM.
  • Redundant at nakakapagod na boilerplate code para sa bawat modality.
  • Limitadong scalability kapag nagdaragdag ng mga bagong uri ng data.

Tinutugunan ng AnyModal ang mga pain point na ito sa pamamagitan ng pagbabawas ng boilerplate, pag-aalok ng mga flexible na module, at pagpapahintulot sa mabilis na pag-customize. Sa halip na labanan ang mga isyu sa compatibility, maaaring tumuon ang mga developer sa pagbuo ng mga smart system nang mas mabilis at mas mahusay.


Ano ang Susunod para sa AnyModal?

Nagsisimula pa lang ang paglalakbay ng AnyModal. Kasalukuyan akong nagsusumikap sa pagdaragdag ng suporta para sa mga karagdagang modalidad tulad ng audio captioning at pagpapalawak ng framework upang gawin itong mas madaling ibagay para sa mga angkop na kaso ng paggamit. Ang feedback at kontribusyon ng komunidad ay mahalaga sa pagbuo nito—kung interesado ka sa multimodal AI, gusto kong marinig ang iyong mga ideya o makipagtulungan.


Saan Makakahanap ng AnyModal




Kung nasasabik ka tungkol sa multimodal AI o naghahanap upang i-streamline ang iyong proseso ng pag-unlad, subukan ang AnyModal. Magtulungan tayo upang i-unlock ang susunod na hangganan ng AI innovation.