Architecture.tex 23.1 KB
\chapter{Architecture Globale pour le Système AI-VT}

\section{Introduction}

L'architecture logicielle est essentielle pour définir un système entier avant sa mise en œuvre et est importante car elle aide à décrire et à comprendre des systèmes logiciels complexes. L'architecture montre les composants, les couches, les fonctionnalités et les interactions. Ce chapitre présente l'architecture modulaire proposée pour le système AI-VT. Les modules intègrent des paradigmes, des modèles et des algorithmes d'intelligence artificielle pour améliorer le fonctionnement global. Les objectifs de l'architecture proposée sont de rendre le logiciel AI-VT (Artificial Intelligence Virtual Trainer) stable, évolutif, performant, maintenable, facile à modifier, facile à surveiller et testable. L'architecture proposée se compose de quatre couches indépendantes chacune avec une fonctionnalité spécifique: correction automatique, identification, révision et test. Le contenu de ce chapitre est partiellement extrait du travail de Soto \textit{et al.} \cite{10.1007/978-3-031-63646-2_13}.

Les deux principaux types d'architecture logicielle sont l'architecture monolithique et l'architecture modulaire. Dans l'architecture monolithique, le système logiciel est considéré comme une unité unique avec une seule source de code, une seule base de données et un seul déploiement pour l'ensemble du système ; ce type de système est simple à développer et à tester mais n'est pas adapté à la mise à jour et à l'évolution en raison de sa rigidité. Une architecture modulaire divise le système en modules indépendants qui peuvent communiquer entre eux, chaque module contenant alors tout ce qui est nécessaire pour fonctionner. En fait, de nombreux systèmes logiciels ont été conçus avec une architecture modulaire en raison des multiples avantages qu'elle présente \cite{Auer} \cite{jmse10040464}.

Le système AI-VT est un outil pédagogique générique qui vise à accompagner les apprenants dans leur apprentissage en leur proposant des fiches d'exercices appelées sessions. A l'intérieur de chaque session, les capacités attendues sont divisées en compétences, elles-mêmes divisées en sous-compétences. L'apprenant choisit une compétence à travailler et le système génère une session composée d'exercices associés à plusieurs sous-compétences de la compétence choisie. Le système propose une liste d'exercices au début d'une session en utilisant le paradigme du raisonnement par cas avec une base de données de questions.

%----------------------------------------------------------------------------------------
%	SECTION 2
%----------------------------------------------------------------------------------------

\section{Description du système AI-VT}

Le système AI-VT est un EIAH générique dont la structure globale est présentée dans la figure \ref{figSys1}. Il existe une base de données de questions, chacune des questions est associée à un contexte, au texte de la question considérée et à un niveau de complexité. Les questions appartiennent à un niveau de sous-compétences et les sous-compétences à un niveau de compétences. Les principaux acteurs du système sont l'enseignant et l'apprenant, l'enseignant a la capacité de configurer l'ensemble du système, le nombre de compétences, les sous-compétences d'une compétence, le nombre de questions, la complexité de chacune d'entre elles, le nombre de niveaux de complexité et le temps par session. Et l'apprenant, qui peut commencer l'entraînement d'une compétence spécifique, accéder à des ressources de soutien complémentaires et répondre aux questions de test dans les sessions proposées par le système. Le tableau \ref{tabDesc} montre les caractéristiques du système AI-VT selon la définition des 20 dimensions du profil de l'apprenant décrites dans \cite{Daubias2011}.

\begin{figure}[!ht]
\centering
\includegraphics[width=\textwidth]{./Figures/AIVT.png} 
\caption{Structure du système AI-VT}
\label{figSys1}
\end{figure}

En s'appuyant sur la philosophie CBR, le système global AI-TV part du principe que certains apprenants ont des performances, des besoins et des capacités d'apprentissage similaires, et qu'il est donc possible de les regrouper et d'améliorer ainsi le processus d'apprentissage général pour tous. L'algorithme dans AI-VT tente de proposer une liste d'exercices en fonction de la compétence ou de la sous-compétence sélectionnée.

