Skip to content

dartt0n/gnn-recruitment

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GNN Recruitment (gnnr)

Recruitment process enhanced by Graph Neural Networks (GNNs)

Prerequirements:

  • Install uv

Clone the repo and change directory:

git clone https://github.com/dartt0n/gnn-recruitment.git && cd gnn-recruitment

Notebooks

Different python notebooks are available in the experiments directory.

Premade notebooks

Notebook Colab
001-gin-shared 001-gin-shared
002-sage-shared 002-sage-shared
003-gat-shared 003-gat-shared
004-rgnn-shared 004-rgnn-shared
005-cgnn-shared 005-cgnn-shared

Manual

To run them, you need to install the dependencies. The best way to do it is to use uv.

git clone https://github.com/dartt0n/gnn-recruitment.git && cd gnn-recruitment
uv sync # install base dependencies
uv pip install torch-scatter torch-sparse -f https://data.pyg.org/whl/torch-2.5.0+cpu.html # for cpu
uv pip install torch-scatter torch-sparse -f https://data.pyg.org/whl/torch-2.5.0+cu121.html # for gpu

uv sync --extra cli # if you want to use CLI
uv sync --extra jupyter # if you want to use Jupyter
uv sync --extra cli --extra jupyter # for both

However, if you are using Google Colab, Kaggle, or InnoDataHub you can just add the following command at the top of the notebook:

  1. Google Colab or Kaggle
!pip install datasets lightning wandb sentence-transformers polars torch-geometric torch-scatter torch-sparse -f https://data.pyg.org/whl/torch-2.5.0+cu121.html
  1. InnoDataHub
!pip install datasets lightning wandb sentence-transformers polars torch-geometric torch-scatter torch-sparse -f https://data.pyg.org/whl/torch-2.1.1+cu119.html

Create Python environment

uv sync # install base dependencies
uv pip install torch-scatter torch-sparse -f https://data.pyg.org/whl/torch-2.5.0+cpu.html # for cpu
uv pip install torch-scatter torch-sparse -f https://data.pyg.org/whl/torch-2.5.0+cu121.html # for gpu

uv sync --extra cli # if you want to use CLI
uv sync --extra jupyter # if you want to use Jupyter
uv sync --extra cli --extra jupyter # for both

Generate data

# access help
uv run gnnr --help
uv run gnnr data --help
uv run gnnr data generate --help

# generate data with synthetic data
uv run gnnr data generate --output ./data
# or
uv run gnnr data generate --output ./data --no-synthetic

# also generate synthetic data
uv run gnnr data generate --output ./data --synthetic

# specify model to use for embeddings
uv run gnnr data generate --output ./data \
    --synthetic \
    --model sentence-transformers/all-MiniLM-L12-v2

# only synthetic data
uv run gnnr data synthetic \
    --model sentence-transformers/all-MiniLM-L12-v2 \
    --output ./data

Export dataset

Export dataset for different visualization tools

uv run gnnr data export \
    [edgelist|graphml|gexf|dot] \
    --input data/dataset/edges.json \
    --output ~/Downloads/edgelist.csv

Format code

uv run ruff format .

About

Graph Neural Network Recruitment

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors