大家好,我是 Ai 學(xué)習(xí)的老章
最近在看文檔處理方面的模型和工具,準(zhǔn)備寫個(gè)新系列,聚焦大模型文檔處理,記錄模型特性與功能,本地部署,實(shí)際測(cè)試。
我準(zhǔn)備了一個(gè)測(cè)試PDF文檔,其中包括:
2張單獨(dú)測(cè)試圖片
3個(gè)圖片形式數(shù)學(xué)公式
1段圖文
圖文中有:
3張圖片
2小段+1長(zhǎng)段代碼塊
一二三級(jí)標(biāo)題,加粗、引用、有序列表、無序列表、emoji、行內(nèi)代碼、分割線,下劃線
滿分10分,看看不同測(cè)試對(duì)象把整個(gè)pdf轉(zhuǎn)成markdown可以拿到多少分?(目前測(cè)試字節(jié)的Dolphin,感覺可以拿4分的樣子),具體如下:
測(cè)試圖片1(1分)
測(cè)試圖片2(1分)測(cè)試手寫公式1(1分):測(cè)試印刷公式2(1分)
測(cè)試復(fù)雜表格(1分)
測(cè)試圖文(5分)
大家好,我是 Ai 學(xué)習(xí)的老章
最近在看文檔處理方面的模型和工具,準(zhǔn)備寫個(gè)新系列,聚焦大模型文檔處理,記錄模型特性與功能,本地部署,實(shí)際測(cè)試。
本文,先看一個(gè)剛剛開源的 OCR 模型——Nanonets-OCR-s
簡(jiǎn)介
這個(gè)模型基于Qwen2.5-VL-3B
微調(diào)而來,可以理解輸入文檔(PDF、圖片等)結(jié)構(gòu)和內(nèi)容上下文(如表格、公式、圖像、圖表、水印、復(fù)選框等),輸出智能格式化的Markdown
內(nèi)容,可直接供大模型進(jìn)行下游處理。
特性與功能
LaTeX 方程識(shí)別:自動(dòng)將數(shù)學(xué)方程和公式轉(zhuǎn)換為正確格式的 LaTeX 語法。它可以區(qū)分內(nèi)聯(lián) (
$...$
) 和顯示 ($$...$$
) 方程智能圖像描述:使用結(jié)構(gòu)化的標(biāo)簽描述文檔中的圖像,使其易于 LLM 處理。它可以描述各種類型的圖像,包括徽標(biāo)、圖表等,并詳細(xì)說明其內(nèi)容、風(fēng)格和上下文。
簽名檢測(cè)與隔離:從其他文本中識(shí)別并隔離簽名,并將其放在
水印提取:檢測(cè)并從文檔中提取水印文本,并將其放在
智能復(fù)選框處理:將表單中的復(fù)選框和單選按鈕轉(zhuǎn)換為標(biāo)準(zhǔn)化的 Unicode 符號(hào) (
?
,?
,?
),以實(shí)現(xiàn)一致且可靠的處理。復(fù)雜表格提取:準(zhǔn)確地從文檔中提取復(fù)雜表格,并將其轉(zhuǎn)換為 Markdown 和 HTML 表格格式。
模型文件只有不到 8GB
https://modelscope.cn/models/nanonets/Nanonets-OCR-s/files下載模型
pip install modelscope mkdir nanonets-ocr cd nanonets-ocr modelscope download --model nanonets/Nanonets-OCR-s --local_dir .
啟動(dòng) vLLM 服務(wù)器pip install vllm vllm serve . --model_name nanonets-ocr --port 8000
我不確定最低 vllm 版本,親測(cè) 0.8.5 是不行的,升級(jí)到 0.9.1 后啟動(dòng) ok
模型加載時(shí)飛速的,vllm 內(nèi)部變異和圖優(yōu)化過程 1 分鐘
顯存占用主要是模型權(quán)重和 KV 緩存,差不多 9GB
看到下面這個(gè)就說明啟動(dòng)成功了
使用模型,官方給出了參考代碼(把 localhost:8000 才成實(shí)際運(yùn)行的端口號(hào)即可):
from openai import OpenAI import base64 client = OpenAI(api_key="123", base_url="http://localhost:8000/v1") model = "nanonets/Nanonets-OCR-s" def encode_image(image_path): with open(image_path, "rb") as image_file: return base64.b64encode(image_file.read()).decode("utf-8") def ocr_page_with_nanonets_s(img_base64): response = client.chat.completions.create( model=model, messages=[ { "role": "user", "content": [ { "type": "image_url", "image_url": {"url": f"data:image/png;base64,{img_base64}"}, }, { "type": "text", "text": "Extract the text from the above document as if you were reading it naturally. Return the tables in html format. Return the equations in LaTeX representation. If there is an image in the document and image caption is not present, add a small description of the image inside the tag; otherwise, add the image caption inside . Watermarks should be wrapped in brackets. Ex: OFFICIAL COPY . Page numbers should be wrapped in brackets. Ex: 14 or 9/22 . Prefer using ? and ? for check boxes.", }, ], } ], temperature=0.0, max_tokens=15000 ) return response.choices[0].message.content test_img_path = "/path/to/your/document.jpg" img_base64 = encode_image(test_img_path) print(ocr_page_with_nanonets_s(img_base64))
圖形界面官方還提供了一個(gè)本地文檔智能工具包——docext:https://github.com/NanoNets/docext
提供三大核心功能:
PDF 及圖片轉(zhuǎn) Markdown 轉(zhuǎn)換:通過智能內(nèi)容識(shí)別將文檔轉(zhuǎn)化為結(jié)構(gòu)化 Markdown,支持 LaTeX 公式、簽名、水印、表格及語義標(biāo)簽處理。
文檔信息提取:無需 OCR 技術(shù)即可從發(fā)票、護(hù)照等各類文檔中提取結(jié)構(gòu)化信息(字段、表格等),并提供置信度評(píng)分。
智能文檔處理排行榜:一個(gè)綜合性基準(zhǔn)測(cè)試平臺(tái),用于追蹤和評(píng)估視覺語言模型在 OCR、關(guān)鍵信息提取 (KIE)、文檔分類、表格提取等智能文檔處理任務(wù)中的性能表現(xiàn)。One More Thing
模型基于 Qwen2.5-VL-3B-Instruct,完全可以商用,免費(fèi)。
7b 版本正在路上
這家公司蠻有意思的,它還做過一個(gè)用大模型改寫簡(jiǎn)歷的工具:https://resume.nanonets.com/
制作不易,如果這篇文章覺得對(duì)你有用,可否點(diǎn)個(gè)關(guān)注。給我個(gè)三連擊:點(diǎn)贊、轉(zhuǎn)發(fā)和在看。若可以再給我加個(gè),謝謝你看我的文章,我們下篇再見!
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(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.