Avancées dans les outils de génération de requêtes log
Révolutionner la façon dont on interroge les logs avec des modèles super réglés.
Vishwanath Seshagiri, Siddharth Balyan, Vaastav Anand, Kaustubh Dhole, Ishan Sharma, Avani Wildani, José Cambronero, Andreas Züfle
― 8 min lire
Table des matières
- Cadre d'Évaluation pour la Génération de Requêtes
- Préparation des Données
- Exécution des Tests
- Performance des Modèles Affinés
- Exemples de Requêtes Avant et Après Affinage
- Analyse des Effets des Échantillons d'Affinage
- Transférabilité des Modèles Affinés
- Analyse de la Qualité du Code
- Conclusion
- Source originale
- Liens de référence
Dans le monde des données et de la tech, pouvoir poser des questions et obtenir des réponses à partir de logs, c’est super utile. Pense aux logs comme à ces enregistrements qui racontent ce qui s’est passé dans un système informatique, un peu comme un journal mais pour les machines. Pour simplifier les choses, des chercheurs bossent sur des outils qui peuvent transformer des questions normales en requêtes que les ordinateurs comprennent. Ce processus s’appelle la Génération de requêtes.
Cadre d'Évaluation pour la Génération de Requêtes
Pour vérifier à quel point ces outils fonctionnent bien, des experts ont créé un système complet pour les évaluer. Ce système aborde plusieurs domaines importants. Premièrement, il compare les modèles affinés, ou améliorés, avec les modèles de base. Ensuite, il examine comment la taille des données utilisées pour affiner les modèles affecte leurs Performances. Troisièmement, il vérifie comment ces modèles fonctionnent dans différents contextes ou applications. Enfin, une revue détaillée des requêtes générées est réalisée, en utilisant un score spécial pour mesurer leur qualité.
Utiliser cette approche structurée aide à avoir une idée claire de la fiabilité de ces outils et de leur capacité à s’adapter efficacement à diverses situations.
Préparation des Données
Pour s’assurer que tout fonctionne bien avec le système d’indexation de l’ordi, les logs ont été traités dans un format que le système pouvait comprendre. Cela s’est fait en suivant des modèles. Des paires clé-valeur ont été créées à partir des modèles, avec des étiquettes composées de clés de log spécifiques. Ensuite, des outils existants ont été utilisés pour extraire les valeurs nécessaires de chaque ligne des logs.
Comme le système cherche des requêtes basées sur le temps, les timestamps dans les logs ont été mis à jour. Ils ont été changés pour des dates plus récentes tout en gardant l’ordre des lignes de log correct. La plupart des requêtes de log doivent chercher des données de la dernière semaine, donc cette étape était très importante pour faciliter la recherche et l’analyse des logs.
Exécution des Tests
Des questions en langage naturel provenant d’un ensemble de tests ont été passées à différents outils, comme les derniers modèles et services. Les requêtes générées ont été testées sur un système local, en s'assurant qu’il n’y avait pas de problèmes de délais réseau. Les résultats de ces requêtes ont été comparés selon différents critères de performance.
Performance des Modèles Affinés
Pendant les tests, l’équipe voulait voir comment les modèles améliorés pouvaient générer des requêtes par rapport aux modèles de base. Ils ont utilisé la moitié des Échantillons pour améliorer les modèles, suivant une méthode spécifique. Les résultats ont montré des améliorations significatives dans l’obtention de réponses précises et la production de requêtes pertinentes.
La plupart des requêtes créées étaient utilisables. Cependant, environ 10 % d'entre elles avaient des erreurs de syntaxe, comme des lignes de logs manquantes ou des expressions incorrectes. Parmi les modèles améliorés, un a particulièrement brillé par sa performance, affichant des scores d'exactitude impressionnants après affinage.
Certains modèles ont montré des améliorations notables, avec la précision passant de très faible à des niveaux raisonnablement élevés. Tandis qu’un modèle a fait les plus grands progrès, d'autres ont également montré des gains significatifs, améliorant leur capacité à générer des requêtes correctes. Les scores de perplexité ont également indiqué que certains modèles avaient une meilleure cohérence, montrant leur capacité à prédire des sorties utiles.
Exemples de Requêtes Avant et Après Affinage
Pour voir la différence avant et après l’affinage, quelques exemples de requêtes générées ont été analysés. Avant l’affinage, les modèles avaient plusieurs erreurs courantes. Cela incluait une mauvaise utilisation des étiquettes, des timestamps mal placés, et des problèmes de syntaxe. Par exemple, une requête incorrecte avait une mauvaise utilisation d’étiquette, tandis qu’une autre avait des erreurs de formatage des temps.
Après l’affinage, la qualité des requêtes générées s’est considérablement améliorée. Les versions corrigées ont utilisé une syntaxe appropriée et ont capturé les données de log visées plus efficacement. Les requêtes générées correspondaient maintenant aux formats nécessaires, montrant l’effet positif du processus d’amélioration.
Analyse des Effets des Échantillons d'Affinage
Les chercheurs ont exploré comment le nombre d'échantillons utilisés pour l'entraînement affectait les modèles. Ils ont utilisé différentes tailles d’échantillons pour l’affinage et ont évalué la performance des modèles sur un ensemble de test. Les résultats ont constamment montré un schéma : à mesure que le nombre d'échantillons augmentait, la performance s'améliorait jusqu'à atteindre un plateau.
Par exemple, un modèle a montré une augmentation significative de précision, passant de 20 % à 60 % des données d’entraînement. Après avoir atteint 60 %, les améliorations sont devenues moins évidentes, suggérant qu’il y a une limite à la façon dont un modèle peut s'améliorer avec plus de données d’entraînement. La plupart des améliorations se sont produites au début de l’augmentation des tailles d'échantillons.
Transférabilité des Modèles Affinés
Pour vérifier si les modèles améliorés pouvaient gérer différentes applications, les chercheurs les ont testés sur des données qu’ils n’avaient pas vues auparavant. Les modèles ont été affinés en utilisant des données de deux applications, puis évalués sur une troisième application inconnue. Les résultats ont montré que bien que les modèles améliorés aient mieux performé que ceux non affinés, ils avaient encore certaines limites.
Un modèle, en particulier, a montré une performance assez bonne dans toutes les applications. Même si les résultats variaient, il a tout de même surclassé de manière significative les modèles qui n’avaient pas été améliorés. Les modèles plus petits ont montré quelques améliorations, mais ils ont encore eu du mal à capturer tous les motifs de log nécessaires.
Analyse de la Qualité du Code
Pour examiner la qualité des requêtes générées, les chercheurs ont utilisé un système de notation spécial. Ils ont affiné le modèle de notation pour évaluer la qualité des sorties de manière précise. La notation a montré qu'un modèle atteignait constamment les meilleures notes dans toutes les applications, indiquant que ses requêtes étaient très proches des meilleures requêtes de référence.
D'un autre côté, un autre modèle a obtenu une note beaucoup plus basse, suggérant que sa sortie avait besoin d’améliorations significatives pour fonctionner correctement. Le troisième modèle a montré une performance modérée, indiquant qu'il avait encore du travail à faire pour améliorer sa génération de requêtes.
Conclusion
Dans l’ensemble, cette évaluation a montré que les modèles affinés peuvent générer efficacement des requêtes de logs. Certains modèles ont clairement surpassé d'autres, avec un en particulier qui brille en précision et en qualité. Cependant, les modèles moins performants montrent qu'il y a une marge de progression, surtout pour générer des requêtes valides et fiables.
Tout ce processus est comme cuisiner ; il faut les bons ingrédients et une bonne recette pour faire un plat délicieux. Affiner les modèles, c'est un peu comme ajouter les bonnes épices pour s’assurer qu’ils servent des requêtes parfaites à chaque fois. Et tout comme maîtriser une recette nécessite de la pratique, améliorer ces modèles demande plus de travail et d'ajustements pour atteindre leur plein potentiel dans la génération de requêtes de logs précises.
Source originale
Titre: Chatting with Logs: An exploratory study on Finetuning LLMs for LogQL
Résumé: Logging is a critical function in modern distributed applications, but the lack of standardization in log query languages and formats creates significant challenges. Developers currently must write ad hoc queries in platform-specific languages, requiring expertise in both the query language and application-specific log details -- an impractical expectation given the variety of platforms and volume of logs and applications. While generating these queries with large language models (LLMs) seems intuitive, we show that current LLMs struggle with log-specific query generation due to the lack of exposure to domain-specific knowledge. We propose a novel natural language (NL) interface to address these inconsistencies and aide log query generation, enabling developers to create queries in a target log query language by providing NL inputs. We further introduce ~\textbf{NL2QL}, a manually annotated, real-world dataset of natural language questions paired with corresponding LogQL queries spread across three log formats, to promote the training and evaluation of NL-to-loq query systems. Using NL2QL, we subsequently fine-tune and evaluate several state of the art LLMs, and demonstrate their improved capability to generate accurate LogQL queries. We perform further ablation studies to demonstrate the effect of additional training data, and the transferability across different log formats. In our experiments, we find up to 75\% improvement of finetuned models to generate LogQL queries compared to non finetuned models.
Auteurs: Vishwanath Seshagiri, Siddharth Balyan, Vaastav Anand, Kaustubh Dhole, Ishan Sharma, Avani Wildani, José Cambronero, Andreas Züfle
Dernière mise à jour: 2024-12-04 00:00:00
Langue: English
Source URL: https://arxiv.org/abs/2412.03612
Source PDF: https://arxiv.org/pdf/2412.03612
Licence: https://creativecommons.org/publicdomain/zero/1.0/
Changements: Ce résumé a été créé avec l'aide de l'IA et peut contenir des inexactitudes. Pour obtenir des informations précises, veuillez vous référer aux documents sources originaux dont les liens figurent ici.
Merci à arxiv pour l'utilisation de son interopérabilité en libre accès.