Skip to content

Commit

Permalink
[no ci] docs(all): re-organize documentation
Browse files Browse the repository at this point in the history
  • Loading branch information
guillaume-chervet committed Jun 12, 2023
1 parent 225d515 commit e9962ce
Show file tree
Hide file tree
Showing 17 changed files with 184 additions and 109 deletions.
28 changes: 28 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Contributor Code of Conduct

As contributors and maintainers of this project, we pledge to respect all
people who contribute through reporting issues, posting feature requests,
updating documentation, submitting pull requests or patches, and other
activities.

We are committed to making participation in this project a harassment-free
experience for everyone, regardless of level of experience, gender, gender
identity and expression, sexual orientation, disability, personal appearance,
body size, race, age, or religion.

Examples of unacceptable behavior by participants include the use of sexual
language or imagery, derogatory comments or personal attacks, trolling, public
or private harassment, insults, or other unprofessional conduct.

Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned to this Code of Conduct. Project maintainers who do not
follow the Code of Conduct may be removed from the project team.

Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by opening an issue or contacting one or more of the project
maintainers.

This Code of Conduct is adapted from the
[Contributor Covenant](http://contributor-covenant.org), version 1.0.0,
available at [http://contributor-covenant.org/version/1/0/0/](http://contributor-covenant.org/version/1/0/0/)
21 changes: 21 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Contributing to @axa-fr/react-oidc

First, ensure you have the [latest `npm`](https://docs.npmjs.com/).

To get started with the repository:

```sh
git clone https://github.com/AxaGuilDEv/react-oidc.git
cd react-oidc/packages/react
npm install
npm start
```
You are now ready to contribute!

## Pull Request

Please respect the following [PULL_REQUEST_TEMPLATE.md](./PULL_REQUEST_TEMPLATE.md)

## Issue

Please respect the following [ISSUE_TEMPLATE.md](./ISSUE_TEMPLATE.md)
15 changes: 15 additions & 0 deletions ISSUE_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
### Issue and Steps to Reproduce

<!-- Describe your issue and tell us how to reproduce it (include any useful information). -->

### Versions

### Screenshots

#### Expected

#### Actual

### Additional Details

- Installed packages:
5 changes: 5 additions & 0 deletions PULL_REQUEST.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
## A picture tells a thousand words

## Before this PR

## After this PR
92 changes: 8 additions & 84 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,99 +2,18 @@

A real demo of Deep Learning project with preprocessing from development to production using code, ops and Machine Learning best practices. Production is a real time REST API.

Competences
- Code / Debug
- UnitTest, Test Driven Development principles
- Clean Code, Inversion Of Dependence, Functional Programing
- Build & Publish packages
- Git
- Linux Bash
- REST API
- Docker
- Kubernetes

Tools
- Pycharm (https://www.jetbrains.com/pycharm/)
- Python, pip, PipEnv, Conda
- Git & Github & Github Action
- AzureML (https://azure.microsoft.com/fr-fr/free/students?WT.mc_id=DOP-MVP-5003370)
- Docker
- Kubernetes & OpenShift or Azure

## 1. Introduction

The name of our company: MLOps

Today a team of indexers receive 10,000 PDF files a day containing either cats or dogs or something else.
They must manually open each PDF to classify them.

We are going to automate this process. We will use a machine learning model to classify PDF files and expose it as a REST API. It will work in real time.

![project_workflow.png](documentation%2Fproject_workflow.png)

![Supervised_Learning.PNG](documentation%2FSupervised_Learning.PNG)

### Why MLOps ?

Many projects do not ship to production due to many constraints:
- Expensive
- Complex Data Workflow
- More actors

![Triangle_actors.PNG](documentation%2FTriangle_actors.PNG)

![MLOps_boxes.PNG](documentation%2FMLOps_boxes.PNG)

![Triangle_paint_points.PNG](documentation%2FTriangle_paint_points.PNG)

### What is MLOps?

MLOps is involved in the entire life cycle of an AI project. This is all that will allow your AI project to go into production and then keep your project in production.

No MLOps practices, no production.

![MLOps_is_more_about_human_culture.PNG](documentation%2FMLOps_is_more_about_human_culture.PNG)
## Getting Started

### Delivery of a MLOps project

The deliverable of a project is not the AI model, it's how the AI model is generated.

The model must be **reproducible**.

The deliverable is:
- Versioned data
- Versioned code

![MLOps_graal.PNG](documentation%2FMLOps_graal.PNG)

## Project structure
We will use the following project structure. We will use mono-repository git in order to work together. It will help to retrain a model and deploy it in production from one manual action maximum.

![code_organization.PNG](documentation%2Fcode_organization.PNG)

## ML Libraries/Technologies choice

Technologies choices have a huge impact on your development cost.
You cannot use a hundred of libraries and expect to have a good result in a short time.
It will be a nightmare to maintain and to debug.

Enterprises use **Technologies RADAR** to manage and maintain their technologies choice :
https://github.com/axa-group/radar

![ml_libraries_choices.PNG](documentation%2Fml_libraries_choices.PNG)

## 2. Requirements

Download and install:
Requirements, Download and install:
- Pycharm: https://www.jetbrains.com/pycharm/
- Python 3.11.x : https://www.python.org/downloads/
- Python 3.11.1 : https://www.python.org/downloads/
- Git: https://git-scm.com/downloads
- Docker-desktop: https://www.docker.com/products/docker-desktop/
- Postman: https://www.postman.com/downloads/
- NodeJS 18.x: https://nodejs.org/en/download/

## 3. Getting Started

On windows your have to use "GitBash" only because all commands are linux bash commands.
```sh
git clone https://www.github.com/guillaume-chervet/MLOpsPython
Expand All @@ -115,3 +34,8 @@ docker-compose up
# webapp is now available at : http://localhost:4000
# api is available at : http://localhost:4000/health
```

## Contribute

- [How to run to contribute](./CONTRIBUTING.md)
- [Please respect our code of conduct](./CODE_OF_CONDUCT.md)
File renamed without changes.
107 changes: 107 additions & 0 deletions documentation/learning.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
# MLOps Python

Competences
- Code / Debug
- UnitTest, Test Driven Development principles
- Clean Code, Inversion Of Dependence, Functional Programing
- Build & Publish packages
- Git
- Linux Bash
- REST API
- Docker
- Kubernetes

Tools
- Pycharm (https://www.jetbrains.com/pycharm/)
- Python, pip, PipEnv, Conda
- Git & Github & Github Action
- AzureML (https://azure.microsoft.com/fr-fr/free/students?WT.mc_id=DOP-MVP-5003370)
- Docker
- Kubernetes & OpenShift or Azure

## 1. Introduction

The name of our company: MLOps

Today a team of indexers receive 10,000 PDF files a day containing either cats or dogs or something else.
They must manually open each PDF to classify them.

We are going to automate this process. We will use a machine learning model to classify PDF files and expose it as a REST API. It will work in real time.

![project_workflow.png](project_workflow.png)

![Supervised_Learning.PNG](Supervised_Learning.PNG)

### Why MLOps ?

Many projects do not ship to production due to many constraints:
- Expensive
- Complex Data Workflow
- More actors

![Triangle_actors.PNG](Triangle_actors.PNG)

![MLOps_boxes.PNG](MLOps_boxes.PNG)

![Triangle_paint_points.PNG](Triangle_paint_points.PNG)

### What is MLOps?

MLOps is involved in the entire life cycle of an AI project. This is all that will allow your AI project to go into production and then keep your project in production.

No MLOps practices, no production.

![MLOps_is_more_about_human_culture.PNG](MLOps_is_more_about_human_culture.PNG)

### Delivery of a MLOps project

The deliverable of a project is not the AI model, it's how the AI model is generated.

The model must be **reproducible**.

The deliverable is:
- Versioned data
- Versioned code

![MLOps_graal.PNG](MLOps_graal.PNG)

## Project structure
We will use the following project structure. We will use mono-repository git in order to work together. It will help to retrain a model and deploy it in production from one manual action maximum.

![code_organization.PNG](code_organization.PNG)

## ML Libraries/Technologies choice

Technologies choices have a huge impact on your development cost.
You cannot use a hundred of libraries and expect to have a good result in a short time.
It will be a nightmare to maintain and to debug.

Enterprises use **Technologies RADAR** to manage and maintain their technologies choice :
https://github.com/axa-group/radar

![ml_libraries_choices.PNG](ml_libraries_choices.PNG)


## Step 0 : Setup
[step_0_setup.md](step_0_setup.md)

## Step 1: Extract images from PDF files
[step_1_extraction.md](step_1_extraction.md)

## Step 2: Label images
[step_2_label.md](step_2_label.md)

## Step 3: Train AI model
[step_3_train.md](step_3_train.md)

## Step 4: Share common code as libraries for production
[step_4_share.md](step_4_share.md)

## Step 5: REST API
[step_5_rest_api.md](step_5_rest_api.md)

## Step 6: Deploy
[step_6_deploy.md](step_6_deploy.md)

## Step 7: Integration testing
[step_7_integration_testing.md](step_7_integration_testing.md)
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
25 changes: 0 additions & 25 deletions learning.md

This file was deleted.

0 comments on commit e9962ce

Please sign in to comment.