L'algorithme d'AI-VT tente de proposer une liste d'exercices en fonction de la compétence ou de la sous-compétence sélectionnée et en tenant compte de l'équilibre entre répétitivité et variété, le nombre d'exercices par session change en fonction du domaine, du niveau et de la compétence de chaque apprenant. La liste d'exercices est générée au début de chaque séance et ne modifie donc pas le cours de la séance en fonction des réponses fournies par l'apprenant, les listes d'exercices sont statiques pendant la séance \cite{10.1007/978-3-030-01081-2_9}.

\begin{table}[!ht]
\centering
\begin{tabular}{p{1in}p{2.5in}p{1.5in}}
Type&Definition&Système AI-VT\\
\hline
Subject&Acteur humain concerné par le profil&Apprentissage seul et en groupe\\
Collaboration&Le rôle de la collaboration dans les activités du profil&Individuel, Collaboratif\\
Distance&Le rôle de la distance dans les activités du profil&Presentiel, Distanciel\\
Discipline&Discipline des informations contenues dans le
profil&Generic\\
Niveau&Le niveau scolaire de la matière concernée par le profil &Generic\\
Initiateur&L'acteur humain à l'origine de la décision de créer le profil de création&Professeur, Administrateur\\
Créateur&L'acteur humain ou logiciel qui compose le profil&Professeur, Administrateur\\
Destinataire&Acteur humain ou logiciel exploitant le profil&Apprenant\\
Temps&Période du profil&Asynchrone\\
Évolution&L'évolutivité du profil &Profil évolutif\\
Type&Le type d'informations contenues dans le profil &Profil de l'apprenant\\
Nature&La nature des informations contenues dans le
profil&Connaissances et compétences\\
Évaluation&La forme sous laquelle l'information est
évaluée&Rating, Taux de maîtrise\\
Représentation interne&Représentation interne utilisée par le système informatique pour manipuler les profils&Tables\\
Représentation externe&Représentation utilisée pour stocker le profil &Liste de valeurs\\
Visualisation&Représentation utilisée pour présenter le profil à ses destinataires&Représentation textuel et graphique standard\\
Norme&Norme ou standard éducatif & - \\
Format&Format de stockage du profil &Base de données relationnelle\\
Plate-forme&plate-forme informatique compatible&Web\\
Dispositifs&le type de dispositif d'affichage du profil &Ordinateur ou appareils connectés\\
\end{tabular}
\caption{Un tableau décrivant les caractéristiques du système AI-VT}
\label{tabDesc}
\end{table}

\section{Modèle d'architecture proposé}

L'idée de l'architecture proposée est que le système préserve sa fonctionnalité d'origine et qu'il peut également utiliser des fonctions complémentaires en activant simplement le module correspondant en envoyant et en recevant les informations nécessaires à son fonctionnement, ce qui étend la fonctionnalité globale d'origine du système et facilite l'intégration avec les modules conçus et même avec de nouveaux modules. La conception modulaire facilite également la maintenance du code, le développement et l'intégration de nouvelles extensions, ainsi que la configuration et l'adaptation du système à différents scénarios, tout en réduisant les risques et les coûts. La modularité permet également d'exécuter les fonctionnalités de chaque module de manière asynchrone, en parallèle ou en mode distribué si nécessaire.

L'architecture se compose de deux éléments principaux : le système central (AI-VT System) et les modules fonctionnels. Le système central gère l'ensemble du processus d'apprentissage ; il génère et démarre les séances ; il stocke les données relatives aux compétences, aux questions, aux ressources, aux apprenants et aux réponses ; il contient les commandes et l'interface générale ; il gère le flux d'informations et active les modules nécessaires. Les modules sont un ensemble de fonctionnalités indépendantes mises en œuvre avec des algorithmes d'intelligence artificielle qui reçoivent et envoient des données depuis le composant central, chaque module fonctionne selon des critères spécifiques liés à son propre objectif. Les modules sont regroupés en couches selon leur fonctionnalité : correction automatique, identification, adaptation, révision et test. L'enseignant et l'apprenant n'utilisent pas les modules directement, les modules sont utilisés par le système pour compléter certaines fonctionnalités.

La couche de correction automatique (LC) correspond aux modules chargés de recevoir les réponses des apprenants et, conformément aux algorithmes et critères définis, d'établir une note cohérente avec une réponse de référence à une question spécifique. Dans cette couche, le module routeur (LC0) est chargé d'identifier le type de correction nécessaire et d'instancier le module approprié pour l'exécution de la tâche spécifique.

La couche d'identification (LD) contient les modules qui identifient les faiblesses ou les variables externes des apprenants lors de l'exécution des exercices proposés par le système ou après l'analyse des résultats. Ces modules aident à personnaliser le processus des apprenants en fonction des résultats obtenus par les analyses.

La couche de révision (LR) comprend les modules qui prennent les données des résultats obtenus dans la couche LC et les résultats de l'analyse de la couche LD pour modifier le parcours de l'apprenant en essayant de renforcer l'apprentissage dans les faiblesses détectées. Ici se trouvent également les modules qui obtiennent des informations de la part des apprenants et tentent de prédire leurs résultats en fonction des différentes compétences et des différents niveaux de complexité.

Pour évaluer les modules dans différents scénarios, il est nécessaire de produire des données selon différents critères et complexités, c'est pourquoi la couche de test (LT) a été définie, dans laquelle se trouvent les modules qui permettent de générer des données synthétiques selon des critères variables, de cette manière il est possible d'obtenir des résultats numériques des modules et d'appliquer des métriques.La couche de test (LT) permet d'évaluer les modules selon différents critères et complexités.

Le schéma complet de l'architecture est illustré à la figure \ref{sa1}, où les lignes pleines représentent un flux d'informations bidirectionnel, les lignes pleines avec une flèche représentent le flux unidirectionnel et les lignes en pointillé représentent la dépendance de l'information entre les modules, les dispositifs externes qui peuvent être utilisés par les modules pour exécuter leurs fonctionnalités et les étiquettes qui indiquent quel type d'information le module envoie au système central sont également représentés, ainsi que certains des algorithmes d'intelligence artificielle mis en œuvre dans chaque module et le stade de développement dans lequel chacun d'eux se trouve. Certains dispositifs sont nécessaires à l'exécution des modules qui requièrent l'obtention de données à partir de sources externes, dans le schéma d'architecture sont représentés le robot NAO, des capteurs, une caméra vidéo et un microphone.

\begin{figure}[!ht]
\centering
\includegraphics[width=\textwidth]{./Figures/Architecture AI-VT2.png}
\caption{Schème de l'architecture proposée}
\label{sa1}
\end{figure}

\subsection{Correction automatique}

Dans cette couche, les modules ont la capacité de recevoir et d'évaluer différents types de réponses données par les apprenants en fonction du contexte et de la question que le système a proposée. Les modules représentés ont la capacité d'évaluer une réponse donnée par l'apprenant, les modules dans lesquels des progrès ont déjà été réalisés correspondent à l'analyse de vidéo, de texte audio (langage naturel), de code source (Java, Python). D'autres modules permettent également d'analyser des images, des expressions mathématiques, des valeurs générées par des capteurs physiques et des variables définies par des activités sportives.

Le module routeur (LC0) a pour fonction d'identifier le type de réponse et de la rediriger vers le module d'analyse correspondant ; une fois la réponse générée, ce module la redirige vers le système AI-VT principal.

Le module vidéo (LC1) permet de capturer un flux d'images à partir d'un dispositif externe (caméra vidéo ou robot NAO) et de les analyser pour déterminer si une réponse donnée est correcte, actuellement le module est utilisé pour évaluer la réponse à la question : montrer \textit{n} nombre de doigts. L'algorithme implémenté détecte les doigts qui apparaissent sur la caméra, les compte et détermine s'il s'agit de la bonne réponse à la question donnée.

Le module audio (LC2) analyse une piste audio et tente de convertir son contenu en texte. Une fois le texte généré, il peut être comparé à une réponse attendue à la question posée à l'aide de techniques NLP mises en œuvre dans le module GC5, et un score d'approximation estimé peut être généré. Le module audio (LC2) analyse une piste audio et tente de convertir son contenu en texte.

Le module d'analyse du code (LC3) génère le score après l'exécution de plusieurs étapes, d'abord il détermine s'il y a des faiblesses dans certaines compétences prédéfinies, ensuite il transforme la représentation du code en un vecteur numérique à comparer avec une réponse de référence, le résultat de la pondération entre les faiblesses détectées et le pourcentage de comparaison est le score généré. Le module d'analyse du code (LC3) génère le score après l'exécution de plusieurs étapes.

Le module d'analyse de texte (LC5) transforme essentiellement le texte envoyé par l'apprenant en un vecteur numérique qui peut être comparé au vecteur numérique d'une réponse attendue. Dans ce cas, la réponse donnée ne doit pas nécessairement être exactement la même que la réponse attendue, puisque la représentation vectorielle permet d'établir des similitudes dans l'espace, même si les termes utilisés et la longueur du texte diffèrent.

Les modules LC6, LC7, LC8 et LC9 ont été définis comme des modules capables d'analyser différents types de réponses potentielles, qui ne sont pas encore gérées par le système AI-VT.

\subsection{Identification}

Les modules de la couche d'identification visent à extraire des informations complémentaires à la note de l'étudiant pour chacune des réponses envoyées au système, principalement pour obtenir des informations sur les expressions et les faiblesses qui peuvent se manifester dans chaque sous-compétence et niveau de complexité, afin d'obtenir une meilleure estimation de l'état de l'apprentissage, pour guider plus précisément le parcours de l'apprenant.

Les modules d'identification LD1, LD2 et LD4 tentent de détecter les comportements, les émotions et les sentiments à l'aide de dispositifs externes tels que la caméra vidéo et le microphone. Dans le cas de l'analyse vidéo, des réseaux neuronaux d'apprentissage profond sont utilisés pour capturer et analyser les images statiques obtenues à partir du flux de la caméra vidéo, les émotions qui peuvent être détectées ont été prédéfinies et le modèle d'IA a été entraîné à les identifier. Le module audio vise à détecter le même type d'émotions, mais à partir de l'analyse des signaux obtenus à partir d'un microphone, il utilise également l'apprentissage profond formé avec des signaux qui présentent les émotions prédéfinies. Le module capteur est conçu de manière plus générique, mais il peut être subdivisé en modules spécifiques en fonction du type de capteur et du signal à analyser, mais l'idée de la détection est la même avec les émotions prédéfinies.

Le module Analyse des données (LD3) est différent car, en plus d'être générique, il tente d'identifier les faiblesses dans des compétences spécifiques en fonction du type d'évaluation, ce module peut contenir différents modèles entraînés pour chaque type de cas. Pour les exercices linguistiques, les faiblesses doivent être identifiées dans : la conjugaison des verbes, l'utilisation des temps, le vocabulaire, la correspondance des genres de mots, etc. ; si l'exercice est de type programmation : la syntaxe, la déclaration de variables, l'appel de fonctions, la construction de structures, etc. En interne, ce module contient des modèles d'apprentissage profond et des modèles collaboratifs tels que le raisonnement à partir de cas.

\subsection{Révision}

Dans la couche de révision, les modules utilisent les informations générées par les modules des couches de correction automatique et d'identification ainsi que les informations complémentaires de l'apprenant stockées dans la base de données du système, ces modules valident que la recommandation générée est optimale pour l'apprenant. Toutes les informations récoltées permettent d'établir la meilleure façon de guider l'apprenant vers une meilleure compréhension en surmontant les faiblesses et les lacunes qui ont été identifiées.

Les ressources recommandées par le module LR1 proviennent d'une base de données déjà établie que le module consulte et suggère à l'étudiant en fonction du résultat de la comparaison de l'état d'apprentissage, du niveau et des caractéristiques et spécifications de chacune des ressources.

Le module LR2 a deux variantes, l'une déterministe et l'autre stochastique, les deux variantes étant basées sur les valeurs générées par l'apprenant. Le modèle déterministe utilise un tableau prédéterminé de rangs sur lequel l'apprenant est positionné pour générer la suggestion d'adaptation. Le modèle stochastique utilise des distributions de probabilités dynamiques qui changent en fonction des résultats de l'apprenant à chaque niveau de complexité de la même sous-compétence.

Il y a d'autres modules, où une prédiction est faite avec les mêmes données que celles qui ont été utilisées pour la génération de l'adaptation et de cette façon est déterminée quelle sera la performance de l'apprenant et si effectivement l'adaptation proposée permet d'acquérir les compétences nécessaires et d'améliorer les notes obtenues.

Le module LR3 obtient dynamiquement des structures variables à partir des informations extraites du système AI-VT central. Ce module peut également effectuer des transformations dans la structure, le contenu et la représentation des données des apprenants.

Le module LR4 utilise les informations produites par l'apprenant et les informations collaboratives pour tenter de prédire les performances futures de l'apprenant, en particulier avec la recommandation générée par les modules de la couche adaptative, la prédiction est utilisée pour valider l'adaptation recommandée et l'ajuster si nécessaire.

\subsection{Test}

La couche de test est externe au flux du fonctionnement global du système et à l'intégration avec des outils d'intelligence artificielle, mais elle a été développée parce qu'elle permet d'évaluer chacun des modules indépendamment et de générer des données spécifiques pour divers scénarios de test qui peuvent être pris en compte lors de la validation d'un module.

\begin{figure}
\centering
\includegraphics[scale=0.60]{./Figures/Layers.png}
\caption{Relation entre les couches définies de l'architecture.}
\label{figLayers}
\end{figure}

Les couches définies de l'architecture peuvent communiquer entre elles, car pour que certains de leurs modules internes fonctionnent, elles ont besoin des informations générées par les modules des autres couches. La figure \ref{figLayers} montre les interactions qui peuvent se produire dans le fonctionnement du système. La couche de test (LT) a besoin des informations générées par les modules de toutes les autres couches pour évaluer leurs performances individuelles. La couche d'identification (LD) doit obtenir les données relatives au profil des apprenants ; ces informations sont générées par le module de profil qui se trouve dans la couche de révision (LR), pour certains modules qui ont la capacité de modifier une solution, cette couche doit connaître les résultats obtenus par l'apprenant dans chacun des tests ou exercices proposés par le système, ces résultats sont attribués par la couche de correction automatique (LC). De plus, il est possible d'obtenir une estimation du résultat de la révision proposée avant qu'elle ne soit envoyée à l'apprenant, pour cela il faut invoquer les modules spécifiques de prédiction qui appartiennent à la couche de révision (LR).

\begin{figure}[!ht]
\centering
\includegraphics[width=\textwidth]{./Figures/flow.png} 
\caption{Étapes du flux de l'information pour la fonctionnalité de recommandation globale}
\label{figFlow}
\end{figure}

Le flux complet d'informations est représenté dans la figure \ref{figFlow}. La première étape consiste à envoyer le test généré par le système AI-VT à l'apprenant ; à cette étape, le module d'identification correspondant à l'analyse à effectuer est également lancé. Lorsque l'étudiant envoie la réponse à une question, le module d'identification envoie à l'apprenant l'analyse effectuée sur cette même réponse. Grâce à ces informations, le système active les modules de correction automatique pour attribuer une note à la réponse envoyée, en tenant compte également des résultats du module d'identification. À l'étape 6, la note générée est envoyée au système, puis pour effectuer l'adaptation, le système obtient les informations spécifiques de l'apprenant et lance les modules d'adaptation, en envoyant les informations obtenues dans les étapes précédentes. Les algorithmes d'adaptation évaluent les variables et déterminent le parcours optimal pour l'apprenant, mais avant de le renvoyer au système principal, l'étape 9 évalue sa pertinence à l'aide du module de prédiction. Si la prédiction détermine que le chemin suggéré est acceptable, il est envoyé au système principal qui décide, à l'étape 11, de le présenter à l'apprenant comme une alternative au chemin sélectionné à l'origine.

\section{Conclusion}

L'architecture proposée est basée sur des concepts et des modèles couramment utilisés pour concevoir des systèmes complexes qui utilisent d'une manière ou d'une autre des algorithmes et des outils d'intelligence artificielle. Ce type de conception permet la mise en œuvre d'un système fonctionnel doté d'une capacité d'adaptation, nécessaire à l'exécution de l'une des principales exigences des systèmes d'apprentissage intelligents. En outre, comme l'indiquent les travaux cités en référence, l'architecture modulaire permet une mise en œuvre plus souple et donne au système la possibilité d'évoluer rapidement et même d'ajouter des fonctionnalités complémentaires sans affecter le système et les données qui y sont stockées.