## 4 Experiments
### Datasets and Training Procedure  
To evaluate the performance of our proposed method, we use two distinct datasets:  
* Dataset 1: This dataset was collected from publicly available sources [29] and supplemented with our own contributions. It contains 7741 instances of natural language questions paired with their corresponding Cypher queries. The data is divided into 4934 instances for training and 2807 instances for testing. The dataset covers 14 different Neo4j graph database (GraphDB) schemas spanning various domains, including social networks, movies and entertainment, and business and organizational data. We organize the training and testing sets so that the schemas are disjoint. The training set includes samples from 11 schemas, while the test set contains samples from the remaining 3 schemas. We designed the split such that the schemas in the training set differ not only in structure but also in domain topics compared to those in the test set. This setup allows us to evaluate the model's ability to generalize to unseen and semantically distinct schemas.  
Training dataset: The training dataset includes 11 GraphDB schemas covering diverse domains such as social networks (e.g., relationships between streamers and users), question answering on Stack Overflow, company organizational structures, and IT network management. The schema complexity varies significantly, ranging from simple graphs with 3 node labels to more complex schemas with up to 16 node labels.  
Testing dataset: The test dataset consists of three GraphDB schemas related to distinct domains: movie data (e.g., actor-director relationships) and business transactions (e.g., employee-order-product-supplier relationships). These schemas include between two and six node labels, allowing us to evaluate the model's performance on previously unseen and topically different graph structures;  
Dataset 2: This dataset, introduced by Neo4j in [7], consists of 44,387 instances of question-Cypher query pairs. Training and testing split is as follows: 39,554 instances are used for training, and 4833 instances are used for testing. This Neo4j Text2 Cypher dataset also covers a broad range of domains, including social networks, business, and media, by combining data from various sources. We use this dataset to compare our results with other works in both the BLEU and execution score metrics. A full 4833-sample test set was used for BLEU evaluation. However, in order to evaluate the execution score, we need the corresponding database to execute the query and retrieve the result. Since the database did not fully provide the dataset, we selected only 1460 samples from the test dataset, which corresponded with the Neo4j graph database we found.  
Our training pipeline is organized into two stages. First, the training set was split into two parts. One is used for supervised fine-tuning (90%), and another is used for reinforcement learning (10%). Next, supervised fine-tuning is conducted with two epochs, learning rate 2 \(\times\) 10\({}^{-4}\), batch size 8, hyper-parameter \(\beta\) = 0.04, and \(\varepsilon\) = 0.2. After that, reinforcement learning with GRPO and support tasks is conducted with one epoch. During this, we set the number of response generations to 10 and the temperature to 0.6. The experiments were conducted using the following hardware setup:  
* Intel (R) Core (TM) i9-10900X CPU @ 3.70 GHz;
* NVIDIA GeForce GTX 4090 24 GB;
* Memory 128 GB.  
The total training time was approximately 5 h, consisting of 1 h for supervised fine-tuning and 4 h for reinforcement learning. During training, the memory usage peaked at around 20 GB. Inference Efficiency:  
* Peak memory usage during inference: \(\sim\)3 GB;
* Average response time per query: \(\sim\)3 s.