多模態理解與生成的統一Transformer模型
Introduction
“預測未來最好的方法就是創造它。”
Alan Kay
人工智能(AI)領域正經歷快速發展,特別是在多模態理解和生成方面。多模態理解涉及機器對不同模態(如圖像和文本)的信息進行理解和推理。
傳統上,這兩個領域通常由獨立的專門模型處理。然而,一個新趨勢正在興起 – 統一的多模態模型。Show-O是一個開創性的AI模型,展示了單一Transformer網絡在多模態理解和生成方面都能出色表現的潛力。
Keywords: Show-O AI, 統一AI模型, 多模態AI, AI圖像生成, AI理解, 下一代AI, AI的未來, AI研究, AI應用。
當前多模態(Multimodal Understanding )AI格局
在深入探討Show-O之前,理解其開發背景至關重要。
Multimodal Understanding: 這一領域見證了強大的多模態大語言模型(MLLMs)的崛起,如LLaVA。這些模型擅長處理視覺問答(VQA)等任務,即針對給定的圖像和相關問題提供文本答案。MLLMs通常利用Transformer架構,該架構以處理序列數據和捕捉長距離依賴關係的能力而聞名。
Multimodal Generation: 去噪擴散概率模型(DDPMs)革新了視覺生成領域。這些模型擅長文本到圖像生成等任務,能根據詳細的文本描述創建逼真的圖像。DDPMs通過逐步去除初始隨機圖像中的噪聲,並由提供的文本引導來運作。
統一的需求?
雖然單獨來看這些模型令人印象深刻,但理解和生成模型的分離發展自然引發一個問題:是否可能有一個模型同時精通兩者?
“知識的唯一來源是經驗.”
Albert Einstein
這種尋求統一模型的探索與愛因斯坦的名言相呼應,它暗示一個同時在理解和生成多模態數據方面接受訓練的模型,可能會對其所代表的世界獲得更深入、更全面的”經驗”。
Show-O: 統一的Transformer模型
Show-O通過在單一Transformer網絡中融合自回歸建模(常見於LLMs)和離散擴散建模(受DDPMs啟發)來應對上述挑戰。這種融合使Show-O能夠處理廣泛的多模態任務,從回答關於圖像的問題到根據文本描述生成圖像,甚至創建帶有相應描述的視頻關鍵幀。
模型架構
Show-O的架構基於預訓練的LLMs(如Phi-1.5),繼承了它們強大的文本處理能力。為了同時處理文本和圖像,Show-O在離散標記的統一詞彙表上操作。
Tokenization標記化:
- Text Tokenization文本標記化: Show-O使用與其底層LLM相同的標記器處理文本數據。
- Image Tokenization 圖像標記化: Show-O採用在大型圖像數據集上訓練的無查找量化器,將圖像轉換為離散標記。這一方法受到如MAGVIT-v2等模型的啟發,展示了離散圖像表示的有效性。
Unified Prompting 統一提示:
Show-O的一個關鍵創新是其統一提示策略。這種策略允許Show-O以一致、結構化的方式處理各種多模態輸入。例如,對於VQA任務,輸入序列可能格式化為: [MMU] [SOI] 圖像標記 [EOI] [SOT] 問題文本 [EOT]。這裡,[MMU]表示多模態理解任務,[SOI]和[EOI]表示圖像標記的開始和結束,[SOT]和[EOT]標記文本標記的開始和結束。
Omni-Attention Mechanism 全能注意力機制:
Show-O引入了一種名為全能注意力的多功能注意力機制。該機制根據輸入序列動態調整,對文本標記使用因果注意力(僅允許它們關注前面的標記),對圖像標記使用全面注意力(允許它們關注所有其他標記)。這使Show-O能夠有效利用兩種注意力類型對不同模態的優勢。
Show-O訓練目標:
Show-O主要有兩個訓練目標:
- Next Token Prediction (NTP) 下一個標記預測(NTP):
這一目標是語言建模的標準,旨在根據前面的標記預測序列中的下一個標記。對於多模態理解任務,這涉及根據圖像和文本標記的上下文預測文本標記。 - Mask Token Prediction (MTP)掩碼標記預測(MTP):
這一目標受離散擴散模型啟發。在訓練過程中,隨機掩蓋一部分圖像標記,模型被訓練以根據序列中剩餘的標記預測這些被掩蓋標記的原始值
Mathematical Formulation 數學公式
NTP目標公式為: LNTP = Σ log p(vi | v1, …, vi-1, u1, …, um; θ) 其中:
- vi 代表第i個文本標記。
- v1, …, vi-1 是前面的文本標記。
- u1, …, um 是圖像標記。
- θ 代表模型參數。
- p(…) 表示給定前面的標記和圖像標記條件下第i個文本標記的條件概率。
MTP目標公式為: LMTP = Σ log p(uj | u1, …, u*, …, um, v1, …, vn; θ) 其中:
- uj 代表第j個圖像標記。
- u1, …, u*, …, um 代表圖像標記序列,其中一些標記被掩碼標記u*替換。
- v1, …, vn 是文本標記。
整體訓練損失是LNTP和LMTP的加權組合: L = LMTP + α * LNTP 其中α是控制兩個目標相對重要性的超參數。
能力和應用?
Show-O的統一架構賦予它多樣化的能力:
- Multimodal Understanding 多模態理解:
Show-O在VQA和圖像描述等基準測試上達到或甚至超越了專門的理解模型的表現。 - Visual Generation視覺生成:
Show-O展示了與專門的擴散模型相媲美的文本到圖像生成質量。 - Text-Guided Inpainting/Extrapolation 文本引導的修復/外推:
Show-O能夠根據文本提示無縫修復圖像缺失部分或外推其內容,無需任何微調。 - Mixed-Modality Generation 混合模態生成:
Show-O在生成交錯的文本和圖像序列方面展現出潛力,為視頻關鍵幀生成及其相應描述等應用開闢了可能性。
入門指南
First, set up the environment:pip3 install -r requirments.txt
Download model weight of a pre-trained LLM (Phi-1.5):git lfs install
git clone https://huggingface.co/microsoft/phi-1_5
Download model weights of Show-o and put them to a directory in the structure below:├── checkpoints/
| ├── magvitv2.pth
| ├── showo.bin
| ├── showo_w_clip_vit.bin
| ├── phi-1_5
Login your wandb account on your machine or server.wandb login <your wandb keys>
Inference demo for Multimodal Understanding and you can view the results on wandb.python3 inference_mmu.py config=configs/showo_demo_w_clip_vit.yaml \
mmu_image_root=./mmu_validation question=’Please describe this image in detail. *** Do you think the image is unusual or not?’ \
pretrained_model_path=./checkpoints/showo_w_clip_vit.bin
Inference demo for Text-to-Image Generation and you can view the results on wandb.python3 inference_t2i.py config=configs/showo_demo.yaml \
batch_size=1 validation_prompts_file=validation_prompts/showoprompts.txt \
guidance_scale=1.75 generation_timesteps=18 \
mode=’t2i’ pretrained_model_path=./checkpoints/showo.bin
Inference demo for Text-guided Inpainting and you can view the results on wandb.python3 inference_t2i.py config=configs/showo_demo.yaml \
batch_size=1 \
guidance_scale=1.75 generation_timesteps=16 \
pretrained_model_path=./checkpoints/showo.bin \
mode=’inpainting’ prompt=’A blue sports car with sleek curves and tinted windows, parked on a bustling city street.’ \
image_path=./inpainting_validation/bus.jpg inpainting_mask_path=./inpainting_validation/bus_mask.webp
Inference demo for Text-guided Extrapolation and you can view the results on wandb.python3 inference_t2i.py config=configs/showo_demo.yaml \
batch_size=1 \
guidance_scale=1.75 generation_timesteps=16 \
pretrained_model_path=./checkpoints/showo.bin \
mode=’extrapolation’ extra_direction=’left *** left *** left *** right *** right *** right’ offset=0 prompt=’a serene natural landscape featuring a clear, blue lake surrounded by lush green trees. *** a serene natural landscape featuring a clear, blue lake surrounded by lush green trees. *** a serene natural landscape featuring a clear, blue lake surrounded by lush green trees. *** a serene natural landscape featuring a clear, blue lake surrounded by lush green trees. *** a serene natural landscape featuring a clear, blue lake surrounded by lush green trees. *** a serene natural landscape featuring a clear, blue lake surrounded by lush green trees.’ \
image_path=./inpainting_validation/alpine_lake.jpg
影響和未來方向
Show-O代表了向真正多功能AI系統發展的重要一步。其在理解和生成多模態內容方面的卓越能力為更複雜和創造性的AI應用鋪平了道路。
“The key to artificial intelligence has always been the representation.” — Jeff Hawkins
Show-O和類似統一模型的未來研究方向包括:
- Scaling 擴展:
探索模型規模和訓練數據擴展對性能的影響。 - Long-Form Generation 長形式生成:
擴展Show-O的混合模態生成能力,創建更長的文本和圖像序列,可能導致自動視頻生成。Extending Show-O’s mixed-modality generation capabilities to create longer sequences of text and images, potentially leading to automated video generation. - Fine-Grained Control精細控制:
開發技術,為用戶提供對生成內容更精細的控制,允許更個性化和具體的輸出。
結論
Show-O這一開創性的統一Transformer,展示了單一模型同時精通多模態理解和生成的可行性和潛力。其創新架構,包括離散圖像表示、統一提示、全能注意力和雙重訓練目標,使其能夠在各種任務中取得卓越表現。Show-O標誌著AI領域的重大進步,為AI系統無縫理解和創建豐富多模態內容的未來提供了一瞥。
Keywords: Show-O, 統一Transformer, 多模態理解, 多模態生成, 視覺問答, 文本到圖像生成, 圖像修復, 圖像外推, 混合模態生成, AI, 人工智能, 深度學習, Transformer網絡, 擴散模型, 自回歸模型, 離散圖像表示, LLM, MLLM, DDPM, VQA.
你對這篇文章有什麼看法?請在評論中告訴我。
如果你喜歡我的作品,可以訂閱我以獲得AI方面的定期更新