
English: 
Welcome everyone for
this new AI Academy video.
With the previous videos, you have been  driven through
the life of Earthcube data scientists,
and you now know the specificities and
challenges of working with satellite images.
You may have heard
about deep learning
but what do you really know about the right tools
to develop and productize Artificial Intelligence at scale?
Today, we take you behind the scene,
where the magic happens!
We are going to show you
the AI tools we conceive
and use daily to develop
sky-rocketing models.
As you may know, the applications for Artificial Intelligence
are often mission critical.
Take the example of a car with embedded AI:
failure is not an option once
it has been sent to highways.

French: 
Bienvenue à tous pour cette
nouvelle vidéo AI Academy !
Dans les dernières vidéos, nous vous avons fait découvrir 
la vie des data scientists chez Earthcube,
et vous avez découvert les spécificités et challenges que
représente le fait de travailler avec des images satellites.
Vous avez entendu parlé
de deep learning,
mais que savez-vous réellement des outils qui permettent
de développer et productiser l’Intelligence Artificielle à l'échelle ?
Aujourd’hui, nous vous emmenons
en coulisses, là où la magie opère !
Nous allons vous montrer les outils
IA que nous concevons
et utilisons tous les jours pour développer
de puissants modèles de deep learning.
Comme vous le savez peut-être, les applications
de l’intelligence artificielle sont souvent critiques.
Prenons l’exemple d’une voiture autonome :
l'erreur n’est pas permise une fois
que la voiture est sur une autoroute.

English: 
Of course problematics in domains
such as space, energy, medicine,
or transportation for instance,
are deeply complex and challenging:
Artificial Intelligence must offer
reliability and performance.
Yes, this is the challenge that
our data science team has to face:
bringing AI, from the scientific state of the art
to reliable and performing production.
The way we do it, is by pushing
AI further than the state of the art.
And also by scaling it daily with
the increasing amount of data
and by improving already
high-performing solutions.
Right on!
That’s a huge task!
Our large team must be in
the starting blocks to handle it!
To achieve such goals, the team needs
traceability and must be very productive.
You get it, we need
to work with the right tools.

French: 
Et bien sûr les problématiques dans des domaines
comme l’espace, l'énergie, le médical
ou encore les transports sont complexes
et ont de forts enjeux :
l’IA doit donc être
fiable et performante.
C’est le challenge que notre équipe
de data science doit relever :
amener l’IA de l'état-de-l’art scientifique
a une production fiable et performante.
Pour se faire, nous amenons
l’IA plus loin que l'état de l’art,
en l’adaptant tous les jours
au nombre croissant de données,
et en améliorant nos solutions
d’ores et déjà extrêmement performantes.
Et oui !
C’est une vaste tâche !
Notre équipe doit donc être
dans les starting blocks pour s’en charger.
Pour y parvenir, l'équipe a besoin de traçabilité
et se doit d’être très productive.
Vous l’avez compris, nous devons
travailler avec les bons outils.

English: 
These tools must be reliable, performing
and they must head towards autonomy.
For this reason, we have productized our
own integrated AI development platform.
As a data scientist  myself,
I can testify:
it really is a game changer
for our daily activities,
especially for us to focus
on the value-added tasks!
Okay, let's take a look at what this integrated
AI development platform looks like.
Two main components are involved:
an AI Framework, and a Data Platform.
In this video we invite you to understand
how and why we conceived them.
Let’s start then, with the first component: 
our AI Framework.
The tool that allows us to develop deep learning
models that skyrocket for mission critical applications.
To better understand this tool,
let's imagine that we are conceiving a car.
What does a car and a deep learning
model have in common?

French: 
Ces outils doivent être fiable, performants,
et doivent tendre vers une certaine autonomie.
Pour cela, nous avons productisé notre propre
Plateforme Intégrée de Développement d’Intelligence Artificielle.
En tant que Data Scientist moi-même,
je peux en témoigner :
cela a drastiquement changé
nos activités du quotidien,
et cela nous a permis de nous focaliser
sur les tâches à valeur ajoutée !
Regardons maintenant à quoi cette
Plateforme de Développement d’IA ressemble.
Elle est composée de deux principaux éléments :
l’AI Framework et la Data Platform.
Cette vidéo a pour but de vous faire découvrir
comment et pourquoi nous les avons développés.
Commençons donc par le premier composant :
l’AI Framework.
L’outil qui nous permet de développer des modèles de deep learning
ultra performants pour des applications critiques.
Pour mieux comprendre cet outil, imaginons
que nous sommes en train de concevoir une voiture.
Qu’est-ce qu’une voiture et un modèle
de deep learning ont en commun ?

French: 
Pour concevoir une voiture, des éléments standardisés
mais ultra performants sont sélectionnés
et combinés en sous-systèmes
pour obtenir un véhicule avant-gardiste.
Les coûts sont optimisés et de nouvelles versions
sont développées en continu.
Pour nos modèles de deep learning,
c’est exactement la même chose :
les briques de deep learning sont sélectionnées pour
s'imbriquer entre elles dans un modèle qui peut être mis à jour.
Maintenant que vous avez l’image
d’une voiture en tête,
rentrons au coeur du développement
d’un modèle de deep learning.
Il y a quatre étapes initiales clefs pour passer
de la donnée brute au résultat escompté :
la création d’un dataset d'entraînement.
Ce dataset est comme l’essence d’un véhicule.
Le design de l’architecture du modèle,
que l’on pourrait comparer au moteur de la voiture.
L'entraînement de ce modèle,
qui serait la boîte de vitesse,
Et enfin la prédiction avec évaluation du modèle,
équivalente au système de direction du véhicule.

English: 
When building a car, standardized
but performing elementary systems are selected
and combined in sub-systems
to obtain an overall cutting-edge vehicle.
Costs are optimized and new versions
are being developed continuously.
For our deep learning models,
it is exactly the same:
deep learning bricks are smartly selected to interlock
themselves among each other in a model that can be updated.
Now that you have this image
of a car in mind,
let’s go at the heart of the development
of a deep learning model.
There are four initial key steps to go from
raw data to the expected output:
The creation of a training dataset: this dataset is just like the fuel for your vehicle,
The design of the architecture of the model,
that would represent the engine of your car,
The training of this model, that could be
compared to your gear box.
And finally the prediction with evaluation of the model,
which would be your steering system.

English: 
Of course, there is also a fifth pillar
that should not be forgotten:
deployment in production.
These key steps give
the straight forward path,
but, just like for a car, the first prototype
is usually not the perfect one,
for each sub-system and for the whole
development: iterations are needed.
Our AI Framework is here
to cover these 5 steps.
It is our code library built upon
Tensorflow and Keras.
The mission of this framework is to offer
reliability, performance and autonomy
along all these steps while compiling all the numerous
and advanced possibilities in deep learning.
First off, how do we work
to develop such a code library?
It begins by making sure that the bricks
on which our AI Framework is based,
for instance the ones in Keras,
are doing their job properly.
If necessary, we just recode
one of these bricks.
This is crucial:

French: 
Bien sûr, il y a aussi une cinquième étape
qu’il ne faut pas oublier :
le déploiement en production.
Ces étapes donnent les grandes lignes
de la marche à suivre.
Mais, tout comme pour la conception d’un véhicule,
le premier prototype n’est souvent pas parfait :
pour chaque sous-système, comme pour le produit global,
de nombreuses itérations sont nécessaires.
C’est le rôle de notre AI Framework :
couvrir ces cinq étapes.
Il s’agit de notre propre code,
reposant sur Tensorflow et Keras.
La mission de ce Framework est d’offrir fiabilité,
performance et autonomie
tout au long des cinq étapes, en compilant
de nombreuses techniques avancées de deep learning.
Pour commencer, comment développer
une telle librairie de code ?
On commence par s’assurer que les briques
sur lesquelles notre AI Framework est fondé,
par exemples celles de Keras,
fonctionnent correctement.
Si nécessaire, il nous suffit de recoder
une ou deux de ces briques.
Cette étape est cruciale :

French: 
tout comme aucun bug et aucune erreur
ne sont permis pour les systèmes élémentaires d’une voiture.
C’est un bon début,
mais ensuite ?
Lorsqu’un papier pertinent de deep learning est publié,
une personne de l’équipe peut l’implémenter dans notre Framework.
Cependant, lorsque plusieurs personnes
travaillent sur le même code,
il faut faire extrêmement attention
à le garder propre et opérationnel.
C’est pour cela que
nous utilisons l’Intégration Continue.
Cette dernière inclut la réalisation de tests unitaires
pour s’assurer que chaque fonction se comporte correctement,
mais aussi de tests fonctionnels
pour le code dans sa globalité.
De cette façon, nous intégrons
les solutions avant-gardistes
pour obtenir les meilleures performances tout en préservant
la fiabilité de notre AI framework.
Comment ce Framework fonctionne-t-il ?
C’est très simple :
pour développer cette solution,
il faut trois API calls et quatre principaux
fichiers de configuration.

English: 
no bugs or failures are allowed
in the elementary parts of a car.
This is a good start,
but what’s next?
When a relevant deep learning paper is published,
someone in the team implements it in the framework.
But, when several persons work on
the same code library,
care must be taken to keep it
clean and fully operational.
This is why we use
continuous integration.
Continuous integration includes making unit tests
to make sure that every single function works correctly,
and running functional tests
for the whole code.
This way, we integrate
cutting-edge solutions
to get top performance while preserving
the reliability of the AI Framework.
Secondly, how does
this framework work?
Well, it is that simple:
to develop a solution,
3 API calls and 4 main
configuration files are needed.

French: 
Les API calls sont utilisés pour la création du dataset,
l’entraînement et la prédiction avec évaluation.
Aussi, un fichier de paramètres existe pour chacune
des quatre étapes clefs de développement.
Enfin, un quatrième API call permet de déployer
un modèle entraîné en production.
Simple, n’est-ce pas ?
Mais ne vous laissez pas leurrer
par ces quelques lignes de commande,
une réelle expertise se cache derrière !
Voyons en quoi !
Nous avons parlé d’un
besoin de performance.
L’AI Framework intègre des briques et techniques de pointe
en terme de deep learning, paramétrables et combinables.
Illustrons cela en regardant nos fichiers
de configuration de plus près.
Concernant l’étape
de création d’un dataset,
il est possible de sélectionner des données
à haute-valeur ajoutée à labelliser
ou à ajouter à un dataset grâce
à des méthodes d’apprentissage actif,
comme une méthode Bayésienne.
Des options avancées de pre-processing
sont par ailleurs disponibles,
ainsi que des outils pour
équilibrer intelligement un dataset d'entraînement.

English: 
API calls are for dataset building,
training and predicting with evaluation
and there is a parameter file
for each of the 4 initial key steps.
Eventually, a fourth API call even
allows deploying a trained model.
Simple, don’t you think ?
But don't be fooled by
these few command lines,
actual expertise is hiding behind them.
Let’s see why!
We said we needed performance.
The AI Framework integrates cutting-edge deep learning bricks
and techniques, customizable and combinable.
Let’s give some illustrations by taking
a deeper look at the configuration files.
For the dataset step,
at the very start, we can for instance
select value-added training data to label
or to add with active learning methods,
such as bayesian techniques.
Advanced pre-processing
options are available
along with tools to smartly balance
a training dataset.

English: 
A dataset is elaborated and selected just
as specifically as the fuel for your car.
The configuration file for the architecture
of the model offers multiple possibilities:
we can simply pick one of the architectures
pre-coded in the AI Framework.
It could be a classical one such as
a Resnet or a RetinaNet,
or a more exotic architecture
- for instance, a SegCaps.
And you know what’s best in all of that?
Every single parameter of the architecture chosen can be
customized by simply tuning the configuration file.
In other words, you pick
an available great engine for a car,
or you build it with
the best components.
Awesome, right?
Customization of the models
includes the basics,
such as the number of: 
encoding blocks, poolings, filters, capsules...
but also much more.
State of the art bricks are available
to be integrated in the pre-coded architectures:
skip connections, squeeze and excitation,
or attention modules for instance.

