飞桨平台 https://www.paddlepaddle.org.cn/tutorials/projectdetail/4676538
先抛结论,对于想要快速了解某一领域有哪些比较适合落地的算法的从业人员来说,是一个很好的参考系统。从中可以知道从哪些模型里选型、如何轻量化、如何加速、一些非常细节的FAQ。但是,这个框架维护上还是存在欠缺,比如很多人反馈的教程调不通,盘子铺得较大但维护没跟上;遇到一些报错的时候,相比pytorch这种大量使用的框架,能查到的解决方案较少。 我遇到的两个坑是:1、P100开发环境效果验证OK——UWSGI+NGINX搭好项目后——多进程报错,勉强单进程跑跑,网上的说法是paddle有多进程的问题,需要把import放到多进程里,但是试了一番没成功。2、同一个镜像,相同的代码,换个服务器上测试环境V100直接卡死,没有报错提示,就是卡住了,后来倒腾了几天试版本,终于通过降低paddle版本搞定。这一点网上很多人也提到了,报错信息不完善。所以,如果是新手,并需要在短期内上线服务的场景,慎重。上面吐槽了一番,但值得肯定的是,paddle在轻量化及速度上还是不错的。
如果后面的读者成功解决了UWSGI+NGINX多进程部署的问题,请分享一下你的经验。报错信息如下:
[Hint: 'cudaErrorInitializationError'. The API call failed because the CUDA driver and runtime could not be initialized. ] (at /paddle/paddle/phi/backends/gpu/cuda/cuda_info.cc:172)
一张图的ocr过程分为:文本定位——切子图,并根据长宽比旋转90度,主要是为了处理竖排文字(0、90度)——文本方向分类(0、180度)——文本识别。
在paddleocr的方向分类模块中,不仅仅依赖模型的分类输出,还会参考softmax的值,当方向分类为180且置信度大于0.9时才会将图片进行旋转180度操作。如果定位时有上下行都切出来的现象,就容易造成置信度0.5左右的分类错误。猜想是因为模型不太确定这个几个字是上下结构或左右结构。
普通的图片走完上述流程的时间在0.3s左右,如果文字较多,时间会相对增加。可以下载开源模型,然后根据场景更改一下调用流程、阈值、前处理后处理。
除去paddleocr外,百度还有几个专用场景套件,如PaddleClas分类、PaddleDetection检测、PaddleSeg分割、PaddleGAN、PaddleVideo、ERNIEKit语义、PLSC海量分类、ElasticCTR推荐、Parakeet语音合成、PGL图学习、PARL强化学习、Paddle Quantum量桨、PaddleHelix生物计算。
其中今后比较会用到的组件有:paddlenlp、UIE、文心大模型。
2.1PaddleNLP
2.2文心大模型
ERNIE 是百度基于transformer研发的,可视为一个比较强的中文transformer,backbone结构没什么特殊,主要是设计了一些特殊的预训练任务,有基于mask的预训练,也有迁移到不同任务上的预训练。
2.3UIE
另一个文本方面的大统一思想是UIE,本质是基于ERNIE的双指针解码(仅谈paddle的实现)
UIE教程:五条标注数据搞定快递单信息抽取,PaddleNLP信息抽取技术重磅升级! - 飞桨AI Studio
优点:教程给的是“北京市海淀区上地十街10号18888888888张三”,改成“北京市海淀区上地十街10号18888888888交款人:李白百”后还是能把名字抽出来。
from paddlenlp import Taskflowschema = ["姓名", "省份", "城市", "县区", "电话", "详细地址"]
ie = Taskflow("information_extraction", schema=schema)
res=ie("交款人:李白百 北京市海淀区上地十街10号18888888888")
print(res)
# [{'姓名': [{'text': '李白百', 'start': 4, 'end': 7, 'probability': 0.9335348137713595}], '县区': [{'text': '海淀区', 'start': 11, 'end': 14, 'probability': 0.9149133074831752}]}]
uie的其他信息:
Universal Information Extraction (UIE):Yaojie Lu等人提出了开放域信息抽取的统一框架,这一框架在实体抽取、关系抽取、事件抽取、情感分析等任务上都有着良好的泛化效果。开放域信息抽取可以实现零样本(zero-shot)或者少样本(few-shot)抽取
(杂谈)关于UIE的一点感想_常鸿宇的博客-CSDN博客_uie原理