SmolDocling:一種超緊湊的視覺語言模型,用于端到端多模態文檔轉換

paper地址:SmolDocling: An ultra-compact vision-language model for
end-to-end multi-modal document conversion
Huggingface地址:SmolDocling-256M-preview
代碼對應的權重文件:SmolDocling-256M-preview權重文件

一、摘要

以下是文章摘要的總結:

SmolDocling 是一個超緊湊型的視覺-語言模型,用于端到端的文檔轉換。它通過生成一種名為 DocTags 的新標記格式,捕捉文檔中所有元素的內容、結構和位置。SmolDocling 在多種文檔類型(如商務文檔、學術論文、技術報告等)上表現出穩健的性能,能夠準確重現代碼、表格、公式、圖表等復雜元素。與更大規模的模型相比,它在性能上具有競爭力,同時顯著降低了計算需求。此外,該研究還貢獻了多個公開數據集,用于支持圖表、表格、公式和代碼識別等任務。

(1)以下是 SmolDocling 模型支持的所有要素:

  1. 代碼列表:識別和解析代碼片段,包括縮進和行號等細節。
  2. 表格:識別表格結構,包括單元格合并、表頭信息等。
  3. 公式:識別和解析數學公式,支持 LaTeX 格式。
  4. 圖表:識別圖表并將其轉換為表格形式。
  5. 列表:識別有序列表和無序列表,支持嵌套列表。
  6. 頁眉和頁腳:識別頁面的頁眉和頁腳內容。
  7. 圖片:識別圖片并提供分類信息。
  8. 段落文本:識別普通文本內容,包括換行和格式。
  9. 標題:識別文檔中的標題和章節標題。
  10. 腳注:識別腳注內容。
  11. 文檔索引:識別文檔索引部分。
  12. 化學分子結構:識別化學分子圖像并轉換為 SMILES 格式(擴展功能)。

這些要素涵蓋了文檔中常見的各種內容類型,使得 SmolDocling 能夠全面、準確地處理和轉換復雜的文檔。
(2) DocTags 輸出格式
DocTags 是 SmolDocling 的核心輸出格式,用于統一表示文檔的內容、結構和布局。以下是 DocTags 支持的主要標簽和格式:

文檔塊類型
  • <text>:普通文本內容。
  • <title>:標題或章節標題。
  • <section_header>:章節標題。
  • <list_item>:列表項。
  • <ordered_list>:有序列表。
  • <unordered_list>:無序列表。
  • <code>:代碼片段,支持縮進和行號。
  • <formula>:數學公式,支持 LaTeX 格式。
  • <picture>:圖片,支持分類信息。
  • <caption>:標題或說明文字(通常嵌套在圖片或表格中)。
  • <footnote>:腳注。
  • <page_header>:頁眉。
  • <page_footer>:頁腳。
  • <document_index>:文檔索引。
  • <otsl>:表格結構,使用 OTSL 標簽表示。
位置標簽
  • <loc_x1><loc_y1><loc_x2><loc_y2>:表示元素在頁面中的位置(邊界框),左上角坐標和右下角坐標。
表格結構(OTSL 標簽)
  • <fcel>:包含內容的單元格。
  • <ecel>:空單元格。
  • <ched>:列標題單元格。
  • <rhed>:行標題單元格。
  • <srow>:表格部分的行。
代碼分類
  • <_programming-language_>:編程語言分類標簽(如 Python、Java 等)。
圖片分類
  • <image_class>:圖片分類標簽(如 pie_chart、bar_chart、natural_image 等)。

2. 其他格式

SmolDocling 的輸出可以通過 DocTags 轉換為其他常見格式,具體取決于下游任務的需求:

LaTeX
  • 用于數學公式(<formula> 標簽)的輸出。
  • 示例:<formula>E = mc^2</formula> 可以轉換為 LaTeX 格式。
HTML
  • 用于表格(<otsl> 標簽)和其他結構化內容的輸出。
  • 示例:<otsl> 標簽可以轉換為 HTML 表格。
Markdown
  • 用于文本、列表、標題等的輸出。
  • 示例:<text>, <list_item>, <title> 等標簽可以轉換為 Markdown 格式。
SMILES
  • 用于化學分子結構的輸出(擴展功能)。
  • 示例:分子圖像可以轉換為 SMILES 格式。

SmolDocling 的主要輸出格式是 DocTags,它是一種高效的標記語言,能夠統一表示文檔的內容、結構和布局。此外,DocTags 可以輕松轉換為其他常見格式(如 LaTeX、HTML、Markdown 等),以滿足不同的應用需求。這種靈活性使得 SmolDocling 能夠適應多種文檔處理任務。

二、背景介紹

1、文檔轉換的背景與挑戰

  • 技術挑戰:將復雜的數字文檔(如 PDF)轉換為結構化的、可機器處理的格式是一項長期的技術難題。
  • 主要問題
    • 文檔布局和樣式的多樣性。
    • PDF 格式本身不透明,優化用于打印而非語義解析。
    • 復雜的布局樣式和視覺挑戰元素(如表格、圖表、表單)會影響文檔的閱讀順序和理解。

2、現有方法的局限性

  • 傳統流水線方法
    • 依賴多個專門模型(如 OCR、布局分析、表格結構識別等)。
    • 雖然結果質量高,但難以調優和泛化。
  • 大型多模態模型(LVLMs)
    • 能夠端到端解決文檔轉換問題。
    • 存在幻覺(hallucinations)、計算資源消耗大等問題。
    • 缺乏高質量的公開數據集。

3、SmolDocling 的提出

  • 目標:通過一個緊湊的模型實現端到端的文檔轉換,同時保持高效性和高質量輸出。
  • 核心創新
    • DocTags 格式:一種新的標記語言,用于統一表示文檔的內容、結構和布局。
    • 超緊湊模型:基于 Hugging Face 的 SmolVLM-256M,參數量僅為 256M。
    • 數據集貢獻:公開了多個高質量數據集,用于支持圖表、表格、公式和代碼識別等任務。

4、SmolDocling 的優勢

  • 性能:在多種文檔類型(如商務文檔、學術論文、技術報告等)上表現出穩健的性能。
  • 效率:顯著減少了計算需求,與更大規模的模型相比具有競爭力。
  • 靈活性:支持多種文檔元素(如代碼、表格、公式、圖表等)的識別和轉換。

5、數據集的貢獻

  • DocLayNet-PT:140 萬頁的多模態文檔預訓練數據集,包含豐富的標注(如布局、表格、代碼、圖表等)。
  • 任務特定數據集:針對表格、代碼、公式、圖表等任務生成了多個高質量數據集(如 PubTables-1M、SynthChartNet、SynthCodeNet 等)。

三、相關工作

主要分為兩個方面:大型視覺-語言模型(LVLMs)文檔理解領域的研究現狀。以下是詳細總結:

1. 大型視覺-語言模型(LVLMs)

  • 專有模型
    • GPT-4oGeminiClaude 3.5 等專有模型展示了在多種模態(包括視覺)上的卓越能力。
  • 開源方法
    • BLIP-2:最早將視覺編碼器與凍結的大型語言模型(如 OPT 或 FlanT5)結合,使用輕量級的 Q-former。
    • MiniGPT-4:在 BLIP-2 的基礎上,將凍結的視覺編碼器與凍結的 LLM(如 Vicuna)結合,使用 Q-Former 網絡和單個投影層。
    • LLaVA:使用最小的適配層,結合視覺編碼器和 LLM。
    • LLaVA-OneVisionLLaVA-NeXTInterleave:支持多圖像、更高分辨率和視頻理解。
    • InternLM-XComposer:專門設計用于處理高分辨率和文本-圖像組合與理解。
    • Qwen-VL:引入位置感知適配器,解決視覺編碼器生成的長圖像特征序列帶來的效率問題。
    • Qwen2.5-VL:使用窗口注意力和 2D 旋轉位置嵌入,高效處理原生分辨率輸入,并引入視覺-語言合并器進行動態特征壓縮。

2. 文檔理解領域的研究現狀

  • 文檔理解任務
    • 包括文檔分類、OCR、布局分析、表格識別、鍵值對提取、圖表理解、公式識別等。
  • 現有解決方案
    • 商業云服務:如 Amazon Textract、Google Cloud Document AI、Microsoft Azure AI Document Intelligence。
    • 前沿模型:如 GPT-4o、Claude。
    • 開源庫:如 Docling、GROBID、Marker、MinerU 或 Unstructured。
  • 流水線系統
    • 實現了源代碼中的流水線,根據輸入文檔有條件地應用專門的單任務模型,并將預測結果組合成有意義的文檔表示。
    • 每個任務通常涉及人工設計的預處理和后處理邏輯(如設置布局檢測的置信度閾值、匹配布局元素與文本單元格等)。
  • 多任務模型
    • 旨在提供一個能夠同時處理多種文檔理解相關任務的單一模型,利用跨任務共享的上下文和表示。
    • OCR 依賴方法:如 LayoutLM 和 UDOP,使用從外部 OCR 引擎提取的文本,以及圖像和文本邊界框位置作為輸入。
    • 無 OCR 方法:如 Donut、Dessurt、DocParser、Pix2Struct,基于變換器的模型,端到端訓練以直接從圖像輸出文本。
    • 大型視覺語言模型(LVLMs):如 LLaVA、LLaVA-OneVision、UReader、Kosmos-2 和 Qwen-VL,利用各種視覺編碼器、投影適配器和 LLM。
    • 評估數據集:如 DocVQA 和 mPLUG-DocOwl 1.5 數據集,主要關注問答和推理。

3. 與 SmolDocling 相關的最接近的工作

  • Nougat:專注于學術文檔的精確轉換和結構識別。
  • DocOwl 2:使用動態形狀自適應裁剪模塊處理高分辨率圖像,并通過 ViT 視覺編碼器和 LLaMa 基礎的 LLM 進行處理。
  • GOT:專注于將多種元素(如文本、公式、分子圖、表格、圖表、樂譜和幾何形狀)轉換為結構化格式。
  • Qwen2.5-VL:引入 Omni-Parsing 策略,將多種文檔元素整合到一個統一的基于 HTML 的表示中。

四、SmolDocling 模型

在這里插入圖片描述
圖1展示了SmolDocling的端到端流程:輸入文檔圖像,經視覺編碼器提取特征,與文本提示嵌入結合,通過LLM自回歸生成DocTags序列輸出。

1、SmolDocling 的模型架構

SmolDocling 的模型架構通過緊湊的視覺編碼器和輕量級語言模型設計,結合激進的像素洗牌策略和視覺嵌入投影與池化技術,實現了高效的多模態融合,能夠快速、準確地將文檔圖像轉換為結構化的 DocTags 格式,顯著減少了計算需求,同時在多種文檔任務上表現出色。

2、DocTags格式

DocTags格式是一種結構化的標記語言,用于高效表示文檔內容、結構和布局,通過明確標簽(如文本、標題、列表項、代碼、公式、圖片等)和位置信息標簽,支持表格結構和代碼、圖片分類,結合圖2展示其如何描述文檔元素的關鍵特征,包括元素類型、位置和內容,從而實現文檔的高效轉換和解析。
在這里插入圖片描述
圖2:DocTags格式描述了文檔元素的關鍵特征:元素類型(文本、圖片、表格、代碼等)、頁面位置和內容。嵌套標簽傳達額外信息:圖片和表格可以嵌套標題,表格結構用OTSL標簽表示,列表嵌套列表項,代碼和圖片帶有分類。所有DocTags輸出均來自SmolDocling預測,人為插入了換行符和點(…)以提高可讀性。

3、模型訓練

SmolDocling的模型訓練采用課程學習方法,通過三個階段逐步提升模型性能。
初始階段將DocTags標記引入tokenizer,凍結視覺編碼器,單獨訓練語言模型以適應新輸出格式。

聯合訓練階段解凍視覺編碼器,同時訓練視覺和語言部分,實現多模態融合。

最后使用所有數據集進行微調,確保模型在多種任務上的泛化能力。訓練數據涵蓋DocLayNet-PT預訓練數據集和多個任務特定數據集,全面覆蓋多種文檔類型和任務。最終,SmolDocling在A100 GPU上實現單頁轉換時間0.35秒,內存占用僅0.489 GB,展現出高效、準確的文檔轉換能力。

五、數據

1、預訓練數據集
  • DocLayNet-PT:包含140萬頁的文檔圖像,從CommonCrawl、Wikipedia和商業文檔中提取,涵蓋方程式、表格、代碼和彩色布局等內容。通過PDF解析和增強處理,提供布局元素、表格結構、語言、主題和圖形分類的弱標注。
  • Docmatix:包含130萬文檔,采用與DocLayNet-PT相同的弱標注策略,并增加了將多頁文檔轉換為DocTags的指令。
2、任務特定數據集
  • 布局數據集
    • DocLayNet v2:從DocLayNet-PT中采樣76K頁,經人工標注和質量審查,用于微調。
    • WordScape:提取63K包含文本和表格的頁面,作為可靠的真實標注源。
    • SynthDocNet:合成250K頁,使用Wikipedia內容生成,增強模型對不同布局、顏色和字體的適應性。
  • 表格數據集:包括PubTables-1M、FinTabNet、WikiTableSet和從WordScape文檔中提取的表格信息,轉換為OTSL格式并與文本內容交織,形成緊湊序列。
  • 圖表數據集:包含250萬張不同類型的圖表(線圖、餅圖、柱狀圖等),使用三個可視化庫生成,確保視覺多樣性。
  • 代碼數據集:包含930萬段渲染代碼片段,涵蓋56種編程語言,使用LaTeX和Pygments生成視覺多樣化的代碼渲染。
  • 公式數據集:包含550萬條獨特公式,從arXiv源LaTeX代碼中提取并規范化,使用LaTeX渲染,確保模型訓練基于正確和標準化的代碼。
3、文檔指令調優數據集
  • 使用DocLayNet-PT頁面樣本,通過隨機采樣布局元素生成指令,如“在特定邊界框內執行OCR”、“識別頁面元素類型”等,并結合Granite-3.1-2b-instruct LLM避免災難性遺忘。
    在這里插入圖片描述
    表2:結構化文檔文本識別。我們在DocLayNet上評估OCR性能和文檔格式,重點關注文本元素,排除表格。文本準確性通過多個指標(編輯距離、F1分數、精確度、召回率、BLEU和METEOR)進行衡量。
4、數據集貢獻
  • SmolDocling團隊貢獻了多個高質量數據集,包括DocLayNet-PT、Docmatix、SynthChartNet、SynthC

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/76322.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/76322.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/76322.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MySQL SQL Mode

SQL Mode 是 MySQL 中一個重要的系統變量&#xff0c;它決定了 MySQL 應遵循的 SQL 語法規則和數據驗證規則。 什么是 SQL Mode SQL Mode 定義了 MySQL 應該支持的 SQL 語法以及執行數據驗證的方式。通過設置不同的 SQL Mode&#xff0c;可以讓 MySQL 在不同程度上兼容其他數據…

Java bs架構/反射

bs架構 規定的格式是要換行&#xff0c;而打印流天然換行 線程池可以直接處理thread&#xff0c;thread繼承自runnable 在Java中&#xff0c;線程池的pool.execute()方法用于提交一個任務給線程池執行。這個方法接受一個Runnable對象作為參數。Runnable是一個函數式接口&…

C++手撕單鏈表及逆序打印

在學習數據結構的過程中&#xff0c;鏈表是一個非常重要的基礎數據結構。今天&#xff0c;我們將通過C手動實現一個單鏈表&#xff0c;并添加一個逆序打印的功能&#xff0c;幫助大家更好地理解鏈表的實現和操作。 一、鏈表簡介 鏈表是一種線性數據結構&#xff0c;其中每個元…

netty中的ChannelPipeline詳解

Netty中的ChannelPipeline是事件處理鏈的核心組件,負責將多個ChannelHandler組織成有序的責任鏈,實現網絡事件(如數據讀寫、連接狀態變化)的動態編排和傳播。以下從核心機制、執行邏輯到應用場景進行詳細解析: 1. 核心結構與組成 雙向鏈表結構 組成單元:ChannelPipeline…

智能物聯網網關策略部署

實訓背景 某智慧工廠需部署物聯網網關&#xff0c;實現以下工業級安全管控需求&#xff1a; 設備準入控制&#xff1a;僅允許注冊MAC地址的傳感器接入&#xff08;白名單&#xff1a;AA:BB:CC:DD:EE:FF&#xff09;。協議合規性&#xff1a;禁止非Modbus TCP&#xff08;端口…

前端-vue2核心

官網網址Vue2 安裝 — Vue.js 搭建環境 第一種方式&#xff08;剛開是接觸Vue&#xff09; 我們看官網&#xff0c;可以直接在script引入vue版本。這里有兩個版本&#xff0c;開發版和生產版本。我們兩個都下載。 然后創建一個項目&#xff0c;將下載的生產版本和開發版本粘…

【BUG】遠程連接阿里云服務器上的redis報錯

出現 Redis Client On Error: Error: connect ECONNREFUSED 47.100.XXX.XX:6379 錯誤&#xff0c;表明 Redis 客戶端無法連接到指定的 Redis 服務器&#xff0c;可按以下步驟排查解決&#xff1a; 1. 檢查 Redis 服務器是否運行 操作&#xff1a;在 Redis 服務器所在終端執行…

mongodb--用戶管理

文章目錄 MongoDB 用戶管理1. 連接到 MongoDB2. 用戶創建2.1 創建管理員用戶2.2 創建特定數據庫用戶2.3 常用內置角色 3. 用戶管理操作3.1 查看所有用戶3.2 查看特定用戶信息3.3 更新用戶密碼3.4 添加用戶角色3.5 移除用戶角色3.6 刪除用戶 4. 權限修改4.1 創建自定義角色4.2 將…

DeepSeek與搜索引擎:AI生成內容如何突破“語義天花板”

一、搜索引擎的“內容饑餓癥”與AI的“產能悖論” 2024年&#xff0c;全球每天新增470萬篇網絡文章&#xff0c;但搜索引擎的索引拒絕率高達68%。這一矛盾的根源在于&#xff1a;算法對“高質量原創”的定義已從“形式獨特性”轉向“認知增值性”。傳統AI生成內容&#xff08;…

YOLO目標檢測應用——基于 YOLOv8目標檢測和 SAM 零樣本分割實現指定目標分割

概述 在當前的計算機視覺領域&#xff0c;目標分割技術正變得越來越重要。市面上有許多分割模型&#xff0c;它們的工作原理大致相似&#xff0c;通常包括收集數據、配置模型以及訓練分割模型等步驟。最終目標是實現精確的目標分割。而隨著 SAM&#xff08;Segment Anything M…

在Flutter中使用BottomNavigationBar和IndexedStack可以實現一個功能完整的底部導航欄

在Flutter中&#xff0c;使用BottomNavigationBar和IndexedStack可以實現一個功能完整的底部導航欄。BottomNavigationBar用于顯示底部的導航按鈕&#xff0c;而IndexedStack則用于管理頁面的切換&#xff0c;確保每個頁面的狀態得以保留&#xff08;即頁面不會因為切換而重新構…

【10】數據結構的矩陣與廣義表篇章

目錄標題 二維以上矩陣矩陣存儲方式行序優先存儲列序優先存儲 特殊矩陣對稱矩陣稀疏矩陣三元組方式存儲稀疏矩陣的實現三元組初始化稀疏矩陣的初始化稀疏矩陣的創建展示當前稀疏矩陣稀疏矩陣的轉置 三元組稀疏矩陣的調試與總代碼十字鏈表方式存儲稀疏矩陣的實現十字鏈表數據標簽…

微服務篇——SpringCloud

服務注冊 Spring Cloud5大組件有哪些&#xff1f; 服務注冊和發現是什么意思&#xff1f;Spring Cloud如何實現服務注冊發現&#xff1f; nacos與eureka的區別 負載均衡 如何實現負載均衡&#xff1f; Ribbon負載均衡的策略有哪些&#xff1f; 如何自定義負載均衡的策略&…

【小沐雜貨鋪】基于Three.JS繪制三維數字地球Earth(GIS 、WebGL、vue、react,提供全部源代碼)

&#x1f37a;三維數字地球系列相關文章如下&#x1f37a;&#xff1a;1【小沐學GIS】基于C繪制三維數字地球Earth&#xff08;456:OpenGL、glfw、glut&#xff09;第一期2【小沐學GIS】基于C繪制三維數字地球Earth&#xff08;456:OpenGL、glfw、glut&#xff09;第二期3【小沐…

Cursor 在前端需求開發工作流中的應用|得物技術

一、引言 很高興與大家分享現階段 Cursor 在我的工作中的使用體驗。首先是預期管理&#xff0c;本篇文章不會分享 x 個你可能不知道的小技巧&#xff0c;也不會讓你擁有無需自行編碼的能力&#xff0c;同時不涉及 Cursor 工程化方面內容。僅僅是圍繞個人開發流程中的已有問題&…

PyQt學習記錄

PyQt學習記錄 要在界面上 創建一個控件&#xff0c;就需要在程序代碼中 創建 這個 控件對應類 地一個 實例對象。 在Qt系統中&#xff0c;控件&#xff08;widget&#xff09;是 層層嵌套 的&#xff0c;除了最頂層的控件&#xff0c;其他的控件都有父控件。 幾個函數 函數mo…

react: styled-components實現原理 標簽模版

styled-components是針對react中一個前端廣泛使用的css-in-js樣式庫B站 利用標簽模版 利用ES6中的 標簽模版文檔標簽模板其實不是模板&#xff0c;而是函數調用的一種特殊形式。“標簽”指的就是函數&#xff0c;緊跟在后面的模板字符串就是它的參數。 let a 5; let b 10;…

網絡安全應急響應之文件痕跡排查:從犯罪現場到數字狩獵的進化論

凌晨3點&#xff0c;某金融企業的服務器突然告警&#xff0c;核心數據庫出現未知進程訪問。安全團隊緊急介入時&#xff0c;攻擊者已抹去日志痕跡。在這場與黑客的時間賽跑中&#xff0c;文件痕跡排查成為破局關鍵。本文將帶您深入數字取證的"案發現場"&#xff0c;揭…

多模態大語言模型arxiv論文略讀(七)

MLLM-DataEngine: An Iterative Refinement Approach for MLLM ?? 論文標題&#xff1a;MLLM-DataEngine: An Iterative Refinement Approach for MLLM ?? 論文作者&#xff1a;Zhiyuan Zhao, Linke Ouyang, Bin Wang, Siyuan Huang, Pan Zhang, Xiaoyi Dong, Jiaqi Wang,…

idea插件:AICommit,智能生成Git提交信息

AICommit&#xff1a;智能生成Git提交信息的IDEA插件指南 一、AICommit插件介紹 AICommit是一款專為開發者設計的IntelliJ IDEA插件&#xff0c;它利用人工智能技術自動生成清晰、規范的Git提交信息(Commit Message)。該插件能夠分析你的代碼變更&#xff0c;理解修改的上下文…