项目简介:Katana ML Skipper
Katana ML Skipper 是一个简单且灵活的机器学习工作流引擎,它旨在协调一组微服务之间的事件并创建可执行的流程来处理请求。这个引擎的设计允许与任何微服务进行配置,非常通用。
项目特点
- 灵活性:Skipper 的引擎和通信部分是通用的,可重复使用。它提供了一组用于示例用途的机器学习服务。
- 配置自定义:用户可以替换现有服务组以满足自己的需求。当前的示例服务组使用的是波士顿房价数据,包括数据服务、训练服务和预测服务。
- 多语言支持:其中一个服务展示了如何使用基于 JavaScript 的微服务,这表明 Skipper 可以与多种编程语言容器协作,如 Python、JavaScript 和 Java。
使用说明
启动和停止
- Docker Compose:通过命令
docker-compose up --build -d
启动 Skipper 服务和 RabbitMQ。而docker-compose down
停止这些服务。 - Kubernetes:如果使用本地 Kubernetes,需先安装 NGINX Ingress 控制器。通过
./kubectl-setup.sh
来设置 Kubernetes 服务。
组件介绍
- api:实现 Web API。
- workflow:管理工作流逻辑。
- services:含有一组示例微服务,建议用户用自己的服务去替换。
- rabbitmq:RabbitMQ 服务的设置。
- skipper-lib 和 skipper-lib-js:提供可重用的 Python 和 Node.js 库,以优化通过 RabbitMQ 的事件通信。
- logger:日志服务。
API 访问
提供了访问不同组件接口的 API URL,比如 Skipper 的 Web API 和 RabbitMQ 的访问端点。
部署与扩展
Skipper 可以通过 Kubernetes 和 Docker 支持部署在任何云供应商的平台上,并可以通过 Kubernetes 命令在云端进行扩展。此外,提供了 Oracle 容器引擎和 Google Kubernetes Engine 的云部署指南。
开源许可
该项目遵循 Apache 2.0 许可协议,由 Katana ML 和 Andrej Baranovskij 授权发布。此协议允许用户自由使用、分发和修改项目内容。
在 Katana ML Skipper 上,用户可以轻松管理和扩展自己的机器学习微服务工作流。此外,其支持多种编程语言和平台的特性,使其非常灵活、适合广泛的使用场合。