Janji AI multimodal ada di mana-mana, daripada diagnostik penjagaan kesihatan lanjutan kepada mencipta pengalaman pelanggan yang lebih kaya dan dinamik. Tetapi bagi kita yang berada dalam parit, membina sistem multimodal—mampu memproses teks, imej, audio dan seterusnya—selalunya terasa seperti kusut yang tidak berkesudahan dalam penyepaduan tersuai, kod plat dandang dan isu keserasian. Ini adalah kekecewaan saya, dan ia akhirnya membawa kepada penciptaan AnyModal .
Mari kita hadapi: interaksi manusia dengan dunia tidak terhad kepada satu jenis data. Kami mentafsir perkataan, visual, bunyi dan sensasi fizikal secara serentak. Konsep AI multimodal berpunca daripada idea ini. Dengan membawa berbilang jenis data ke dalam saluran pemprosesan yang sama, AI multimodal membolehkan model menangani tugas yang sebelum ini terlalu rumit untuk sistem mod tunggal. Bayangkan aplikasi penjagaan kesihatan yang menganalisis sinar-X dan nota perubatan bersama-sama, atau sistem perkhidmatan pelanggan yang mempertimbangkan kedua-dua teks dan isyarat audio untuk mengukur sentimen pelanggan dengan tepat.
Tetapi inilah cabarannya: manakala model mod tunggal untuk teks (seperti GPT) atau imej (seperti ViT) sudah mantap, menggabungkannya untuk berinteraksi secara lancar bukanlah mudah. Kerumitan teknikal telah menghalang ramai penyelidik dan pembangun daripada meneroka AI multimodal dengan berkesan. Masukkan AnyModal .
Dalam kerja saya sendiri dengan pembelajaran mesin, saya mendapati bahawa walaupun alatan seperti GPT, ViT dan pemproses audio berkuasa secara berasingan, mencipta sistem multimodal dengan menggabungkan alatan ini selalunya bermakna mencantumkannya bersama-sama dengan kod khusus projek yang kikuk. Pendekatan ini tidak berskala. Penyelesaian semasa untuk menyepadukan modaliti sama ada sangat khusus, hanya direka untuk tugasan tertentu (seperti kapsyen imej atau menjawab soalan visual), atau ia memerlukan jumlah kod boilerplate yang mengecewakan hanya untuk memastikan jenis data berfungsi bersama.
Rangka kerja sedia ada memfokuskan secara sempit pada kombinasi modaliti tertentu, menjadikannya sukar untuk berkembang menjadi jenis data baharu atau menyesuaikan persediaan yang sama kepada tugasan yang berbeza. Struktur model AI yang "tersusun" ini bermakna saya sentiasa mencipta semula roda. Ketika itulah saya memutuskan untuk membina AnyModal — rangka kerja modular yang fleksibel yang menggabungkan semua jenis data tanpa perlu bersusah payah.
AnyModal ialah rangka kerja yang direka untuk memudahkan dan menyelaraskan pembangunan AI multimodal. Ia dibina untuk mengurangkan kerumitan menggabungkan jenis input yang pelbagai dengan mengendalikan tokenisasi, pengekodan dan penjanaan untuk input bukan teks, menjadikannya lebih mudah untuk menambah jenis data baharu pada model bahasa besar (LLM).
Konsep ini berkisar pada pendekatan modular kepada saluran paip input. Dengan AnyModal, anda boleh menukar pengekod ciri (seperti Transformer Penglihatan untuk imej atau pemproses spektrogram untuk audio) dan menyambungkannya ke LLM dengan lancar. Rangka kerja ini merumuskan banyak kerumitan, bermakna anda tidak perlu menghabiskan masa berminggu-minggu menulis kod untuk menjadikan sistem ini serasi antara satu sama lain.
Komponen penting AnyModal ialah tokenizer input , yang merapatkan jurang antara data bukan teks dan pemprosesan input berasaskan teks LLM. Begini cara ia berfungsi:
Pendekatan dwi-lapisan ini membolehkan model untuk merawat data multimodal sebagai satu jujukan, membolehkannya menjana respons yang merangkumi semua jenis input. Pada asasnya, AnyModal mengubah sumber data yang berbeza kepada format bersatu yang boleh difahami oleh LLM.
Untuk memberi anda gambaran tentang cara AnyModal beroperasi, mari lihat contoh menggunakan data imej dengan 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: " )
Persediaan modular ini membolehkan pembangun memasang dan bermain dengan pengekod dan LLM yang berbeza, menyesuaikan model kepada pelbagai tugas multimodal, daripada kapsyen imej kepada menjawab soalan.
AnyModal telah digunakan untuk beberapa kes penggunaan, dengan hasil yang menarik:
Dengan mengabstraksikan kerumitan pengendalian jenis data yang berbeza, AnyModal memperkasakan pembangun untuk membina prototaip dengan cepat atau memperhalusi sistem lanjutan tanpa kesesakan yang biasanya datang dengan penyepaduan multimodal.
Jika anda cuba membina sistem multimodal, anda mungkin menghadapi cabaran ini:
AnyModal menangani titik kesakitan ini dengan mengurangkan boilerplate, menawarkan modul fleksibel, dan membenarkan penyesuaian pantas. Daripada bertarung dengan isu keserasian, pembangun boleh menumpukan pada membina sistem pintar dengan lebih pantas dan lebih cekap.
Perjalanan AnyModal baru bermula. Saya sedang berusaha untuk menambah sokongan untuk modaliti tambahan seperti kapsyen audio dan mengembangkan rangka kerja untuk menjadikannya lebih mudah disesuaikan untuk kes penggunaan khusus. Maklum balas dan sumbangan komuniti adalah penting untuk pembangunannya—jika anda berminat dengan AI multimodal, saya ingin mendengar idea anda atau bekerjasama.
Jika anda teruja dengan AI multimodal atau ingin menyelaraskan proses pembangunan anda, cubalah AnyModal. Mari kita bekerjasama untuk membuka kunci sempadan seterusnya inovasi AI.