廣州做網(wǎng)店哪個網(wǎng)站批發(fā)網(wǎng)百度查詢最火的關鍵詞
作者:宋文欣,智領云科技聯(lián)合創(chuàng)始人兼CTO
01 簡介
大語言模型(LLMs)正逐漸成為人工智能領域的一顆璀璨明星,它們的強大之處在于能夠理解和生成自然語言,為各種應用提供了無限可能。為了讓這些模型更好地服務于實際業(yè)務場景,我們引入了檢索增強生成(RAG)技術。RAG 技術將各種文檔類型轉(zhuǎn)換成 LLMs 易于解讀的格式,通過結(jié)合檢索和生成的方式,極大地提升了模型處理復雜任務的能力,尤其是在處理需要廣泛知識和理解的長文本時表現(xiàn)得尤為出色。
PDF 文檔作為信息傳遞的重要載體,其內(nèi)容的抽取和理解對于實現(xiàn)高質(zhì)量的 RAG 輸出至關重要。要充分發(fā)揮RAG技術的潛力,我們需要解決一個關鍵問題:如何高效地解析和提取PDF文檔中的信息。PDF 的文檔格式使用廣泛,結(jié)構復雜且多樣,給自動化解析帶來了不小的挑戰(zhàn)。隨著技術的進步,我們有了多種工具來應對這一挑戰(zhàn)。本文將帶你了解如何在 Docker 容器中運行三個業(yè)界領先的PDF解析器:LLMSherpa、Unstructured和LlamaParse。
本文將演示如何在容器化環(huán)境中快速部署和使用,完成從環(huán)境搭建到PDF解析器選擇的全過程:
LLMSherpa[1]
Unstructured[2]
LlamaParse[3]
本文還對關鍵的技術要點和實踐經(jīng)驗進行總結(jié),通過本文的閱讀,將對 RAG 技術在 LLMs 中的應用有一個全面的認識,無論是 LLMSherpa 的高效性,Unstructured 的靈活性,還是 LlamaParse 的穩(wěn)定性,我們都將為您提供全面的比較和深入的分析,幫助選擇最適合需求的 PDF 解析器。
02 技術背景
LLMSherpa
LLMSherpa 提供了一個免費的 API 服務器,用于解析各種類型的 PDF文件,同時還支持在私有服務器上托管,確保數(shù)據(jù)的安全性和隱私性。LayoutPDFReader(基于規(guī)則的解析器),作為 LLMSherpa 的核心組件之一,使用來自修改版的 Tika 的文本坐標(邊界框)、圖形和字體數(shù)據(jù),以極高的精度解析 PDF 文件中的文本和布局。
在本次演示中,我們將展示如何在 Docker 容器中運行一個自托管的 LLMSherpa API 服務器,在自己的環(huán)境中輕松處理 PDF 文件。
Unstructured
Unstructured 是 unstructured.io 提供的開源庫,用于攝取和預處理包括 PDF、HTML、Word 文檔等格式在內(nèi)的圖像和文本文檔,極大地簡化了從文檔中提取有價值信息的過程。Unstructured 還提供了一個免費的 API 服務,允許用戶免費處理高達 1000 頁的文檔。
本文演示中,我們將重點關注如何獨立使用 Unstructured 的開源庫進行文檔處理,而不依賴其 API 服務。用戶可以在自己的服務器上部署和使用這個強大的庫,享受數(shù)據(jù)處理的靈活性和自主性。
LlamaParse
LlamaParse 是由 LlamaIndex 推出的 API,旨在高效解析和呈現(xiàn)文件內(nèi)容,進而配合LlamaIndex 框架實現(xiàn)快速檢索和上下文增強。截至 2024年2月26日,這項服務目前處于免費預覽階段,且只專注于支持 PDF 格式文件的處理。
03 成果展示
RAG 技術使得模型能夠通過解析不同領域的 PDF 文檔,適應各種領域的查詢,增加了模型的應用范圍和靈活性。通過直接從 PDF 文檔中檢索信息,可以減輕對 LLMs 進行大規(guī)模、跨領域訓練的需求,降低訓練成本。在提高回答的準確性和信息的豐富度的同時,為特定用戶群體提供更加個性化和深度的信息服務。
本示例演示步驟如下:
(1) PDF 文件上傳
用戶通過界面,上傳需要解析的 PDF 文件
(2) 選擇解析類型
本實例運行了三個業(yè)界領先的PDF解析器:LLMSherpa、Unstructured 和 LlamaParse,可供用戶選擇,本文以 LLMSherpa 為例:
LLMSherpa:適用于需要精確文本定位和布局分析的高級文檔處理任務,如文本的具體位置、字體大小和樣式等。
Unstructured:支持多種文檔類型的解析,適合需要統(tǒng)一處理多種格式文檔的應用場景,如文檔管理系統(tǒng)、內(nèi)容抽取和索引建立等。
LlamaParse:適合在需要進行大規(guī)模文檔檢索和分析的場景,如需要從大量PDF文檔中檢索信息并進行上下文增強的應用場景等。
(3) PDF 文本解析?
向 LLMSherpa 的 API 發(fā)送解析請求,包括要解析的 PDF 文檔。
(4) 結(jié)果展示
LLMSherpa 處理完畢,會返回響應,其中包含解析結(jié)果。根據(jù) LLMSherpa 的設計,其響應可包含文本內(nèi)容、邊界框(文本的位置信息)、圖形和字體數(shù)據(jù)等。本示例中為文本內(nèi)容:
(5) 后續(xù)處理
得到解析結(jié)果后,可以根據(jù)項目需求對這些數(shù)據(jù)進行進一步的處理。如將文本內(nèi)容輸入到大型語言模型中進行語義分析,或者使用邊界框信息來重構文檔的視覺布局等。
04?操作步驟
前置條件
1. 操作系統(tǒng):應與大多數(shù) Linux 發(fā)行版兼容,并已在 Ubuntu 22.04 上進行了測試。
2. Docker:系統(tǒng)上必須安裝有 docker。具體來說,我們已經(jīng)在 Ubuntu 22.04 上使用 Docker Engine 社區(qū)版 25.0.1 測試了這個演示。
3. OpenAI API 密鑰(可選):如果希望在此演示中使用 ChatGPT 功能,需要 OpenAI API 密鑰。請注意,此 API 的使用受 OpenAI 的定價和使用政策的約束。我們使用 OpenAI 文本生成模型來優(yōu)化解析某些特殊組件(如標題或表格等)。沒有這個 API 密鑰,仍然可以嘗試所有三種方法。
4. LlamaParse API 密鑰:如果希望嘗試新推出的 LlamaParse API 服務,需要從 其網(wǎng)頁門戶獲取 API 密鑰。沒有這個 API 密鑰,將無法嘗試 LlamaParse。
本機電腦(Mac,非GPU配置,已安裝 Docker)
以下是在 本機電腦(Mac,非GPU配置,已安裝 Docker) 上啟動演示的操作指南:
1. 選擇合適路徑,右鍵 Open in Terminal,輸入如下命令克隆倉庫:
git clone https://github.com/LinkTime-Corp/llm-in-containers.git
cd llm-in-containers/pdf2md
2.若需要使用 OpenAI 的模型進行推理,將您的OpenAI API 密鑰設置到conf/config.json的“OPENAI_API_KEY”中,包括:替換API 密鑰 ‘{your-openai-api-key}’ 和 ‘{your-llamaparse-api-key}’ ,使用以下的命令:
export OPENAI_API_KEY={your-openai-api-key}
export LLAMAPARSE_API_KEY={your-llamaparse-api-key}
如果用戶的OpenAI 未進行訂閱,這里則需要修改model為:"OPENAI_API_MODEL": "gpt-3.5-turbo",
3.打開 Docker Desktop
4.啟動演示:
bash run.sh
5.訪問 http://localhost:8501/ 上的用戶界面
在用戶界面上,您可以選擇“LLMSherpa”,“Unstructured”或“LlamaParse”來解析上傳的PDF文件
6.關閉演示
bash shutdown.sh
在阿里云/AWS服務器運行
過程類似,詳情可參見完整博客內(nèi)容:https://blog.gopenai.com/running-pdf-parsers-in-docker-containers-5e7a7ed829c8
05 要點筆記
PDF解析器選擇
在選擇PDF解析器時,不僅要考慮敏感信息的處理、成本因素,還需要評估各種工具的準確性和兼容性等。通過在實際文件上進行測試和評估,結(jié)合對不同場景的理解,選擇或組合最適合您需求的解析器。
敏感信息處理:如果 PDF 文件包含敏感信息,并且對數(shù)據(jù)的安全性和隱私性有較高要求,在私有服務器上使用開源解決方案可能是最佳選擇。LLMSherpa 和 Unstructured 都可在私人服務器上部署的開源 PDF 解析器,可以為處理敏感文檔提供更高的安全保障。
成本考慮:如果對成本較為敏感,且 PDF 文件不包含敏感信息,那么可以考慮使用LlamaParse 或 ChatDoc。LlamaParse 目前提供免費的預覽模式,而ChatDoc 雖然需要申請獲得使用權限,但可能在未來推出收費的高級服務。
準確性和兼容性:目前沒有任何工具或服務能夠保證 100% 準確無誤地解析所有 PDF 文件。PDF 格式的復雜性意味著解析器在處理不同結(jié)構或布局的文檔時可能遇到挑戰(zhàn)。因此,可以在特定的文件上測試不同的解析器,以確定哪個工具在準確性和功能性方面最能滿足需求。
混合使用方案:可以在處理非敏感信息時使用LlamaParse 或 ChatDoc,而對于需要更高安全性的敏感文檔,則轉(zhuǎn)而使用 LLMSherpa 或Unstructured。
LLMSherpa:解析PDF文件以及層次布局信息
LLMSherpa 的 LayoutPDFReader 提供了一種高效的方法來解析 PDF 文件及其層次布局信息,利用其“智能分塊”技術,能夠識別文檔中的不同部分和小節(jié)以及它們的嵌套結(jié)構,將文本行合并成連貫的段落并建立部分之間的聯(lián)系。?
盡管在大多數(shù)情況下 LayoutPDFReader 的性能表現(xiàn)出色,但也存在一些限制,如某些部分可能不會被正確地分類。對于需要 PDF 文件中信息的上下文感知分塊,同時能夠接受偶爾出現(xiàn)的分類不準確情況的 LLM 應用,LLMSherpa 的 LayoutPDFReader 成為了一個值得嘗試的選項。
Unstructured:使用正確的模型來檢測PDF文檔中的元素
在處理PDF文檔時,正確選擇用于檢測文檔中元素的模型,將直接影響到文檔解析的效率和準確性。Unstructured Python 庫提供了幾種不同的模型選項,以適應不同的需求和應用場景:
detectron2_onnx:是基于Facebook AI的計算機視覺模型,使用ONNX Runtime,提供了快速的對象檢測和分割能力。如果主要關注點是速度,并且需要高效的對象檢測功能,detectron2_onnx 可以是最佳選擇。
yolox:是基于YOLOv3并且進行了優(yōu)化的單階段實時對象檢測器,使用了DarkNet53作為主干網(wǎng)絡。適用于需要實時對象檢測同時關注模型準確度的場景。
yolox_quantized:它的運行速度比 YoloX 快,其速度更接近Detectron2。如果尋找一個既快速又相對準確的解決方案,yolox_quantized 是一個不錯的選擇。
chipper (beta version):chipper 是 Unstructured 內(nèi)置的圖像到文本模型,基于Transformer 架構的視覺文檔理解(VDU)模型。適用于需要從圖像中提取文本并進行深度理解的復雜應用場景。由于它還處于beta版本,可能需要進一步的測試和調(diào)整以滿足特定的需求。
您還可以參考此文檔https://unstructured-io.github.io/unstructured/best_practices/models.html#bring-your-own-models,將定制模型引入到這個庫。
06?鏈接
本文Github 鏈接:
https://github.com/LinkTime-Corp/llm-in-containers/tree/main/pdf2md
博客原文:
https://blog.gopenai.com/running-pdf-parsers-in-docker-containers-5e7a7ed829c8
[1] LLMSherpa
https://github.com/nlmatics/llmsherpa
[2]?Unstructured
https://github.com/Unstructured-IO/unstructured
[3]?LlamaParse
https://github.com/run-llama/llama_parse
作者:宋文欣,智領云科技聯(lián)合創(chuàng)始人兼CTO
武漢大學計算機系本科及碩士,美國紐約州立大學石溪分校計算機專業(yè)博士。曾先后就職于Ask.com和EA(電子藝界)。在Ask.com期間,擔任大數(shù)據(jù)部門技術負責人及工程經(jīng)理,使用Hadoop集群處理實時搜索數(shù)據(jù),形成全球規(guī)模領先的Search Ads Arbitrage用戶;在EA期間,擔任數(shù)字平臺部門高級研發(fā)經(jīng)理,從無到有組建EA數(shù)據(jù)平臺團隊,建設公司大數(shù)據(jù)平臺,為EA全球工作室提供數(shù)據(jù)能力支持。
2016年回國聯(lián)合創(chuàng)立智領云科技有限公司,組建智領云技術團隊,開發(fā)了BDOS大數(shù)據(jù)平臺操作系統(tǒng)。
- Fin -?
更多精彩推薦
容器中的大模型(二) | 利用大模型,使用自然語言查詢SQL數(shù)據(jù)庫
容器中的?模型(一)| ?三行命令,大模型讓Excel直接回答問題
開篇語 | 容器中的?模型 (LLM in Containers)
👇點擊閱讀原文,訪問中文博客原文