Skip to content

Add GNN path selector #67

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 2 commits into from
Closed

Add GNN path selector #67

wants to merge 2 commits into from

Conversation

emnigma
Copy link
Collaborator

@emnigma emnigma commented Sep 20, 2023

This PR implements path selection with Graph Neural Network (GNN). This approach allows GNN to learn not only application context features, but also application graph structure to better predict desirable states to propagate.

GNN accepts BlockGraph with custom features as an input, uses onnxruntime framework as an inference provider. BlockGraph consists of two types of vertices: StateFeatures and BlockFeatures. They serve as an intermediate graph representation before conversion to onnx tensors.

BlockGraph is created with following rules:

  • consecutive statements are put in one block
  • block can't contain two external function calls, each external call is interpreted as an end of current block
  • first statements after control flow branching statement start a new block
  • if statement has multiple input edges it is allocated to new block

@emnigma emnigma force-pushed the hetero-gnn-path-selector branch from 9fa2921 to 919c57e Compare September 20, 2023 09:19
Copy link
Member

@sergeypospelov sergeypospelov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please, contact @sergeyrid and unify with #60.

Main problems:

  • usvm-core, usvm-jvm shouldn't depend on ML path selection. All ML-based path selectors should be located in a separate module.
  • No hardcoded strings like "/Users/emax/Data/usvm/Game_env/test_model.onnx"
  • Add tests, please

@emnigma emnigma closed this Oct 4, 2023
@emnigma emnigma mentioned this pull request Oct 4, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants