Qwen2.5-72B-Instruct-PyQGIS (LoRA)

Repository: icewaterdun/Qwen2.5-72B-Instruct-PyQGIS Base model: Qwen2.5-72B-Instruct Adapter type: LoRA (PEFT) Checkpoint used: checkpoint-600 (early-stop selection)

Model Summary

This repository contains a LoRA adapter that tailors Qwen2.5-72B-Instruct to PyQGIS/QGIS workflows (e.g., geoprocessing, vector/raster operations, layer styling, and common Geo/OGR tasks). The adapter focuses on instruction-following in a GIS setting, emphasizing practical coding patterns and on-tool terminology.

  • Why LoRA? Lower VRAM footprint, faster iteration, and easy plug-and-play with the base model.
  • Best checkpoint: checkpoint-600. Later checkpoints (800+) showed a slight regression (on the same eval split), suggesting mild overfitting.
  • Training config: See the uploaded YAML in this repo for exact hyperparameters and data settings.

Evaluation

Evaluated on the same held-out set (503 items). We report cross-entropy loss and the corresponding perplexity (lower is better). Perplexity is computed from the reported loss via: [ \text{PPL} = \exp(\text{loss}) ] assuming the loss is the mean token-level cross-entropy in nats (Hugging Face Transformers’ default).

Model / Checkpoint eval_loss Perplexity (PPL)
Baseline (no LoRA) 2.476 11.894
ckpt-400 0.885 2.423
ckpt-600 (selected) 0.865 2.375
ckpt-800 0.898 2.455

Takeaway: The LoRA adapter substantially improves the base model on this PyQGIS-focused eval set (PPL ↓ from ~11.9 → ~2.38). Among LoRA checkpoints, 600 is best (lowest loss/PPL), while 800 begins to drift upward.

How perplexity is computed (quick note)

  • If your framework reports cross-entropy loss in nats (the usual case in 🤗 Transformers), PPL = exp(loss).
  • If the loss were measured in bits instead, it would be PPL = 2^(loss).
  • The reported PPL is the exponentiated average token-level loss over the evaluation set.

Data & Training

  • Data domain: PyQGIS/QGIS instructions and code-centric prompts (see dataset_dir and datasets referenced in the training YAML).
  • Template: qwen chat template.
  • Sequence lengths: cutoff length was 1024 tokens for both prompt and response packing in eval/training runs shown here.
  • Precision: bf16 for evaluation; training precision and optimizer settings are in the YAML.
  • Adapter: LoRA; rank/alpha/targets as specified in the uploaded training YAML.

For exact hyperparameters (optimizer, scheduler, LoRA rank/alpha/dropout, target modules, warmup, batch sizes, etc.), consult the training YAML included in this repository.

Intended Use

  • Assisting with PyQGIS scripting and QGIS-related problem solving.
  • Generating and explaining PyQGIS code snippets for common GIS tasks.

Limitations

  • The adapter focuses on PyQGIS-specific tasks; general world knowledge or unrelated domains remain the responsibility of the base model.
  • Hallucinations are still possible—especially for niche plugins, exotic projections, or very new QGIS APIs.
  • Not evaluated for safety-critical, legal, or medical use.

License

  • Inherits the license and usage terms of Qwen2.5-72B-Instruct for inference.
  • The LoRA weights here are released for research and non-commercial evaluation; please review the base model’s license before any production use.

Citation

If you use this adapter, please cite the base model and this repository.

@misc{Qwen2.5-72B-Instruct-PyQGIS,
  title  = {Qwen2.5-72B-Instruct-PyQGIS (LoRA)},
  author = {icewaterdun},
  year   = {2025},
  note   = {LoRA adapter for PyQGIS tasks on top of Qwen2.5-72B-Instruct}
}
Downloads last month
70
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for icewaterdun/Qwen2.5-72B-Instruct-PyQGIS

Base model

Qwen/Qwen2.5-72B
Adapter
(18)
this model