目錄
模型总览
方法概览
实验
總結
首頁 科技週邊 人工智慧 圖像化語言:快手、北大多模態大模型與DALLE-3不相上下

圖像化語言:快手、北大多模態大模型與DALLE-3不相上下

Jan 30, 2024 pm 03:24 PM
ai 數據

当前的大型语言模型如 GPT、LLaMA 等在自然语言处理领域取得了显著进展,能够理解和生成复杂的文本内容。然而,我们是否可以将这种强大的理解和生成能力扩展到多模态数据上呢?这个想法正在逐步变为现实。 最新的多模态大模型 LaVIT 是由快手和北大合作开发的。它通过结合图像和视频数据,使得模型能够轻松理解海量的多媒体内容,并且能够辅助创作图文并茂的内容。 LaVIT 的出现对于多媒体内容的理解和创作具有重要意义。它不仅可以识别图像和视频中的对象、场景和情感,还可以生成与之相关的自然语言描述。这样一来,我们可以更好地利用多模态数据,并且创作出更加生动有趣的图文内容。 LaVIT 的研发是对大型语言模型在多模态领域的一次重要尝试。它有望为多媒体内容的处理和创作带来更多的可能性,并且推动自然语言处理和计算机视觉领域的进一步发展。

圖像化語言:快手、北大多模態大模型與DALLE-3不相上下


  • 论文标题:Unified Language-Vision Pretraining in LLM with Dynamic Discrete Visual Tokenization
  • 论文地址:https://arxiv.org/abs/2309.04669
  • 代码模型地址:https://github.com/jy0205/LaVIT

模型总览

LaVIT是一种新型的通用多模态基础模型,它可以像语言模型一样理解和生成视觉内容。它采用了与大型语言模型相似的训练方法,使用自回归方式来预测下一个图像或文本标记。训练完成后,LaVIT可以作为一个通用的多模态接口,无需进一步微调即可执行多模态理解和生成任务。例如,LaVIT可以实现以下功能:

LaVIT是一个强大的文本到图像生成模型,它能够根据给定的文本提示生成高质量、多种纵横比和高美感的图像。与最先进的图像生成模型(如Parti、SDXL和DALLE-3)相比,LaVIT具有相媲美的图像生成能力。它的独特之处在于能够生成多样化的图像,并且保持高质量和高美感。无论是纵向还是横向,LaVIT都能够生成令人满意的图像作品。通过结合先进的技术和高质量的训练数据,LaVIT为用户提供了一个出色的文本到图

圖像化語言:快手、北大多模態大模型與DALLE-3不相上下

在LaVIT中,图像和文本被表示为离散化的token。因此,它可以利用多模态提示进行图像生成,包括文本、图像 文本和图像 图像的组合。这种多模态生成不需要进行任何微调,系统可以根据提示生成相应的图像。

圖像化語言:快手、北大多模態大模型與DALLE-3不相上下

LaVIT是一种图像理解模型,可以读取图像并理解其语义。它能够为输入的图像生成相关的描述,并回答相关的问题。

圖像化語言:快手、北大多模態大模型與DALLE-3不相上下

方法概览

LaVIT 的模型结构如下图所示,其整个优化过程包括两个阶段:

圖像化語言:快手、北大多模態大模型與DALLE-3不相上下

图:LaVIT 模型的整体架构

阶段 1: 动态视觉分词器

为了能够像自然语言一样理解和生成视觉内容,LaVIT 引入了一个设计良好的视觉分词器,用于将视觉内容(连续信号)转换为像文本一样的 token 序列,就像 LLM 能够理解的外语一样。作者认为,为了实现统一视觉和语言的建模,该视觉分词器 (Tokenizer) 应该具有以下两个特性:

  1. 离散化:视觉 token 应该被表示为像文本一样的离散化形式。这样对于两种模态采用统一的表示形式,有利于 LaVIT 在一个统一的自回归生成式训练框架下,使用相同的分类损失进行多模态建模优化。
  2. 动态:与文本 token 不同的是,图像 patch 之间有着显著的相互依赖性,这使得从其他图像 patch 中推断另一个 patch 相对简单。因此,这种依赖性会降低原本 LLM 的 next-token prediction 优化目标的有效性。LaVIT 提出通过使用 token merging 来降低视觉 patch 之间的冗余性,其根据不同图像语义复杂度的不同,编码出动态的视觉 token 数量。这样对于复杂程度不同的图像,采用动态的 token 编码也进一步提高了预训练的效率,避免了冗余的 token 计算。

下图是 LaVIT 所提出的视觉分词器结构:

圖像化語言:快手、北大多模態大模型與DALLE-3不相上下

图:(a) 动态视觉 token 生成器 (b) token 合并器

该动态视觉分词器包括 token 选择器和 token 合并器。如图所示, token 选择器用来选择最具信息的图像区块,而 token 合并器则将那些 uninformative 的视觉块的信息压缩到保留下的 token 上,实现对冗余 token 的 merging。整个动态视觉分词器则通过最大限度地重构输入图像的语义进行训练。

