| --- |
| license: other |
| library_name: custom |
| tags: |
| - zindi |
| - telco |
| - track-a |
| - agentic-workflow |
| - competition-submission |
| - lightgbm |
| - qwen |
| --- |
| |
| # Track A Submission |
|
|
| ## Environment Setup |
|
|
| Install the Python dependencies from this directory:
|
|
|
| ```bash
|
| pip install -r requirements.txt
|
| ```
|
|
|
| The code expects the organizer-provided Track A tool server at:
|
|
|
| ```text
|
| https://localhost:8081/no
|
| ```
|
|
|
| To override it, set `TRACK_A_SERVER_URL` or pass `--server_url`.
|
|
|
| ## Model Deployment
|
|
|
| The Qwen3.5-35B-A3B base model is not included in this package. Deploy the local base model with vLLM using:
|
|
|
| ```bash
|
| bash models/deploy.sh
|
| ```
|
|
|
| Set `BASE_MODEL_PATH` before running the script if the model is not located at `/models/Qwen3.5-35B-A3B`.
|
|
|
| The auxiliary Track A model bundle is stored at: |
|
|
| ```text |
| models/model_v4_bundle.pkl |
| ``` |
|
|
| ## Reproducing The Trained Model |
|
|
| The Phase 1 labelled training data is included at: |
|
|
| ```text |
| data/Phase_1/train.json |
| ``` |
|
|
| To retrain the auxiliary Track A model bundle from scratch, run: |
|
|
| ```bash |
| python train.py \ |
| --train_path data/Phase_1/train.json \ |
| --out models/model_v4_bundle.pkl \ |
| --experiment_name lgbm_v4 \ |
| --n_jobs -1 |
| ``` |
|
|
| This trains the template classifier and candidate selector, writes experiment artifacts under `results/experiments/`, and places the final model bundle at: |
|
|
| ```text |
| models/model_v4_bundle.pkl |
| ``` |
|
|
| ## How To Run |
|
|
| Run the solution with the private Track A test file:
|
|
|
| ```bash
|
| python run.py --input /path/to/test.json --output result
|
| ```
|
|
|
| Optional useful arguments:
|
|
|
| ```bash
|
| python run.py \
|
| --input /path/to/test.json \
|
| --output result \
|
| --server_url https://localhost:8081/no \
|
| --model_url http://localhost:8001/v1 \
|
| --model_name Qwen3.5-35B-A3B
|
| ```
|
|
|
| ## Expected Output
|
|
|
| The runner writes:
|
|
|
| ```text
|
| result/
|
| traces.json
|
| results.csv
|
| runtime.json
|
| ```
|
|
|
| `results.csv` contains:
|
|
|
| ```csv
|
| scenario_id,prediction
|
| ```
|
|
|
| `runtime.json` is derived from the per-scenario execution timings recorded by the inference code.
|
|
|