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 模型支持的所有要素:
- 代碼列表:識別和解析代碼片段,包括縮進和行號等細節。
- 表格:識別表格結構,包括單元格合并、表頭信息等。
- 公式:識別和解析數學公式,支持 LaTeX 格式。
- 圖表:識別圖表并將其轉換為表格形式。
- 列表:識別有序列表和無序列表,支持嵌套列表。
- 頁眉和頁腳:識別頁面的頁眉和頁腳內容。
- 圖片:識別圖片并提供分類信息。
- 段落文本:識別普通文本內容,包括換行和格式。
- 標題:識別文檔中的標題和章節標題。
- 腳注:識別腳注內容。
- 文檔索引:識別文檔索引部分。
- 化學分子結構:識別化學分子圖像并轉換為 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-4o、Gemini 和 Claude 3.5 等專有模型展示了在多種模態(包括視覺)上的卓越能力。
- 開源方法:
- BLIP-2:最早將視覺編碼器與凍結的大型語言模型(如 OPT 或 FlanT5)結合,使用輕量級的 Q-former。
- MiniGPT-4:在 BLIP-2 的基礎上,將凍結的視覺編碼器與凍結的 LLM(如 Vicuna)結合,使用 Q-Former 網絡和單個投影層。
- LLaVA:使用最小的適配層,結合視覺編碼器和 LLM。
- LLaVA-OneVision 和 LLaVA-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