Tags:
create new tag
, view all tags

Stage de Benjamin Monserand - UTBM - [07/09/20 au 12/02/21]

Important : cette page est réservée au suivi du stage, merci de ne pas la modifier

Informations générales pour les stagiaires

Pour toute information concernant ce stage : contacter André, Sébastien, Thomas

Sujet

Stage (Septembre 2020 - Février 2021)

Septembre

  • Lundi 7 :
    • Arrivée, formalités administratives, tour des locaux

  • Mercredi 9 :
    • Nettoyage scripts serveurs node.js
    • Remise en place des logs (ne fonctionnaient pas du tout, fonctions manquantes ou erronées)
    • Installation git, push initial commit, readme, push rework

  • Jeudi 10 :
    • ElasticSearch réparé (erreurs dans l’URL et le parsing)
    • Début amélioration du système de balises explicites (#objet#)
    • Balises nécessitent un entraînement ciblé du modèle Dialogflow, demande d’accès envoyée
    • Documentation et tests sur Rasa (moteur de NLU open source avec contexte), résultats encourageants

  • Vendredi 11 :
    • Avancement détection de mots clés avec balises style Google Advanced Search
    • Présentation Vizier / SVOM / XMM, de 11h à 12h
    • Compréhension fonctionnement agent Dialogflow

  • Lundi 14 :
    • Prototypage Rasa

  • Mardi 15 :
    • Prototypage Rasa
    • Ajout stories et jeux d’essai
    • Tests API HTTP

  • Mercredi 16 :
    • Optimisations, regex (agent Rasa), suppression de certaines lookup tables (trop de valeurs, hors les lookup tables ne sont utiles que sur des paramètres avec un ensemble connu de valeurs possibles)
    • Intégration dans Rasa des CSV servant à convertir un type d’objet (quasar) en code otype (1319), rend la requête node.js de ces CSV inutile
    • Portage client, suppression réponses hardcodés

  • Jeudi 17 :
    • Présentation documentalistes, point intéressant : dictionnaire de nomenclature pour les nom d'objets
    • Amélioration synonymes et regex NLU (grâce au dictionnaire), correction données d'entraînement
    • Gros progrès côté client, debug, corrections de types

  • Vendredi 18 :
    • Amélioration mémoire NLU
    • Séminaire en fin de matinée
    • Debug

  • Lundi 21 :
    • Ajout extraction guidée par token de paramètres (Show me oid:"HD 1548")

  • Mardi 22 :
    • Mise en place système de sélection avancé des paramètres côté client, priorisation entre entités extraites et mémoire (améliore drastiquement la compréhension du contexte)
    • Tests Vizier, recherche article ciblé via métadonnées

  • Mercredi 23 :
    • Découverte outil TOPCAT et service MocServer
    • Correction ordonnancement résultats catalogues (comparaisons littérales = numéraires)
    • Ajout catalogue le plus spécifique (mais inutilisable à cause d'un bug de VizierTAP pour les tables META)

  • Jeudi 24 :
    • Mise en place outil de génération de données d’entraînement (voir image)

  • Vendredi 25 :
    • Mise à jour readme / instructions
    • Entraînement model
    • Prototypage fusion et simplification fonctions client pour les intentions list_object, find_object et get_count
      • enlever les appels répétées
      • ajouter les conditions pour les trois intentions

  • Lundi 28 :
    • Recherche SQL pour list/count/find objects utilisant un recherche croisée entre catalogues

  • Mardi 29 :
    • Changement du mode de gestion des intentions de smalltalk, passage de uttering à retrieval intents (meilleure classification et simplification du code)
    • Tests changement de Tokenizer, non concluant, on garde Spacy

  • Mercredi 30 :
    • Progrès implémentation list/count/find objects
    • Ajout critère "like" et "around" pour ces fonctions
    • Réparation des accordions (listes déroulantes JQuery)

Octobre

  • Jeudi 1 :
    • Ajout rayon dans la recherche simple SimTAP (sans recherche croisée)
    • Implémentation affachage résultats de find objects dans Aladin Lite
    • Reste à ajouter le support de la recherche par coordonnées

  • Vendredi 2 :
    • Présentation use-cases observatoire virtuel
    • Support de multiples oids dans une phrase, permet de demander un filtre sur la similitude avec un objet et la proximité avec au autre

  • Lundi 5 :
    • Ajout support coordonnées ICRS
    • Debug
    • Tests HiPS / MOC

  • Mardi 6 :
    • Point avancement du stage, discussion prochaines étapes
    • Accès à la VM obtenu (mais manque les droits sudo)
    • Recherches déploiement

  • Mercredi 7 :
    • Prototypage déploiement, choix:
      • venv
      • docker
      • kubernete
    • Migration des serveurs node.js de l'utilisateur sinnaeve vers root

  • Vendredi 9 :
    • Fin du déploiement
    • Amélioration interaction avec le service HiPS2FITS

  • Lundi 12 :
    • Ajout vérification de couverture HiPS2FITS

  • Mardi 13 :
    • Refonte interface graphique

  • Mercerdi 14 :
    • Corrections de bugs
    • Fusion des intentions (list, find, count) car on peut donner les informations des trois en un, évite aussi la création de bruit chez l'agent
    • Ajout nouvelles histoires

  • Jeudi 15 :
    • Réparation de la recherche de mesures avec Vizier
    • Ajout recherche par année et par auteur

  • Vendredi 16 :
    • Point hebdomadaire
    • Ajout fonction retour en arrière
    • Ajout MappingPolicy pour les actions "forget", "back" et "smalltalk"

  • Lundi 19 :
    • Bug fixes
    • Changement de l'affichage d'une demande de mesure à propos d'un otype (via Simbad ainsi que Vizier)
    • Nouvelle technique d'amélioration de contexte, utilisation d'une intention "transparente" pour la modification de paramètres entre deux requêtes sans changer d'intention principale
    • Entraînement nouvel Agent utilisant la nouvelle intention en cours, déploiement demain

  • Mardi 20 :
    • Intégration système de suggestions (côté Rasa)
    • Meilleure gestion des intentions courtes (mapping entre l'intention "transparente" et une intention principale si au début d'une nouvelle histoire)
    • Fix bug duplicatas recherche d'enfants

  • Mercredi 21 :
    • Mappage dynamique des colonnes Simbad

  • Jeudi 22 :
    • Point hebdomadaire
    • Amélioration affichage résultats
    • Ajout distinct sur certaines requête
    • Prise en charge des erreurs de timeout ou de surcharge de service

  • Vendredi 23 :
    • Ajout nouveau jeu de données d’entraînement
    • Début refonte de l'affichage des résultats ( TBC)

  • Lundi 26 :
    • Diagnostic et nettoyage Docker (remplissage rapide du stockage)
    • Documentation à propos du HTTPS, besoin d'un accès au DNS du réseau ?

  • Mardi 27 :
    • Affichage des entités détectées pour que l'utilisateur puisse vérifier la compréhension
    • Résolution de problèmes avec les synonymes, Rasa ne corrige pas l'index des entités (début et fin) une fois le synonyme remplacé, ce qui cause des décalages et éventuellement des superpositions d’entités.
    • Fixes

  • Mercredi 28 :
    • Mise à jour majeure de Rasa (1.10.10 => 2.0.2) et Rasa X (0.32.2 => 0.33.0)
      • Configuration d'un nouveau composant (RegexEntityExtractor)
      • Modification du générateur et conversion des données d’entraînement de json/md vers yml
      • Préparation déploiement sur VM (docker-compose.yml et pré-entrainement de l'agent)

  • Jeudi 29 :
    • Amélioration système de filtrage des entités
    • Rectification du mode démo, chasse et résolution de bugs
    • Préparation télétravail

  • Vendredi 30 :
    • Préparation poste de télétravail (dual boot Ubuntu, VPN, git et version locale de Rasa)
    • Suppression du nouveau composant RegexEntityExtractor car il ne bénéficie d'aucun apprentissage et cause des fausses détections

Novembre

  • Lundi 2 :
    • Déploiement mise à jour Rasa sur VM
    • Point hebdomadaire
    • Fix bug caractères échappés générateur

  • Mardi 3 :
    • Mise en place de l'entrainement local par GPU (2h d'entrainement => ~45 minutes)
    • Modification de l'architecture de l'agent Rasa: passage d'un entrainement par corpus pré-entraîné vers un corpus supervisé
      • Obsolescence du corpus pré-entraîné SpacyNLP
      • Création d'un tokenizer personnalisé permettant d'isoler chaque "mot" et supportant les caractères spéciaux (>= 1.2, * Al, 13', 3°, Johnson H.L., ...) (voir image)
      • Création d'un corpus spécifique au langage astronomique basé sur les données d'entrainement

  • Mercredi 4 :
    • Changement du point d'accès et de la méthode d'authentification de Rasa
      • Requêtes faites vers l'API de Rasa X plutôt que le module de NLU
      • Génération automatique de token JWT avec permissions réduites pour chaque utilisateur, renouvellement après expiration
      • Fermeture de ports non nécessaires
    • Réinstallation de la base de donnée sur la VM, les conversations n'étaient plus enregistrées après la mise à jour

  • Jeudi 5 :
    • Simplification code recherche de catalogues via le MocServer et le tri des résultats
    • CSS pour support cross-navigateur
    • Passage sur l'API de Rasa X pour effectuer l'action d'oubli des entités et un deuxième essai s'il n'y a eu aucun résultat

  • Vendredi 6 :
    • Présentation HPC le matin
    • Prise en charge de beaucoup de cas particuliers lors des requêtes vers NodeJS
    • Résolution de comportements étranges lors de requêtes vers VizieR et Sésame

  • Mardi 10 :
    • Passage du serveur web apache, du serveur nodejs, ainsi que du point d'accès Rasa au HTTPS
    • Changement de l'adresse vers https://cds-chatbot.astro.unistra.fr/ChatbotV4/ afin de pouvoir utiliser le certificat astro.unistra
    • Changement fait pour les services qui supportent le HTTPS, passage par un proxy pour les autres

  • Jeudi 12 :
    • Désactivation de la sensibilité de casse lors de la reconnaissance des entités
    • Ajout support de selection de HiPS pour show_image, nécessite l'identification d'un survey par son nom commun

  • Vendredi 13 :
    • Filtre des HiPS supportés dans AladinLite
    • Réunion XStra
    • Fixes sur le jeu de donnés d'entrainement, amélioration du CDSTokenizer

  • Lundi 16 :
    • Point hebdomadaire
    • Checkpoint entrainement pour éviter l'overfit (sauvegarde de l'epoch ayant la les plus basses fonction de loss en validation)
    • Report d'un bug sur le Github de Rasa, fix sur ma version locale

  • Mardi 17 :
    • Fixes depuis les retours de mes encadrants (NLU, affichage, format HiPS depuis le MocServer)
    • Résolution d'un bug de désynchronisation du tracker de NLU causant une réponse d'être prise en compte en retard
    • Début refonte affichage résultats Simbad

  • Mercredi 18 :
    • Modularité de l'affichage Simbad
    • Optimisation des requêtes Sesame

  • Jeudi 19 :
    • Différents affichages en fonction de si on requête une ou plusieurs mesures
    • Début préparation de la présentation Rasa

  • Vendredi 20 :
    • Préparation présentation Rasa

  • Lundi 23 :
    • Modification de la pipeline Simbad pour être flexible dans l'affichage des résultats
    • Affichage de résultats annexes si présents
    • Modules d'affichages spécifiques à certaines mesures

  • Mardi 24 :
    • Finalisation et debug de l'affichage
    • Recherches sur les différentes mesures, unités et méthodes de conversions
    • Ajout de l'affichage de certains résultats Simbad sur l'interface AladinLite
      • Affichage de la taille angulaire. Si inconnue, calcul avec le diamètre et le parallax
      • Affichage du vecteur de mouvement propre

  • Mercredi 25 :
    • Fixes client
    • Ajout données d'entrainement
    • Nombreuses modifications dans le jeu de données et les paramètres d'entrainement pour éviter l'overfitting

  • Jeudi 26 :
    • Préparation présentation Rasa
    • Nombreuses modifications dans le jeu de données et les paramètres d'entrainement pour éviter l'overfitting

  • Vendredi 27 :
    • Point hebdomadaire
    • Mise à jour Rasa X (0.33.0 => 0.33.2)
    • Essai de mise à jour Rasa (2.0.2 => 2.1.2) mais pas encore supporté par Rasa X

  • Lundi 30 :
    • Préparation présentation Rasa
    • Conseil scientifique du CDS

Décembre

  • Mardi 1 :
    • Correction automatique des fautes de frappes, seulement sur les mesures pour le moment
    • Conseil scientifique du CDS

  • Mercredi 2 :
    • Préparation présentation Rasa

  • Jeudi 3 :
    • Préparation présentation Rasa

  • Vendredi 4 :
    • Mise à jour Rasa X (0.33.2 => 0.34.0) et Rasa (2.0.2 => 2.1.2)
    • Correction de bugs

  • Lundi 7 :
    • Découverte d'un bug dans le système d'authentification de Rasa X, corrigé localement et reporté sur le forum
    • Suppression des précédents messages du Chatbot avant de réessayer la recherche (évite de dupliquer les messages d'erreur tout en indiquant à l'utilisateur que sa requête n'avait pas eu de résultats)

  • Mardi 8 :
    • Stress test du serveur de production (résultats)
    • Nombreuses optimisations du serveur, permet ainsi de réponse à plus de 30 requêtes par seconde

  • Mercredi 9 :
    • Passage à une prédiction multi-intentions, permet de faire des associations d'intentions et améliore l'apprentissage

  • Jeudi 10 :
    • Recherche simultanée (asynchrone) de multiples références via Sesame (vitesse x5)
    • Anticipation de l'affichage Simbad pour d'éventuelles nouvelles mesures
    • Ajout de format

  • Vendredi 11 :
    • Amélioration recherche et affichage de catalogues Vizier, début d'une nouvelle classification personnalisée
    • Nettoyage du code et commentaires

  • Lundi 14 :
    • Début refonte integration AladinLite (filtres, https et cache)

  • Mardi 15 :
    • Refonte terminée
    • Ajout intention show_coverage
    • Point hebdomadaire

  • Mercredi 16 :
    • Amélioration de la délimitation entre les intentions show+image/cutout/coverage/interesting
    • Nouvelles données d'entrainement et nouveau modèle

  • Jeudi 17 :
    • Déploiement changements
    • Finalisation préparation Rasa

  • Vendredi 18 :
    • Présentation Rasa
    • Café virtuel

Janvier

  • Lundi 4 :
    • Recherche meilleur paramètres d'entrainement pour réduire le temps d'entrainement et l'overfitting
    • Délégation du manque de paramètres au client, permettant de demander des informations à l'utilisateur de façon plus fine
    • Remplacement des stories d'entraînement simples par des rules

  • Mardi 5 :
    • Début ajout intention get_article
    • Peut-être besoin de regrouper l'entité hips et catalog_name, étant essentiellement très similaires

  • Mercredi 6 :
    • Ajout entité article_name
    • Hips et catalog_name regroupés
    • Pipeline get_article

  • Jeudi 7 :
    • get_article prêt, phase de tests
    • Correction de bugs

  • Vendredi 8 :
    • Entrainement nouveau modèle
    • Déploiement retardé à cause de la panne du réseau UNISTRA

  • Lundi 11 :
    • Déploiement V4.5.3
    • Documentation et TWiki

  • Mardi 12 :
    • Rapport de stage

  • Mercredi 13 :
    • Découverte nouveautés Rasa 2.2
    • Ajout de l'entraînement incrémental
    • Compilation depuis la source de tensorflow 2.3.2 pour utilisation du GPU (problème de capacité de calcul)

  • Jeudi 14 :
    • Rasa 2.2 ne semble pas prêt à être utilisé en production, introduction de bugs et impossibilité d'utiliser des fonctionnalités critiques
    • Rollback vers Rasa 2.1
    • Rapport de stage

  • Vendredi 15 :
    • Ajout bannière RGPD pour l'utilisation de cookies (identifiants utilisateur unique pour le serveur backend)
    • Compatibilité pour les clients refusants l’utilisation des cookies

  • Lundi 18 :
    • Rapport de stage

  • Mardi 19 :
    • Rapport de stage

Liens

Versions testables

Documentation

confmat_post-generator.png confmat_pre-generator.png

intent_confmat_supervised-embedding.png entity_confmat_supervised-embedding.png

tokenizer.png

stress_test.png

Liste des améliorations à envisager

Bugs connus

-- SebastienDerriere - 2020-09-18 -- BenjaminMonserand - 2021-01-20

Topic attachments
I Attachment Action Size Date Who Comment
PDFpdf RAPPORT_A20_INFO_ST40_MONSERAND_BENJAMIN.pdf manage 7186.3 K 2021-02-18 - 08:23 BenjaminMonserand  
PDFpdf SOUTENANCE_A20_INFO_ST40_MONSERAND_BENJAMIN.pdf manage 7882.8 K 2021-02-18 - 08:23 BenjaminMonserand  
PNGpng confmat_post-generator.png manage 86.1 K 2020-09-25 - 13:57 BenjaminMonserand  
PNGpng confmat_pre-generator.png manage 236.0 K 2020-09-25 - 13:54 BenjaminMonserand  
PNGpng entity_confmat_supervised-embedding.png manage 86.2 K 2020-11-06 - 14:02 BenjaminMonserand Matrice de confusion des entités après implémentation du Supervised Embedding
PNGpng intent_confmat_supervised-embedding.png manage 79.0 K 2020-11-06 - 14:03 BenjaminMonserand Matrice de confusion des intentions après implémentation du Supervised Embedding
PNGpng stress_test.png manage 137.2 K 2020-12-09 - 18:20 BenjaminMonserand Stress test du serveur de production
PNGpng tokenizer.png manage 151.3 K 2020-11-03 - 11:28 BenjaminMonserand Custom CDSTokenizer
Topic revision: r56 - 2021-02-18 - BenjaminMonserand
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback