WINDOWS环境下搭建PaddleNlp端到端语义检索系统

Posted renjuan82

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WINDOWS环境下搭建PaddleNlp端到端语义检索系统相关的知识,希望对你有一定的参考价值。

PaddleNlp官方安装流程见https://github.com/PaddlePaddle/PaddleNLP/blob/develop/pipelines/examples/semantic-search/Install_windows.md

里面有些说的不清楚的,我这里又写了一份。

Anaconda安装好以后,进入 Anaconda Powershell Prompt。注意不要用Anaconda Prompt (Anaconda3),否则有些命令不能操作!下面开始以下操作,注意操作顺序不要乱,否则也可能造成安装失败!

  1. 新建个python环境,注意不要在已有装过其它包的大python环境中装paddlenlp,否则可能造成包的版本依赖冲突。新建python环境命令示例如下:
conda create -n nlp python=3.8 
conda activate nlp
  1. 进入新建nlp python环境中安装paddlepaddle,PaddlePaddle的安装请参考文档官方安装文档
    https://www.paddlepaddle.org.cn/install/quick?docurl=/documentation/docs/zh/install/pip/windows-pip.html。注意:gpu版的paddlepaddle要根据自己安装的cuda版本选择对应的paddlepaddle版本。
  2. 安装下面的依赖:
git clone https://github.com/tvst/htbuilder.git
cd htbuilder/
python setup.py install
  1. 下载PaddleNLP源代码并安装
git clone https://github.com/PaddlePaddle/PaddleNLP.git
cd PaddleNLP/pipelines
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
python setup.py install

注意:接下来的操作都要在pipelines目录下进行,不要跳转目录。
5. 启动 ANN 服务
https://www.elastic.co/cn/downloads/elasticsearch下载安装 elasticsearch-8.3.2 并解压。
在config\\ elasticsearch.yml文件中添加

xpack.security.enabled: false

然后直接双击bin目录下的elasticsearch.bat即可启动ES 服务。

注意启动后不要关闭该窗口。
6. 文档数据写入 ANN 索引库
以DuReader-Robust 数据集为例建立 ANN 索引库

python utils/offline_ann.py --index_name dureader_robust_query_encoder --doc_dir data/dureader_dev

7.启动 RestAPI 模型服务
#指定语义检索系统的Yaml配置文件

$env:PIPELINE_YAML_PATH='rest_api/pipeline/semantic_search.yaml'

#使用端口号 8891 启动模型服务

python rest_api/application.py 8891


注意启动后不要关闭该窗口。
8. 启动 WebUI
#配置模型服务地址

$env:API_ENDPOINT='http://127.0.0.1:8891'

#在指定端口 8502 启动 WebUI

python -m streamlit run ui/webapp_semantic_search.py --server.port 8502


注意启动后不要关闭该窗口。
到这里您就可以打开浏览器访问 http://127.0.0.1:8502 地址体验语义检索系统服务了。

以上是关于WINDOWS环境下搭建PaddleNlp端到端语义检索系统的主要内容,如果未能解决你的问题,请参考以下文章

在 ubuntu 或 windows 上运行的 MS Edge 进行端到端测试有啥区别吗?

All in one:如何搭建端到端可观测体系

vue-cli 脚手架基于Nightwatch的端到端测试环境的过程

WebRTC 一对一语音通话中音频端到端分段延迟分析

系统测试与端到端测试:哪一个更适合选择?

28是否要使用端到端的深度学习?