Giter Site home page Giter Site logo

tawabshakeel / whylogs-python Goto Github PK

View Code? Open in Web Editor NEW

This project forked from whylabs/whylogs

0.0 0.0 0.0 3.62 MB

Profile and monitor your ML data pipeline end-to-end

Home Page: http://whylogs.readthedocs.io/

License: Apache License 2.0

Dockerfile 0.03% Python 22.03% Jupyter Notebook 77.63% Shell 0.15% Makefile 0.17%

whylogs-python's Introduction

whylogs Library

License PyPI version Coverage Status Python Version Code style: black CII Best Practices PyPi Downloads

CI Maintainability

This is a Python implementation of whylogs. The Java implementation can be found here.

Understanding the properties of data as it moves through applications is essential to keeping your ML/AI pipeline stable and improving your user experience, whether your pipeline is built for production or experimentation. whylogs is an open source statistical logging library that allows data science and ML teams to effortlessly profile ML/AI pipelines and applications, producing log files that can be used for monitoring, alerts, analytics, and error analysis.

whylogs calculates approximate statistics for datasets of any size up to TB-scale, making it easy for users to identify changes in the statistical properties of a model's inputs or outputs. Using approximate statistics allows the package to run on minimal infrastructure and monitor an entire dataset, rather than miss outliers and other anomalies by only using a sample of the data to calculate statistics. These qualities make whylogs an excellent solution for profiling production ML/AI pipelines that operate on TB-scale data and with enterprise SLAs.

For questions and discussions, hop on our slack channel!

Key Features

  • Data Insight: whylogs provides complex statistics across different stages of your ML/AI pipelines and applications.

  • Scalability: whylogs scales with your system, from local development mode to live production systems in multi-node clusters, and works well with batch and streaming architectures.

  • Lightweight: whylogs produces small mergeable lightweight outputs in a variety of formats, using sketching algorithms and summarizing statistics.

  • Unified data instrumentation: To enable data engineering pipelines and ML pipelines to share a common framework for tracking data quality and drifts, the whylogs library supports multiple languages and integrations.

  • Observability: In addition to supporting traditional monitoring approaches, whylogs data can support advanced ML-focused analytics, error analysis, and data quality and data drift detection.

Statistical Profile

whylogs collects approximate statistics and sketches of data on a column-basis into a statistical profile. These metrics include:

  • Simple counters: boolean, null values, data types.
  • Summary statistics: sum, min, max, variance.
  • Unique value counter or cardinality: tracks an approximate unique value of your feature using HyperLogLog algorithm.
  • Histograms for numerical features. whylogs binary output can be queried to with dynamic binning based on the shape of your data.
  • Top frequent items (default is 30). Note that this configuration affects the memory footprint, especially for text features.

Examples

For a full set of our examples, please check out whylogs-examples.

Note that to use the run with matplotlib vizualiation, you'll have to install whylogs with viz dependencies:

pip install "whylogs[viz]"

Some of the notable notebooks:

Installation

Using pip

PyPi Downloads PyPi Version

Install whylogs using the pip package manager by running

pip install whylogs

From source

Download the source code by cloning the repository or by pressing 'Download ZIP' on this page. Install by navigating to the desired directory and running

python setup.py install

Documentation

API documentation for whylogs can be found at whylogs.readthedocs.io.

Demo CLI

Our demo CLI generates a demo project flow by running

 whylogs-demo init

Quick start CLI

whylogs can be configured programmatically or by using our config YAML file. The quick start CLI can help you bootstrap the configuration for your project. To use the quick start CLI, run the following command in the root of your Python project.

 whylogs init

Glossary/Concepts

Project: A collection of related data sets used for multiple models or applications.

Pipeline: One or more datasets used to build a single model or application. A project may contain multiple pipelines.

Dataset: A collection of records. whylogs v0.0.2 supports structured datasets, which represent data as a table where each row is a different record and each column is a feature of the record.

Feature: In the context of whylogs v0.0.2 and structured data, a feature is a column in a dataset. A feature can be discrete (like gender or eye color) or continuous (like age or salary).

whylogs Output: whylogs returns profile summary files for a dataset in JSON format. For convenience, these files are provided in flat table, histogram, and frequency formats.

Statistical Profile: A collection of statistical properties of a feature. Properties can be different for discrete and continuous features.

Integrations

The whylogs library is integrated with the following:

Dependencies

For the core requirements, see requirements.txt.

For the development environment, see requirements-dev.txt.

Development/contributing

For more information on contributing to whylogs, see DEVELOPMENT.md.

Who maintains whylogs?

whylogs is maintained by WhyLabs.

If you have any questions, comments, or just want to hang out with us, please join our Slack channel.

If you want to see whylogs in action in enterprise settings with complex visualizations, check out the WhyLabs Platform Sandbox. You'll need a GitHub/Google/LinkedIn account to login to view the sandbox (it's a 1-click experience!).

whylogs-python's People

Contributors

lalmei avatar bernease avatar andyndang avatar labzhinova avatar naddeoa avatar ibackus avatar dependabot[bot] 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.