Token 选择器

Token 选择器接收 N 个图像区块级的特征作为输入,其目标是评估每个图像区块的重要性并选择信息量最高的区块,以充分代表整个图像的语义。为实现这一目标,采用轻量级模块,由多个 MLP 层组成,用于预测分布 π。通过从分布 π 中采样,生成一个二进制决策 mask,用于指示是否保留相应的图像区块。

Token 合并器

Token 合并器据生成的决策掩码,将 N 个图像区块划分为保留 X_r 和舍弃 X_d 两组。与直接丢弃 X_d 不同,token 合并器可以最大限度地保留输入图像的详细语义。token 合并器由 L 个堆叠的块组成,每个块包括因果自注意力层、交叉注意力层和前馈层。因果自注意力层中, X_r 中的每个 token 只关注其前面的 token,以确保与 LLM 中的文本 token 形式一致。与双向自注意相比,这种策略表现更好。交叉注意力层将保留的 token X_r 作为 query,并根据它们在语义上的相似性合并 X_d 中的 token。

阶段 2: 统一的生成式预训练

经过视觉分词器处理后的视觉 token 与文本 token 相连接形成多模态序列作为训练时的输入。为了区分两种模态,作者在图像 token 序列的开头和结尾插入了特殊 token :[IMG] 和 [/IMG],用于表示视觉内容的开始和结束。为了能够生成文本和图像,LaVIT 采用两种图文连接形式:[image, text] 和 [text; image]。

对于这些多模态输入序列,LaVIT 采用统一的、自回归方式来直接最大化每个多模态序列的似然性进行预训练。这样在表示空间和训练方式上的完全统一,有助于 LLM 更好地学习多模态交互和对齐。在预训练完成后,LaVIT 具有感知图像的能力,可以像处理文本一样理解和生成图像。

实验

零样本多模态理解

LaVIT 在图像字幕生成(NoCaps、Flickr30k)和视觉问答(VQAv2、OKVQA、GQA、VizWiz)等零样本多模态理解任务上取得了领先的性能。

圖像化語言:快手、北大多模態大模型與DALLE-3不相上下

表 1 零样本的多模态理解任务评估

零样本多模态生成

在這個實驗中,由於所提出的視覺 tokenizer 能夠將圖像表示為離散化 token,LaVIT 具有透過自回歸生成類似文字的視覺 token 來合成圖像的能力。作者對模型進行了零樣本文本條件下的圖像合成性能的定量評估,比較結果如表 2 所示。

圖像化語言:快手、北大多模態大模型與DALLE-3不相上下

表2 不同模型的零樣本文字到影像產生效能

從表格中可以看出,LaVIT 的表現優於所有其他多模態語言模型。與 Emu 相比,LaVIT 在更小的 LLM 模型上取得了進一步改進,展現了出色的視覺 - 語言對齊能力。此外,LaVIT 在使用更少的訓練資料的情況下,實現了與最先進的文字到影像專家 Parti 可比的性能。

多模態提示影像產生

#LaVIT 能夠在無需進行任何微調的情況下,無縫地接受多種模態組合作為提示,產生相應的圖像,而無需進行任何微調。 LaVIT 產生的圖像能夠準確反映給定多模態提示的風格和語義。而且它可以透過輸入的多模態提示修改原始輸入影像。在沒有額外微調的下游資料的情況下,傳統的影像生成模型如 Stable Diffusion 無法達到這種能力。

圖像化語言:快手、北大多模態大模型與DALLE-3不相上下

多模態影像產生結果的範例

定性分析

如下圖所示,LaVIT 的動態分詞器可以根據圖像內容動態選擇最具資訊量的圖像區塊,學習到的程式碼本來可以產生具有高層語意的視覺編碼。

圖像化語言:快手、北大多模態大模型與DALLE-3不相上下

動態視覺分詞器(左)和學習到的codebook(右)的視覺化

總結

LaVIT 的出現為多模態任務的處理又提供了一種創新範式,透過使用動態視覺分詞器將視覺和語言表示為統一的離散token 表示,繼承了LLM 成功的自回歸生成學習範式。透過在統一生成目標下進行最佳化,LaVIT 可以將圖像視為一種外語,像文字一樣理解和產生它們。這項方法的成功為未來多模態研究的發展方向提供了新的啟示,利用 LLM 強大的推理能力,實現更聰明、更全面的多模態理解和產生打開新的可能性。

以上是圖像化語言:快手、北大多模態大模型與DALLE-3不相上下的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1666
14
CakePHP 教程
1425
52
Laravel 教程
1324
25
PHP教程
1272
29
C# 教程
1251
24
C  中的chrono庫如何使用? C 中的chrono庫如何使用? Apr 28, 2025 pm 10:18 PM

