PaddlePaddle / PaddleNLP

👑 Easy-to-use and powerful NLP and LLM library with 🤗 Awesome model zoo, supporting wide-range of NLP tasks from research to industrial applications, including 🗂Text Classification, 🔍 Neural Search, ❓ Question Answering, ℹ️ Information Extraction, 📄 Document Intelligence, 💌 Sentiment Analysis etc.
https://paddlenlp.readthedocs.io
Apache License 2.0
12.17k stars 2.94k forks source link

[Question]: UIE-X模型蒸馏或者压缩 #6371

Open tianchiguaixia opened 1 year ago

tianchiguaixia commented 1 year ago

请提出你的问题

目前的UIE-X模型太大了,启动占用显存非常大。能否参考UIE的模型,给出:medium,tiny的版本的呢。急迫!

aixuedegege commented 1 year ago

同问

huangshuangbin commented 1 year ago

+1

achial commented 1 year ago

楼主解决了吗

tianchiguaixia commented 1 year ago

ocr+uie

huangshuangbin commented 1 year ago

解决了推理速度,以及模型推理内存只增不减的问题,模型内存现在大概在4g以内

发件人:achial @.> 发送日期:2023-10-09 22:23:52 收件人:PaddlePaddle/PaddleNLP @.> 抄送人:huangshuangbin @.>,Comment @.> 主题:Re: [PaddlePaddle/PaddleNLP] [Question]: UIE-X模型蒸馏或者压缩 (Issue #6371)

楼主解决了吗 — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***>

huangshuangbin commented 1 year ago

uie-x数据蒸馏可以参考这里,可以实现所有schema并行抽取 https://github.com/linjieccc/PaddleNLP/tree/add-doc-ie/applications/information_extraction/document/closed_domain

tianchiguaixia commented 1 year ago

建议:ocr+uie。效果远超UIE-X 占用资源少

aixuedegege commented 1 year ago

请问你们是那种场景下做的? 我们是票据、表格类的图片需要提取信息,ocr的结果会缺少版面信息,uie面向的应该是连续的文本,记忆中即使用版面信息拼在一起的文字丢给uie效果也不太好,因为票据类的文字拼一起不是连续的文本。

tianchiguaixia commented 1 year ago

1.UIE-X解决不了你版面问题,哪怕你训练再多,解决不了换行问题。2.你需要通过ocr版面分析解析文本格式再走uie

tianchiguaixia commented 1 year ago

可以参考我的:ocr+uie信息抽取 8d7e5cbf6db7ae9cf2ccad26bdaae27

aixuedegege commented 1 year ago

你给uie的是直接ocr拼起来的结果么? 类似这样的:秦皇岛市第三医院检验报告单仪器名称:科美LICA800患者姓名:...送检科室:专家门诊病历号:?

tianchiguaixia commented 1 year ago

对的。中间用空格分开

aixuedegege commented 1 year ago

抽取乙肝表面抗体结果能够抽取到 3.479么?

tianchiguaixia commented 1 year ago

74e7252043375c439e28cd6416b4496 421c6641a8c3283c396d19af936476e 12fa33dae6cbd835d843e7b3a4c72fb

aixuedegege commented 1 year ago

你这效果看起来的确可以啊。用了多少数据train的?

tianchiguaixia commented 1 year ago

不用训练,现有模型直接使用:document inteilgence

aixuedegege commented 1 year ago

document inteilgence不是多模态模型么,uie是语言模型,两个不一样吧?

tianchiguaixia commented 1 year ago

可以参考我的:ocr+uie信息抽取 8d7e5cbf6db7ae9cf2ccad26bdaae27

这个是uie

aixuedegege commented 1 year ago

好的 谢谢

achial commented 1 year ago

1.UIE-X解决不了你版面问题,哪怕你训练再多,解决不了换行问题。2.你需要通过ocr版面分析解析文本格式再走uie

你好,请问换行的问题怎么处理呀,我读了你们的聊天记录 我这里训练了很多次uie,只能读取表格中某个单元格的第一行的内容,如果换行了,那么就识别不到了,请问这种情况是怎么解决的,方便的话麻烦指教一下 就是我有一点印象,初次加载uie的时候日志会自己下载ocr到某个目录下,我是不是还需要训练一下ocr的版面识别的模型再给挪到对应目录里面去就解决了?

image
achial commented 1 year ago

解决了推理速度,以及模型推理内存只增不减的问题,模型内存现在大概在4g以内 发件人:achial @.> 发送日期:2023-10-09 22:23:52 收件人:PaddlePaddle/PaddleNLP @.> 抄送人:huangshuangbin @.>,Comment @.> 主题:Re: [PaddlePaddle/PaddleNLP] [Question]: UIE-X模型蒸馏或者压缩 (Issue #6371) 楼主解决了吗 — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***>

哥们,我试了下这个项目,我训练完了结果不好使,速度还是那么慢,我是用的cpu

tianchiguaixia commented 1 year ago

肯定啊。直接换表格ocr+UIE就行

aixuedegege commented 1 year ago

1.UIE-X解决不了你版面问题,哪怕你训练再多,解决不了换行问题。2.你需要通过ocr版面分析解析文本格式再走uie

你好,请问换行的问题怎么处理呀,我读了你们的聊天记录 我这里训练了很多次uie,只能读取表格中某个单元格的第一行的内容,如果换行了,那么就识别不到了,请问这种情况是怎么解决的,方便的话麻烦指教一下 就是我有一点印象,初次加载uie的时候日志会自己下载ocr到某个目录下,我是不是还需要训练一下ocr的版面识别的模型再给挪到对应目录里面去就解决了?

image

是的,训练了很多次uie,但是你的输入数据里面“旦增卓嘎”很可能会被ocr切开“旦增卓xx嘎”,xx是图片中其他的字,uie是通过两个指针start end识别的,start指向“旦”,因为xx并不属于姓名,所以end指向的是“卓“,抽出来的是”旦增卓“。你训练了很多次uie是解决不了“旦增卓嘎”被切开的问题,只有去修改它里面版面分析功能,解决他的输入被切开问题,我记得他的TaskFlow里面有个layout_analysis=True的开关,你可以试试研究这个是怎么起作用的。

tianchiguaixia commented 1 year ago

你的问题不是UIE问题,是你自己ocr问题,没有版面分析,就是按行解析,没有按照表格的表格解析,文字的文字解析罢了。你这问题太简单了。我一下子都可以使用10几种方法来做:我直接表格ocr+UIE做出来。2.我建议你读读源码UIE-x。读读layout_analysis和erine-layout原理。你不会不知道UIE-x可以传入自定义的表格ocr吧。3.多模态模型连训练都不用,直接就抽取出来了。 image 你的问题实在太简单了,建议你再回去好好学习学习

tianchiguaixia commented 1 year ago

还有我说的是:你需要通过ocr版面分析解析文本格式再走uie。版面分析是要你按照不同类型解析的。你直接默认按行解析真醉了。

achial commented 1 year ago

1.UIE-X解决不了你版面问题,哪怕你训练再多,解决不了换行问题。2.你需要通过ocr版面分析解析文本格式再走uie

你好,请问换行的问题怎么处理呀,我读了你们的聊天记录 我这里训练了很多次uie,只能读取表格中某个单元格的第一行的内容,如果换行了,那么就识别不到了,请问这种情况是怎么解决的,方便的话麻烦指教一下 就是我有一点印象,初次加载uie的时候日志会自己下载ocr到某个目录下,我是不是还需要训练一下ocr的版面识别的模型再给挪到对应目录里面去就解决了?

image

是的,训练了很多次uie,但是你的输入数据里面“旦增卓嘎”很可能会被ocr切开“旦增卓xx嘎”,xx是图片中其他的字,uie是通过两个指针start end识别的,start指向“旦”,因为xx并不属于姓名,所以end指向的是“卓“,抽出来的是”旦增卓“。你训练了很多次uie是解决不了“旦增卓嘎”被切开的问题,只有去修改它里面版面分析功能,解决他的输入被切开问题,我记得他的TaskFlow里面有个layout_analysis=True的开关,你可以试试研究这个是怎么起作用的。

两位好,layout_analysis=True,我今天尝试了,aistudio上的一个测试例子可以实现效果,但是我的图片就还是识别不出来 我跑的例子的url:https://aistudio.baidu.com/projectdetail/5017442 默认的例子可以跑出来,我知道怎么使用这个开关了,也结合文档与源码看了这里接口的参数,最后传给了ocr,在调用ocr的时候加上了两个参数,table=True, ocr=True

xxxxxx/.local/lib/python3.8/site-packages/paddleocr/paddleocr.py

    if not self.layout_analysis:
        from paddleocr import PaddleOCR

        self.ocr_infer_model = PaddleOCR(show_log=False, lang=self.ocr_lang)
    else:
        from paddleocr import PPStructure

        self.layout_analysis_engine = PPStructure(table=True, ocr=True, show_log=False, lang=self.ocr_lang)

再结合这个文档 https://gitee.com/paddlepaddle/PaddleOCR/blob/release/2.6/ppstructure/docs/quickstart.md 可以得知,加了这个参数就是ocr识别的时候开启了版面分析和表格识别

我自己尝试的时候是这样子的

我的原图是这个

achial commented 1 year ago

图片没有发送出去,我自己尝试的时候是这样子的,这个图片使用的都是gang xia 在的uiex

image

我的原图是这个 7

achial commented 1 year ago

除了以上尝试,我还尝试了从标注数据训练uie模型入手,貌似解决,但实际效果不是我想要的

image

可以看到,我给他的名字分成了两个去标注,因为我看到了ocr识别之后的图像是这个样子的,我就意识到下面的‘嘎’字没有被抽取为姓名

image

使用新训练的模型测试的结果是这样子的

image
tianchiguaixia commented 1 year ago

你如果使用UIE-X,你在这个参数后面传入你表格ocr结果: image

这里再说第四种方法:

image

achial commented 1 year ago

你的问题不是UIE问题,是你自己ocr问题,没有版面分析,就是按行解析,没有按照表格的表格解析,文字的文字解析罢了。你这问题太简单了。我一下子都可以使用10几种方法来做:我直接表格ocr+UIE做出来。2.我建议你读读源码UIE-x。读读layout_analysis和erine-layout原理。你不会不知道UIE-x可以传入自定义的表格ocr吧。3.多模态模型连训练都不用,直接就抽取出来了。 image 你的问题实在太简单了,建议你再回去好好学习学习

就是,我看了一些layout_analysis,我知道需要开启ocr的版面分析和表格识别,在uie中的开关是在taskflow中加上参数layout_analysis=True

也知道了她确实是按行解析没有按照表格解析,然后识别每个cell中的文字

尝试看erine-layout,我基础不足,看到这么多公式,很难看懂,委屈 https://zhuanlan.zhihu.com/p/648572361

UIE-x可以传入自定义的表格ocr吧 这句话没懂什么意思,是指可以往uiex里面放一个自定义的excle表格吗?还是带着表格的png,jpg,pdf等文档?我知道可以传入图片或者pdf等格式的文档,也可以放http链接

多模态模型连训练都不用,直接就抽取出来了。 查阅了一下多模态模型是什么意思,文本、图像、视频、音频都能解析,是指gpt-4是吗,查阅的资料并不多,请谅解

可以提供给我一个解决跨行问题的具体方案吗,我真的有些懵了,花了一礼拜时间了,虽然定位到了是ppstructure的表格识别的问题,但是不知道怎么去处理,我是应该训练一个表格识别模型,然后把uie自己下载的表格识别模型替换一下吗

tianchiguaixia commented 1 year ago

image

tianchiguaixia commented 1 year ago

image 就是换行问题,不是UIE问题。而是OCR问题。

tianchiguaixia commented 1 year ago

后面你直接传我上面ocr结果去使用UIE和UIE-x或者document inteillgence等等

achial commented 1 year ago

你如果使用UIE-X,你在这个参数后面传入你表格ocr结果: image

这里再说第四种方法:

image

加上layout参数,这个我尝试过,我是这么使用的,如图,但是调用之后,没有返回值,那四个数字放的是姓名的四个坐标

image image

关于表格识别的结果放到这里 我使用的命令是 paddleocr --image_dir=7.png --type=structure --layout=false

我识别完这个图片的表格是这样子的,总感觉不对呀

image

说的意思是指把这个命令执行完之后的res_0.txt文档中,我找到关于姓名的那四个坐标放到layout里面吗。。。我总感觉我理解错了

achial commented 1 year ago

不行啊,奥特曼,document_intelligence,换行还是识别不了啊

image
tianchiguaixia commented 1 year ago

你的OCR问题,解析不了表格。你换我的ocr image

achial commented 1 year ago

不行啊,奥特曼,我下了这个项目也是识别三个字,我看日志它也是重新下载了ocr的layout模块,是我使用的方式错了吗,为啥我打开的页面和你的截图页面不一样呀,不是这个项目吗,两个项目都试了😭,你的ocr是哪个啊

image image
achial commented 1 year ago
image
tianchiguaixia commented 1 year ago

合合表格ocr,腾讯表格ocr,阿里表格ocr。你选一个就行

tianchiguaixia commented 1 year ago

https://github.com/PaddlePaddle/PaddleNLP/assets/29837553/53045a58-e3d7-464d-acc8-2f1afd99776b

aixuedegege commented 1 year ago

兄弟 你上面是怎么做的?把ocr的结果丢给一个llm么?让他输出json?

tianchiguaixia commented 1 year ago

1.支持所有图片类型 2.支持交互,所答即所见 3.针对换行的文本,解决换行问题 4.返回坐标信息 5.自定义化的功能,本地的定义,fewshot学习,各种大模型切换等等。

tianchiguaixia commented 1 year ago

https://github.com/PaddlePaddle/PaddleNLP/assets/29837553/ab588a09-f252-434a-a525-f099ea4041b8

tianchiguaixia commented 1 year ago

https://github.com/PaddlePaddle/PaddleNLP/assets/29837553/1556e01b-19c2-4662-913d-2c0cffbaa610

tianchiguaixia commented 1 year ago

https://github.com/PaddlePaddle/PaddleNLP/assets/29837553/41fefa9f-4cd4-420a-8f44-6f6ffeb79bf4

aixuedegege commented 1 year ago

请教下流程是什么,多模态的llm还是ocr后送进去的?

tianchiguaixia commented 1 year ago

大段文本送进去就行

VignetteApril commented 8 months ago

这已经跑题了啊。请问官方,UIE-X模型蒸馏什么时候出?

tianchiguaixia commented 8 months ago

这已经跑题了啊。请问官方,UIE-X模型蒸馏什么时候出?

1年前就出了,你都不看github的?我都使用了蒸馏的UIE-x了

VignetteApril commented 8 months ago

这已经跑题了啊。请问官方,UIE-X模型蒸馏什么时候出?

1年前就出了,你都不看github的?我都使用了蒸馏的UIE-x了

看了,没找到,有没有UIE-X蒸馏模型得连接?分享下,感谢!