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.16k stars 2.94k forks source link

PaddleNLP server支持多模型同时部署 #4029

Closed turkeymz closed 1 year ago

turkeymz commented 1 year ago

Feature request

使用paddlenlp server 命令部署时,希望可以同时部署多个模型。 现只能部署一个taskflow,导致如果需求有几个模型服务,需要启动多个端口,造成资源浪费。且上游服务就多出很多配置。 若app可以同时添加多个taskflow,这样配置就可以变得简单,且无需占用太多端口。

Motivation

对端口资源浪费太多,导致先进只能用docker+一个流量转发服务的形式统一起来

Your contribution

PR

wawltor commented 1 year ago

目前PaddleNLP server不支持该项操作,因为这个操作和我们的负载均衡策略有冲突,目前没有计划放到server的研发计划里面; 可以通过下面的代码修改可以轻易实现该项操作, https://github.com/PaddlePaddle/PaddleNLP/blob/b3b4fd0a9dffe81f810e13f408b9cb783f9fd927/paddlenlp/server/taskflow_manager.py#L38 可以在client的parameters参数里面传入服务化的id号来实现

image

在client端可以设置taskflow_index来实现路由到某个server上


import requests
import json

url = "http://0.0.0.0:8189/taskflow/uie"
headers = {"Content-Type": "application/json"}
texts = ["城市内交通费7月5日金额114广州至佛山", "5月9日交通费29元从北苑到望京搜后"]
data = {
    "data": {
        "text": texts,
    },
   "parameters": {
       "taskflow_index": 1
    }
}
r = requests.post(url=url, headers=headers, data=json.dumps(data))
datas = json.loads(r.text)
print(datas)
```python 
turkeymz commented 1 year ago

目前PaddleNLP server不支持该项操作,因为这个操作和我们的负载均衡策略有冲突,目前没有计划放到server的研发计划里面; 可以通过下面的代码修改可以轻易实现该项操作,

https://github.com/PaddlePaddle/PaddleNLP/blob/b3b4fd0a9dffe81f810e13f408b9cb783f9fd927/paddlenlp/server/taskflow_manager.py#L38

可以在client的parameters参数里面传入服务化的id号来实现

image

在client端可以设置taskflow_index来实现路由到某个server上

import requests
import json

url = "http://0.0.0.0:8189/taskflow/uie"
headers = {"Content-Type": "application/json"}
texts = ["城市内交通费7月5日金额114广州至佛山", "5月9日交通费29元从北苑到望京搜后"]
data = {
    "data": {
        "text": texts,
    },
   "parameters": {
       "taskflow_index": 1
    }
}
r = requests.post(url=url, headers=headers, data=json.dumps(data))
datas = json.loads(r.text)
print(datas)
```python 

谢谢老师恢复,但我还是希望可以更方便的一键启动我想要的模型服务。并且同IP和端口。

wawltor commented 1 year ago

目前没有计划这个功能,因为和核心功能有一定冲突

github-actions[bot] commented 1 year ago

This issue is stale because it has been open for 60 days with no activity. 当前issue 60天内无活动,被标记为stale。

github-actions[bot] commented 1 year ago

This issue was closed because it has been inactive for 14 days since being marked as stale. 当前issue 被标记为stale已有14天,即将关闭。