Git Product home page Git Product logo

yatai's Introduction

๐Ÿฆ„๏ธ Yatai: Production-first ML platform on Kubernetes

actions_status join_slack

Yatai is a production-first platform for your machine learning needs. It brings collaborative BentoML workflows to Kubernetes, helps ML teams to run model serving at scale, while simplifying model management and deployment across teams.

๐Ÿ‘‰ Pop into our Slack community! We're happy to help with any issue you face or even just to meet you and hear what you're working on :)

Why Yatai?

  • Yatai accelerates the process of taking ML models from training stage to production and reduces the operational overhead of running a reliable model serving system.

  • Yatai simplifies collaboration between Data Science and Engineering teams. It is designed to leverage the BentoML standard and streamline production ML workflows.

  • Yatai is a cloud native platform with a wide range of integrations to best fit your infrastructure needs, and it is easily customizable for your CI/CD needs.

Core features:

  • Bento Registry - manage all your team's ML models via simple Web UI and API, and store ML assets on cloud blob storage
  • Deployment Automation - deploy Bentos as auto-scaling API endpoints on Kubernetes and easily rollout new versions
  • Observability - monitoring dashboard and logging integration helping users to identify model performance issues
  • CI/CD - flexible APIs for integrating with your training and CI pipelines

yatai-overview-page

See more product screenshots yatai-deployment-creation yatai-bento-repos yatai-model-detail yatai-cluster-components yatai-deployment-details yatai-activities

Getting Started

1. Install Yatai locally with Minikube
  • Prerequisites:
  • Start a minikube Kubernetes cluster: minikube start --cpus 4 --memory 4096
  • Install Yatai Helm Chart:
    helm repo add yatai https://bentoml.github.io/yatai-chart
    helm repo update
    helm install yatai yatai/yatai -n yatai-system --create-namespace
  • Wait for installation to complete, this may take a few minutes to complete: helm status yatai -n yatai-system
  • Start minikube tunnel for accessing Yatai UI: sudo minikube tunnel
  • Get initialization link for creating your admin account:
    export YATAI_INITIALIZATION_TOKEN=$(kubectl get secret yatai --namespace yatai-system -o jsonpath="{.data.initialization_token}" | base64 --decode)
    echo "Visit: http://yatai.127.0.0.1.sslip.io/setup?token=$YATAI_INITIALIZATION_TOKEN"
2. Get an API token and login BentoML CLI
  • Create a new API token in Yatai web UI: http://yatai.127.0.0.1.sslip.io/api_tokens
  • Copy login command upon token creation and run as shell command, e.g.:
    bentoml yatai login --api-token {YOUR_TOKEN_GOES_HERE} --endpoint http://yatai.127.0.0.1.sslip.io
3. Pushing Bento to Yatai
  • Train a sample ML model and build a Bento using code from the BentoML Quickstart Project:
    git clone https://github.com/bentoml/gallery.git && cd ./gallery/quickstart
    pip install -r ./requirements.txt
    python train.py
    bentoml build
  • Push your newly built Bento to Yatai:
    bentoml push iris_classifier:latest
4. Create your first deployment!
  • A Bento Deployment can be created via Web UI or via kubectl command:

    • Deploy via Web UI

    • Deploy directly via kubectl command:

      • Define your Bento deployment in a my_deployment.yaml file:
          apiVersion: serving.yatai.ai/v1alpha2
          kind: BentoDeployment
          metadata:
            name: my-bento-deployment
            namespace: my-namespace
          spec:
            bento_tag: iris_classifier:3oevmqfvnkvwvuqj
            ingress:
              enabled: true
            resources:
              limits:
                  cpu: "500m"
                  memory: "512m"
              requests:
                  cpu: "250m"
                  memory: "128m"
            autoscaling:
              max_replicas: 10
              min_replicas: 2
            runners:
            - name: iris_clf
              resources:
                limits:
                  cpu: "1000m"
                  memory: "1Gi"
                requests:
                  cpu: "500m"
                  memory: "512m"
                autoscaling:
                  max_replicas: 4
                  min_replicas: 1
      • Apply the deployment to your minikube cluster
        kubectl apply -f my_deployment.yaml
  • Monitor deployment process on Web UI and test out endpoint when deployment created

    curl \                                                                                                                                                      
        -X POST \
        -H "content-type: application/json" \
        --data "[[5, 4, 3, 2]]" \
        https://demo-default-yatai-127-0-0-1.apps.yatai.dev/classify
5. Moving to production
  • See Administrator's Guide for a comprehensive overview for deploying and configuring Yatai for production use.

Community

Contributing

There are many ways to contribute to the project:

  • If you have any feedback on the project, share it with the community in GitHub Discussions under the BentoML repo.
  • Report issues you're facing and "Thumbs up" on issues and feature requests that are relevant to you.
  • Investigate bugs and reviewing other developer's pull requests.
  • Contributing code or documentation to the project by submitting a GitHub pull request. See the development guide.

Licence

Elastic License 2.0 (ELv2)

yatai's People

Contributors

yetone avatar yubozhao avatar aarnphm avatar parano avatar rishiosaur avatar timliubentoml avatar benjamintanweihao avatar jaehyeoklee avatar sotte avatar tashakim avatar vicoooo26 avatar xuanwo avatar hezhizhen avatar illy avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.