In short
Every VQC run shared the same fixed settings. The experiments ran on a small cluster of five servers and a desktop.
| Setting | Value |
|---|---|
| Hashed features | (unigrams and bigrams) |
| Random Forest | 100 trees, minimum leaf size 1 |
| Feature scaling | min–max to , fitted on the training fold |
| Ansatz | RealAmplitudes, reverse-linear entanglement |
| Readout | parity of the measured bitstring (qubit 0) |
| Loss | cross-entropy |
| Optimiser | COBYLA, at most 500 evaluations |
| Initial weights | uniform on , seeded per split |
| Simulation | exact statevector, double precision, no noise |
| Splits | 10 runs × 5 folds, seeds 42–51 |
| Machine | CPU | RAM | GPU |
|---|---|---|---|
| Desktop | Intel i9-13900F (32 threads) | 96 GB | NVIDIA RTX 3060 (12 GB) |
| Cluster nodes (5) | 2× Intel Xeon E5645 or E5540 | 96–180 GB | none |
The experiments were all run on a cluster of 5 servers and a personal desktop, with each server running a Ray worker in a Proxmox container and the desktop joining the Ray cluster directly. Each split was scheduled to whichever machine had enough free memory, as one split using the full dataset needed approximately 17 GB of memory. For the 12-qubit runs, only the desktop’s GPU could be used, with each split taking about 65 minutes. Running the full 50 splits at 12 qubits would have taken approximately five days by itself, which is why the 12-qubit condition used 10 splits.
See: pipeline, limitations