Indian Receipt Parser v1.0
Model Description
Indian Receipt Parser is a fine-tuned Llama 3.1 8B model specialized in parsing receipts from 50+ popular Indian vendors. It extracts vendor name, amount, date, and category from receipt text and returns structured JSON output.
Model Details
- Base Model: meta-llama/Meta-Llama-3.1-8B-Instruct
- Fine-tuning Method: LoRA (Low-Rank Adaptation)
- Training Data: 2000+ synthetic receipt examples
- Vendors Covered: 50+ popular Indian brands
- Categories: 8 (dining, groceries, shopping, transportation, healthcare, entertainment, utilities, travel)
- Output Format: Structured JSON
Covered Vendors
Food Delivery & Dining (9): Zomato, Swiggy, EatSure, Dominos, McDonald's, KFC, Burger King, Pizza Hut, Foodpanda
Quick Commerce & Groceries (7): BigBasket, Blinkit, Zepto, Swiggy Instamart, Dunzo, JioMart, DMart Ready
E-commerce & Shopping (8): Amazon India, Flipkart, Myntra, Meesho, Ajio, Nykaa, Snapdeal, Tata CLiQ
Transportation (6): Ola, Uber, Rapido, Namma Yatri, BluSmart, InDrive
FinTech & Payments (7): Paytm, PhonePe, GooglePay, MobiKwik, Freecharge, Amazon Pay, CRED
Healthcare (5): Apollo Pharmacy, 1mg, PharmEasy, Netmeds, MedLife
Entertainment (8): BookMyShow, PVR INOX, Netflix, Amazon Prime, Disney+ Hotstar, Jio Cinema, ZEE5, Sony LIV
Travel (5): MakeMyTrip, Goibibo, IRCTC, OYO, EaseMyTrip
Telecom (3): Jio, Airtel, Vi (Vodafone Idea)
Intended Use
Primary Use Cases
- Expense Tracking Apps: Automatically categorize and extract receipt information
- Financial Management: Parse receipts for budgeting and analysis
- Receipt Digitization: Convert physical/digital receipts to structured data
- Business Expense Reports: Automate expense report generation
Out-of-Scope Use Cases
- Non-Indian vendors (model is optimized for Indian brands)
- Complex multi-item receipts requiring line-item extraction
- Handwritten receipts (OCR required first)
- Non-receipt financial documents
How to Use
Installation
pip install transformers torch peft
Basic Usage
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
from peft import PeftModel
# Load model
tokenizer = AutoTokenizer.from_pretrained("meta-llama/Meta-Llama-3.1-8B-Instruct")
base_model = AutoModelForCausalLM.from_pretrained(
"meta-llama/Meta-Llama-3.1-8B-Instruct",
device_map="auto",
torch_dtype=torch.bfloat16
)
model = PeftModel.from_pretrained(base_model, "path/to/indian-receipt-parser-v1/final")
# Parse receipt
receipt_text = """
Thank you for ordering from Zomato
Order Date: 15/11/2024
Subtotal: โน450
Tax: โน81
Total: โน531
"""
messages = [
{
"role": "system",
"content": "You are a financial receipt parser specialized in Indian vendors. Extract vendor name, amount, date, and category from receipts. Return ONLY valid JSON in this exact format: {\"vendor\": \"VendorName\", \"amount\": 0.0, \"date\": \"YYYY-MM-DD\", \"category\": \"category\", \"tax\": 0.0, \"currency\": \"INR\", \"confidence\": 0.0}"
},
{
"role": "user",
"content": receipt_text
}
]
input_text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = tokenizer(input_text, return_tensors="pt").to("cuda")
with torch.no_grad():
outputs = model.generate(**inputs, max_new_tokens=200, temperature=0.1)
response = tokenizer.decode(outputs[0][inputs['input_ids'].shape[1]:], skip_special_tokens=True)
print(response)
Expected Output
{
"vendor": "Zomato",
"amount": 531.0,
"date": "2024-11-15",
"category": "dining",
"tax": 81.0,
"currency": "INR",
"confidence": 0.95
}
Training Details
Training Data
- Total Examples: 2000+ synthetic receipt examples
- Vendors: 50+ popular Indian brands
- Data Distribution:
- Dining: 360 examples
- Groceries: 280 examples
- Shopping: 320 examples
- Transportation: 240 examples
- Healthcare: 200 examples
- Entertainment: 320 examples
- Utilities: 200 examples
- Travel: 200 examples
Training Procedure
- Fine-tuning Method: LoRA (r=16, alpha=32)
- Trainable Parameters: 0.52% of total parameters
- Precision: BF16 (bfloat16) - no quantization
- Epochs: 5
- Batch Size: 16 (effective, with gradient accumulation)
- Learning Rate: 2e-4 with cosine schedule
- Optimizer: AdamW
- Hardware: NVIDIA RTX 5090 (32GB VRAM)
- Training Time: ~60-90 minutes
Training Loss
Initial loss: 2.64
Final loss: 0.13
Improvement: 95%
Evaluation
Performance Metrics
- Vendor Recognition Accuracy: ~95%
- Amount Extraction Accuracy: ~98%
- Category Classification: ~92%
- Date Parsing Accuracy: ~90%
- Valid JSON Output: ~85%
Limitations
- Indian Vendors Only: Optimized for brands listed above, may not recognize international brands
- Date Format Variations: Performs best with common Indian date formats (DD/MM/YYYY, DD-MM-YYYY)
- Currency: Optimized for INR (โน), may struggle with other currencies
- Receipt Complexity: Works best with simple receipt formats, complex multi-page receipts may need preprocessing
- Hallucination: May occasionally generate plausible but incorrect values for missing fields
Ethical Considerations
Privacy
- Model does not store or transmit any receipt data
- All processing happens locally
- Users should be aware of sensitive financial information in receipts
Bias
- Model is trained primarily on synthetic data
- May perform differently on real-world receipts
- Vendor coverage is limited to 50+ popular brands
- Performance may vary for regional/local vendors not in training data
Responsible Use
- Intended for personal finance management and expense tracking
- Should not be used as sole source of truth for financial/tax reporting
- Users should verify extracted information for critical applications
- Not recommended for legal/compliance purposes without human verification
Citation
If you use this model, please cite:
@misc{indian-receipt-parser-v1,
title={Indian Receipt Parser v1.0},
author={Your Name},
year={2024},
publisher={Hugging Face},
howpublished={\url{https://huggingface.co/your-username/indian-receipt-parser-v1}}
}
License
This model is released under the Llama 3.1 Community License.
Contact
For issues, questions, or suggestions:
- GitHub Issues: [url]
- Email: [manas24102@iiitnr.edu.in]
Acknowledgments
Built with:
- ๐ฆ Meta's Llama 3.1 8B
- ๐ง Hugging Face Transformers & PEFT
- โก NVIDIA RTX 5090
- ๐ฎ๐ณ Inspired by India's digital payment ecosystem
Made with โค๏ธ for India's fintech community!
- Downloads last month
- 17
Model tree for manaspros/indian-receipt-parser-v1
Base model
meta-llama/Llama-3.1-8B