生产中的NLP:创建Docker镜像

本文介绍了如何在生产环境中使用Docker管理自然语言处理(NLP)项目,包括Dev、Test和Stage的不同版本控制。详细阐述了Dockerfile的创建,特别是针对Spacy和nltk的额外步骤,以及Jupyter Notebook和 Nbextensions在Docker镜像中的集成。此外,还提到了Docker与Docker Compose的联合使用,以及清理Docker资源的方法。
摘要由CSDN通过智能技术生成

作者|Bruce H. Cottman, Ph.D. 编译|VK 来源|Towards Data Science

产品生命周期

在过去两年半的工作中,我们开发和维护了几个自然语言处理项目。我们为每个项目中的每个版本控制中心创建了Docker镜像:Dev、Test和Stage。我将详细介绍Docker解决方案来创建生产NLP项目。

代码开发、重构、bug修复和单元测试都是由Dev完成的。在提交Github Dev repo(sitory)之前,代码必须通过单元测试。其他开发团队在合并到Test Github repo(sitory)之前执行代码评审、集成测试。

项目阶段管理(Project stage management)触发从开发人员到Test 存储库的推送。项目发布管理(Project release management)触发从Test 到Stage 存储库的推送。市场发布管理(Marketing release management)触发了从stage到Prod存储库的推送和半自动连续部署(CD)的推出。

什么是Docker

  1. 每个项目中有四个不同的版本控制中心:Dev,Test和Stage,Prod。只有需要支持三个不同的Docker镜像,因为最终阶段版本被推送到Prod,一旦Stage版本通过了安全和验收测试。Stage和Prod使用相同的Docker镜像。

  2. Python和R用户希望Jupyter和RStudio Notebook和Nbextensions首选项出现在Docker镜像中。

  3. 大多数Dev和所有Test都在本地使用PyCharm进行代码更新、调试和运行工具:单元测试(pytest)、类型检查(mypy)、覆盖率(cove)rage、PEP-8格式(黑色)和代码质量(pylint)。

  4. Github操作用于CI/CD部署。Prod Docker镜像专门用于特定云的安全性、日志记录或计量服务。

注意:云扩展和故障转移管理需要修改。我们这里不讨论这些。

同时使用Docker和Docker Compose

Docker是用于管理应用程序的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值