manaspros's picture
Update README.md
f1ce0a2 verified
---
language:
- en
base_model:
- meta-llama/Llama-3.1-8B-Instruct
pipeline_tag: text-generation
library_name: peft
tags:
- india
- receipt-parsing
- llama
- lora
- peft
- fintech
- expense-tracking
- indian-vendors
---
# 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
```bash
pip install transformers torch peft
```
### Basic Usage
```python
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
```json
{
"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:
```bibtex
@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](https://ai.meta.com/llama/license/).
## Contact
For issues, questions, or suggestions:
- GitHub Issues: [[url](https://huggingface.co/manaspros/indian-receipt-parser-v1)]
- 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!**