Tutorial: Microsoft Azure Cloud Services for Machine Learning-based Model Repair

will be presented in the 24th International Conference on Engineering of Complex Computer Systems (ICECCS 2019)

 

Jing Sun and Cheng-Hao Cai

School of Computer Science, University of Auckland, New Zealand

{jing.sun, chenghao.cai} at auckland.ac.nz

Duration: 2 hours

 

(Auckland, New Zealand)

 

1 Description

 

The tutorial consists of two parts: (1) formal model repair with machine learning (by Jing Sun), and (2) model repair on cloud servers (by Cheng-Hao Cai). The following two sections provide brief descriptions of the above two topics.

 

1.1 Formal model repair with machine learning

 

In the first part of the tutorial, we provide a brief introduction to a machine learning-based formal model repair technique.

 

The first core step of the model repair technique is model checking, which refers to the use of mathematical reasoning to verify the correctness of systems. When checking a system, the system must be written in a formal specification language that specifies initial states, behaviours and properties of the system. A model checker can compute possible system states with reference to the initial states and behaviours and verify if the system states satisfy the properties. In large real-world systems, there are usually a considerable number of system states, so that it is challenging to check the large systems using limited computational resources. Therefore, we suggest using cloud computing services to improve the model checking of the large systems.

 

The second core step of the model repair technique is repair synthesis and selection, which refers to the use of a SMT solver to generate repairs and the use of machine learning techniques to learn to select good repairs. The SMT solver can discover candidate repairs that satisfy desired properties of the model. There may be a considerable number of candidate repairs. In order to choose a suitable repair, we use a binary classifier to learn the semantics of the model and use the learnt classifier to score the candidate repairs.

 

1.2 Model repair on cloud servers

 

In the second part of the tutorial, we show how to use the model repair techniques on the Microsoft Azure cloud computing platform. We will present a case study using our model repair tool.

 

Currently, we are working on a project named automated B model repair. This project aims to develop a tool that makes use of model checking and machine learning techniques to automatically repair faulty B models. B is a correct-by-construction system development method that supports model checking, refinement checking and code generation. Users of B are able to design models at an abstract level, check the correctness of the models using automated model checkers, refine abstract models to concrete models and convert the concrete models to actual code. During the above processes, if any models are faulty, we will need to repair the faulty models. We suggest using model checking and machine learning techniques to achieve automated model repair. As both the model checking and machine learning techniques require considerable computational resources, we suggest using these techniques with clouding computing services.

 

2 Biographies

 

Jing Sun obtained his PhD degree in Computer Science from National University of Singapore. He joined the Department of Computer Science at University of Auckland in 2003, who is now an Associate Professor. Jing's primary research area is Computer Aided Verification in the Software Engineering domain to enhance the quality and security aspects of software and hardware development. It includes formal specification, software verification, validation and simulation, model checking, theorem proving and ontological reasoning. His recent research projects have been focused on applying machine learning and AI based technologies to the field of automated software engineering, i.e., automatic formal design model repair, automated code generation from verified design models, semantic rule driven program behaviour monitoring, model-based test case generation, etc.

 

Cheng-Hao Cai is a PhD candidate supervised by Jing Sun and Gill Dobbie in School of Computer Science, the University of Auckland. His current research interests include model checking, model repair, the B method and model synthesis. He is also one of the Microsoft Asia Cloud Research Software Fellows who aim to use cloud computing to improve artificial intelligence systems. Before joining the University of Auckland, he cooperated with the National Laboratory of Pattern Recognition, Institute of Automation, Chinese Academy of Sciences, and his research included automatic speech recognition and artificial neural networks. In 2016, he completed his master's degree in Artificial Intelligence Applications Institute, the University of Edinburgh, and his research included analogical reasoning, automated theorem proving and theory repair.