自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

多模態(tài)大模型在表格解析任務(wù)上效果如何?親身經(jīng)歷全是淚!

發(fā)布于 2025-1-14 12:31
瀏覽
0收藏

大家好,我是劉聰NLP。

前段時間一直都在嘗試用多模態(tài)大模型進(jìn)行落地應(yīng)用,除了問答之外,那么最容易想到的就是文檔解析了。一來多模態(tài)大模型本身就有強(qiáng)大的OCR功能,二來知識加工對于大模型落地來說也是重中之重,三來現(xiàn)在很多文檔拆解的API或者項目,效果都沒有那么理想吧,比如:夾雜公式的文本、復(fù)雜表格等。

思路是不是很正,于是乎我就嘗試用多模態(tài)大模型進(jìn)行表格解析的任務(wù)了。結(jié)果就是:全是眼淚!痛,太痛了!

今天此貼主要是分享一下個人的慘痛經(jīng)歷,還有一些實測結(jié)果。

懶人版:

  • 多模態(tài)大模型做表格解析任務(wù),對于簡單表格效果很好,但對于帶合并單元格的表格和長表,效果很差;
  • 即使是現(xiàn)在頂尖的閉源模型GPT4-o、Claude3.5的效果也不是好,不可用;
  • 多模態(tài)大模型對于表格復(fù)雜程度的定義,與傳統(tǒng)方法對復(fù)雜的定義不同;
  • 多模態(tài)大模型輸出md格式要比html更好,但復(fù)雜表格md根本展現(xiàn)不出來;
  • 訓(xùn)練了10B以下的VLM,效果提升不明顯,對于復(fù)雜表格效果依舊亂七八糟,也許是2w數(shù)據(jù)(機(jī)器有限)不夠?

下面詳細(xì)介紹測試結(jié)果(附各種模型的測試)、個人測試方法說明和一些亂七八糟想說的。

先疊甲,做的時間不是很長,訓(xùn)練也嘗試過,效果不理想,也歡迎大家評論區(qū)討論,或給予指點。言外之意,不喜勿噴?。?!

各種裸模的測試效果

私下測試的模型和數(shù)據(jù)比較多,這里主要展示GPT4-o、Claude-3.5、Qwen2-VL-7B、MiniCPM2.6-V、InternVL-2.5-8B、Qwen2-VL-72B。

個人覺得GPT4-o、Claude-3.5可能是閉源上限,而Qwen2-VL-7B、MiniCPM2.6-V、InternVL-2.5-8B是在可本地化部署范圍內(nèi)的模型(雖然依舊很重,但還可以接受),Qwen2-VL-72B是開源模型的上限。

測試1:

多模態(tài)大模型在表格解析任務(wù)上效果如何?親身經(jīng)歷全是淚!-AI.x社區(qū)圖片

你覺得這個表格難嗎?從直觀感覺上來看,其實是不難的,內(nèi)容不多,表格規(guī)則,主要難點在于有合并單元格。我測試過一些開源的傳統(tǒng)模型,有的是可以識別對的,但是在大模型這邊,總是有瑕疵。只有Claude3.5-sonnet對了,GPT4-o也沒對,7B級別開源模型更是一塌糊涂。

多模態(tài)大模型在表格解析任務(wù)上效果如何?親身經(jīng)歷全是淚!-AI.x社區(qū)圖片

測試2:

多模態(tài)大模型在表格解析任務(wù)上效果如何?親身經(jīng)歷全是淚!-AI.x社區(qū)圖片

這個比上一個有一些難度,主要是字多了一點,然后合并單元的不錯有交錯(6、7行的2、4列),多模態(tài)大模型們?nèi)姼矝]。

多模態(tài)大模型在表格解析任務(wù)上效果如何?親身經(jīng)歷全是淚!-AI.x社區(qū)

測試3:

多模態(tài)大模型在表格解析任務(wù)上效果如何?親身經(jīng)歷全是淚!-AI.x社區(qū)圖片

這個確實有點難了,我看著都有點眼暈了,依舊全軍覆沒。

多模態(tài)大模型在表格解析任務(wù)上效果如何?親身經(jīng)歷全是淚!-AI.x社區(qū)圖片

我這里并不是為了證明多模態(tài)大模型的效果有多差,而故意貼的效果很差的圖,而是在復(fù)雜表格和長表上真的很差,我整體測下來,估計也就是20-30%的水平,離可用還有一段距離。

即使是訓(xùn)練了,也不行,當(dāng)然可能是訓(xùn)練數(shù)據(jù)不夠,也可能是訓(xùn)練的模型不夠大,但總之我敗了。如果有做過相關(guān)任務(wù)的同學(xué),歡迎評論區(qū)討論,也可以說出你們的看法。

