在线的工程框架是建立在 SpringBoot+K8S 框架的基础上开发完成,它的扩展性很好,易于部署。我们可以按照以下的说明文档一步一步执行来配置好自己的开发环境。我们可以参考下面的系统架构图的说明,在这个Demo的系统里,我们在线的算法Pipeline,主要由用户建模、召回、排序、多样性、摘要获取等几个模块组成。当我们按照下述说明一步一步执行完之后,一个端到端的推荐系统将完整的呈现出来。
首先, 我们需要使用 maven 来安装 online-serving 组件:
-
MetaSpore Serving
用来做模型的实时推理,所有线上需要模型实时推理预测的工作都需要访问这个服务; -
feature-extract
是一个 maven 的插件,用来通过特征描述文件,自动生成从MongoDB
访问特征的API,更多信息可以参考链接; -
experiment-pipeline
是给 A/B 实验框架,能够帮助我们更方便的部署A/B实验,支持热部署等特性,更多信息可以参考链接。
安装时,需要执行以下命令
cd MetaSpore/java/online-serving
mvn clean install
我们需要从模版文件application-template.properties 创建一个 resources/application-dev.properties 文件,主要用来配置:
MongoDB
服务的相关配置;MetaSpore Serving
服务的相关配置;Milvus
服务的相关配置;- 其他服务,例如
MySQL
相关的配置可以忽略,我们在这个项目中暂时还未用到。
我们可以通过更改 Consul
中的 Key/Value 的字典值,实时更改在线的 A/B 实验的策略,具体安装和配置的方法:
- 下载并安装Consul,打开应用程序;
- 打开Consul的链接, 默认端口是
8500
,如果遇到问题,可以查看是否存在端口占用的情况。创建一个新的 Key/Value 字典对:
当以上的配置工作都完成之后,我们可以从 MovielensRecommendApplication.java
这里作为服务的入口,启动我们的在线应用并进行测试。举例来说,对于 userId=10
的用户,我们可以通过
curl http://localhost:8080/user/10
这条命令来访问推荐服务,并获取推荐结果。