如何在单机模式下部署机器学习环境

B站影视 2024-12-31 11:19 2

摘要:企业信息化建设随着企业发展和业务不断推进,通过信息化实现降本增效、提升业务的需求不断增强,通过数据管控业务已经成为企业管理的重要方式。通过深度挖掘数据价值,通过数据支撑企业发展,让数据为企业发展提供长效的支持。

企业信息化建设随着企业发展和业务不断推进,通过信息化实现降本增效、提升业务的需求不断增强,通过数据管控业务已经成为企业管理的重要方式。通过深度挖掘数据价值,通过数据支撑企业发展,让数据为企业发展提供长效的支持。

为了不断推进数据建设、实现数据资产管控,越来越多的企业开始建设数据平台,将数据作为企业的核心资产加以管控,而数据中台也在越来越多的在企业落地。数据中台的核心在于整合企业数据,构建覆盖企业全线业务的一体化、可复用的数据资产管理体系,不断挖掘数据的潜在价值,实现数据可视化、加强数据应用,通过数据预测、数据共享等方式支撑企业管理、运营和决策

DAP数据分析平台是定位于数据治理、数据分析的大数据平台,通过数据采集、加工、转换、汇总构建数据仓库,实现数据整合分析、可视化展现、数据提供、数据挖掘等业务和需求。

1.方案规划

数据中台方案是面向企业数据治理与分析的综合解决方案,主要内容包括主数据治理、数仓建设、数据分析、数据应用等,通过DAP平台实现企业数据的归集整合,构建数据仓库,基于数据仓库进行数据可视化分析、穿透业务场景、挖掘数据价值。

DAP数据分析平台作为数据治理分析的核心,通过平台搭建完成数仓建设、数据分析、数据应用。通过数仓构建ODS、DW、ADS等模型,实现数仓分层建设,并基于模型实现数据分析、数据应用。ESB作为数据总线平台,主要支持DAP平台实现源头系统到ODS、DW的数据采集、加工、转换、汇总。

2.功能架构

DAP数据分析平台在功能上包括了数据建设、数据分析、展现配置、数据资产、数据服务、算法模型等内容。

1.数仓建设:包括数据源注册以及ODS、数据模型等内容,通过从连接源头系统实现数据采集、加工、转换、汇总的过程,从而构建数仓维表、事实表以及数仓模型;

2.数据分析:基于数仓模型构建数据集、立方体、指标集、业务报表等分析模型,再结合平台预置的各类可视化组件实现数据的可视化分析,从而支持企业经营数据的查看以及企业运营的管理;

3.数据资产:基于数仓中的数据构建数据资产体系,将企业的数据构建成资产,从而用于企业数据的管理、价值分析以及数据共享;

4.数据服务:根据配置的各类分析模型自动或手动构建数据服务接口,实现对外的数据提供;

5.算法模型:通过DAP平台预置的各类算法对数据进行训练与模拟,构建算法模型对象,从而实现各类数据的预测与价值挖掘,从而支持业务层面的数据应用;

6.数据安全:通过各类数据加密、脱敏策略实现对关键数据、敏感数据进行加密、脱敏处理,从而保证数据使用过程中的数据安全性。

3.算法模型

DAP平台的算法模型包括:算法原型、算法开发、算法调用、算法日志等功能模块,主要通过分析模型与算法结合构建算法模型,实现数据预测。在使用过程中,首先需要通过数仓搭建数据模型,实现数据从源头到数仓的采集、加工、汇总;在数仓模型的基础上构建数据集,通过历史数据与算法原型建立算法开发模型进行数据训练,并生成算法调用对象;在算法调用中执行算法实现数据预测。

根据DAP平台的部署方案,机器学习的环境有两种部署的部署方式:如果DAP采用容器化部署,机器学习也是通过K8S容器进行部署和管理;如果DAP是采用传统部署模式,机器学习组件直接部署到虚拟机中。

1.部署内容

根据DAP中机器学习的算法和内容,在部署时需要部署:

1.Conda:软件包管理系统,提供了方便、快捷的软件包安装、更新和卸载功能;Conda环境管理可以创建独立的虚拟环境,用于隔离不同项目的依赖,从而避免版本冲突;

