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.19k stars 2.95k forks source link

[Question]: 使用信息抽取information_extraction/uie-x-base,对图片中信息进行获得,报错 #6523

Open gfkdliuyanjun opened 1 year ago

gfkdliuyanjun commented 1 year ago

请提出你的问题

环境:centos 7 python 3.7 paddleppaddle 2.5
运行代码为: schema = ["单位", "姓名", "电话"] task = Taskflow("information_extraction", schema=schema, model="uie-x-base") print(task({"doc": "https://ebaiyun-brain.oss-cn-hangzhou.aliyuncs.com/2023/07/20//60e782425a7842549ffe3d2cf6cb7928.jpg"}))

报错为:

[2023-07-27 06:15:31,353] [ INFO] - We are using <class 'paddlenlp.transformers.ernie_layout.tokenizer.ErnieLayoutTokenizer'> to load '/root/.paddlenlp/taskflow/information_extraction/uie-x-base'. Traceback (most recent call last): File "main.py", line 54, in print(task({"doc": ”60e782425a7842549ffe3d2cf6cb7928.jpg"})) File "/root/anaconda3/envs/ocr/lib/python3.7/site-packages/paddlenlp/taskflow/taskflow.py", line 850, in call results = self.task_instance(inputs) File "/root/anaconda3/envs/ocr/lib/python3.7/site-packages/paddlenlp/taskflow/task.py", line 516, in call outputs = self._run_model(inputs) File "/root/anaconda3/envs/ocr/lib/python3.7/site-packages/paddlenlp/taskflow/information_extraction.py", line 1066, in _run_model results = self._multi_stage_predict(_inputs) File "/root/anaconda3/envs/ocr/lib/python3.7/site-packages/paddlenlp/taskflow/information_extraction.py", line 1164, in _multi_stage_predict result_list = self._single_stage_predict(examples) File "/root/anaconda3/envs/ocr/lib/python3.7/site-packages/paddlenlp/taskflow/information_extraction.py", line 977, in _single_stage_predict self.predictor.run() ValueError: (InvalidArgument) The 0-th dimension of input[0] and input[1] is expected to be equal.But received input[0]'s shape = [2, 512], input[1]'s shape = [4, 49].

[operator < concat > error]

huanghao128 commented 1 year ago

paddlenlp版本多少,我用的paddlenlp==2.6.0rc0是没问题

hopegithub commented 1 year ago

你这个情况,我在windows上运行全都正确,在Linux上,同样出现这个问题,请问你解决了吗?

vvwomen commented 1 year ago

paddlenlp=2.5.2.post0 也会有相同的报错。请问有什么解决方法吗?

achial commented 1 year ago

同样的报错,请问楼主解决了吗

vvwomen commented 1 year ago

我解决了,python=3.8 ,paddlenlp=2.5.2,我感觉问题是出在了task.py文件中的self._predictor_type不能是"paddle-inference",把self._predictor_type改成 "onnxruntime",然后试试呢~

achial commented 1 year ago

我解决了,python=3.8 ,paddlenlp=2.5.2.post0 ,程序是

程序是?我之前跑的是simpleserver启动的服务在ubuntu上

achial commented 1 year ago

我解决了,python=3.8 ,paddlenlp=2.5.2.post0 ,程序是

还有这个post0是什么版本呀,我在pip上只看到了2.5.2版本呀,没有看到其它带后缀的2.5.2版本啊

vvwomen commented 1 year ago

这里是写错了就是2.5.2版本的paddlenlp

achial commented 1 year ago

朋友,什么是task.py文件呀,我之前使用这个没有用到这个文件呀

achial commented 1 year ago

我解决了,python=3.8 ,paddlenlp=2.5.2,我感觉问题是出在了task.py文件中的self._predictor_type不能是"paddle-inference",把self._predictor_type改成 "onnxruntime",然后试试呢~

我是这样子的, 我在我mac上配置的anaconda虚拟环境,里面用simpleserver启动成功了,也能正常推理图片,然后我部署到Ubuntu上,就报这个错了,我之前在mac上使用的时候没有用到task.py文件

achial commented 1 year ago

我解决了,python=3.8 ,paddlenlp=2.5.2,我感觉问题是出在了task.py文件中的self._predictor_type不能是"paddle-inference",把self._predictor_type改成 "onnxruntime",然后试试呢~

朋友,什么是task.py文件呀

vvwomen commented 1 year ago

Taskflow这个类,是在paddlenlp/taskflow/taskflow.py 文件中定义的。如果是information_extraction问题的话,会用到paddlenlp/taskflow/information_extraction.py文件,在information_extraction.py中会用到Task这个类,这个类就是在paddlenlp/taskflow/task.py文件中定义的。😂说的有多绕

achial commented 1 year ago

Taskflow这个类,是在paddlenlp/taskflow/taskflow.py 文件中定义的。如果是information_extraction问题的话,会用到paddlenlp/taskflow/information_extraction.py文件,在information_extraction.py中会用到Task这个类,这个类就是在paddlenlp/taskflow/task.py文件中定义的。😂说的有多绕

emmm,我改完之后框框报错啊

/home/ocr/anaconda/envs/conda_env_paddlenlp_uie/lib/python3.8/site-packages/paddlenlp/taskflow

[2023-08-30 09:21:19,817] [ WARNING] - The inference precision is change to 'fp32', please install the dependencies that required for 'fp16' inference, pip install onnxruntime-gpu onnx onnxconverter-common ╭───────────────────── Traceback (most recent call last) ──────────────────────╮ │ /home/ocr/anaconda/envs/conda_env_paddlenlp_uie/lib/python3.8/site-packages/ │ │ paddlenlp/cli/main.py:207 in server │ │ │ │ 204 │ │ "app_dir": app_dir, │ │ 205 │ │ "reload": reload, │ │ 206 │ } │ │ ❱ 207 │ start_backend(app, backend_kwargs) │ │ 208 │ │ 209 │ │ 210 @app.command( │ │ │ │ ╭───────────────────────────────── locals ─────────────────────────────────╮ │ │ │ app = 'server:app' │ │ │ │ app_dir = '/home/ocr/anaconda/envs/conda_env_paddlenlp_uie' │ │ │ │ backend_kwargs = { │ │ │ │ │ 'host': '0.0.0.0', │ │ │ │ │ 'port': 8189, │ │ │ │ │ 'log_config': { │ │ │ │ │ │ 'version': 1, │ │ │ │ │ │ 'disable_existing_loggers': False, │ │ │ │ │ │ 'formatters': { │ │ │ │ │ │ │ 'default': { │ │ │ │ │ │ │ │ '()': │ │ │ │ 'uvicorn.logging.DefaultFormatter', │ │ │ │ │ │ │ │ 'fmt': '%(levelprefix)s │ │ │ │ %(message)s', │ │ │ │ │ │ │ │ 'use_colors': None │ │ │ │ │ │ │ }, │ │ │ │ │ │ │ 'access': { │ │ │ │ │ │ │ │ '()': │ │ │ │ 'uvicorn.logging.AccessFormatter', │ │ │ │ │ │ │ │ 'fmt': '%(levelprefix)s │ │ │ │ %(client_addr)s - "%(request_line)s" │ │ │ │ %(status_code)s' │ │ │ │ │ │ │ } │ │ │ │ │ │ }, │ │ │ │ │ │ 'handlers': { │ │ │ │ │ │ │ 'default': { │ │ │ │ │ │ │ │ 'formatter': 'default', │ │ │ │ │ │ │ │ 'class': 'logging.StreamHandler', │ │ │ │ │ │ │ │ 'stream': 'ext://sys.stderr' │ │ │ │ │ │ │ }, │ │ │ │ │ │ │ 'access': { │ │ │ │ │ │ │ │ 'formatter': 'access', │ │ │ │ │ │ │ │ 'class': 'logging.StreamHandler', │ │ │ │ │ │ │ │ 'stream': 'ext://sys.stdout' │ │ │ │ │ │ │ } │ │ │ │ │ │ }, │ │ │ │ │ │ 'loggers': { │ │ │ │ │ │ │ 'uvicorn': { │ │ │ │ │ │ │ │ 'handlers': ['default'], │ │ │ │ │ │ │ │ 'level': 'INFO', │ │ │ │ │ │ │ │ 'propagate': False │ │ │ │ │ │ │ }, │ │ │ │ │ │ │ 'uvicorn.error': {'level': 'INFO'}, │ │ │ │ │ │ │ 'uvicorn.access': { │ │ │ │ │ │ │ │ 'handlers': ['access'], │ │ │ │ │ │ │ │ 'level': 'INFO', │ │ │ │ │ │ │ │ 'propagate': False │ │ │ │ │ │ │ } │ │ │ │ │ │ } │ │ │ │ │ }, │ │ │ │ │ 'log_level': None, │ │ │ │ │ 'workers': 1, │ │ │ │ │ 'limit_concurrency': None, │ │ │ │ │ 'limit_max_requests': None, │ │ │ │ │ 'timeout_keep_alive': 15, │ │ │ │ │ 'app_dir': │ │ │ │ '/home/ocr/anaconda/envs/conda_env_paddlenlp_uie', │ │ │ │ │ 'reload': False │ │ │ │ } │ │ │ │ host = '0.0.0.0' │ │ │ │ limit_concurrency = None │ │ │ │ limit_max_requests = None │ │ │ │ log_level = None │ │ │ │ port = 8189 │ │ │ │ reload = False │ │ │ │ timeout_keep_alive = 15 │ │ │ │ workers = 1 │ │ │ ╰──────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/ocr/anaconda/envs/conda_env_paddlenlp_uie/lib/python3.8/site-packages/ │ │ paddlenlp/cli/server.py:26 in start_backend │ │ │ │ 23 │ for key, value in kwargs.items(): │ │ 24 │ │ if key != "log_config": │ │ 25 │ │ │ logger.info(" the starting argument [{}]={}".format(key, │ │ ❱ 26 │ uvicorn.run(app, kwargs) │ │ 27 │ │ │ │ ╭───────────────────────────────── locals ─────────────────────────────────╮ │ │ │ app = 'server:app' │ │ │ │ key = 'reload' │ │ │ │ kwargs = { │ │ │ │ │ 'host': '0.0.0.0', │ │ │ │ │ 'port': 8189, │ │ │ │ │ 'log_config': { │ │ │ │ │ │ 'version': 1, │ │ │ │ │ │ 'disable_existing_loggers': False, │ │ │ │ │ │ 'formatters': { │ │ │ │ │ │ │ 'default': { │ │ │ │ │ │ │ │ '()': 'uvicorn.logging.DefaultFormatter', │ │ │ │ │ │ │ │ 'fmt': '%(levelprefix)s %(message)s', │ │ │ │ │ │ │ │ 'use_colors': None │ │ │ │ │ │ │ }, │ │ │ │ │ │ │ 'access': { │ │ │ │ │ │ │ │ '()': 'uvicorn.logging.AccessFormatter', │ │ │ │ │ │ │ │ 'fmt': '%(levelprefix)s %(client_addr)s - │ │ │ │ "%(request_line)s" %(status_code)s' │ │ │ │ │ │ │ } │ │ │ │ │ │ }, │ │ │ │ │ │ 'handlers': { │ │ │ │ │ │ │ 'default': { │ │ │ │ │ │ │ │ 'formatter': 'default', │ │ │ │ │ │ │ │ 'class': 'logging.StreamHandler', │ │ │ │ │ │ │ │ 'stream': 'ext://sys.stderr' │ │ │ │ │ │ │ }, │ │ │ │ │ │ │ 'access': { │ │ │ │ │ │ │ │ 'formatter': 'access', │ │ │ │ │ │ │ │ 'class': 'logging.StreamHandler', │ │ │ │ │ │ │ │ 'stream': 'ext://sys.stdout' │ │ │ │ │ │ │ } │ │ │ │ │ │ }, │ │ │ │ │ │ 'loggers': { │ │ │ │ │ │ │ 'uvicorn': { │ │ │ │ │ │ │ │ 'handlers': ['default'], │ │ │ │ │ │ │ │ 'level': 'INFO', │ │ │ │ │ │ │ │ 'propagate': False │ │ │ │ │ │ │ }, │ │ │ │ │ │ │ 'uvicorn.error': {'level': 'INFO'}, │ │ │ │ │ │ │ 'uvicorn.access': { │ │ │ │ │ │ │ │ 'handlers': ['access'], │ │ │ │ │ │ │ │ 'level': 'INFO', │ │ │ │ │ │ │ │ 'propagate': False │ │ │ │ │ │ │ } │ │ │ │ │ │ } │ │ │ │ │ }, │ │ │ │ │ 'log_level': None, │ │ │ │ │ 'workers': 1, │ │ │ │ │ 'limit_concurrency': None, │ │ │ │ │ 'limit_max_requests': None, │ │ │ │ │ 'timeout_keep_alive': 15, │ │ │ │ │ 'app_dir': │ │ │ │ '/home/ocr/anaconda/envs/conda_env_paddlenlp_uie', │ │ │ │ │ 'reload': False │ │ │ │ } │ │ │ │ value = False │ │ │ ╰──────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/ocr/anaconda/envs/conda_env_paddlenlp_uie/lib/python3.8/site-packages/ │ │ uvicorn/main.py:587 in run │ │ │ │ 584 │ │ sock = config.bind_socket() │ │ 585 │ │ Multiprocess(config, target=server.run, sockets=[sock]).run() │ │ 586 │ else: │ │ ❱ 587 │ │ server.run() │ │ 588 │ if config.uds and os.path.exists(config.uds): │ │ 589 │ │ os.remove(config.uds) # pragma: py-win32 │ │ 590 │ │ │ │ ╭───────────────────────────────── locals ─────────────────────────────────╮ │ │ │ access_log = True │ │ │ │ app = 'server:app' │ │ │ │ app_dir = '/home/ocr/anaconda/envs/conda_env_padd… │ │ │ │ backlog = 2048 │ │ │ │ config = <uvicorn.config.Config object at │ │ │ │ 0x7f0966abdbe0> │ │ │ │ date_header = True │ │ │ │ env_file = None │ │ │ │ factory = False │ │ │ │ fd = None │ │ │ │ forwarded_allow_ips = None │ │ │ │ h11_max_incomplete_event_size = None │ │ │ │ headers = None │ │ │ │ host = '0.0.0.0' │ │ │ │ http = 'auto' │ │ │ │ interface = 'auto' │ │ │ │ lifespan = 'auto' │ │ │ │ limit_concurrency = None │ │ │ │ limit_max_requests = None │ │ │ │ log_config = { │ │ │ │ │ 'version': 1, │ │ │ │ │ 'disable_existing_loggers': False, │ │ │ │ │ 'formatters': { │ │ │ │ │ │ 'default': { │ │ │ │ │ │ │ '()': │ │ │ │ 'uvicorn.logging.DefaultFormatter', │ │ │ │ │ │ │ 'fmt': '%(levelprefix)s │ │ │ │ %(message)s', │ │ │ │ │ │ │ 'use_colors': None │ │ │ │ │ │ }, │ │ │ │ │ │ 'access': { │ │ │ │ │ │ │ '()': │ │ │ │ 'uvicorn.logging.AccessFormatter', │ │ │ │ │ │ │ 'fmt': '%(levelprefix)s │ │ │ │ %(client_addr)s - "%(request_line)s" │ │ │ │ %(status_code)s' │ │ │ │ │ │ } │ │ │ │ │ }, │ │ │ │ │ 'handlers': { │ │ │ │ │ │ 'default': { │ │ │ │ │ │ │ 'formatter': 'default', │ │ │ │ │ │ │ 'class': │ │ │ │ 'logging.StreamHandler', │ │ │ │ │ │ │ 'stream': 'ext://sys.stderr' │ │ │ │ │ │ }, │ │ │ │ │ │ 'access': { │ │ │ │ │ │ │ 'formatter': 'access', │ │ │ │ │ │ │ 'class': │ │ │ │ 'logging.StreamHandler', │ │ │ │ │ │ │ 'stream': 'ext://sys.stdout' │ │ │ │ │ │ } │ │ │ │ │ }, │ │ │ │ │ 'loggers': { │ │ │ │ │ │ 'uvicorn': { │ │ │ │ │ │ │ 'handlers': ['default'], │ │ │ │ │ │ │ 'level': 'INFO', │ │ │ │ │ │ │ 'propagate': False │ │ │ │ │ │ }, │ │ │ │ │ │ 'uvicorn.error': { │ │ │ │ │ │ │ 'level': 'INFO' │ │ │ │ │ │ }, │ │ │ │ │ │ 'uvicorn.access': { │ │ │ │ │ │ │ 'handlers': ['access'], │ │ │ │ │ │ │ 'level': 'INFO', │ │ │ │ │ │ │ 'propagate': False │ │ │ │ │ │ } │ │ │ │ │ } │ │ │ │ } │ │ │ │ log_level = None │ │ │ │ loop = 'auto' │ │ │ │ port = 8189 │ │ │ │ proxy_headers = True │ │ │ │ reload = False │ │ │ │ reload_delay = 0.25 │ │ │ │ reload_dirs = None │ │ │ │ reload_excludes = None │ │ │ │ reload_includes = None │ │ │ │ root_path = '' │ │ │ │ server = <uvicorn.server.Server object at │ │ │ │ 0x7f0947368be0> │ │ │ │ server_header = True │ │ │ │ ssl_ca_certs = None │ │ │ │ ssl_cert_reqs = <VerifyMode.CERT_NONE: 0> │ │ │ │ ssl_certfile = None │ │ │ │ ssl_ciphers = 'TLSv1' │ │ │ │ ssl_keyfile = None │ │ │ │ ssl_keyfile_password = None │ │ │ │ ssl_version = <_SSLMethod.PROTOCOL_TLS_SERVER: 17> │ │ │ │ timeout_graceful_shutdown = None │ │ │ │ timeout_keep_alive = 15 │ │ │ │ uds = None │ │ │ │ use_colors = None │ │ │ │ workers = 1 │ │ │ │ ws = 'auto' │ │ │ │ ws_max_queue = 32 │ │ │ │ ws_max_size = 16777216 │ │ │ │ ws_per_message_deflate = True │ │ │ │ ws_ping_interval = 20.0 │ │ │ │ ws_ping_timeout = 20.0 │ │ │ ╰──────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/ocr/anaconda/envs/conda_env_paddlenlp_uie/lib/python3.8/site-packages/ │ │ uvicorn/server.py:61 in run │ │ │ │ 58 │ │ │ 59 │ def run(self, sockets: Optional[List[socket.socket]] = None) -> No │ │ 60 │ │ self.config.setup_event_loop() │ │ ❱ 61 │ │ return asyncio.run(self.serve(sockets=sockets)) │ │ 62 │ │ │ 63 │ async def serve(self, sockets: Optional[List[socket.socket]] = Non │ │ 64 │ │ process_id = os.getpid() │ │ │ │ ╭────────────────────────── locals ──────────────────────────╮ │ │ │ self = <uvicorn.server.Server object at 0x7f0947368be0> │ │ │ │ sockets = None │ │ │ ╰────────────────────────────────────────────────────────────╯ │ │ │ │ /home/ocr/anaconda/envs/conda_env_paddlenlp_uie/lib/python3.8/asyncio/runner │ │ s.py:44 in run │ │ │ │ 41 │ │ events.set_event_loop(loop) │ │ 42 │ │ if debug is not None: │ │ 43 │ │ │ loop.set_debug(debug) │ │ ❱ 44 │ │ return loop.run_until_complete(main) │ │ 45 │ finally: │ │ 46 │ │ try: │ │ 47 │ │ │ _cancel_all_tasks(loop) │ │ │ │ ╭──────────────────────────────── locals ────────────────────────────────╮ │ │ │ debug = None │ │ │ │ loop = <_UnixSelectorEventLoop running=False closed=True debug=False> │ │ │ │ main = <coroutine object Server.serve at 0x7f094735b2c0> │ │ │ ╰────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/ocr/anaconda/envs/conda_env_paddlenlp_uie/lib/python3.8/asyncio/base_e │ │ vents.py:616 in run_until_complete │ │ │ │ 613 │ │ if not future.done(): │ │ 614 │ │ │ raise RuntimeError('Event loop stopped before Future comp │ │ 615 │ │ │ │ ❱ 616 │ │ return future.result() │ │ 617 │ │ │ 618 │ def stop(self): │ │ 619 │ │ """Stop running the event loop. │ │ │ │ ╭───────────────────────────────── locals ─────────────────────────────────╮ │ │ │ future = <Task finished name='Task-1' coro=<Server.serve() done, │ │ │ │ defined at │ │ │ │ /home/ocr/anaconda/envs/conda_env_paddlenlp_uie/lib/python3.… │ │ │ │ exception=UnboundLocalError("local variable 'paddle2onnx' │ │ │ │ referenced before assignment")> │ │ │ │ new_task = True │ │ │ │ self = <_UnixSelectorEventLoop running=False closed=True │ │ │ │ debug=False> │ │ │ ╰──────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/ocr/anaconda/envs/conda_env_paddlenlp_uie/lib/python3.8/site-packages/ │ │ uvicorn/server.py:68 in serve │ │ │ │ 65 │ │ │ │ 66 │ │ config = self.config │ │ 67 │ │ if not config.loaded: │ │ ❱ 68 │ │ │ config.load() │ │ 69 │ │ │ │ 70 │ │ self.lifespan = config.lifespan_class(config) │ │ 71 │ │ │ │ ╭─────────────────────────── locals ────────────────────────────╮ │ │ │ config = <uvicorn.config.Config object at 0x7f0966abdbe0> │ │ │ │ process_id = 61982 │ │ │ │ self = <uvicorn.server.Server object at 0x7f0947368be0> │ │ │ │ sockets = None │ │ │ ╰───────────────────────────────────────────────────────────────╯ │ │ │ │ /home/ocr/anaconda/envs/conda_env_paddlenlp_uie/lib/python3.8/site-packages/ │ │ uvicorn/config.py:467 in load │ │ │ │ 464 │ │ self.lifespan_class = import_from_string(LIFESPAN[self.lifespa │ │ 465 │ │ │ │ 466 │ │ try: │ │ ❱ 467 │ │ │ self.loaded_app = import_from_string(self.app) │ │ 468 │ │ except ImportFromStringError as exc: │ │ 469 │ │ │ logger.error("Error loading ASGI app. %s" % exc) │ │ 470 │ │ │ sys.exit(1) │ │ │ │ ╭───────────────────────────────── locals ─────────────────────────────────╮ │ │ │ encoded_headers = [] │ │ │ │ http_protocol_class = <class │ │ │ │ 'uvicorn.protocols.http.h11_impl.H11Protocol'> │ │ │ │ self = <uvicorn.config.Config object at 0x7f0966abdbe0> │ │ │ │ ws_protocol_class = None │ │ │ ╰──────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/ocr/anaconda/envs/conda_env_paddlenlp_uie/lib/python3.8/site-packages/ │ │ uvicorn/importer.py:21 in import_from_string │ │ │ │ 18 │ │ raise ImportFromStringError(message.format(import_str=import_st │ │ 19 │ │ │ 20 │ try: │ │ ❱ 21 │ │ module = importlib.import_module(module_str) │ │ 22 │ except ModuleNotFoundError as exc: │ │ 23 │ │ if exc.name != modulestr: │ │ 24 │ │ │ raise exc from None │ │ │ │ ╭───────── locals ──────────╮ │ │ │ = ':' │ │ │ │ attrs_str = 'app' │ │ │ │ import_str = 'server:app' │ │ │ │ module_str = 'server' │ │ │ ╰───────────────────────────╯ │ │ │ │ /home/ocr/anaconda/envs/conda_env_paddlenlp_uie/lib/python3.8/importlib/in │ │ it.py:127 in import_module │ │ │ │ 124 │ │ │ if character != '.': │ │ 125 │ │ │ │ break │ │ 126 │ │ │ level += 1 │ │ ❱ 127 │ return _bootstrap._gcd_import(name[level:], package, level) │ │ 128 │ │ 129 │ │ 130 _RELOADING = {} │ │ │ │ ╭────── locals ──────╮ │ │ │ level = 0 │ │ │ │ name = 'server' │ │ │ │ package = None │ │ │ ╰────────────────────╯ │ │ in _gcd_import:1014 │ │ ╭────── locals ──────╮ │ │ │ level = 0 │ │ │ │ name = 'server' │ │ │ │ package = None │ │ │ ╰────────────────────╯ │ │ in _find_andload:991 │ │ ╭────────────────────── locals ──────────────────────╮ │ │ │ import = <function _gcd_import at 0x7f098c843430> │ │ │ │ module = <object object at 0x7f098c81b060> │ │ │ │ name = 'server' │ │ │ ╰────────────────────────────────────────────────────╯ │ │ in _find_and_loadunlocked:975 │ │ ╭───────────────────────────────── locals ─────────────────────────────────╮ │ │ │ import = <function _gcd_import at 0x7f098c843430> │ │ │ │ name = 'server' │ │ │ │ parent = '' │ │ │ │ path = None │ │ │ │ spec = ModuleSpec(name='server', │ │ │ │ loader=<_frozen_importlib_external.SourceFileLoader object at │ │ │ │ 0x7f094730aa60>, │ │ │ │ origin='/home/ocr/anaconda/envs/conda_env_paddlenlp_uie/serve… │ │ │ ╰──────────────────────────────────────────────────────────────────────────╯ │ │ in _load_unlocked:671 │ │ ╭───────────────────────────────── locals ─────────────────────────────────╮ │ │ │ module = <module 'server' from │ │ │ │ '/home/ocr/anaconda/envs/conda_env_paddlenlp_uie/server.py'> │ │ │ │ spec = ModuleSpec(name='server', │ │ │ │ loader=<_frozen_importlib_external.SourceFileLoader object at │ │ │ │ 0x7f094730aa60>, │ │ │ │ origin='/home/ocr/anaconda/envs/conda_env_paddlenlp_uie/server… │ │ │ ╰──────────────────────────────────────────────────────────────────────────╯ │ │ in exec_module:843 │ │ ╭───────────────────────────────── locals ─────────────────────────────────╮ │ │ │ code = <code object at 0x7f0947317030, file │ │ │ │ "/home/ocr/anaconda/envs/conda_env_paddlenlp_uie/server.py", │ │ │ │ line 15> │ │ │ │ module = <module 'server' from │ │ │ │ '/home/ocr/anaconda/envs/conda_env_paddlenlp_uie/server.py'> │ │ │ │ self = <_frozen_importlib_external.SourceFileLoader object at │ │ │ │ 0x7f094730aa60> │ │ │ ╰──────────────────────────────────────────────────────────────────────────╯ │ │ in _call_with_frames_removed:219 │ │ ╭───────────────────────────────── locals ─────────────────────────────────╮ │ │ │ args = ( │ │ │ │ │ <code object at 0x7f0947317030, file │ │ │ │ "/home/ocr/anaconda/envs/conda_env_paddlenlp_uie/server.py", line │ │ │ │ 15>, │ │ │ │ │ { │ │ │ │ │ │ 'name': 'server', │ │ │ │ │ │ 'doc': None, │ │ │ │ │ │ 'package': '', │ │ │ │ │ │ 'loader': │ │ │ │ <_frozen_importlib_external.SourceFileLoader object at │ │ │ │ 0x7f094730aa60>, │ │ │ │ │ │ 'spec': ModuleSpec(name='server', │ │ │ │ loader=<_frozen_importlib_external.SourceFileLoader object at │ │ │ │ 0x7f094730aa60>, │ │ │ │ origin='/home/ocr/anaconda/envs/conda_env_paddlenlp_uie/server.p… │ │ │ │ │ │ 'file': │ │ │ │ '/home/ocr/anaconda/envs/conda_env_paddlenlp_uie/server.py', │ │ │ │ │ │ 'cached': │ │ │ │ '/home/ocr/anaconda/envs/conda_env_paddlenlp_uie/pycache/ser… │ │ │ │ │ │ 'builtins': { │ │ │ │ │ │ │ 'name': 'builtins', │ │ │ │ │ │ │ 'doc': 'Built-in functions, exceptions, and other │ │ │ │ objects.\n\nNoteworthy: None is the `nil'+46, │ │ │ │ │ │ │ 'package': '', │ │ │ │ │ │ │ 'loader': <class │ │ │ │ '_frozen_importlib.BuiltinImporter'>, │ │ │ │ │ │ │ 'spec': ModuleSpec(name='builtins', loader=<class │ │ │ │ '_frozen_importlib.BuiltinImporter'>), │ │ │ │ │ │ │ 'build_class': <built-in function │ │ │ │ build_class>, │ │ │ │ │ │ │ 'import': , │ │ │ │ │ │ │ 'abs': , │ │ │ │ │ │ │ 'all': , │ │ │ │ │ │ │ 'any': , │ │ │ │ │ │ │ ... +144 │ │ │ │ │ │ }, │ │ │ │ │ │ 'SimpleServer': <class │ │ │ │ 'paddlenlp.server.server.SimpleServer'>, │ │ │ │ │ │ 'Taskflow': <class │ │ │ │ 'paddlenlp.taskflow.taskflow.Taskflow'>, │ │ │ │ │ │ ... +1 │ │ │ │ │ } │ │ │ │ ) │ │ │ │ f = │ │ │ │ kwds = {} │ │ │ ╰──────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/ocr/anaconda/envs/conda_env_paddlenlp_uie/server.py:21 in │ │ │ │ 18 #schema = ["性别", "开票日期", "名称", "纳税人识别号", "开户行及账号", │ │ 19 schema = ["姓名","本人联系电话"] │ │ 20 │ │ ❱ 21 ie = Taskflow("information_extraction", schema=schema, model="uie-x-bas │ │ 22 # The task path changed to your best model path │ │ 23 #uie = Taskflow( │ │ 24 # "information_extraction", │ │ │ │ ╭─────────────────────────── locals ────────────────────────────╮ │ │ │ schema = ['姓名', '本人联系电话'] │ │ │ │ SimpleServer = <class 'paddlenlp.server.server.SimpleServer'> │ │ │ │ Taskflow = <class 'paddlenlp.taskflow.taskflow.Taskflow'> │ │ │ ╰───────────────────────────────────────────────────────────────╯ │ │ │ │ /home/ocr/anaconda/envs/conda_env_paddlenlp_uie/lib/python3.8/site-packages/ │ │ paddlenlp/taskflow/taskflow.py:837 in init │ │ │ │ 834 │ │ kwargs.update(config_kwargs) │ │ 835 │ │ self.kwargs = kwargs │ │ 836 │ │ task_class = TASKS[self.task][tag][self.model]["task_class"] │ │ ❱ 837 │ │ self.task_instance = task_class( │ │ 838 │ │ │ model=self.model, task=self.task, priority_path=self.prior │ │ 839 │ │ ) │ │ 840 │ │ task_list = TASKS.keys() │ │ │ │ ╭───────────────────────────────── locals ─────────────────────────────────╮ │ │ │ config_kwargs = { │ │ │ │ │ 'task_class': <class │ │ │ │ 'paddlenlp.taskflow.information_extraction.UIETask'>, │ │ │ │ │ 'hidden_size': 768, │ │ │ │ │ 'task_flag': 'information_extraction-uie-x-base' │ │ │ │ } │ │ │ │ device = 'cpu' │ │ │ │ device_id = 0 │ │ │ │ from_hf_hub = False │ │ │ │ ind_tag = 'model' │ │ │ │ kwargs = { │ │ │ │ │ 'schema': ['姓名', '本人联系电话'], │ │ │ │ │ 'device_id': 0, │ │ │ │ │ 'task_class': <class │ │ │ │ 'paddlenlp.taskflow.information_extraction.UIETask'>, │ │ │ │ │ 'hidden_size': 768, │ │ │ │ │ 'task_flag': 'information_extraction-uie-x-base' │ │ │ │ } │ │ │ │ mode = None │ │ │ │ model = 'uie-x-base' │ │ │ │ self = <paddlenlp.taskflow.taskflow.Taskflow object at │ │ │ │ 0x7f094730aa30> │ │ │ │ tag = 'models' │ │ │ │ task = 'information_extraction' │ │ │ │ task_class = <class │ │ │ │ 'paddlenlp.taskflow.information_extraction.UIETask'> │ │ │ ╰──────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/ocr/anaconda/envs/conda_env_paddlenlp_uie/lib/python3.8/site-packages/ │ │ paddlenlp/taskflow/information_extraction.py:536 in init │ │ │ │ 533 │ │ else: │ │ 534 │ │ │ self.set_schema(schema) │ │ 535 │ │ self._check_predictor_type() │ │ ❱ 536 │ │ self._get_inference_model() │ │ 537 │ │ self._usage = usage │ │ 538 │ │ self._construct_tokenizer() │ │ 539 │ │ │ │ ╭───────────────────────────────── locals ─────────────────────────────────╮ │ │ │ f = <_io.TextIOWrapper │ │ │ │ name='/home/ocr/.paddlenlp/taskflow/information_extraction/uie… │ │ │ │ mode='r' encoding='UTF-8'> │ │ │ │ kwargs = { │ │ │ │ │ 'priority_path': None, │ │ │ │ │ 'from_hf_hub': False, │ │ │ │ │ 'device_id': 0, │ │ │ │ │ 'task_class': <class │ │ │ │ 'paddlenlp.taskflow.information_extraction.UIETask'>, │ │ │ │ │ 'hidden_size': 768, │ │ │ │ │ 'task_flag': 'information_extraction-uie-x-base' │ │ │ │ } │ │ │ │ model = 'uie-x-base' │ │ │ │ schema = ['姓名', '本人联系电话'] │ │ │ │ self = <paddlenlp.taskflow.information_extraction.UIETask object at │ │ │ │ 0x7f094730a7f0> │ │ │ │ task = 'information_extraction' │ │ │ ╰──────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/ocr/anaconda/envs/conda_env_paddlenlp_uie/lib/python3.8/site-packages/ │ │ paddlenlp/taskflow/task.py:369 in _get_inference_model │ │ │ │ 366 │ │ │ self._config = paddle.inference.Config(self._staticmodel │ │ 367 │ │ │ self._prepare_static_mode() │ │ 368 │ │ else: │ │ ❱ 369 │ │ │ self._prepare_onnx_mode() │ │ 370 │ │ │ 371 │ def _convert_dygraph_to_static(self): │ │ 372 │ │ """ │ │ │ │ ╭───────────────────────────────── locals ─────────────────────────────────╮ │ │ │ _base_path = '/home/ocr/.paddlenlp/taskflow/information_extraction/uie-… │ │ │ │ self = <paddlenlp.taskflow.information_extraction.UIETask object │ │ │ │ at 0x7f094730a7f0> │ │ │ ╰──────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/ocr/anaconda/envs/conda_env_paddlenlp_uie/lib/python3.8/site-packages/ │ │ paddlenlp/taskflow/task.py:247 in _prepare_onnx_mode │ │ │ │ 244 │ │ │ os.mkdir(onnx_dir) │ │ 245 │ │ float_onnx_file = os.path.join(onnx_dir, "model.onnx") │ │ 246 │ │ if not os.path.exists(float_onnx_file) or self._param_updated: │ │ ❱ 247 │ │ │ onnx_model = paddle2onnx.command.c_paddle_to_onnx( │ │ 248 │ │ │ │ model_file=self._static_model_file, │ │ 249 │ │ │ │ params_file=self._static_params_file, │ │ 250 │ │ │ │ opset_version=13, │ │ │ │ ╭───────────────────────────────── locals ─────────────────────────────────╮ │ │ │ float_onnx_file = '/home/ocr/.paddlenlp/taskflow/information_extraction… │ │ │ │ onnx = <module 'onnx' from │ │ │ │ '/home/ocr/anaconda/envs/conda_env_paddlenlp_uie/lib/… │ │ │ │ onnx_dir = '/home/ocr/.paddlenlp/taskflow/information_extraction… │ │ │ │ self = <paddlenlp.taskflow.information_extraction.UIETask │ │ │ │ object at 0x7f094730a7f0> │ │ │ ╰──────────────────────────────────────────────────────────────────────────╯ │ ╰──────────────────────────────────────────────────────────────────────────────╯ UnboundLocalError: local variable 'paddle2onnx' referenced before assignment (conda_env_paddlenlp_uie) ocr@ocr:~/anaconda/envs/conda_env_paddlenlp_uie$

achial commented 1 year ago

我把task.py中的这一行改了

self._predictor_type = "paddle-inference"

    self._predictor_type = "onnxruntime"
vvwomen commented 1 year ago

看起来像是没有安装第3方依赖库,pip install onnxruntime-gpu onnx onnxconverter-common paddle2onnx 安装一下呢

achial commented 1 year ago

看起来像是没有安装第3方依赖库,pip install onnxruntime-gpu onnx onnxconverter-common paddle2onnx 安装一下呢

都装了一遍,好像不太行,最后日志又让我删了onnxruntime-gpu和onnxruntime 只安装onnxruntime-gpu,可是我这个ubuntu机器用的是cpu呀。。。

shopexdream commented 1 year ago

我解决了,python=3.8 ,paddlenlp=2.5.2,我感觉问题是出在了task.py文件中的self._predictor_type不能是"paddle-inference",把self._predictor_type改成 "onnxruntime",然后试试呢~

同样的问题。paddlenlp:2.6.0.post 我来试试降级到paddlenlp=2.5.2看看能不能行

achial commented 1 year ago

我解决了,python=3.8 ,paddlenlp=2.5.2,我感觉问题是出在了task.py文件中的self._predictor_type不能是"paddle-inference",把self._predictor_type改成 "onnxruntime",然后试试呢~

同样的问题。paddlenlp:2.6.0.post 我来试试降级到paddlenlp=2.5.2看看能不能行

我直接使用了paddlenlp不用paddleocr里面的关键信息抽取了,虽然我知道paddleocr里面的kie就是用的paddlenlp的模型训练来的 你说的这个降级我在paddlenlp的部署的时候也遇到了,应该是同样的问题,感觉你的这个应该可以解决

shopexdream commented 1 year ago

--


我解决了,python=3.8 ,paddlenlp=2.5.2,我感觉问题是出在了task.py文件中的self._predictor_type不能是"paddle-inference",把self._predictor_type改成 "onnxruntime",然后试试呢~

同样的问题。paddlenlp:2.6.0.post 我来试试降级到paddlenlp=2.5.2看看能不能行

我直接使用了paddlenlp不用paddleocr里面的关键信息抽取了,虽然我知道paddleocr里面的kie就是用的paddlenlp的模型训练来的 你说的这个降级我在paddlenlp的部署的时候也遇到了,应该是同样的问题,感觉你的这个应该可以解决

paddlenlp-2.6.0 paddlenlp-2.6.0rc 一路降级都试了,都不行。还是老错误

降级到5.*,也不行,只是报错变成了TypeError: 'NoneType' object is not subscriptable paddlenlp-2.5.2 paddlenlp-2.5.1

Leo-WL commented 1 year ago

我也遇到同样的问题。在运行task = Taskflow("information_extraction", schema=schema, model="uie-x-base")时报以下的错,但是换到其他系统就不报错,请大佬们看看怎么解决 环境1 (服务器): Ubuntu2204 python 3.7 paddleppaddle 2.5.1 paddlenlp 2.6.1. paddleocr 2.7.0.2 报错 环境2 (服务器): Centos7 python 3.7 paddleppaddle 2.5.2 paddlenlp 2.6.1. paddleocr 2.7.0.2 报错 环境3 (iMac 2017): macOS13.5 python 3.7 paddleppaddle 2.5.2 paddlenlp 2.6.1. paddleocr 2.7.0.2 不报错 环境4 (M1 MacBookAir): macOS14.1.1 python 3.7 paddleppaddle 2.5.2 paddlenlp 2.6.1. paddleocr 2.7.0.2 不报错 Traceback (most recent call last): File "/root/anaconda3/envs/py37/lib/python3.7/site-packages/flask/app.py", line 1823, in full_dispatch_request rv = self.dispatch_request() File "/root/anaconda3/envs/py37/lib/python3.7/site-packages/flask/app.py", line 1799, in dispatch_request return self.ensure_sync(self.view_functions[rule.endpoint])(view_args) File "/root/anaconda3/envs/py37/lib/python3.7/site-packages/flask_restful/init.py", line 489, in wrapper resp = resource(args, kwargs) File "/root/anaconda3/envs/py37/lib/python3.7/site-packages/flask/views.py", line 107, in view return current_app.ensure_sync(self.dispatch_request)(kwargs) File "/root/anaconda3/envs/py37/lib/python3.7/site-packages/flask_restful/init.py", line 604, in dispatch_request resp = meth(args, kwargs) File "/root/pdserving/app.py", line 631, in post result = VL_ie( {"doc": file_path }) File "/root/anaconda3/envs/py37/lib/python3.7/site-packages/paddlenlp/taskflow/taskflow.py", line 817, in call results = self.task_instance(inputs, kwargs) File "/root/anaconda3/envs/py37/lib/python3.7/site-packages/paddlenlp/taskflow/task.py", line 527, in call outputs = self._run_model(inputs, kwargs) File "/root/anaconda3/envs/py37/lib/python3.7/site-packages/paddlenlp/taskflow/information_extraction.py", line 1068, in _run_model results = self._multi_stage_predict(_inputs) File "/root/anaconda3/envs/py37/lib/python3.7/site-packages/paddlenlp/taskflow/information_extraction.py", line 1166, in _multi_stage_predict result_list = self._single_stage_predict(examples) File "/root/anaconda3/envs/py37/lib/python3.7/site-packages/paddlenlp/taskflow/information_extraction.py", line 979, in _single_stage_predict self.predictor.run() ValueError: (InvalidArgument) The 0-th dimension of input[0] and input[1] is expected to be equal.But received input[0]'s shape = [1, 512], input[1]'s shape = [4, 49].

[operator < concat > error]

zhaoqf-cq commented 1 year ago

3.7 paddleppaddle 2.5.2 paddlenlp 2.6.1.

不知为何我居然收到了邮件提醒... 我觉得你应该把 CPU 和 内存都贴出来, 而且注意是否使用了虚拟化... 这些好像都有关系