使用C 中的chrono庫可以讓你更加精確地控制時間和時間間隔,讓我們來探討一下這個庫的魅力所在吧。 C 的chrono庫是標準庫的一部分,它提供了一種現代化的方式來處理時間和時間間隔。對於那些曾經飽受time.h和ctime折磨的程序員來說,chrono無疑是一個福音。它不僅提高了代碼的可讀性和可維護性,還提供了更高的精度和靈活性。讓我們從基礎開始,chrono庫主要包括以下幾個關鍵組件:std::chrono::system_clock:表示系統時鐘,用於獲取當前時間。 std::chron

如何理解C  中的DMA操作? 如何理解C 中的DMA操作? Apr 28, 2025 pm 10:09 PM

DMA在C 中是指DirectMemoryAccess,直接內存訪問技術,允許硬件設備直接與內存進行數據傳輸,不需要CPU干預。 1)DMA操作高度依賴於硬件設備和驅動程序,實現方式因係統而異。 2)直接訪問內存可能帶來安全風險,需確保代碼的正確性和安全性。 3)DMA可提高性能,但使用不當可能導致系統性能下降。通過實踐和學習,可以掌握DMA的使用技巧,在高速數據傳輸和實時信號處理等場景中發揮其最大效能。

怎樣在C  中處理高DPI顯示? 怎樣在C 中處理高DPI顯示? Apr 28, 2025 pm 09:57 PM

在C 中處理高DPI顯示可以通過以下步驟實現:1)理解DPI和縮放,使用操作系統API獲取DPI信息並調整圖形輸出;2)處理跨平台兼容性,使用如SDL或Qt的跨平台圖形庫;3)進行性能優化,通過緩存、硬件加速和動態調整細節級別來提升性能;4)解決常見問題,如模糊文本和界面元素過小,通過正確應用DPI縮放來解決。

C  中的實時操作系統編程是什麼? C 中的實時操作系統編程是什麼? Apr 28, 2025 pm 10:15 PM

C 在實時操作系統(RTOS)編程中表現出色,提供了高效的執行效率和精確的時間管理。 1)C 通過直接操作硬件資源和高效的內存管理滿足RTOS的需求。 2)利用面向對象特性,C 可以設計靈活的任務調度系統。 3)C 支持高效的中斷處理,但需避免動態內存分配和異常處理以保證實時性。 4)模板編程和內聯函數有助於性能優化。 5)實際應用中,C 可用於實現高效的日誌系統。

怎樣在C  中測量線程性能? 怎樣在C 中測量線程性能? Apr 28, 2025 pm 10:21 PM

在C 中測量線程性能可以使用標準庫中的計時工具、性能分析工具和自定義計時器。 1.使用庫測量執行時間。 2.使用gprof進行性能分析,步驟包括編譯時添加-pg選項、運行程序生成gmon.out文件、生成性能報告。 3.使用Valgrind的Callgrind模塊進行更詳細的分析,步驟包括運行程序生成callgrind.out文件、使用kcachegrind查看結果。 4.自定義計時器可靈活測量特定代碼段的執行時間。這些方法幫助全面了解線程性能,並優化代碼。

給MySQL表添加和刪除字段的操作步驟 給MySQL表添加和刪除字段的操作步驟 Apr 29, 2025 pm 04:15 PM

在MySQL中,添加字段使用ALTERTABLEtable_nameADDCOLUMNnew_columnVARCHAR(255)AFTERexisting_column,刪除字段使用ALTERTABLEtable_nameDROPCOLUMNcolumn_to_drop。添加字段時,需指定位置以優化查詢性能和數據結構;刪除字段前需確認操作不可逆;使用在線DDL、備份數據、測試環境和低負載時間段修改表結構是性能優化和最佳實踐。

量化交易所排行榜2025 數字貨幣量化交易APP前十名推薦 量化交易所排行榜2025 數字貨幣量化交易APP前十名推薦 Apr 30, 2025 pm 07:24 PM

交易所內置量化工具包括:1. Binance(幣安):提供Binance Futures量化模塊,低手續費,支持AI輔助交易。 2. OKX(歐易):支持多賬戶管理和智能訂單路由,提供機構級風控。獨立量化策略平台有:3. 3Commas:拖拽式策略生成器,適用於多平台對沖套利。 4. Quadency:專業級算法策略庫,支持自定義風險閾值。 5. Pionex:內置16 預設策略,低交易手續費。垂直領域工具包括:6. Cryptohopper:雲端量化平台,支持150 技術指標。 7. Bitsgap:

C  中的字符串流如何使用? C 中的字符串流如何使用? Apr 28, 2025 pm 09:12 PM

C 中使用字符串流的主要步驟和注意事項如下:1.創建輸出字符串流並轉換數據,如將整數轉換為字符串。 2.應用於復雜數據結構的序列化,如將vector轉換為字符串。 3.注意性能問題,避免在處理大量數據時頻繁使用字符串流,可考慮使用std::string的append方法。 4.注意內存管理,避免頻繁創建和銷毀字符串流對象,可以重用或使用std::stringstream。

See all articles