Metadata-Version: 2.1
Name: batcat
Version: 0.1.11
Summary: BatCat, A Cat Looks Like A Bat.
Home-page: https://github.com/Ewen2015/BatpCat
Author: Ewen Wang
Author-email: wolfgangwong2012@gmail.com
License: Apache License 2.0
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3.7
License-File: LICENSE
Requires-Dist: pandas
Requires-Dist: boto3


##############################
BatCat, A Cat with A Bat Face!
##############################

😸😹😺😻😼😽😾😿🙀🐱

BatCat is designed to help data scientists to practice machine learning operations (MLOps) on Amazon Web Services (AWS). 

Services of AWS covered:
- AWS Lambda: a serverless, event-driven compute service
- AWS S3 (Simple Storage Service): provides object storage service
- Amazon Athena: a serverless, interactive query service on S3
- Amazon Redshift: a data warehouse product

Philosophy of BatCat's MLOps
============================

BatCat practices MLOps in **3 layers (ASA)**:

1. **Algorithm level**: which is on machine learning algorithm itself, it cares about learning curve, iteration rounds, metrics, etc. 
2. **System level**: which treats the machine learning project as a system itself, it focuses on resources ultized and health of the machine learning pipeline.
3. **Application level**: which put the machine learning system as one of parts in a large process, it connects data producers from upstream and data consumers from downstreams. 

1. Algorithm level
------------------

Tool: `GossipCat <https://github.com/Ewen2015/GossipCat>`_, `TensorBoard <https://www.tensorflow.org/tensorboard>`_

.. image:: https://raw.githubusercontent.com/Ewen2015/BatCat/master/gc_learning_curve.png
    :width: 600
    :align: center

.. image:: https://www.tensorflow.org/tensorboard/images/tensorboard.gif
    :width: 600
    :align: center

2. System level
---------------

Tool: AWS CloudWatch

AWS CloudWatch provides standard monitoring and operational data with dashboards, which satisfies the requirements of MLOps in system level. Generally, the following operational data are presented in the dashboard:

- SageMaker CPU Ultilization
- S3 bucket size
- Lambda
    - invocations
    - erros
- StepFunction
    - execution time
    - execution failed
- Cost
- Log group

.. image:: https://raw.githubusercontent.com/Ewen2015/BatCat/master/aws_cloudwatch.png
    :width: 600
    :align: center

3. Application level
--------------------

Tool: DataOps

BatCat realizes application level MLOps by monitoring the distributions of data inputs (data source) and data outputs (predictions). As the applicaiton levle MLOps is a part of the whole DataOps, it should algin with the practice of DataOps according to each organziation or company.

Story of the BatCat
===================

The package names after a cat of my friend, Clara. 

.. image:: https://raw.githubusercontent.com/Ewen2015/BatCat/master/BatCat.jpeg
    :width: 400
    :align: center

License
=======

BatCat is licensed under the MIT License. © Contributors, 2022.
