CoolFace
Modelpublic

CaffeineAddict69/qwen7b-water-rural-practices

sourceHugging Faceapache-2.0updated 5mo agoView on Hugging Face
1likes18downloads
Model Card

Qwen 2.5 7B — Rural Water Monitoring Practices Classifier

Fine-tuned version of Qwen/Qwen2.5-7B-Instruct for classifying and extracting good and bad practices in rural water monitoring research papers.

Model Description

This model analyzes text chunks from academic papers and identifies whether they describe good or bad practices for rural water monitoring systems, classifying them across 14 predefined categories (7 good + 7 bad).

The model was fine-tuned with LoRA (r=32) on a dataset of 3516 chunks labeled by Qwen 2.5 72B Instruct AWQ.

Categories

Good practices: data_acquisition_technology, data_management, operation_maintenance, sustainability, community_participation, local_adaptation, scalability

Bad practices: inappropriate_technology, non_adaptable_infrastructure, cloud_dependency, high_costs, technical_complexity, centralization, rural_inaccessibility

Output Format

The model returns structured JSON:

json
{
  "contains_practice": true,
  "practices": [
    {
      "type": "good",
      "categories": ["data_acquisition_technology", "sustainability"],
      "span": "verbatim text from input",
      "explanation": "brief justification",
      "confidence": 0.92
    }
  ],
  "summary": "one-sentence summary"
}

Evaluation Results

Evaluated on a held-out set of 390 chunks:

MetricValue
JSON parse success99.7%
Accuracy (contains_practice)91.0%
Precision90.2%
Recall82.8%
F10.864
Type agreement (good/bad)83.8%
Mean categories Jaccard0.641

Training Details

ParameterValue
Base modelQwen/Qwen2.5-7B-Instruct
MethodLoRA (r=32, alpha=64)
Trainable params80.7M (1.05% of total)
Train samples3516
Epochs3
Batch size (effective)16
Learning rate2e-4 (cosine schedule)
Final train loss1.0280
Final eval loss1.0845
HardwareNVIDIA A100 SXM4 80GB
Training time~1 hour

Usage

python
from transformers import AutoModelForCausalLM, AutoTokenizer

model = AutoModelForCausalLM.from_pretrained(
    "CaffeineAddict69/qwen7b-water-rural-practices",
    torch_dtype="bfloat16",
    device_map="auto",
)
tokenizer = AutoTokenizer.from_pretrained("CaffeineAddict69/qwen7b-water-rural-practices")

system_prompt = '''You are an expert annotator for rural water monitoring research. Analyze text chunks from academic papers and identify practices (good or bad) related to rural water monitoring.

Categories of GOOD practices: data_acquisition_technology, data_management, operation_maintenance, sustainability, community_participation, local_adaptation, scalability.

Categories of BAD practices: inappropriate_technology, non_adaptable_infrastructure, cloud_dependency, high_costs, technical_complexity, centralization, rural_inaccessibility.

Return ONLY valid JSON with this schema:
{"contains_practice": true|false, "practices": [...], "summary": "..."}'''

text = "Your chunk text here..."
messages = [
    {"role": "system", "content": system_prompt},
    {"role": "user", "content": f"Analyze this chunk:\n\n---\n{text}\n---"},
]

inputs = tokenizer.apply_chat_template(messages, return_tensors="pt", add_generation_prompt=True).to(model.device)
outputs = model.generate(inputs, max_new_tokens=1024, do_sample=False)
response = tokenizer.decode(outputs[0][inputs.shape[1]:], skip_special_tokens=True)
print(response)

License & Citation

Apache 2.0. Inherits restrictions and rights from the base Qwen 2.5 model.

This model was developed for academic research on appropriate technologies for rural water monitoring.