French: 
Le dataset est donc élaboré et sélectionné aussi
spécifiquement que l’essence pour une voiture.
Le fichier de configuration pour l’architecture
du modèle offre de nombreuses possibilités :
il est possible de simplement sélectionner l’une
des architectures pre-codées dans l’AI Framework.
Il peut s’agir d’une architecture classique
comme un ResNet ou un RetinaNet,
ou une architecture plus
originale comme un SegCaps.
Et le meilleur dans tout ça ?
Chaque paramètre de l’architecture choisie
est paramétrable directement dans le fichier de configuration.
En d’autres termes : soit vous choisissez un moteur pré-existant
ultra-performant pour votre voiture,
soit vous le construisez vous-même avec les meilleurs
composants disponibles sur le marché.
Plutôt chouette, non ?
Le paramétrage des modèles
inclut les éléments basiques,
comme le nombre de blocs d’encoding, le nombre
de poolings, de filtres, de capsules…
mais également bien plus !
Des briques de l’état de l’art sont prêtes
à être intégrées dans les architectures pré-codées :
des skip connections, des squeeze and excitations,
ou des modules d’attention par exemple.

English: 
Let’s go to the training
configuration file now
or your car’s gearbox.
Of course, it can also reach
an expert level
with multiple possibilities
for all classical parameters:
loss, optimizer… and for more advanced tricks.
As an example,
we can launch it with an ensemble method
such as Stochastic Weights Averaging.
Finally one last example, for the prediction step,
or your steering system to continue the comparison.
The configuration possibilities are also numerous.
Let’s mention:
computer vision post-processing methods
and ensemble deep learning methods.
Thus capitalizing over all the cutting edge methods
with the possibility to customize
and combine them is our recipe
to get performance in the end!
Just as for a car: select
the best subsystems,
standardized and customizable,
and make them work together.

French: 
Intéressons-nous maintenant au fichier de configuration
de l’entraînement,
autrement dit la boite de vitesse
de notre véhicule.
L’entraînement peut bien sûr
atteindre un niveau expert
grâce à de multiples possibilités
pour tous les paramètres classiques :
la loss, l’optimiser… mais aussi pour toute autre technique plus avancée.
Il est par exemple possible
de le lancer avec une méthode d’ensembling
comme le Stochastic Weights Averaging.
Prenons un dernier exemple pour la prédiction,
ou le système de direction pour continuer la comparaison.
Les possibilités de configuration sont multiples avec :
des méthodes de traitement d’image en post-processing,
ou encore des méthodes d’ensembling.
Capitaliser sur les méthodes de pointe
et ajouter la possibilité de les personnaliser
et de les combiner est notre recette
pour obtenir les meilleures performances !
Exactement comme pour une voiture :
sélectionnez les meilleurs sous-systèmes,
standardisés mais personnalisables,
et faites-les travailler ensemble !

French: 
Nous avons déjà mentionné
la fiabilité du code,
mais qu’en est-il de
la fiabilité du modèle final ?
Avec la prédiction de notre AI Framework,
nous intégrons de robustes options d'évaluation,
incluant de nombreuses métriques de performance
pour une évaluation quantitative,
ainsi que de nombreuses possibilités de visualisation
pour l’évaluation qualitative des résultats.
De robustes tests qualitatifs et quantitatifs sont l'unique moyen
de vérifier le comportement opérationnel d’une solution.
Tout comme des crash tests
sont réalisés pour une voiture,
des tests similaires sont
réalisés pour nos modèles.
Rappelez-vous, nous avons introduit un dernier terme
pour cet AI Framework : autonomie.
Les industries critiques sont
souvent soumises à de lourdes contraintes
en terme de données qu’elles peuvent
extraires et fournir pour la labellisation.
Pour cette raison, les outils d’IA doivent permettre
l’adaptation de domaines et l’apprentissage continu.

