Package: paddle-pipelines
PaddleNLP Pipelines：NLP流水线系统PaddleNLP Pipelines 是一个端到端NLP流水线系统框架，面向 NLP全场景，帮助用户低门槛构建强大产品级系统。更多效果展示Demo请参考效果展示NLP流水线系统特色全场景支持：依托灵活的插拔式组件产线化设计，支持各类 NLP 场景任务，包括：信息抽取、情感倾向分析、阅读理解、检索系统、问答系统、文本分类、文本生成等。低门槛开发：依托丰富的预置组件，像搭积木一样快速构建产品级系统，预置组件覆盖文档解析、数据处理、模型组网、预测部署、Web 服务、UI 界面等全流程系统功能。高精度预测：基于前沿的预训练模型、成熟的系统方案，可构建效果领先的产品级系统，如NLP流水线系统中预置的语义检索系统、阅读理解式智能问答系统等。灵活可定制：除深度兼容 PaddleNLP 模型组件外，还可嵌入飞桨生态下任意模型、AI 开放平台算子、其它开源项目如 Elasticsearch 等作为基础组件，快速扩展，从而实现任意复杂系统的灵活定制开发。Benchmarks更多的Benchmarks的信息请参考文档BenchmarksNLP流水线系统PaddleNLP Pipelines NLP流水线系统针对 NLP 部分高频场景开源了经过充分打磨的产品级系统，并会不断开放其它场景的产品级系统，用户可以基于NLP流水线系统提供的系统能力快速开发出适配业务数据的产品。快速搭建产品级语义检索系统：使用自然语言文本通过语义进行智能文档查询，而不是关键字匹配快速搭建产品级智能问答系统：用自然语言提问，即可获得精准答案片段快速搭建产品级FAQ 问答系统：用自然语言提问，匹配相关的高频问题，并返回匹配到的高频问题的答案快速搭建产品级多模态信息抽取系统（即将开放，敬请期待）效果展示语义检索智能问答FAQ智能问答:floppy_disk:快速安装安装 PaddleNLP Pipelines:beginner:快速体验基于 Pipelines 快速搭建语义检索/智能问答等产品系统:man_office_worker:用户案例各行业用户基于PaddleNLP Pipelinse 构建的产品案例:mortar_board:Tutorials像搭积木一样一步步构建 NLP 流水线系统教程:bar_chart:Benchmarks针对各场景模型的性能、精度评测指标:telescope:RoadmapPaddleNLP Pipelines 产品路线图:newspaper:技术博客阅读 PaddleNLP Pipelines 系列技术文章:vulcan_salute:社区交流官方微信群,GitHub Discussions:floppy_disk: 安装Note: 因为 pipelines 依赖较多, 安装耗时大概 10 分钟左右，安装过程中请请耐心等待。环境依赖python >= 3.7.3paddlenlp >= 2.2.1paddlepaddle >=2.3CUDA Version: 10.2NVIDIA Driver Version: 440.64.00Docker 18.03 以上pip 安装pip install --upgrade paddle-pipelines源码安装git clone https://github.com/PaddlePaddle/PaddleNLP.git
cd PaddleNLP/pipelines
python setup.py install:beginner: 快速体验快速开发您可以参考如下示例像搭积木一样快速构建语义检索流水线，通过命令行终端输出快速体验流水线系统效果frompipelines.document_storesimportFAISSDocumentStorefrompipelines.nodesimportDensePassageRetriever,ErnieRanker# Step1: Preparing the datadocuments=[{'content':'金钱龟不分品种,只有生长地之分,在我国主要分布于广东、广西、福建、海南、香港、澳门等地,在国外主要分布于越南等亚热带国家和地区。','meta':{'name':'test1.txt'}},{'content':'衡量酒水的价格的因素很多的，酒水的血统(也就是那里产的，采用什么工艺等）；存储的时间等等，酒水是一件很难标准化得商品，只要你敢要价，有买的那就值那个钱。','meta':{'name':'test2.txt'}}]# Step2: Initialize a FaissDocumentStore to store texts of documentsdocument_store=FAISSDocumentStore(embedding_dim=768)document_store.write_documents(documents)# Step3: Initialize a DenseRetriever and build ANN indexretriever=DensePassageRetriever(document_store=document_store,query_embedding_model="rocketqa-zh-base-query-encoder",embed_title=False)document_store.update_embeddings(retriever)# Step4: Initialize a Rankerranker=ErnieRanker(model_name_or_path="rocketqa-base-cross-encoder")# Step5: Initialize a SemanticSearchPipeline and ask questionsfrompipelinesimportSemanticSearchPipelinepipeline=SemanticSearchPipeline(retriever,ranker)prediction=pipeline.run(query="衡量酒水的价格的因素有哪些?")快速部署您可以基于我们发布的 Docker 镜像一键部署智能文本流水线系统，通过 Web UI 快速体验。启动 elastic searchdocker network create elastic
docker pull docker.elastic.co/elasticsearch/elasticsearch:8.3.3
docker run \
      -d \
      --name es02 \
      --net elastic \
      -p 9200:9200 \
      -e discovery.type=single-node \
      -e ES_JAVA_OPTS="-Xms256m -Xmx256m"\
      -e xpack.security.enabled=false \
      -e cluster.routing.allocation.disk.threshold_enabled=false \
      -it \
      docker.elastic.co/elasticsearch/elasticsearch:8.3.3部署 CPU 服务对于Linux使用Docker的用户，使用下面的命令：docker pull registry.baidubce.com/paddlepaddle/paddlenlp:2.4.0
docker run -d --name paddlenlp_pipelines --net host -ti registry.baidubce.com/paddlepaddle/paddlenlp:2.4.0对于Windows&Macos上使用Docker的用户，用下面的命令：docker pull registry.baidubce.com/paddlepaddle/paddlenlp:2.4.0.windows.darwin
docker run -d --name paddlenlp_pipelines  -p 8891:8891 -p 8502:8502 -ti registry.baidubce.com/paddlepaddle/paddlenlp:2.4.0.windows.darwinCPU 镜像下载大概耗时 10 分钟左右，容器启动成功后，等待3分钟左右，通过浏览器访问http://127.0.0.1:8502快速体验产品级语义检索服务。部署 GPU 服务docker pull registry.baidubce.com/paddlepaddle/paddlenlp:2.4.0-gpu-cuda10.2-cudnn7
nvidia-docker run -d --name paddlenlp_pipelines_gpu --net host -ti registry.baidubce.com/paddlepaddle/paddlenlp:2.4.0-gpu-cuda10.2-cudnn7GPU 镜像下载大概耗时 15 分钟左右，容器启动成功后，等待1分钟左右，通过浏览器访问http://127.0.0.1:8502快速体验产品级语义检索服务。对于国内用户，因为网络问题下载docker比较慢时，可使用百度提供的镜像：环境镜像 Tag运行平台CPUregistry.baidubce.com/paddlepaddle/paddlenlp:2.4.0LinuxCPUregistry.baidubce.com/paddlepaddle/paddlenlp:2.4.0.windows.darwinWindows&MacosCUDA10.2 + cuDNN 7registry.baidubce.com/paddlepaddle/paddlenlp:2.4.0-gpu-cuda10.2-cudnn7LinuxCUDA11.2 + cuDNN 8registry.baidubce.com/paddlepaddle/paddlenlp:2.4.0-gpu-cuda11.2-cudnn8Linux如果您的机器不在中国大陆地区，我们推荐您使用DockerHub的镜像：环境镜像 Tag运行平台CPUpaddlepaddle/paddlenlp:2.4.0LinuxCPUpaddlepaddle/paddlenlp:2.4.0.windows.darwinWindows&MacosCUDA10.2 + cuDNN 7paddlepaddle/paddlenlp:2.4.0-gpu-cuda10.2-cudnn7LinuxCUDA11.2 + cuDNN 8paddlepaddle/paddlenlp:2.4.0-gpu-cuda11.2-cudnn8Linux对于智能问答应用，请参考Docker文档docker文档，只需做少量的修改，就可以完成智能问答应用的部署。REST APIPipelines可以服务化，通过HTTP接口的形式供其他程序进行调用，Pipelines提供了Swagger API方便用户查询接口文档，从而把Pipelines的能力接入到自己的应用系统中，只需要在启动REST API后通过浏览器访问http://127.0.0.1:8891/docs:man_office_worker: 用户案例案例1:寻规-工程规范搜索引擎寻规，是一款基于飞桨 PaddleNLP Pipelines 构建的建筑工程规范搜索引擎。大幅提升了工程设计人员工作效率。查询效率提升 36~60 倍相比市面当前的工程规范查询系统/网站，平均查询到一条规范条款要 3~5 分钟，而基于 PaddleNLP Pipelines 构建的寻规检索系统，平均查询到一条规范条款仅需 5 秒左右，搜索时间大幅缩短，仅规范查询效率方面就提升36~60倍！查询精度大幅提升市面现已有的工程规范查询系统解决方案一直延续着传统关键字词匹配的查询方式，依赖用户对查询结果进行自行排序、筛选、鉴别，有时甚至还要再次由工程设计人员耗费一定时间精力人工查阅工程规范文件后，才能最终确认是否为想要查询的规范条款。传统规范查询系统至少需要进行 3~5 次查询才能找到用户想要的规范条款，而寻规系统是基于强大预训练模型构建起来的语义检索系统，针对 80% 的规范查询需求仅1 次查询就能精确命中查询意图，并返回真正符合工程设计人员查询意图的结果！:mortar_board: TutorialsTutorial 1 - PipelinesWindows视频安装教程Tutorial 2 - 语义检索 Pipeline:AIStudio notebook|PythonTutorial 3 - 智能问答 Pipeline:AIStudio notebook|PythonTutorial 4 - FAQ智能问答 Pipeline:AIStudio notebook|PythonTutorial 5 - Pipelines 快速上手二次开发教程:AIStudio notebook:vulcan_salute: 社区交流微信扫描二维码并填写问卷之后，加入交流群与来自各行各业的小伙伴交流学习吧~:heart: Acknowledge我们借鉴了 Deepset.aiHaystack优秀的框架设计，在此对Haystack作者及其开源社区表示感谢。We learn form the excellent framework design of Deepset.aiHaystack, and we would like to express our thanks to the authors of Haystack and their open source community.