File size: 6,170 Bytes
e16cb65
4bfd389
1294a19
 
 
 
 
 
 
 
 
 
 
b64bd0a
1294a19
 
e16cb65
b64bd0a
1294a19
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
b64bd0a
1294a19
 
 
b64bd0a
1294a19
b64bd0a
1294a19
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
---
license: apache-2.0
base_model: Qwen/Qwen2.5-1.5B-Instruct
datasets:
  - umarfarookm/UmarTransit-Instruct-3k
tags:
  - transit
  - gtfs
  - transportation
  - instruction-following
  - qwen2
  - qlora
  - unsloth
language:
  - en
pipeline_tag: text-generation
---

# UmarTransit-1B (v1.0)

A domain-specific language model for **public transit systems** and **GTFS (General Transit Feed Specification)** data, fine-tuned from Qwen2.5-1.5B-Instruct.

UmarTransit-1B specializes in:
- GTFS understanding and validation
- Transit route and schedule analysis
- Journey planning and transfer logic
- Stop/station information
- Transit operations concepts
- Transit network intelligence

> **Data Disclaimer:** This model was trained **exclusively on publicly available, open-source GTFS feeds** published by transit agencies for public use via the [Mobility Database](https://mobilitydatabase.org/). **No private, proprietary, or NDA-protected data** from any client, employer, or organization was used at any stage.

## Model Details

| Property | Value |
|----------|-------|
| **Base Model** | [Qwen/Qwen2.5-1.5B-Instruct](https://huggingface.co/Qwen/Qwen2.5-1.5B-Instruct) |
| **Parameters** | 1.54B (1.31B non-embedding) |
| **Fine-tuning** | QLoRA (4-bit NF4, LoRA rank=16, alpha=32) |
| **Training Framework** | [Unsloth](https://unsloth.ai) + HuggingFace TRL |
| **Training Data** | 3,154 pairs from [UmarTransit-Instruct-3k](https://huggingface.co/datasets/umarfarookm/UmarTransit-Instruct-3k) |
| **Test Data** | 347 pairs (stratified 90/10 split) |
| **Categories** | 11 (agency, route, stop, schedule, transfer, network stats, GTFS knowledge, comparative, journey planning, GTFS validation, transit operations) |
| **Max Context** | 1,024 tokens |
| **License** | Apache 2.0 |
| **Developer** | [umarfarookm](https://github.com/umarfarookm) |

## What's New in v1.0

- **Expanded dataset:** 3,501 total pairs (up from 3,306 in v0.1)
- **3 new categories:** Journey planning (100 pairs), GTFS validation (20 pairs), Transit operations (20 pairs)
- **Expanded existing categories:** GTFS knowledge (22 → 53), network stats (30 → 45), comparative (14 → 23)
- **Journey planning fixed:** v0.1 scored below the base model on journey planning; v1.0 now beats it

## Evaluation Results

Evaluated on 193 benchmark questions across 6 categories:

| Metric | Base Model | v0.1 | v1.0 | v1.0 vs Base |
|--------|-----------|------|------|-------------|
| ROUGE-L | 0.129 | 0.375 | **0.409** | +217% |
| Keyword Match | 0.368 | 0.403 | **0.398** | +8% |
| Criteria Match | 0.020 | 0.072 | **0.098** | +385% |
| **Combined** | **0.168** | **0.293** | **0.313** | **+86%** |

### Per-Category (Combined Score)

| Category | Base | v0.1 | v1.0 |
|----------|------|------|------|
| GTFS Terminology | 0.342 | 0.351 | **0.361** |
| GTFS Validation | 0.267 | 0.314 | **0.323** |
| Route Analysis | 0.084 | 0.290 | **0.328** |
| Journey Planning | 0.297 | 0.243 | **0.311** |
| Schedule Reasoning | 0.121 | 0.253 | 0.224 |
| Transit Operations | 0.193 | 0.307 | **0.342** |

v1.0 beats the base model in **all 6 categories** (vs 5/6 in v0.1).

## Available Formats

| Format | Size | Use Case |
|--------|------|----------|
| **Safetensors** | ~3.1 GB | Python / Transformers |
| **GGUF Q4_K_M** | ~986 MB | Ollama / llama.cpp (recommended) |
| **GGUF Q8_0** | ~1.65 GB | Ollama / llama.cpp (higher quality) |

## Usage

### With Transformers (Python)

```python
from transformers import AutoModelForCausalLM, AutoTokenizer

model = AutoModelForCausalLM.from_pretrained("umarfarookm/UmarTransit-1B")
tokenizer = AutoTokenizer.from_pretrained("umarfarookm/UmarTransit-1B")

messages = [
    {"role": "system", "content": "You are UmarTransit-1B, a specialized AI assistant for public transit systems and GTFS data."},
    {"role": "user", "content": "What are the required files in a GTFS feed?"},
]

text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = tokenizer(text, return_tensors="pt")
outputs = model.generate(**inputs, max_new_tokens=256, temperature=0.1, top_p=0.9, do_sample=True)
print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:], skip_special_tokens=True))
```

### With Ollama

```bash
ollama run hf.co/umarfarookm/UmarTransit-1B:Q4_K_M
```

## Training Details

| Parameter | Value |
|-----------|-------|
| Epochs | 3 |
| Batch size | 4 (x4 gradient accumulation = 16 effective) |
| Learning rate | 2e-4 (cosine schedule) |
| LoRA rank | 16 |
| LoRA alpha | 32 |
| LoRA dropout | 0 |
| Target modules | q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_proj |
| Optimizer | AdamW 8-bit |
| Max sequence length | 1,024 tokens |
| Hardware | Google Colab T4 GPU (~30 min) |

## Training Data Coverage

15 GTFS feeds from 10 countries:

| Country | Agency |
|---------|--------|
| US | LA Metro, CTA (Chicago), MBTA (Boston), Valley Metro (Phoenix), Capital Metro (Austin), TriMet (Portland) |
| Canada | TTC (Toronto) |
| Germany | VBB (Berlin) |
| France | Ile-de-France Mobilites (Paris) |
| Netherlands | OVapi |
| Belgium | NMBS/SNCB |
| Finland | HSL (Helsinki) |
| Denmark | Rejseplanen |
| Australia | Transperth (Perth) |
| New Zealand | Auckland Transport |

## Limitations

- English only — no multilingual support
- Static schedule data only — no real-time predictions
- Not a trip planner — cannot compute optimal routes
- 1,024 token context — limited for very long queries
- Small training dataset (3,501 pairs) — may not generalize to all transit scenarios

## Links

- **GitHub:** [umarfarookm/transit-foundation-model](https://github.com/umarfarookm/transit-foundation-model)
- **Dataset:** [umarfarookm/UmarTransit-Instruct-3k](https://huggingface.co/datasets/umarfarookm/UmarTransit-Instruct-3k)
- **Web Demo:** [transit-foundation-model.vercel.app](https://transit-foundation-model.vercel.app)

## Citation

```bibtex
@model{umartransit_1b,
  author = {Umar Farook M},
  title = {UmarTransit-1B: Domain-Specific LLM for Public Transit and GTFS},
  year = {2026},
  publisher = {Hugging Face},
  url = {https://huggingface.co/umarfarookm/UmarTransit-1B}
}
```