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:


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
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support

Model tree for manaspros/indian-receipt-parser-v1

Adapter
(1340)
this model