|一键启动在线推理服务,轻松实现在线部署,这有个「炼丹」利器( 四 )
1. 获取示例模型文件
使用 paddle-serving-app 下载图像分割模型示例文件 。
python -m paddle_serving_app.package --get_model senta_bilstmpython -m paddle_serving_app.package --get_model lactar -xzf senta_bilstm.tar.gztar -xzf lac.tar.gz
解压后将会生成 LAC 模型和 Senta 模型的服务端和客户端的部署文件 lac_model、lac_client、senta_bilstm_model 和 senta_bilstm_client 。
2. 启动推理服务
先在 9300 端口上启动预处理使用的 LAC 模型的推理服务 。
python -m paddle_serving_server.serve --model lac_model --port 9300
在 Senta 模型的推理服务中 , 会在预处理部分去访问本地的 9300 端口 , 获取 LAC 模型的推理结果再进一步处理成为 Senta 模型的输入数据 。 启动 Senta 服务的脚本(senta_web_service.py)如下所示:
from paddle_serving_server.web_service import WebServicefrom paddle_serving_client import Clientfrom paddle_serving_app.reader import LACReader, SentaReader
class SentaService(WebService): #初始化LAC模型预测服务 def init_lac_client(self, lac_port, lac_client_config): self.lac_reader = LACReader() self.senta_reader = SentaReader() # 创建LAC模型推理的客户端 self.lac_client = Client() # 加载LAC模型的配置文件 self.lac_client.load_client_config(lac_client_config) # 连接LAC服务 self.lac_client.connect([''X.X.X.X:{}''.format(lac_port)])
#定义Senta模型推理服务的预处理 , 调用顺序:lac reader->LAC模型推理->推理结果后处理->senta reader def preprocess(self, feed=[], fetch=[]): feed_data = http://news.hoteastday.com/a/[{''words'': self.lac_reader.process(x[''words'']) } for x in feed] lac_result = self.lac_client.predict( feed=feed_data, fetch=[''crf_decode'']) feed_batch = [] result_lod = lac_result[''crf_decode.lod''] for i in range(len(feed)): segs = self.lac_reader.parse_result( feed[i][''words''], lac_result[''crf_decode''][result_lod[i]:result_lod[i + 1]]) feed_data = http://news.hoteastday.com/a/self.senta_reader.process(segs) feed_batch.append({''words'': feed_data}) return feed_batch, fetch# Senta Service封装了启动Senta模型和对接Senta预处理的流程#声明推理服务 senta_service = SentaService(name=''senta'') #加载Senta模型的配置文件 senta_service.load_model_config(''senta_bilstm_model'') #配置推理服务的工作目录和端口 senta_service.prepare_server(workdir=''workdir'' ,port=9393) #初始化LAC分词推理服务的客户端 senta_service.init_lac_client( lac_port=9300, lac_client_config=''lac_model/serving_server_conf.prototxt'') #启动Senta模型推理服务的RPC服务部分 , Senta模型使用RPC协议和LAC模型通信senta_service.run_rpc_service() #启动Senta模型推理服务的http服务部分 senta_service.run_web_service()
用户可以在服务端上执行下面的命令来调用 senta_web_service.py 脚本来启动 Senta 推理服务 , 推理服务的端口为 9393 。
3. 通过客户端访问推理服务
通过 HTTP 请求来访问服务 , 其中 X.X.X.X 为服务端的地址 。
curl -H ''Content-Type:application/json'' -X POST -d '{''feed'':[{''words'': ''天气不错''}], ''fetch'':[''class_probs'']}' http://X.X.X.X:9393/senta/prediction
获取到的返回结果如下所示 , class_probs 中为样本的推理概率 , 分别为消极情绪的概率和积极情绪的概率 。
{''result'':{''class_probs'':[[0.0690595954656601,0.9309403896331787]]}}
推荐阅读
- 滴滴出行|传滴滴出行启动IPO 目标估值800亿美元
- |黑爵电竞鼠标AJ337 电竞手残党福音 鼠标宏一键火力全开
- 招生|有道词典与中国教育在线合作,开通“高考招生”直播服务
- 与非网|电动机降压启动电路
- 科创板上市|哪吒汽车启动C轮融资 寻求2021年科创板上市
- 文学|字节跳动再投资网文平台塔读文学 6天前已与中文在线达成合作
- 智能电视|喜大普奔!海信等多家品牌电视开机广告可“一键关闭”
- 《麻省理工科技评论》|麻省理工科技评论等在杭州启动一“加速器”,瞄准智慧建筑
- zol中关村在线|为游戏而“声” 辩位感强烈的电竞耳机推荐
- 钛媒体|【正在招募】首届全球青少年图灵计划启动,等一个热爱AI的你!
