Text Generation
PEFT
Safetensors
English
india
receipt-parsing
llama
lora
fintech
expense-tracking
indian-vendors
conversational
Instructions to use manaspros/indian-receipt-parser-v1 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use manaspros/indian-receipt-parser-v1 with PEFT:
from peft import PeftModel from transformers import AutoModelForCausalLM base_model = AutoModelForCausalLM.from_pretrained("meta-llama/Meta-Llama-3.1-8B-Instruct") model = PeftModel.from_pretrained(base_model, "manaspros/indian-receipt-parser-v1") - Notebooks
- Google Colab
- Kaggle
| 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!** |