English: 
We have already talked about
the reliability of the code,
but what about the reliability
of the model developed in the end?
In the predict of our AI Framework,
we integrate robust evaluation options,
with various performance metrics
for the quantitative evaluation,
various visualization possibilities
for the qualitative assessment of the results.
Qualitative and quantitative robust testing
are the only way to check the operational behavior of a solution.
For a car, you would make crash tests…
it must be the same for our models.
Now remember, we have introduced a last word
for this AI Framework, autonomy.
Mission critical industries
are indeed often constrained
in terms of real data they can extract
and provide for annotation.
For this reason, AI tools must leverage domain adaptation
and continuous learning.

French: 
C’est un sujet à la pointe
et nous y travaillons d’arrache-pied !
Finalement, en collaborant et en capitalisant
sur cette unique librairie de code,
il n’a jamais été aussi simple pour nous,
en tant qu’équipe de data scientists,
d’accéder à l’état de l’art des méthodes de deep learning,
et de les personnaliser à un niveau expert.
Cette première partie était un grand saut au cœur du premier
composant de notre Plateforme de Développement d’IA.
Parlons maintenant du second
composant : notre Data Platform.
Un outil clef pour la productivité, la scalabilité,
et finalement les performances de nos modèles.
Vous venez de découvrir un AI Framework autonome
pour développer de puissants modèles de deep learning.
Mais grâce à notre équipe de développeurs, il est
également possible de le rendre encore plus performant.
Comment ? Grâce à notre Data Platform.
Revenons au commencement.
Nos modèles de deep learning reposent d'abord sur
des données brutes : des images et leurs labels.
Nous avons plus de deux millions d’objets
labellisés dans notre base de données.

English: 
It is really a hot topic
and we are working hard on it!
In the end, by collaborating and capitalizing
in this unique code library,
it has never been so easy for us,
as a data science team,
to access state of the art and skyrocketing deep learning methods
as well as customize them at an expert level.
This first part was quite a jump into the first component
of our integrated AI development platform.
Let's now talk about
our Data Platform,
a key enabler for productivity and scalability and,
in the end, for our model performances.
You just discovered an AI Framework that is self-sufficient
to develop a great deep learning model.
But, thanks to our team of developers,
we can make it more powerful.
How? With our Data Platform.
Let’s go back to the very beginning.
A deep learning model first relies on raw data:
in our use-cases, images and labels.
We have more than 2 million objects
labeled in our database.

English: 
With such numbers,
tables are not enough,
we need to be able to smartly visualize
the data and get statistics.
This is the role of the Data platform:
to show the images and labels of course,
but also give a deep
understanding of the data.
For geo-referenced images for instance,
it means filtering by object labels,
sensor types, or areas.
And even more: land cover,
specific weather conditions such as snow.
With such information easily accessed,
we can create relevant training datasets for our models
and also testing sets to check the reliability
and performance of these models.
That was a first point, but the Data Platform
can do much more,
it is fully interconnected with our AI Framework,
which means that we can:
build training datasets with the configuration
file of our AI Framework
with a nice user interface,
access to automatically
stored information:

French: 
Avec de tels nombres, les tableaux
ne sont plus suffisants,
nous devons être capables de visualiser
les données de manière intelligente
et d’en sortir des statistiques pertinentes.
C’est le rôle de cette Data Platform: montrer
les images et leurs labels évidemment,
mais aussi permettre une compréhension
en profondeur de ces données.
Pour des images géo-référencées par exemple,
cela veut dire filtrer par type d’objet labellisé,
type de capteur ou encore zone géographique.
Mais cela peut même aller plus loin :
avec le type de couverture terrestre,
des conditions météorologiques
particulières telles que la neige.
Ces informations étant facilement accessibles,
il est facile de créer des datasets pertinents pour nos modèles,
ainsi que des sets de test pour vérifier
la fiabilité et les performances de ces derniers.
C’est un bon premier point, mais notre
Data Platform peut faire beaucoup plus :
elle est intégralement interconnectée à notre AI Framework,
de sorte qu’il nous est possible
de construire des datasets d'entraînement
avec le fichier de configuration de notre AI Framework
dans une interface facile d’utilisation,
d’accéder à des informations
stockées automatiquement,

English: 
for instance the datasets already
built with their parameters,
but also the model developed
and trained on them,
and eventually, automatically
get model results
that have been predicted with
the AI Framework on test sets.
This last point, testing, is one of the main focus
of the Data Platform,
still with the aim
of building reliable solutions.
Remember, within the platform, the data science team
directly creates various testing sets.
They can be specific or generalized,
hard or easy.
By displaying the predictions of the models directly
on the images along with performance metrics,
the platform offers both qualitative
and quantitative analysis.
It is not just about checking that
the training of a model is done,
it is about checking how a solution
will behave once delivered.
Sticking to our comparison:
how a car will perform once it is on a highway.

French: 
par exemple les datasets déjà
créés avec leurs paramètres,
mais également les modèles développés
et entraînés sur ces derniers.
Enfin, d’obtenir de manière automatique
les résultats des prédictions de modèles,
qui ont préalablement été lancés
avec l’AI Framework sur des sets de tests
Ce dernier point, les tests, est le principal
atout de la Data Platform,
toujours dans une logique de
développer des solutions fiables.
Rappelez-vous, dans la plateforme, l’équipe de data science
crée directement de nombreux sets de tests.
Ces derniers peuvent être spécifiques
ou généralistes, simples ou complexes.
En affichant les prédictions des modèles directement
sur les images avec des métriques de performance,
la plateforme permet une analyse autant
qualitative que quantitative.
Il ne s’agit pas de juste vérifier
que l’entraînement d’un modèle est fini,
mais surtout de vérifier comment se comportera
une solution, une fois délivrée.
Si l’on s’en tient à notre comparaison,
il s’agit de vérifier comment une voiture
se comportera lorsqu’elle roulera sur l’autoroute.

French: 
Finalement, la réelle valeur ajoutée de cette Data Platform
interconnectée avec notre AI Framework,
est la capacité d’explorer les données, de passer à l’échelle
avec de la traçabilité, et finalement de tester.
Pour résumer, nous avons choisi de développer
notre propre plateforme d’IA
pour être capable de répondre
aux contraintes d’applications critiques.
Le premier outil, l’AI Framework, un framework expert,
rend notre travail quotidien plus facile
tout en permettant d’allier fiabilité,
performance et autonomie.
Le second élément, la Data Platform
nous permet d’explorer les données,
de passer à l’échelle et
de réaliser des tests robustes.
La philosophie que nous suivons pour
développer nos modèles de deep learning
ou les outils permettant d’y arriver, est finalement
la même que celle utilisée pour la conception d’une voiture !
Nous espérons que vous avez apprécié
cette nouvelle session AI Academy !
La prochaine arrive bientôt, et j’ai cru comprendre
qu’elle contenait de chouettes secrets tech…
alors gardez un oeil
sur notre chaîne Youtube et n'oubliez pas de vous y inscrire ! A bientôt !

English: 
In the end the real asset of this Data Platform interconnected
with our AI Framework,
is the ability to: explore the data, scale while
keeping traceability, and last but not least, test.
To sum up, we chose to develop
our integrated AI development platform
to be able to respond
to mission critical applications.
The first tool, the AI Framework, an expert code library
makes our daily-work easier
while reaching reliability,
performance and autonomy.
The second tool, the Data Platform,
enables us to explore the data,
scale and make
robust tests.
The philosophy we have when
developing a deep learning model
or the tools to do so, is exactly the same
as it would be for the conception of a car.
We hope you enjoyed this
new AI Academy session,
the next one is coming soon! I have heard
it contains some great tech secrets,
so keep an eye on our Youtube channel, and don't forget to subscribe! See you soon!
