VehicleGPT
An offline assistant for a car's own logged signals. A small language model turns each question into one verified tool call on a read-only store, so the model never reads raw data.
- my role
- team lead · team of 3
- stack
- Python · llama.cpp · CAN · COVESA VSS
- when
- oct 2026
cat problem.md
Team entry to Tata Elxsi Teliport Season 4, Case 5. The proposal is an in-vehicle assistant that answers natural-language questions about the vehicle's own data, with no cloud connection.
Deterministic code ingests and stores the signals and detects events. A small language model, 2B parameters or fewer, only turns a question into one tool call, constrained to a flat JSON schema. Code checks the call against the signal catalogue, runs parameterised SQL, and checks that every number in the reply matches a query result.
tree pipeline/
cat results.tsv
model benchmark, CPU
| metric | result | setup |
|---|---|---|
| quantized model variants | 12 | 2,400 checksum-audited results |
| MiniCPM5-1B Q8_0 accuracy | 82% | first 50 questions, hybrid pipeline |
| median latency | 1.74 s | same run |
| peak memory | 1,437 MiB | same run |
x86-64 CPU (AMD Ryzen AI 7 350), 2 cores, 2 threads, 2 GiB container memory, no swap. The hybrid pipeline is the rule router plus the model.
system, hybrid rules and model
| metric | result | setup |
|---|---|---|
| rules only | 29.5% | 200 questions, GPU |
| rules and small model | up to 95.5% | 200 questions, GPU; 72.0% to 95.5% across seven models |
| schema-valid replies | all | every model in the hybrid run |
The 200 questions run against a synthetic 21-day vehicle store, with gold answers from the gold tool calls.
cat limits.md
- The CPU accuracy, latency and memory figures come from the first 50 questions, not all 200. Each configuration was run once, deterministically.
- The data is synthetic. The CPU runs used an x86 proxy, not the ARM target board.
- The rule router misroutes 4 of 50 questions, which caps tool choice at 92% for every model in the hybrid arm.
- The in-car architecture (read-only tap, safety partition, privacy controls) is a design. The measured parts are the model routing and the tool calls.
Code is private while the competition runs.