2.sklearn(scikit-learn):是一个Python机器学习库,提供了丰富的机器学习算法和工具,包括分类、回归、聚类、降维等,通过Conda可以快速安装sklearn,并自动处理依赖关系,确保安装包与Conda环境兼容;

3.ipykernel:Jupyter项目中的核心组件,为Jupyter Notebook提供内核支持,支持jupyter notebook的代码执行、标准输出、异常处理、代码补全等;

4.Jupyter Notebook:基于Web的交互式计算环境,可以进行编写代码、运行代码,并实时查看结果,并支持添加注释、格式化文字、插入链接和图像等。

2.部署架构

机器学习的架构主要是DAP与机器学习的组件之间的交互,具体架构图如下:

在DAP产品中通过底层封装的方式已经将相关调用方法、API等直接封转到了产品中,在通过DAP平台使用机器学习时,主要是通过页面配置相关模型、生成执行的脚本文件和代码。为了保证DAP能够直接访问Jupyter Notebook的编辑器,通过Nginx的方式将Jupyter Notebook的API、访问地址进行代理,避免DAP的跨域访问。

3.部署准备

机器学习环境的部署主要部署Conda,其他组件可以直接通过Conda的命令进行部署和管理。

在部署前到Anaconda官网(https://www.anaconda.com/)下载Anaconda安装包,Linux下的安装包名称:Anaconda3-版本号-系统.sh,如Anaconda3-2022.10-Linux-x86_64.sh,这个版本也是本次部署使用的版本。

部署过程

由于Anaconda3下载的是安装脚本文件,可以直接执行安装,所以安装步骤并不复杂,但是Anaconda3安装后需要通过命令的方式安装sklearn、ipykernel和Jupyter Notebook。

1.Conda部署

1.上传安装包Anaconda3-2022.10-Linux-x86_64.sh到服务器指定目录。

2.授权:chmod u+x Anaconda3-2022.10-Linux-x86_64.sh。

3.安装conda:

1)./Anaconda3-2022.10-Linux-x86_64.sh。

2)输入“回车”继续。

3) 连续点击“回车”继续,直到出现输入提示。

4) 输入“yes”接受。

5)确认安装目录,直接“回车”用默认目录,如果需要自定义目录,手动输入安装路径。

6)安装完成后,python -V查看python版本,python已经更新成和conda匹配的版本。

2.环境创建

如果当前服务器是在联网环境下,直接执行相关命令进行安装即可,如果是离线环境,需要找一个联网并且系统、内核等信息一致的服务器先进行下载,再打包上传到离线服务器。

1.在线部署:

1)创建环境:conda create --name sklearn python=3.9.13,注意:python版本使用conda部署后更新的版本。

2) 输入“y”确认。

3)查看环境信息:conda env list

a)base:conda自带的基础环境;

b)sklearn:手动创建的环境。

4)激活环境:conda activate sklearn。

5)通过pip或conda安装ipykernel:pip install ipykernel或conda install ipykernel。

6)通过pip或conda安装pandas:pip install pandas或conda install pandas。

7)通过pip或conda安装seaborn:pip install seaborn或conda install seaborn。

8)打包环境:conda pack -n sklearn --ignore-missing-files。

2.离线部署:

1)从联网服务器下载打包的sklearn.tar.gz文件,并上传到离线服务器中;

2)创建目录并解压压缩包:mkdir -p ~/anaconda3/envs/sklearn && tar -xzvf sklearn.tar.gz -C ~/anaconda3/envs/sklearn,注意解压后的文件放到conda安装目录的/envs下:

3)解压后查询环境信息:conda env list,sklearn已经加载到conda:

4)生成jupter的配置文件:jupyter notebook --generate-config;

5)修改配置:vi .jupyter/jupyter_notebook_config.py,修改本机ip地址;

3.启动测试

1.启动jupyter notebook,后台启动:nohup jupyter notebook > jupyter.log 2>&1 &

2.配置nginx代理:

注意:Nginx的配置要准确,否则可能由于token等无法传递导致notebook访问时403异常。

3.访问测试:http://代理服务器IP:代理端口/app/conda,输入启动时显示的token:

4.查看访问结果:

5.在./anaconda3目录上传算法原型、算法开发、算法调用的文件目录:AlgorithmPototype、AlgorithmDevelop、AlgorithmCall:

主要通过DAP验证机器学习的功能,保证DAP的算法模型可以正常访问机器学习的相关算法,并能实现算法编辑、执行、输出等。

1.DAP验证

1.修改全局变量:

2.算法原型测试:

3.算法开发测试:

4.算法调用测试:

2.文件同步

机器学习的部署模式主要是基于DAP平台的部署模式,如果DAP平台采用容器化部署,机器学习通过UMC直接部署到k8s容器中即可,如果DAP采用传统的本地化部署模式,机器学习也要本地部署。

在采用容器化部署时,机器学习的相关脚本文件和数据文件都是生成在共享目录下的,而k8s集群在部署时已经完成了共享目录的NFS共享,所以不需要单独处理文件共享。但是在本地化集群部署模式下,机器学习的相关脚本文件和数据文件是生成的本地的dap_server的子目录下,各个集群节点需要进行文件共享,才能保证DAP操作时可以同时对机器学习的相关文件进行操作。

NFS的安装采用Linux的通用安装方式即可,不做特殊说明,但是dap进行共享时主要共享目录为dap_server下的uploads文件夹,如/root/dap_server_x64_v3.5.1_20241224/uploads。

3.常用命令

1.Conda环境创建:conda create --name {环境名} python={python版本号}。

如:conda create --name sklearn python=3.9.13。

python版本要跟默认conda的python主版本一致(conda安装后会更新python,可以通过python -V)。

2.环境激活:conda activate {环境名}。

如:conda activate sklearn。

3.查询环境列表:conda env list。

4.取消环境激活:conda deactivate。

5.移除环境:conda remove --name {环境名} --all。

如:conda remove --name sklearn --all。

6.安装组件:conda install {组件名}或pip install {组件名}。

如:conda install scikit-learn或pip install scikit-learn。

推荐使用conda安装,pip是调用python安装。

7.指定jupyter的内核:python -m ipykernel install --user --name sklearn --display-name "sklearn-kernel"。

8.列出Jupyter中可用的内核:jupyter kernelspec list。

9.从jupyter内核列表中移除内核:jupyter kernelspec remove sklearn。

分析总结

算法功能是DAP数据分析平台非常重要的功能之一,是DAP进行数据应用的有效方式,通过算法模型可以对数仓数据进行分析预测,深度挖掘数据价值,从而在业务层面发挥数据治理的作用,使数据真正能服务于业务,提升业务管理水平。

1.功能总结

DAP的算法模型主要是通过机器学习的方式对数据进行训练,从而形成数据规律和模型,再基于训练的规则和模型对数据进行预测,从而获取未来的数据,进而服务于业务,支持业务的管理。

DAP数据分析平台根据常用的模式提供了分类、聚类、回归、降维等多种类型的算法原型,在实际项目和使用过程中,可以直接通过预置的算法进行数据的训练与测试。而在数据预测的过程中,可以将预测结果直接存入数仓数据表中,满足数据查询、使用的需求。

2.过程总结

机器学习的部署模式主要取决于DAP整体的部署规划,目前的部署模式主要是以K8S容器化的部署模式为主,只有在测试或者情况特殊的情况下才会采用传统的本地部署模式。在本地部署时由于是手动部署机器学习的相关内容,所以更容易掌握机器学习的具体部署过程,对机器学习的相关组件以及使用逻辑有更深入的理解。

3.说在最后

DAP平台作为数据治理分析平台,主要目的就是通过数据采集、加工、转换、汇总构建数仓体系,通过数据分析、数据展现、数据挖掘、数据服务实现数据应用。数据整合是前提,数据应用是价值,数据整合的准确性和会直接影响应用的效果,所以数仓建设是数据治理的关键内容,也是数据治理分析项目的难点

在具体项目中,DAP平台要完成全面的数据治理工作要和数据总线、主数据治理平台组合形成数据中台方案,数据总线支持DAP平台的数据采集与加工汇总,主数据治理保证主数据的一致性、准确性和完整性,为DAP数仓建设提供准确的维度数据,通过数据中台方案完成数据治理的全过程,并且保证数据的准确性和有效性,从而为数据挖掘提供全面支持,满足企业业务决策的需要。

本文由@数通畅联原创,欢迎转发,仅供学习交流使用,引用请注明出处!谢谢~

来源:数通畅联

相关推荐