Un dépôt léger pour l'évaluation automatique des modèles de dialogue à l'aide de 17 métriques .
? Choisissez les métriques que vous souhaitez calculer
L'évaluation peut s'exécuter automatiquement soit sur un fichier de réponses, soit sur un répertoire contenant plusieurs fichiers
? Les métriques sont enregistrées dans un format prédéfini facile à traiter
Exécutez cette commande pour installer les packages requis :
pip install -r requirements.txt
Le fichier principal peut être appelé de n'importe où, mais lorsque vous spécifiez les chemins d'accès aux répertoires, vous devez les indiquer à partir de la racine du référentiel.
python code/main.py -h
Pour la documentation complète, visitez le wiki.
Vous devez fournir autant de chemins d’argument requis (image ci-dessus) que possible. Si vous en manquez, le programme fonctionnera toujours, mais il ne calculera pas certaines métriques nécessitant ces fichiers (il imprimera ces métriques). Si vous disposez d'un fichier de données de formation, le programme peut générer automatiquement un vocabulaire et télécharger des intégrations fastText.
Si vous ne souhaitez pas calculer toutes les métriques, vous pouvez définir très facilement quelles métriques doivent être calculées dans le fichier de configuration.
Un fichier sera enregistré dans le répertoire où se trouvent le(s) fichier(s) de réponses. La première ligne contient les noms des métriques, puis chaque ligne contient les métriques d'un fichier. Le nom du fichier est suivi des valeurs de métriques individuelles séparées par des espaces. Chaque métrique se compose de trois nombres séparés par des virgules : la moyenne, l'écart type et l'intervalle de confiance. Vous pouvez définir la valeur t de l'intervalle de confiance dans les arguments, la valeur par défaut est une confiance de 95 %.
Il est intéressant de noter que les 17 métriques s'améliorent jusqu'à un certain point, puis stagnent sans qu'aucun surajustement ne se produise lors de la formation d'un modèle Transformer sur DailyDialog. Consultez l'annexe du document pour les chiffres.
TRF est le modèle Transformer évalué au minimum de perte de validation et TRF-O est le modèle Transformer évalué après 150 époques de formation, où les métriques commencent à stagner. RT signifie des réponses sélectionnées au hasard dans l'ensemble de formation et GT signifie des réponses de vérité terrain.
TRF est le modèle Transformer, tandis que RT signifie des réponses sélectionnées au hasard dans l'ensemble d'entraînement et GT signifie des réponses de vérité terrain. Ces résultats sont mesurés sur l'ensemble de test à un point de contrôle où la perte de validation était minime.
TRF est le modèle Transformer, tandis que RT signifie des réponses sélectionnées au hasard dans l'ensemble d'entraînement et GT signifie des réponses de vérité terrain. Ces résultats sont mesurés sur l'ensemble de test à un point de contrôle où la perte de validation était minime.
De nouvelles métriques peuvent être ajoutées en créant une classe pour la métrique, qui gère le calcul des données de la métrique. Consultez les métriques BLEU pour un exemple. Normalement, la fonction init gère toute configuration de données nécessaire ultérieurement, et update_metrics met à jour le dictionnaire de métriques en utilisant l'exemple actuel à partir des arguments. À l'intérieur de la classe, vous devez définir le dict self.metrics, qui stocke les listes de valeurs de métriques pour un fichier de test donné. Les noms de ces métriques (clés du dictionnaire) doivent également être ajoutés dans le fichier de configuration à self.metrics. Enfin, vous devez ajouter une instance de votre classe métrique à self.objects. Ici, lors de l'initialisation, vous pouvez utiliser les chemins d'accès aux fichiers de données si votre métrique nécessite une configuration. Après cela, votre métrique devrait être automatiquement calculée et enregistrée.
Cependant, vous devez également ajouter quelques contraintes à votre métrique, par exemple s'il manque un fichier requis pour le calcul de la métrique, l'utilisateur doit en être informé, comme ici.
Ce projet est sous licence MIT - voir le fichier LICENSE pour plus de détails.
Veuillez inclure un lien vers ce référentiel si vous l'utilisez dans votre travail et envisagez de citer l'article suivant :
@inproceedings{Csaky:2019,
title = "Improving Neural Conversational Models with Entropy-Based Data Filtering",
author = "Cs{'a}ky, Rich{'a}rd and Purgai, Patrik and Recski, G{'a}bor",
booktitle = "Proceedings of the 57th Annual Meeting of the Association for Computational Linguistics",
month = jul,
year = "2019",
address = "Florence, Italy",
publisher = "Association for Computational Linguistics",
url = "https://www.aclweb.org/anthology/P19-1567",
pages = "5650--5669",
}