Coder Social home page Coder Social logo

debiai / debiai Goto Github PK

View Code? Open in Web Editor NEW
14.0 5.0 4.0 14.63 MB

Bias detection and contextual evaluation tool for your AI projects

Home Page: https://debiai.irt-systemx.fr

License: Apache License 2.0

Dockerfile 0.05% Python 23.09% JavaScript 10.43% HTML 0.10% Vue 65.21% SCSS 1.13%
ai data-analysis data-exploration bias contextual-evaluation model-evaluation visualization machine-learning data-agnostic plotlyjs

debiai's Introduction

License cd Online documentation

Activity Last commit

Code style: black code style: prettier

Why DebiAI ?

DebiAI is an open-source web application that aims to facilitate the process of developing Machine Learning models, especially in the stage of the project data analysis and the model performance comparison.

DebiAI provides data scientists with features to:

  • Identify biases and errors in your input, results, contextual or ground truth project data
  • Make a comparison of the performance of your ML according to their contextual results
  • Select and create sets of data graphically for further analysis or (re-)training purposes
  • Quickly create and share statistical visualizations of your project data for your team or client

Dashboard

DebiAI has a Web Graphical User Interface with a complete data visualization toolkit offering many statistical analysis tools:

The dashboard is highly customizable and can be used for large and small projects. Learn more about the widgets and how to use them.

Data

DebiAI is designed to be used for any kind projects and data, it is particularly useful for projects that involve many contextual data.

DebiAI provide two main ways to import your data:

  • A DebiAI Python module is provided to insert, directly from your Python workflow, the data and model results that you want to study.
  • You can also create a Data Provider, a Web API that will allow DebiAI to reach your data and model results from any programming language and any data sources without duplication. Check out the DebiAI Data Provider NodeJs template for an example of a Data Provider.

Installation

DebiAI is available as a Docker image. To install it, you can follow the installation guide.

Documentation

The full documentation is available on the DebiAI website.

Use cases

As part of the Confiance.ai program, we (the IRT SystemX) are using and developing DebiAI for a wide range of use cases.

One of them is the Valeo - WoodScape dataset:

Valeo - WoodScape

The Valeo - WoodScape dataset is an annotated image dataset taken from 4 fisheye cameras. DebiAI is used to analyze the dataset for biases and outliers in the data.

Withing the Confiance.ai program, DebiAI has been able to import the project data, detect biases, find annotations errors and export them to the project's image annotation tool.


DebiAI is developed by And is integrated in


debiai's People

Contributors

raphaelbraud avatar theochelim avatar tomansion avatar tommansionirt avatar upnico9 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

debiai's Issues

Be able to sort avg bar plot

In the case where we want to quickly see witch model is the best in this case :
image

we could add a button to sort the values for each color from lowest to highest

Display during or after loading what caused the loading time

Is your feature request related to a problem? Please describe.
We don't know how to improve the data loading time

Describe the solution you'd like
After starting an analysis, we jump on a loading page with a progress bar, a pie chart display what is causing the most time:
Backend loading, cache saving, data transformation time, data provider to back and back to front, ...

Describe alternatives you've considered
After loading, display a report accessible somewhere with a button

Add model parameters

We could add parameters to models and display them as contexts in the dashboard
Useful for hyper parameters tuning

Display the hyper parameters in the model selection and in a new category on the analysis page

trasfer/import/export widget configurations

Today, widget configurations belong to a project, but it is destroyed when the project is deleted or recreated
Some widget configurations can also be used by similar projects

We should be able to transfer configurations between projects, maybe by saving them in a common configuration list for all the projects.

Docker image v0.17.0 fails to run

Hello,
I am trying to run the DebiAI in an Openshift cluster using the docker image v0.17.0, but it seems there is some issue of a python package in the image.
I got the following error logs:

Traceback (most recent call last):
  File "websrv.py", line 1, in <module>
    import connexion
  File "/usr/local/lib/python3.8/site-packages/connexion/__init__.py", line 5, in <module>
    from .apis import AbstractAPI  # NOQA
  File "/usr/local/lib/python3.8/site-packages/connexion/apis/__init__.py", line 1, in <module>
    from .abstract import AbstractAPI  # NOQA
  File "/usr/local/lib/python3.8/site-packages/connexion/apis/abstract.py", line 13, in <module>
    from ..operations import make_operation
  File "/usr/local/lib/python3.8/site-packages/connexion/operations/__init__.py", line 1, in <module>
    from .abstract import AbstractOperation  # noqa
  File "/usr/local/lib/python3.8/site-packages/connexion/operations/abstract.py", line 9, in <module>
    from ..decorators.response import ResponseValidator
  File "/usr/local/lib/python3.8/site-packages/connexion/decorators/response.py", line 11, in <module>
    from .validation import ResponseBodyValidator
  File "/usr/local/lib/python3.8/site-packages/connexion/decorators/validation.py", line 13, in <module>
    from ..json_schema import Draft4RequestValidator, Draft4ResponseValidator
  File "/usr/local/lib/python3.8/site-packages/connexion/json_schema.py", line 6, in <module>
    from openapi_spec_validator.handlers import UrlHandler
ModuleNotFoundError: No module named 'openapi_spec_validator.handlers'

Can you please point us to the correct image?

Read environment variables for config

Is your feature request related to a problem? Please describe.
Being able to read environment variable will make deployment of DebiAI way easier

Describe the solution you'd like
To configure Data providers in the env variables, use something like: dp = dp_url; dp = dp_url;...
DEBIAI_DATA_PROVIDERS = data_prov_1 = http://localhost:3010; data_prov_2=http://localhost:3011;

To configure Export method in the env variables, use something like: em = [type, para1, para2, ...]; em=[type, para1, para2, ...]
DEBIAI_EXPORT_METHODS=kafka_export=[kafka, local:9092, my_topic]; ...

Describe alternatives you've considered
Eventually, instead of lists in a single env variable, do something like:

DEBIAI_DATA_PROVIDER_MyDb1=http://localhost:3010
DEBIAI_DATA_PROVIDER_MyDb2=http://localhost:3011

DEBIAI_EXPORT_METHOD_MyExport1=kafka;local:9092;my_topic1
DEBIAI_EXPORT_METHOD_MyExport2=kafka;local:9092;my_topic2

Secure the the export methods and the data providers creation

Is your feature request related to a problem? Please describe.
If any one car create Kafka or post export method, they can reach services accessible from the DebiAI server

Describe the solution you'd like
Add a "prevent export method creation" and a "prevent data-providers creation" option in the config file.

Send samples selections on Data-providers projects

Is your feature request related to a problem? Please describe.
It's not possible to save selections on a project coming from a data provider.

Describe the solution you'd like
Upgrade the API to include a POST request to save selections

Color customisation

Let the users chose the color gradient, it can clarify in situation like those :
image
image

Frontend : Stream the sample ID list

If project number of sample < 10000 or ? : retro compatibility : all ID list
else : stream 10000/10000

request :
Front to back : get backend/project/idIlist?from=0&to=10000
Back to DT : get debiai/dataIdlist?from=0&to=10000

Add animations
(cancel button)

Allow quick data analysis from a csv file

A good way to try the dashboard without using the module

Maybe by adding a 'import csv' on the main page with a drag an drop, it display a table with all the columns where we can say if a column is context or input

[BACKEND] Refactor Data Provider part

Add classes for Data Providers implementation

Data provider Global (Method Interface)
Data Provider Web
Data Provider python

(If not in schema add Method to create selections)
MicrosoftTeams-image

Scroll automatically to wigdet when created

When adding a new widget, the window of the workspace should scroll automatically where the new widget has just been created.

Currently this is not the case, which requires if we have a lot of open widget, and that we are very low in the work area to manually move up to the top. Because by default the new added widgets are always displayed at the top. We could change this for example by inserting the widget in a space closest to the active area (TBD)

impl data providers

Data providers are services made by the projects that want to use DebiAI and have a new faster and more reliable way of adding data.
Projects will have to create a data provider service that respect an API made with OpenAPI

Keyboard support

Make all DebiAI work with [arrow] keys and [enter] to

  • navigate from project list to analysis page
  • navigate into the widget catalog

Add shortcuts for :

  • Widget catalog
  • Creating a selection
  • Creating a virtual column
  • Open focused widget settings

Make the [enter] key work for

  • forms (creating a selection, virtual column)
  • Selecting a widget

Make the [esc] key work for :

  • Leaving a form or modal (selection creation, column selection...)

Add doc and hint for all of this

Efforts : 2days

Add HTTP - POST export method

Describe the solution you'd like
Add an http export method, it will send for examples Json selections through a post request to a specified url

Dashboard cache improvement

[FRONT] : Allow the user to clear the cache, to save or not the project data in the cache, to load them or not

Make it work for data Providers
Cache Data Id LIst

Save / load dashboard layout and widget conf

It should be possible to save the configuration and the results generated on a project as an easily exportable physical file. So in 2 buttons: save_config, load_config. to save a config load in the app.

New Line plot widget for time series

Is your feature request related to a problem? Please describe.
There is no simple way of displaying lines for time series

Describe the solution you'd like
A new line plot, preferably with range sliders for time

Describe alternatives you've considered
Add a "line display" in the point plot

Additional context
We're working on a time series project

Better data providers implementation

Is your feature request related to a problem? Please describe.
It's not clear if a project is from the python module or from a data-provider
We can't retry a connection to a data provider
We can't add a data provider once the app has started

Describe the solution you'd like
A "add data provider" in the DebiAI Dashboard main page
A "retry connection" button
A "Delete data-provider" to remove them except if they are from the config file

Implement NAN values

Today, Nan values aren't supported by DebiAI, to support them will take a lot of work because each widget need to be tested, (the parallel coordinate plot does not display a line where one of the value is none, ...)

But they could be analyzed on their own and be treated as contexts, there is a lot of project with empty values.

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.