Table of Contents
In this project, it is developed an AI system for error detection in network equipment configurations, such as routers configurations, improving the current state-of-the-art in the relevant metrics, and demonstrating AI’s potential in telecommunications network management. Two design alternatives based on transformer networks are developed using Python and frameworks like TensorFlow, Keras, and PyTorch. Several tests are conducted to compare the performance of these models with the existing state-of-the-art alternatives. Ultimately, significant improvements in the results are achieved for both design alternatives, showcasing the potential of NLP techniques using transformers and large language models (LLMs), especially in the case of pretrained models.
In Google Colab, it is needed to install the following packages
- transformers (using TensorFlow)
!pip install -q transformers
- transformers and accelerate (using PyTorch)
!pip install -U -q transformers !pip install -U -q accelerate
Two Colab notebooks are provided:
NCL_GPT2
. Here, a GPT-2 model is trained from scratch with Cisco configuration files in order to detect configuration mistakes. Then, evaluation is carried out using a configuration file with 70 mistakes (approximately 10% of the word count).NCL_GPT2_Pretrained
. Here, it is used an already trained GPT-2 model, fine-tuning with 100 Cisco configuration files in order to detect configuration mistakes. Then, evaluation is carried out using a configuration file with 70 mistakes (approximately 10% of the word count).
The used dataset of 100 Cisco PE config examples is provided. Anyone can train the models from this examples as done in the notebooks provided. If you want to run this on your own Google Colab, you should be aware of mantaining the folder and file structure.
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the MIT License. See LICENSE.txt
for more information.
Alvaro Robledo - [email protected]
Project Link: https://github.com/alvroble/NetConfigLens
This work is based on and inspired by Javier Antich's work: