From 01a11390234c3e4a0990822beab3fe1430860e0e Mon Sep 17 00:00:00 2001 From: KP <109694228@qq.com> Date: Fri, 29 Oct 2021 10:21:08 +0800 Subject: [PATCH] - --- docs/docs_ch/tutorial/bert_service.md | 234 -------------------------- 1 file changed, 234 deletions(-) delete mode 100644 docs/docs_ch/tutorial/bert_service.md diff --git a/docs/docs_ch/tutorial/bert_service.md b/docs/docs_ch/tutorial/bert_service.md deleted file mode 100644 index 8485f52e..00000000 --- a/docs/docs_ch/tutorial/bert_service.md +++ /dev/null @@ -1,234 +0,0 @@ -# Bert Service -## 简介 -### 为什么使用Bert Service -开发者在进行NLP(自然语言处理)的时候常常需要获取文本的embedding(词向量),需要专门编写相应代码,且只能在本地进行。使用`Bert Service`能够将此过程转化为远程调用API,完成远程获取embedding。 -### 什么是Bert Service -`Bert Service`是基于[Paddle Serving](https://github.com/PaddlePaddle/Serving)框架的快速部署模型远程计算服务方案,可将获取embedding的过程通过调用API接口的方式实现,减少了对机器资源的依赖。使用PaddleHub可在服务器上一键部署`Bert Service`服务,在另外的普通机器上通过客户端接口即可轻松的获取文本对应的embedding数据。 - -整体流程图如下: - -![](../imgs/bs.png) - - -### Bert Service的特点 -使用`Bert Service`能够帮助开发者在限制性较强的环境中有效获取embedding,常用于以下情景: -* 算力有限的集群环境中,可利用一台或几台高性能机器部署`Bert Service`服务端,为全部机器提供在线embedding功能。 - -* 实际的生产服务器不适宜承担大批量embedding工作,通过API接口可减少资源占用。 - -* 专注下游深度学习任务,可利用PaddleHub的`Bert Service`大幅减少embedding代码。 - -`Bert Service`具有几个突出的优点: - -* 代码精短,易于使用。简单的pip安装方式,服务端仅需一行命令即可启动,客户端仅需一行代码即可获取embedding结果。 - -* 更高性能,更高效率。通过Paddle AnalysisPredictor API对模型的计算图进行优化,提升了计算速度并减小了显存占用。 - -* 随"机"应变,灵活扩展。可根据机器资源选择不同数量的服务端,并根据实际需求快速、灵活地进行增减,同时支持各张显卡执行不同的模型计算任务。 - -* 删繁就简,专注任务。`Bert Service`基于PaddlePaddle和PaddleHub开发,将模型的下载和安装等管理工作交由PaddleHub,开发者可以专注于主要任务,还可以无缝对接PaddleHub继续进行文本分类、序列标注等下游任务。 - -使用Bert Service搭建服务主要分为下面三个步骤: - -## Step1:准备环境 -### 环境要求 -下表是使用`Bert Service`的环境要求,带有*号标志项为非必需依赖,可根据实际使用需求选择安装。 - -|项目|版本|说明| -|:-:|:-:|:-:| -|操作系统|Linux|目前仅支持Linux操作系统| -|PaddleHub|>=1.4.0|无| -|PaddlePaddle|>=1.6.1|若使用GPU计算,则对应使用PaddlePaddle-gpu版本| -|GCC|>=4.8|无| -|paddle-gpu-serving*|>=0.8.2|在`Bert Service`服务端需依赖此包| -|ujson*|>=1.35|在`Bert Service`客户端需依赖此包| - -### 安装步骤 -a) 安装PaddlePaddle,利用pip下载CPU版本命令如下。GPU版本、Docker方式安装等其他更具体的安装过程见[开始使用PaddlePaddle](https://paddlepaddle.org.cn/install/quick) -```shell -$ # 安装paddlepaddle的CPU版本 -$ pip install paddlepaddle -``` -b) 安装PaddleHub -```shell -$ pip install paddlehub -``` -c) server端,需另外安装`paddle-gpu-serving`,以获取快速部署服务的能力 -```shell -$ pip install paddle-gpu-serving -``` -d) client端,需另外安装ujson -```shell -$ pip install ujson -``` - - -### 支持模型 -目前`Bert Service`支持的语义模型如下表,可根据需要选择模型进行部署embedding服务,未来还将支持更多模型。 - -|模型|网络| -|:-|:-:| -|[ernie](https://paddlepaddle.org.cn/hubdetail?name=ERNIE&en_category=SemanticModel)|ERNIE| -|[ernie_tiny](https://paddlepaddle.org.cn/hubdetail?name=ernie_tiny&en_category=SemanticModel)|ERNIE tiny| -|[ernie_v2_eng_large](https://paddlepaddle.org.cn/hubdetail?name=ernie_v2_eng_large&en_category=SemanticModel)|ERNIE 2.0| -|[ernie_v2_eng_base](https://paddlepaddle.org.cn/hubdetail?name=ernie_v2_eng_base&en_category=SemanticModel)|ERNIE 2.0| -|[roberta_wwm_ext_chinese_L-12_H-768_A-12](https://paddlepaddle.org.cn/hubdetail?name=roberta_wwm_ext_chinese_L-12_H-768_A-12&en_category=SemanticModel)|BERT| -|[roberta_wwm_ext_chinese_L-24_H-1024_A-16](https://paddlepaddle.org.cn/hubdetail?name=roberta_wwm_ext_chinese_L-24_H-1024_A-16&en_category=SemanticModel)|BERT| -|[bert_wwm_ext_chinese_L-12_H-768_A-12](https://paddlepaddle.org.cn/hubdetail?name=bert_wwm_ext_chinese_L-12_H-768_A-12&en_category=SemanticModel)|BERT| -|[bert_uncased_L-12_H-768_A-12](https://paddlepaddle.org.cn/hubdetail?name=bert_uncased_L-12_H-768_A-12&en_category=SemanticModel)|BERT| -|[bert_uncased_L-24_H-1024_A-16](https://paddlepaddle.org.cn/hubdetail?name=bert_uncased_L-24_H-1024_A-16&en_category=SemanticModel)|BERT| -|[bert_cased_L-12_H-768_A-12](https://paddlepaddle.org.cn/hubdetail?name=bert_cased_L-12_H-768_A-12&en_category=SemanticModel)|BERT| -|[bert_cased_L-24_H-1024_A-16](https://paddlepaddle.org.cn/hubdetail?name=bert_cased_L-24_H-1024_A-16&en_category=SemanticModel)|BERT| -|[bert_multi_cased_L-12_H-768_A-12](https://paddlepaddle.org.cn/hubdetail?name=bert_multi_cased_L-12_H-768_A-12&en_category=SemanticModel)|BERT| -|[bert_chinese_L-12_H-768_A-12](https://paddlepaddle.org.cn/hubdetail?name=bert_chinese_L-12_H-768_A-12&en_category=SemanticModel)|BERT| - - -## Step2:启动服务端(server) -### 简介 -server端接收client端发送的数据,执行模型计算过程并将计算结果返回给client端。 - -server端启动时会按照指定的模型名称从PaddleHub获取对应的模型文件进行加载,无需提前下载模型或指定模型路径,对模型的管理工作由PaddleHub负责。在加载模型后在指定的端口启动`BRPC`服务,保持端口监听,当接收到数据后便执行模型计算,并将计算结果通过`BRPC`返回并发送至client端。 - -### 启动 -使用PaddleHub的命令行工具可一键启动`Bert Service`,命令如下: -```shell -$ hub serving start bert_service -m ernie_tiny -p 8866 --use_gpu --gpu 0 -``` -启动成功则显示 -```shell -Server[baidu::paddle_serving::predictor::bert_service::BertServiceImpl] is serving on port=8866. -``` -[整个启动过程动态图](https://github.com/ShenYuhan/ml-python/blob/master/short_start_fast.gif) - - -其中各参数说明如下表: - -