第2章 工程环境准备

工欲善其事,必先利其器。本章将开始机器学习项目的软件工程环境的准备。我们首先在最常用的操作系统平台Windows、Linux、macOS下安装知名的Anaconda集成的数据科学包的Python环境。Anaconda集成了当下大量常用的且质量有保障的Python机器学习包,这种开箱即用的集成环境给大家带来了极大的便利。但是,当我们有自定义需求时则需要使用另外的方式实现。为此,本章首先推荐的是Python通用的虚拟环境的自定义方法,并使用Pipenv这一便利的工具(Pipenv是Python环境下的工具而非机器学习的软件包)。接着讲述如何借助Docker这一虚拟化技术打包自定义的Python环境,便于环境发布和标准化。接着重点讲述数据科学项目标准的Docker环境,以解决机器学习项目的开发痛点。

机器学习中,数据处理、调参等工作涉及的个人经验偏多,企业内部很难实现机器学习项目的无缝交接,结果难以复现,在模型上线阶段也极易出现Python环境不一致的尴尬局面。将机器学习项目作为一个标准的软件项目工程来管理,同普通的软件开发项目一样,需要构建标准机器学习项目环境(数据工程环境),其中包括:项目独立的环境、标准的开发目录结构、一致的软件包版本、遵循的规范,由此可轻松实现完整的项目交接传承、验收和结果的复现。

本章为读者提供了一个机器学习Docker环境,用户可自由在Docker市场[1]搜索下载,同时包含上层的管理工具以及环境定制功能。读者也可在企业内部搭建企业私有Docker Hub以实现企业内镜像的统一分发,满足不同部门对虚拟化环境的需求,如同大型IT或互联网企业内部的YUM源功能一样。

很明显,本章的工程属性非常重,涵盖了个人机器学习开发、论文实验(公开原理和算法可复现的)环境,同时亦满足企业标准化、项目化的数据科学开发环境的多种需求。

注意:本书所使用的Python版本是Python 3,使用的操作系统在没有特殊说明时指的是CentOS系统。

[1] https://cloud.docker.com/