- conda env create -f environment.yml
- conda activate qbridge
- pip install -r requirements-ml.txt
- export TF_USE_LEGACY_KERAS=True
The code in the QOIN folder is copied and revised from the paper Mitigating Noise in Quantum Software Testing Using Machine Learning (link).
- Run
python QOIN/DataGeneration.pyto generate baseline circuits. - Run
python QOIN/MLPTraining.pyto pretrain QOIN’s baseline models. - Run
python QOIN/BaselineTuner.pyto generate CUTs and finetune QOIN’s tuning models. - Run
python QOIN/EvaluationRQ1.pyto generate testing circuits. - Run
python QOIN/CalculatingRQ1.pyto obtain QOIN’s results for RQ1. - Run
python QOIN/EvaluationRQ3.pyandpython QOIN/CalculatingRQ3.pyto obtain QOIN’s results for RQ3.
The code in the QLEAR folder is copied and revised from the paper A Machine Learning-Based Error Mitigation Approach for Reliable Software Development on IBM’s Quantum Computers (link).
- Run
python QLEAR/DataGeneration_QLEAR_Pretrain.pyto generate baseline circuits. - Run
python QLEAR/QLEAR_Pretrain_MLP_ByBackend.pyto pretrain QLEAR’s baseline models. - Run
python QLEAR/QLEAR_Finetune_Data_ByBackendFamily.pyto generate CUTs circuits. - Run
python QLEAR/QLEAR_Finetune_MLP_BySeedBackendFamily.pyto finetune QLEAR’s tuning models. - Run
python QLEAR/QLEAR_Test_Data_ByBackendFamily.pyto generate testing circuits. - Run
python QLEAR/QLEAR_Evaluate_Hellinger_BySeedBackendFamily.pyto obtain QLEAR’s results for RQ1.
The code in the QRAFT folder is copied and revised from the paper Qraft: reverse your quantum circuit and know the correct program output (link).
- Run
python QRAFT/QraftFeatureGeneration.pyto generate baseline circuits. - Run
python QRAFT/QraftEDTPretrain.mto pretrain QRAFT’s baseline models. - Run
python QRAFT/QraftFamilyTuneDataGeneration.pyto generate CUTs circuits. - Run
python QRAFT/QraftEDTFinetune.mto finetune QRAFT’s tuning models. - Run
python QRAFT/QraftTestDataGeneration.pyto generate testing circuits. - Run
python QRAFT/QQraftEDTEvaluateTest.mto obtain QRAFT’s results for RQ1.
This folder contains auxiliary scripts for data processing and preprocessing tasks.
They are used to prepare datasets before running the main experiments and training pipelines.
For Q-Bridge backend-wise model:
- Run
pretrain.shfor pretraining - Run
finetune.shorfinetune_parallel.shfor finetuning - Run
test.shfor testing
For Q-Bridge general model:
- Run
pretrain_full_model.shfor pretraining - Run
finetune_full_model.shfor finetuning - Run
test_full_model.shfor testing
For Q-Bridge backend-wise model:
- Run
pretrain_ablation.shfor pretraining - Run
finetune_ablation.shfor finetuning - Run
test_ablation.shfor testing
For Q-Bridge general model:
- Run
pretrain_full_model.shfor pretraining - Run
finetune_full_model.shfor finetuning - Run
test_full_model.shfor testing
- Remove Edge-Biased Attention: ./transformer/config.yaml -> use_edge_bias: false
- Remove FiLM: ./transformer/config.yaml -> use_film: false
- Remove backend embedding: replace 'import model' with 'import model_v2' for all the files
- Add qubit multi-hot: replace 'import circuit_dag_converter_v2' with 'import circuit_dag_converter' for all the files
- Run
python larger_circuits/BaselineTuner.pyto generate circuits for finetuning and testing. - Run
python larger_circuits/EvaluationRQ1.pyto generate datasets for finetuning and testing. - Refer to
transformerfor finetuning and testing model