Tags:
create new tag
, view all tags

Stage de Robert Hakobyan - UTBM - [04/09/23 au 9/02/24]

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é, Thomas ou Sébastien

Sujet

  • Titre:
Chatbot et investigations IA

  • Description:
Le stage porte sur la poursuite du développement du chatbot CDS avec des investigations concernant l'IA

  • Objectifs et finalités attendus du stage :
L’objectif du stage est de porsuivre la R&D autour du chatbot en prenant en compte l'avènement des outils d'IA, ChatGPT et autres

Stage (Septembre 23 - Février 24)

Septembre

Du lundi 4 au vendredi 8 :


  • Prise en main du poste de travail
  • Installation des différents logicieles que je vais utiliser
  • Découverte de Hunggingface
Lundi 11 au vendredi 15 :


  • Elaboration du suje que je devrais réaliser
  • Chatbot openai -> montrer que ce ne sera pas assez éfficace par rapport à celui déjà existant
  • Lécture de Science & pseudo-sciences, sur la partie de l'intéligence artificielle et tous les questionements autour.
  • Prise en compte d'autre AI comme LLaMa, AstroLLaMA (spécialisé dans l'astronomie : https://arxiv.org/pdf/2309.06126.pdf ) et Bard
Lundi 18 au mercredi 20 :


  • Attente de l'API opena, lecture de la documentation officiel
  • Prise en main du chatbot existant avec quelque test
  • Prise en main de VizieR et Simbad en lisant la documentation et en effectuant des test avec des requêtes ADQL
Jeudi 21 au Mardi 26 :

  • Apprentisage Node JS via des tutos ainsi que l'utilisation des API
  • Lecture de la doc Node JS
  • Prise en main de GIT pour les futurs projets
Mercredi 27 au Jeudi 28:

  • Récuperation de l'API
  • Premier test
  • Début de lecture de la documentation + application
Vendredi 29 :

  • création d'un bot de conversation qui retient les messages envoyé précedement
  • Réunion

Octobre

Lundi 02 :


  • Dépot du projet sur gitlab
  • Filtre anti-injure (celui proposé par openai)
  • Réunion VizieR
Mardi 03:


  • Sécurisation de la clé APIavec une variable d'environemment
  • Début de reflexion pour l'enregistrement des requêtes ainsi que des réponses avec stockage et affichage de tout l'historique de la conversation pour plus tard pouvoir analyser les données
Mercredi 04:


  • Réglage de quelque problème avec gitLab
  • Try except pour quitter proprement
  • logs des données opérationnelsdans un Json
Jeudi 05:

  • Ecriture du readme de bot_basique
  • Lecture de la doc sur le Fine-tuning
  • Début des premiers tests
Vendredi 06:

  • Ajout du compte de token dans bot_basique
  • Réunion infusion avec JQ pour manipuler le JSON qui pourrait m'être utile
  • AJout d'un deuxième JSON qui à le contexte systeme de la conversation, l'id de la conversation et le nombre total de token pour cette conversation
Lundi 09 et mardi 10:

  • Premier test de fin tuning sur un exemple
  • Anais m'envoie les requetes pour pour commencer à fine_tuner mon modèle
  • Reglage de quelque bugs de compilation
Mercredi 11 et jeudi 12:

  • Conversation avec Anais pour avoir les logs. -> On est venu à la conclusion de d'abord regarder si openai pourrait apprendre des erreurs de syntaxe. Mais le fichier receuillant ses erreurs est erroné.
  • Début d'apprentisage de la manière de former un URL sur Simbad avec le Fine_tuning.
Vendredi 13:

  • Création d'un nouveau model de fin tuning.
  • Réflexion (bonne direction d'utiliser openai ou pas)
  • Contact par mail de mon prof d'IA pour obtenir des informations
Lundi 16:

  • Test des epochs sur différents modèle de fin_tuning
  • Réponses pas convaincante (overfitting)
Mardi 17:


  • Réunion
  • Test de fusion de 2 fine tune (leurs documents JSON)
  • Début de récuperation des criteria sur Simbad dans un fichier Json
Mercredi 18:

  • Récuperation des données de critères et mise en forme sous forme de Input user/assistant
  • Création du fichier d'apprentissage jsonl via un script python
  • Essaye d'optimisage des prompts pour avoir le meilleur apprentissage possible
  • Création du modele fine tuner
Jeudi 19:

  • Test du nouveau modèle
  • Recherche d'ajustement pour avoir de meilleur réponse et faire un nouveau fine tuning
  • Prise en compte de l'embending et des fonctions sur Openai
Vendredi 20:


  • Recherche sur les fonctions de openai
  • réalistion de différents test en modifiant le role system pour essayer d'optimiser
Lundi 23:

  • Début des test pour les fonctions pour pouvoir extraire les informations importantes de l'utilisateur
Mardi 24 au vendredi 27:

  • Fonctions qui trouve les variables donner par l'utilisateur (pour les critères)
  • Ajout de cette fonction dans mon bot
  • Recherche pour savoir si on peut utiliser les listes de fonctions sous forme d'arbre
  • Mise en place de PyCharm avec black et pylint
  • Reglage de quelque bug suite à l'implemnation des fonctions ( mauvais enregistrement dans le json, le compte de token qui ne marche pas)
Lundi 30 :


  • Reflexion sur l'architecture de mes fonctions (simbad/vizier/aladin --> etc etc)
  • Essaye de faire répondre le bot, pas seulement de récupérer les informations
Mardi 31 :
  • réalisation de test sur la réponse du bot.
  • Essaye d'optimisation sur sa réponse ainsi que ces liens ou requete en essayant de donner le meilleur prompt de contexte possible

Novembre

Jeudi 02 :

  • Comparaison des critères existant avec startwith
  • Réunion
  • Problème de compilation quand on rentre dans la fonction : à régler
Vendredi 03 :
  • Changement de méthode de comparaison, utilisation de la distance de Levenschtein pour avoir une meilleur optimisation lors de la comparaison avec les critères existant
  • Problème de compilation réglé
Lundi 06 et Mardi 07:
  • Ajout des astroquery (criteria içi) après avoir consulté Anaîs
  • Réunion avec Thomas et André
  • Amélioration du script de comparaison avec Levenschtein
  • Programme avec moins de bug (ne fait pas de recherche si l'opérateur n'existe pas)
  • Optimisation pour l'utilisateur s'il se trompe de pas beacoup sur le critère, la recherche s'effectu tout de même
  • Prise en compte des majuscules et miniscules pour les critères (tout devient des miniscules)
Mercredi 08 :

  • Lecture de la doc des nouveautés d'openAI (gpt4-turbo, baisse de prix, fonctions amélioré)
  • Applications de certain exemple
  • Réglage d'un bug de sélection de critère dans la fonction astro_query
Jeudi 09 :

  • Différenciation entre le compte et l'affiche dans les critères avec la création d'une nouvelle fonction + des test réalisés
  • Différents essaies pour essayer de faire comprendre au bot quand l'utilisateur utilise un "ou" ou un "et". (ra>150 & ra <200) (ra <150 | ra >200) mais sans encore trouver
Vendredi 10:


  • Début du rapport avec la mise en page sous latex
  • le count est désormais operationel via une requete web directement grace à la biblliothéque request sous python
Lundi 13 et Mardi 14 :

  • Ajout d'Observer dans le code pour rendre le code plus pratique
  • Ajout de logger pour mes print
  • Suppresion du deuxieme fichier de logs. Organsisation dans un seul JSON, plus complet et pratique
  • Correction du code et réorganisation de toutes mes fonctions dans des classes
  • Ajout des commentaires
Mercredi 15 :

  • Fin de l'ajout des commentaires
  • Mise en place des recommendations de pylint pour avoir un code "propre"
  • Installation dde l'upgrade d'openAI. Mon ancienne méthode de faire à changé. Utilisation de https://app.grit.io/migrations pour la migration et modification du reste à la main
Jeudi 16 :

  • Rajout du nombre de token utilisé par le bot (ne fonctionnait pas avant à cause des fonctions qui renvoyait null)
  • package pour les fonctions de de requete simbad séparé en plusieurs fichiers
  • Réunion
  • Modification de la méthode criteria_count en passant par la VOTable et plus pas le html
Vendredi 17:

  • Nettoyage du main pour la lisibilité
  • essaye de différentes déscriptions et contexte
Lundi 20:
  • Description
  • pylint pour un code plus propre
  • debut de reflexion sur plusieurs requetes en même temps
Mardi 21:

  • Changement de fonctions. Désormais elle prend un tableau de requête contenant un critère, un operateur de réponse et la valeur à filtrer. Puis un tableau contenant une liste d'opérateur. Fonctionne mais se trompe parfois sur les operateurs.
  • Début de changement de mes requêtes car maintenant il peut prendre plusieurs requêtes et pas qu'une.
Mercredi 22 et jeudi 23 :

  • Changement des fonctions de critères pour qu'il prenne en compte les listes désormais
  • Essaye d'optimisage des prompts
  • Lecture de la doc sur les files. Et réflexion pour savoir si je dois les ajouter
Vendredi 24:
  • Début des test d'ajout des files
  • Réglages de quelque bug (majuscule miniscule qui dérangeait les requêtes)
  • Rapport

Versions testables

  • ...

Documentation

Liste des améliorations à envisager

  • ...

Bugs connus

  • ...
Topic revision: r51 - 2023-11-24 - RobertHakobyan
 
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