跳到主要內容
maxstudioNews
產品Hugging Face Blog約 7 分鐘

Dharma Field Extractor:高效文件欄位擷取,成本更低、效能更優

Dharma Field Extractor 是一個 20 億參數的模型,能從任何文件類型中精確擷取使用者指定的欄位,並以結構化 JSON 格式輸出。該模型在測試中超越了所有主流大型語言模型(LLM),同時成本僅為其一小部分。這項技術證明了小型專業模型在特定任務上,能比通用型 LLM 提供更高的品質和更低的營運成本。

Dharma Field Extractor:高效文件欄位擷取,成本更低、效能更優
圖片來源:Hugging Face Blog

Dharma Field Extractor 是一個 20 億參數的模型,能從任何文件類型中精確擷取您所要求的欄位,其效能超越了我們測試過的所有主流 LLM,且成本僅為其一小部分。

今年四月,我們發布了 DharmaOCR-LITE,這是一個專門用於處理各種文件的 OCR 模型,涵蓋了從合約、法院文件到發票、身分證件和表格等。其背後的研究論文為領域專業化提供了明確且經過驗證的案例:一個針對特定任務訓練的小型模型,在該任務上能擊敗通用型主流 API。

OCR 能忠實地擷取頁面上的文字,保留原始格式。當您需要處理整個文件時,例如需要從頭到尾閱讀的合約,或是正在數位化的手稿,這正是您所需要的。

然而,還有另一種使用情境:您不需要整個頁面,而是需要從中擷取特定欄位,並以能被下游系統使用的格式呈現。例如,將發票上的每個明細項目作為一個清單,或從醫療申請單中擷取病患姓名、檢查類型和日期,以便排程。又或是將身分證件上的欄位對應到員工記錄的資料庫欄位。

將文件透過 OCR 處理後,您會得到所有列印在上面的內容,逐行呈現,卻沒有任何指示說明哪個字串是檢查類型、哪個是日期,或是哪個數字是總金額。在資料進入資料庫之前,仍然需要有人編寫程式碼,將每個值對應到正確的欄位。

現今,通用型 LLM 透過仔細的提示詞(prompting)也能完成這項工作。然而,以主流 API 的定價和延遲時間來看,對於許多企業需要大量執行的任務而言,這很快就會變成解決一個明確問題的昂貴方式。

因此,我們轉而建立了一個專門的模型。Field Extractor 接收文件影像,並根據要求擷取所有能找到的內容,或是填入一個精確的 schema,然後回傳結構化的 JSON:包含類型、逐欄位呈現,並在文件有巢狀結構時也呈現巢狀。例如,發票會以有序清單的形式回傳每個明細項目,每個項目都有其數量和價值,以及總計。

身分證件則會以您系統中已使用的名稱,回傳您要儲存的欄位。同一個檢查點(checkpoint)能處理所有這些任務,無需針對每種類型進行微調(fine-tuning)。

您可以點擊這裡親自試用。

模型功能

假設每天早上都會收到一批供應商發票,您需要從每張發票中擷取四項資訊以匯入您的系統:供應商、發票號碼、到期日和總金額。醫療申請單進入排程系統,或合約輸入合規系統時,情況也類似,重要的是當事人、條款、罰則和罰款金額。您不需要整個頁面,您只需要特定的欄位。使用 Field Extractor 有兩種方式來要求這些欄位:

開放模式(Open):不提供 schema。模型會根據上下文和版面配置,而非固定的欄位名稱清單,讀取頁面並判斷哪些部分是結構化欄位(例如標籤後跟一個值,或帶有標題行的表格),並將所有找到的內容以鍵值對(key-value pairs)的形式回傳。

Schema 指導模式(Schema-directed):您指定所需的確切結構,逐欄位定義,並為每個欄位指定類型(字串、數字或布林值),使用您系統中已有的鍵名。例如,要求「service_provider」和「client_company」,回傳的鍵名就會是這些。要求一個表格,它會逐行、逐欄地填寫,將每個單元格對應到其所屬的鍵。如果要求文件上不存在的欄位,它會回傳 null 而非憑空捏造一個值。

選擇哪種模式取決於您已知的資訊。當您不知道文件包含什麼內容時,請發送開放請求。當輸出必須符合其他地方已存在的結構時,請發送 schema 請求。

無論哪種方式,回傳的都是 JSON:欄位作為鍵,值按照要求進行類型化,如果文件中沒有您要求的內容,則回傳 null。當您發送 schema 時,輸出會完全遵循它,使用相同的鍵且沒有額外欄位,因此可以直接進入下一個系統。

訓練方式

基礎模型是 DharmaOCR-LITE v1.1,這是一個新的 20 億參數版本,從論文中的模型進行了優化,並透過監督式微調(supervised fine-tuning)和 DPO(Direct Preference Optimization)專門用於 OCR。在此檢查點之上,我們在涵蓋兩種請求模式的 43,384 個訓練範例上訓練了一個 LoRA adapter。

資料分為三個流:

英文多領域資料:從公共網路收集的多樣化文件,涵蓋多種文件類型。

巴西領域資料:內部來源的真實巴西文件,使用葡萄牙語。

多語言資料:較小比例的資料涵蓋其他歐洲和亞洲語言,以實現超越英語和葡萄牙語的更廣泛泛化能力。

所有三個資料流都在欄位層級進行了註釋。資料混合刻意涵蓋多個領域:收據、商業發票、表格、銀行對帳單、身分證件和合成文件,而非單一文件類型。

基準測試的界線

完整的基準測試涵蓋 546 份文件,分為三種請求情境,總計 1,638 個案例:不帶 schema 擷取所有欄位、部分 schema 僅命名真實欄位,以及包含故意不存在欄位的 schema。分數是欄位層級的 F1 分數(按路徑匹配,包括表格內的位置),乘以匹配值的 Levenshtein 相似度,再乘以回傳有效 JSON 的輸出比例。

我們針對四種通用型主流配置進行了相同的基準測試。

與通用型 LLM 相比,品質差距從 1.8 分(最接近的 Claude Opus 5)到 9.3 分(差距最大的 GPT-5.6 Luna)。

成本方面,大約從低 6 倍(GPT-5.6 Luna)到低 147 倍(GPT-5.6 Sol)。這兩者的定價方式不同。主流模型的數據來自每頁測量的平均輸入和輸出 token 數,包括推理 token,並根據每個供應商發布的定價計算。每個主流模型都設定為低推理;Claude Opus 5 使用自適應努力,可以在較簡單的頁面上跳過推理,同時保持在低水準。

我們的模型不是按 token 計費:該模型是自託管運行的,因此數字是單個 L40S GPU 每小時 2.24 美元的 GPU 時間。

這不是銷售價格。自託管成本取決於每個部署所需的硬體、處理量和延遲。此比較旨在表明,部署在您自己基礎設施上的主權 SSLM(專用小型語言模型)是主流 API 的真正替代方案。

泛化能力測試

SROIE 和 FUNSD 是我們基準測試中的兩個公開資料集,並未用於訓練。以下是每個資料集的一個範例。

在一張 SROIE 收據上,我們要求擷取上面列印的所有 18 個欄位,這次沒有虛擬欄位,每個欄位都正確回傳:多行、未標記的帳單地址被擷取為單一欄位,兩個空白欄位(銷售人員和參考)正確回傳為 null,收據上的每個數字都精確到分。

在一份 FUNSD 影印差異表上,這是一個包含十二個布林值欄位的清單,其中一個巢狀組包含五個子選項,模型將唯一被勾選的方框(原始品質差,旁邊有手寫的「褪色」備註)精確標記為 true,其他十一個標記為 false,與表格完全匹配。它還正確讀取了頁面上的手寫 Bates ID,並為兩個空白欄位回傳 null。

同時兼顧品質與成本

一個 20 億參數的模型得分為 0.834,高於我們測試過的所有主流配置,從 Claude Opus 5 的 0.816 到 GPT-5.6 Luna 的 0.741,同時在單個 L40S 上運行,每次擷取的成本低於比較中的所有 API。在相同的基準測試中,以相同的運行方式,實現了更高的品質和更低的成本。

這不是我們第一次測量到這種結果。我們的 OCR 論文將第一個 DharmaOCR-LITE(一個 30 億參數的模型)的表現置於所有測試過的巴西葡萄牙語商業主流 API 之上;三個月後,更新、資源更好的模型問世,但差距依然存在。現在,一個 20 億參數的模型在欄位擷取方面也做到了。

每個結果都為我們創立 Dharma-AI 時的論點增加了證據:在一個有界任務上,一個針對該任務訓練的小型模型,能擊敗被要求執行相同通用任務的主流模型。在此基準測試中,其運行成本也降低了 6 到 147 倍。

參數數量設定了上限;訓練決定了模型在您的任務上能達到多少潛力。您的業務不需要最大的模型,它需要一個為您的問題而訓練的模型。

點擊這裡在您自己的文件上試用。要了解更多關於 Dharma-AI 和我們建立的專業模型,請訪問 dharma-ai.com。

Share

覺得值得一看?分享給朋友。

以上為 AI 自動翻譯導讀。原文版權歸 Hugging Face Blog 所有, 建議透過「閱讀原文」前往原始網站,以取得最完整資訊並支持原作者。

Newsletter

不用每天追,AI 重點每週寄給你

43 個來源、每 2 小時更新,太多看不完。電子報每週挑最值得看的幾則,附上 Max 的看法。

每週一封。Email 只用來寄電子報,每封信都能一鍵退訂。