Indian transport compliance is a strong use case for specialised AI: teams must interpret rules, inspect documents, classify violations, and route exceptions across vehicles, drivers, permits, invoices, and shipments. A general-purpose model may understand language but still miss Indian terminology, regulatory context, multilingual evidence, and operational workflows.
This guide explains how to fine tune a model using Indian transport compliance data on Hugging Face. It focuses on realistic implementation choices: when fine-tuning is appropriate, how to structure a dataset, how to avoid leakage, which metrics matter, and how to deploy a model without treating it as an unsupervised legal decision-maker.
Choose the right modelling approach
Fine-tuning is not automatically the best first step. Use the task to decide the architecture:
- Classification: label a document, trip, vehicle record, or inspection as compliant, non-compliant, or requiring review.
- Named-entity recognition: extract fields such as permit number, vehicle registration, challan reference, state, date, or expiry.
- Document question answering: answer questions from a supplied regulation or transport record.
- Text generation: draft an explanation, checklist, or escalation note. Generated output should remain advisory.
- Retrieval-augmented generation (RAG): ground answers in current rules and circulars. This is usually preferable when regulations change frequently.
For a broader implementation plan, review these best practices for fine-tuning LLMs on custom data. Fine-tune stable behaviour and terminology; use retrieval for frequently changing source material.
Define the compliance task before collecting data
Write a narrow task specification before downloading documents. For example: “Classify whether a permit record contains an expired fitness certificate and return the evidence span.” Define the input, expected output, decision owner, and acceptable error rate.
A useful annotation schema may include:
record_idand source document referenceinput_textor OCR-extracted textstate, transport category, and document typerule_referenceand rule version or effective datelabel: compliant, non-compliant, or needs human reviewevidence_span: the text supporting the labelannotator_id, confidence, and adjudication statuslanguageand OCR quality indicators
Do not train directly on sensitive identifiers unless they are essential. Replace personal, financial, and vehicle-linked information with consistent placeholders. Keep the original-to-redacted mapping outside the training repository.
Build an India-specific, legally traceable dataset
Potential sources include publicly available government notifications, transport department guidance, anonymised internal records, inspection forms, and synthetic examples reviewed by domain experts. Confirm that your organisation has the right to use each source for model development and sharing.
India’s compliance context varies by state, vehicle class, route, and document date. Preserve those attributes rather than flattening every example into a single label. Include Hindi and relevant regional-language material where the production workflow requires it, as well as common transliterations, abbreviations, spelling variants, and OCR errors.
Create train, validation, and test splits by document, fleet, organisation, and time period, not just by random rows. Randomly splitting near-duplicate records can produce inflated scores. A time-based test set is particularly useful for measuring performance on newer circulars and changed formats.
Before training, run checks for:
- Duplicate or near-duplicate documents across splits
- Labels inferred from filenames or leaked metadata
- Contradictory annotations
- Imbalanced classes and missing minority cases
- Outdated rules presented as current guidance
- OCR corruption, tables, stamps, and handwritten fields
Set up Hugging Face
A practical Python environment can be installed with:
pip install -U transformers datasets evaluate accelerate peft trl sentencepieceLog in to the Hugging Face Hub only from a controlled environment, and use private repositories for restricted datasets and model checkpoints. Store credentials in environment variables or a secret manager—not in notebooks or source control.
For text classification, begin with a multilingual encoder that supports the languages in your data. For instruction-following tasks, choose a model whose licence, context window, hardware needs, and commercial-use terms fit your project. Check the model card and licence before deployment.
Prepare and tokenise the dataset
A classification record could look like this:
{"text":"Fitness certificate expired on 14-02-2026; vehicle inspection required.","label":1}Load the data and tokenise it consistently:
from datasets import load_dataset
from transformers import AutoTokenizer
model_id = "your-approved-model"
tokenizer = AutoTokenizer.from_pretrained(model_id)
dataset = load_dataset("json", data_files={
"train": "train.jsonl",
"validation": "validation.jsonl",
"test": "test.jsonl"
})
def tokenize(batch):
return tokenizer(
batch["text"],
truncation=True,
max_length=512,
)
tokenised = dataset.map(tokenize, batched=True)Use dynamic padding during batching where possible. For long regulations, do not silently truncate the decisive clause. Chunk documents with overlap, retrieve relevant passages, or use a long-context model. Keep the original text and evidence spans so reviewers can audit predictions.
Fine-tune with reproducible settings
For a classifier, use AutoModelForSequenceClassification and a small, controlled experiment first. Record the base model, dataset version, seed, learning rate, batch size, number of epochs, sequence length, and hardware.
from transformers import (
AutoModelForSequenceClassification,
TrainingArguments,
Trainer,
)
model = AutoModelForSequenceClassification.from_pretrained(
model_id, num_labels=3
)
args = TrainingArguments(
output_dir="./transport-compliance-model",
eval_strategy="epoch",
save_strategy="epoch",
load_best_model_at_end=True,
metric_for_best_model="f1",
learning_rate=2e-5,
num_train_epochs=3,
per_device_train_batch_size=8,
per_device_eval_batch_size=8,
weight_decay=0.01,
report_to="none",
)
trainer = Trainer(
model=model,
args=args,
train_dataset=tokenised["train"],
eval_dataset=tokenised["validation"],
)
trainer.train()For larger language models, parameter-efficient methods such as LoRA or QLoRA can reduce memory and make experiments affordable. Compare a full fine-tune, adapter-based run, and retrieval baseline rather than assuming the most expensive option is best. The Indian open-source AI developer projects guide can also help teams identify reusable local tooling and community practices.
Evaluate for operational risk, not just accuracy
Report macro-F1, per-class precision and recall, confusion matrices, and calibration. Compliance datasets often contain many ordinary compliant cases, so accuracy alone can hide poor detection of rare violations. Track false negatives separately: a missed safety or permit issue may be more costly than an unnecessary human review.
Evaluate across slices:
- State and language
- Vehicle and document type
- OCR quality and scan quality
- New versus old rule versions
- Fleet or organisation unseen during training
- Short records versus long, multi-page documents
Require the model to return a confidence score, predicted label, evidence, and rule version where applicable. Establish a review threshold: low-confidence or high-impact cases should be routed to a qualified human. Test prompt injection and malicious document content if the system processes user-uploaded files.
Deploy with governance and monitoring
Publish only the minimum necessary model and metadata to the Hugging Face Hub. A model card should state its intended use, training sources, languages, limitations, evaluation slices, known failure modes, licence, and whether personal data was excluded. Never present the model as a substitute for legal advice or statutory authority.
In production, place the model behind an access-controlled API and log model version, input hash, output, confidence, evidence, reviewer decision, and rule version—while following applicable privacy and retention requirements. Monitor drift when forms, OCR providers, state rules, or fleet behaviour changes. Retrain only after reviewing fresh, consented or lawfully obtained examples.
For workflows that extend beyond transport, the principles in how to automate legal compliance with AI in India are relevant: retain an audit trail, keep a human accountable, and make escalation explicit. If the system also handles images of plates, permits, or damage, pair text evaluation with the guidance on building computer vision models on GitHub.
A practical launch checklist
- Define one compliance decision and its human owner.
- Version rules, documents, labels, and model checkpoints.
- Redact personal data and verify usage rights.
- Split data by time, fleet, and organisation to prevent leakage.
- Establish baseline results before fine-tuning.
- Evaluate rare violations and multilingual performance.
- Require evidence and confidence, not only a label.
- Use private Hub repositories and controlled deployment credentials.
- Pilot with reviewers before automating operational actions.
- Set rollback, monitoring, and retraining criteria.
A well-designed Hugging Face workflow can improve triage and document review for Indian transport operators, logistics companies, and public-sector teams. Its value comes from traceable data, current regulatory grounding, and disciplined human oversight—not from fine-tuning alone.