簡(jiǎn)介
2025 年 5 月,字節(jié)跳動(dòng)在 Hugging Face 平臺(tái)上低調(diào)發(fā)布了名為 Dolphin(Document Image Parsing via Heterogeneous Anchor Prompting)的文檔圖像解析模型。該模型專(zhuān)注于解決復(fù)雜文檔理解的挑戰(zhàn),采用創(chuàng)新的兩階段分析 - 解析范式,能夠高效處理包含文本段落、圖表、公式和表格等交織元素的復(fù)雜文檔。
核心技術(shù)亮點(diǎn) 兩階段解析范式
Dolphin 模型采用獨(dú)特的兩階段方法來(lái)解決文檔圖像解析的復(fù)雜挑戰(zhàn):
頁(yè)面級(jí)布局分析:生成按自然閱讀順序排列的元素序列,全面分析整個(gè)頁(yè)面布局
并行元素解析:利用異構(gòu)錨點(diǎn)和任務(wù)特定提示,高效并行解析文檔中的各個(gè)元素
模型創(chuàng)新性地引入了"異構(gòu)錨點(diǎn)提示"(Heterogeneous Anchor Prompting)技術(shù),能夠針對(duì)不同類(lèi)型的文檔元素(如段落、表格、公式等)使用特定的處理方式,大幅提升解析精度。
輕量級(jí)高效架構(gòu)
Dolphin 通過(guò)輕量級(jí)架構(gòu)和并行解析機(jī)制確保了卓越的效率,同時(shí)在各種頁(yè)面級(jí)和元素級(jí)解析任務(wù)中實(shí)現(xiàn)了出色的性能表現(xiàn)。
技術(shù)架構(gòu)
Dolphin 基于視覺(jué)編碼器 - 解碼器架構(gòu),使用變換器(Transformer)技術(shù):
視覺(jué)編碼器:基于 Swin Transformer,用于從文檔圖像中提取視覺(jué)特征
文本解碼器:基于 MBart,用于從視覺(jué)特征中解碼文本
提示式接口:使用自然語(yǔ)言提示控制解析任務(wù)
該模型作為 Hugging Face 的 VisionEncoderDecoderModel 實(shí)現(xiàn),便于與 Transformers 生態(tài)系統(tǒng)集成。
應(yīng)用場(chǎng)景
Dolphin 模型在以下場(chǎng)景中具有廣泛應(yīng)用潛力:
智能文檔處理:自動(dòng)化提取和組織文檔中的信息
學(xué)術(shù)論文分析:解析包含復(fù)雜公式、圖表和表格的科學(xué)文獻(xiàn)
金融文檔處理:處理包含表格和數(shù)據(jù)的財(cái)務(wù)報(bào)告
法律文檔分析:解析結(jié)構(gòu)化的法律文件和合同
技術(shù)文檔轉(zhuǎn)換:將技術(shù)手冊(cè)和規(guī)范轉(zhuǎn)換為結(jié)構(gòu)化數(shù)據(jù)
Dolphin 模型支持兩種主要的解析模式:
頁(yè)面級(jí)解析:處理整個(gè)文檔圖像
元素級(jí)解析:針對(duì)文檔中的特定元素(段落、表格、公式等)進(jìn)行解析
詳細(xì)的使用方法和示例代碼可在ByteDance 的 GitHub 倉(cāng)庫(kù)[1]中找到。
頁(yè)面級(jí)解析示例
from transformers import VisionEncoderDecoderModel, AutoTokenizer, AutoFeatureExtractor
from PIL import Image
# 加載模型和相關(guān)組件
model = VisionEncoderDecoderModel.from_pretrained("ByteDance/Dolphin")
tokenizer = AutoTokenizer.from_pretrained("ByteDance/Dolphin")
feature_extractor = AutoFeatureExtractor.from_pretrained("ByteDance/Dolphin")
# 加載文檔圖像
image = Image.open("document.png")
# 提取特征
pixel_values = feature_extractor(images=image, return_tensors="pt").pixel_values
# 生成頁(yè)面級(jí)解析結(jié)果
outputs = model.generate(
pixel_values,
max_length=1024,
num_beams=4,
early_stopping=True
)
# 解碼輸出
result = tokenizer.decode(outputs[0], skip_special_tokens=True)
print(result)
參考資料
ByteDance 的 GitHub 倉(cāng)庫(kù): https://github.com/bytedance/Dolphin
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶(hù)上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.