注意:這里說的是合并單元格以及長表,簡單表格,短表前面已經(jīng)說了,多模態(tài)效果很不錯,但問題是傳統(tǒng)方法也很不錯呀,從性價比考慮,多模態(tài)大模型還是虧得。

測試細(xì)節(jié)說明

測試的提示詞用的都是相同的提示詞,其實也調(diào)了比較多,但改善效果并不明顯,也歡迎大家嘗試修改,有更好的可以留言告訴我。

## Role
你是一位有多年經(jīng)驗的OCR表格識別專家。
 
## Goals
需要通過給定的圖片,識別表格里的內(nèi)容,并以html表格結(jié)果格式輸出結(jié)果。
 
## Constrains
- 需要認(rèn)識識別圖片中的內(nèi)容,將每個表格單元格中的內(nèi)容完整的識別出來,并填入html表格結(jié)構(gòu)中;
- 圖片中的表格單元格中可能存在一些占位符需要識別出來,例如"-"、"—"、"/"等;
- 輸出表格結(jié)構(gòu)一定遵循圖片中的結(jié)構(gòu),表格結(jié)構(gòu)完全一致;
- 特別注意圖片中存在合并單元格的情況,結(jié)構(gòu)不要出錯;
- 對于內(nèi)容較多的圖片,一定要輸出完整的結(jié)果,不要斷章取義,更不要隨意編造;
- 最終輸出結(jié)果需要是html格式的表格內(nèi)容。

## Initialization
請仔細(xì)思考后,輸出html表格結(jié)果。

GPT4-o、Claude-3.5、Qwen2-VL-72B是直接用API測試的,就不多說了,反正就按照文檔調(diào)用就行,都大差不差。Qwen2-VL-7B、MiniCPM2.6-V、InternVL-2.5-8B等模型,直接在國信超雄上租的4090利用vllm進(jìn)行推理測試的。

??https://www.superti-cloud.com/home??

多模態(tài)大模型在表格解析任務(wù)上效果如何?親身經(jīng)歷全是淚!-AI.x社區(qū)

上面4090價格還可以,1.98元/時,沖得多還可以進(jìn)一步打折。因為是個新平臺,暫時只有4090,不過好在卡多,可以租到8卡的;最重要的是,新用戶送20代金券,我整個測試過程沒花錢,送的9小時,足夠,又白嫖了一波,白嫖使我快樂,哈哈哈哈。還有一點就是4090做推理卡的性價比還是挺高的。

問了客服,后續(xù)會增加更多的的卡,暫時推理來說4090性價比還是挺高的。不過,大家理性消費哈,可以白嫖先用用,用的舒服再說。

多模態(tài)大模型在表格解析任務(wù)上效果如何?親身經(jīng)歷全是淚!-AI.x社區(qū)圖片

vllm我用的是0.6.3版本,雙卡推理(所以開的時候選兩張卡),由于需要torch2.4,但是平臺上現(xiàn)場的鏡像最高只有torch2.3,所以我又自己重新裝了一下torch2.4,裝包啥的這里就不說了,也不難,不會就去百度、Google吧。

多模態(tài)大模型在表格解析任務(wù)上效果如何?親身經(jīng)歷全是淚!-AI.x社區(qū)圖片

服務(wù)器可以直接ssh鏈接,用mobax在平臺上上傳數(shù)據(jù)啥的就直接拖就行,操作都差不多,也不過多介紹了,也可以無卡操作,節(jié)省卡時。

多模態(tài)大模型在表格解析任務(wù)上效果如何?親身經(jīng)歷全是淚!-AI.x社區(qū)圖片

用vllm測試的主要原因,就是簡單,接口就是openai接口,目前對各大模型適配的也很好,上手簡單,無腦執(zhí)行命令就行。

以Qwen2-VL-7B為例,直接執(zhí)行以下命令:

vllm serve  ./Qwen2-VL-7B-Instruct/ --served-model-name Qwen2-VL-7B-Instruct --port 54188 --host 0.0.0.0 --trust-remote-code --gpu-memory-utilization 0.98 --tensor-parallel-size 2

其中,./Qwen2-VL-7B-Instruct/是模型下載的本地路徑,也可以用HF的repo,但是會有網(wǎng)絡(luò)問題;served-model-name表示調(diào)用時使用的名稱;tensor-parallel-size是多卡并行,顯存不夠,顯卡來湊。

多模態(tài)大模型在表格解析任務(wù)上效果如何?親身經(jīng)歷全是淚!-AI.x社區(qū)圖片

測試代碼:

from openai import OpenAI
import base64

api_key = "EMPTY"
base_url = "http://0.0.0.0:54188/v1"

client = OpenAI(
    api_key=api_key,
    base_url=base_url
)

image_path = "test.png"
with open(image_path, "rb") as image_file:
    encoded_string = base64.b64encode(image_file.read())
base64_image = encoded_string.decode('utf-8')

response = client.chat.completions.create(
    model="Qwen2-VL-7B-Instruct",
    messages=[
        {
            "role": "user",
            "content": [
                {
                    "type": "image_url",
                    "image_url": {
                        "url": f"data:image/png;base64,{base64_image}"
                    }
                },
                {
                    "type": "text",
                    "text": """## Role
你是一位有多年經(jīng)驗的OCR表格識別專家。

## Goals
需要通過給定的圖片,識別表格里的內(nèi)容,并以html表格結(jié)果格式輸出結(jié)果。

## Constrains
- 需要認(rèn)識識別圖片中的內(nèi)容,將每個表格單元格中的內(nèi)容完整的識別出來,并填入html表格結(jié)構(gòu)中;
- 圖片中的表格單元格中可能存在一些占位符需要識別出來,例如"-"、"—"、"/"等;
- 輸出表格結(jié)構(gòu)一定遵循圖片中的結(jié)構(gòu),表格結(jié)構(gòu)完全一致;
- 特別注意圖片中存在合并單元格的情況,結(jié)構(gòu)不要出錯;
- 對于內(nèi)容較多的圖片,一定要輸出完整的結(jié)果,不要斷章取義,更不要隨意編造;
- 最終輸出結(jié)果需要是html格式的表格內(nèi)容。

## Initialization
請仔細(xì)思考后,輸出html表格結(jié)果。
"""
                }
            ]
        }]
)

res = response.choices[0].message.content
print(res)

輸出結(jié)果,表格一般沒有格式,看起來可能不方便,可以額外增加下面代碼做展示。

<style>
    table {
        border-collapse: collapse;
        width: 40%;
        margin: 0 auto;
    }

    th,
    td {
        border: 1px solid black;
        padding: 8px;
        text-align: left;
    }
</style>

{生成的表格結(jié)果}

碎碎念

利用多模態(tài)大模型進(jìn)行表格解析的出發(fā)點是因為在RAG場景上,很多是因為文檔解析錯誤導(dǎo)致的最終文檔效果不理想。當(dāng)然很多人可能會覺得用多模態(tài)做表格解析是在用大炮打蚊子,但從我目前體驗來看,大炮還打不到蚊子。

從訓(xùn)練過程上來看,模型在訓(xùn)練的時候,收斂的很快,但效果依舊不理想;當(dāng)時也有把一些特殊字符獨立化,或者loss計算的時候分區(qū)域設(shè)置權(quán)重 等等等,而這些帶來了改善,但是效果依舊不明顯。但每一次都覺得魔改的思路很正,祈禱成功,哈哈哈哈。大模型時代,已經(jīng)很少魔改了,要不無腦洗數(shù)據(jù),要不無腦加數(shù)據(jù),人都麻木了。

一直在思考,再分析,是不是VLM本身tokenizer切塊導(dǎo)致對合并單元格天生不敏感,是不是VLM本身基模不夠強(qiáng),整體預(yù)訓(xùn)練過程中表格數(shù)據(jù)不夠多,或者說網(wǎng)絡(luò)上復(fù)雜表格不夠多,感覺即使夠多也很難認(rèn)真矯正數(shù)據(jù)的準(zhǔn)確性。

并且這個任務(wù)多少數(shù)據(jù)可以達(dá)到一定的效果,已經(jīng)超出了我對純文本LLM的認(rèn)知,當(dāng)然,也許其他任務(wù)的VLM也很文本差不多,但這個任務(wù)真的好奇怪。

然后也發(fā)現(xiàn)了一個多模態(tài)大模型做OCR的榜單-CC-OCR,確實在tabel上的效果,也不理想。但上面還是略高,估計并沒有區(qū)分表格的難度吧。

Title:CC-OCR: A Comprehensive and Challenging OCR Benchmark for Evaluating Large Multimodal Models in Literacy
Link:https://arxiv.org/abs/2412.02210

多模態(tài)大模型在表格解析任務(wù)上效果如何?親身經(jīng)歷全是淚!-AI.x社區(qū)

寫在最后

不過有一說一,VLM最近出了很多模型,其他方面的能力較之前強(qiáng)太多了,這也是我嘗試用多模態(tài)大模型做一些子任務(wù)的根本。

但一個表格解析,讓我破了大防,理性探討,大家覺得多模態(tài)大模型做表格解析任務(wù)如何?

本文轉(zhuǎn)載自 ??NLP工作站??,作者: 劉聰NLP



收藏
回復(fù)
舉報
回復(fù)
相關(guān)推薦