|
Download README.md from Adityapande403/IndicMix-AI: direct link, hf CLI and curl.
- Browser
- Download file 4.97 kB
-
https://huggingface.co/Adityapande403/IndicMix-AI/resolve/main/README.md
- Command line
-
hf download hf://Adityapande403/IndicMix-AI/README.md
-
curl -L -o README.md https://huggingface.co/Adityapande403/IndicMix-AI/resolve/main/README.md
4.97 kB
| language: | |
| - hi | |
| - te | |
| - bn | |
| - en | |
| license: apache-2.0 | |
| tags: | |
| - code-mixing | |
| - indic | |
| - hinglish | |
| - telgish | |
| - bengali | |
| - pii-redaction | |
| - onnx | |
| - privacy | |
| - intent-classification | |
| - toxicity-moderation | |
| pipeline_tag: text-classification | |
| widget: | |
| - text: "bhai mera refund kab aayega, UPI 9876543210@paytm pe transfer karo" | |
| example_title: "Hinglish Refund & UPI PII" | |
| - text: "parcel inka address Hyderabad lo undi, call this number 9848012345" | |
| example_title: "Telgish Order Tracking & Phone" | |
| - text: "payment fail hoye geche kintu taka keteche" | |
| example_title: "Benglish Payment Issue" | |
| - text: "mera order cancel kardo please mujhe nahi chahiye" | |
| example_title: "Hinglish Cancellation" | |
| # IndicMix AI: Lightweight Code-Mixed Indic NLP & Privacy Gateway | |
| **IndicMix AI** is an ultra-lightweight, high-throughput NLP engine and privacy-first sanitization middleware designed specifically for informal, code-mixed Indian languages (**Hinglish**, **Telgish**, **Benglish**, **Indian English**, and native Devanagari, Telugu, and Bengali scripts). | |
| Designed for edge runtimes, customer support routing, and secure enterprise LLM gateways. | |
| --- | |
| ## Key Features | |
| 1. **Enterprise Privacy & PII Sanitization**: | |
| - Bidirectional token redaction with numbered placeholders (`[NAME_1]`, `[PHONE_1]`, `[UPI_1]`). | |
| - Official **Verhoeff Dihedral Group ($D_5$) Checksum Algorithm** for Indian 12-digit Aadhaar verification. | |
| - Financial entity preservation (order IDs, currency amounts like `₹1500` are safely preserved). | |
| 2. **Multi-Task Code-Mixed Intent Classifier**: | |
| - 12 customer support intent categories calibrated via Temperature Scaling. | |
| - Robust Romanized and native script lexicon priors. | |
| 3. **Safety-Guarded Text Normalization**: | |
| - Dual safety guards: Entity preservation guard & Negation/Semantic polarity guard. | |
| 4. **Edge-Optimized ONNX Runtime**: | |
| - FP32 ONNX (877 KB) and INT8 Quantized ONNX (222 KB). | |
| - In-memory inference latency: **0.046 ms P50** (~47,000 req/s on CPU). | |
| --- | |
| ## Empirical Benchmark Results | |
| Measured on Windows 11 / Intel CPU: | |
| | Metric / Stage | Result | | |
| | :--- | :--- | | |
| | **Model Size (INT8 ONNX)** | **222.8 KB** (74% reduction vs FP32) | | |
| | **INT8 vs FP32 Agreement** | **99.3%** | | |
| | **Model-Only Latency (P50)** | **0.046 ms** (~47,600 req/s) | | |
| | **Full Pipeline Latency (P50)** | **0.685 ms** (1,400 req/s) | | |
| | **Privacy Proxy Latency (P50)** | **0.069 ms** (14,700 req/s) | | |
| | **Intent Macro-F1 (Stratified Test)** | **1.0000** | | |
| | **PII Exact Match F1** | **1.0000** | | |
| --- | |
| ## Quickstart | |
| ### 1. Using ONNX Runtime (Ultra-Fast CPU Inference) | |
| ```python | |
| import onnxruntime as ort | |
| import json | |
| import numpy as np | |
| # Load quantized model (222 KB) | |
| session = ort.InferenceSession("model_quantized.onnx") | |
| with open("config.json") as f: | |
| config = json.load(f) | |
| with open("vocab.json") as f: | |
| vocab = json.load(f) | |
| text = "bhai mera refund kab aayega" | |
| # Tokenize and run | |
| # See infer.py for complete standalone inference | |
| ``` | |
| ### 2. Using the Standalone Python Runner | |
| ```bash | |
| git clone https://huggingface.co/Adityapande403/IndicMix-AI | |
| cd IndicMix-AI | |
| python infer.py | |
| ``` | |
| ### 3. Using the `indicmix` Python SDK | |
| ```python | |
| from indicmix import EnterprisePrivacyProxy, IntentClassifier | |
| # Anonymize PII before sending to any LLM | |
| proxy = EnterprisePrivacyProxy() | |
| anon_res = proxy.anonymize("Mera naam Rahul Verma hai, transfer ₹500 to rahul@okhdfcbank or 9876543210") | |
| print(anon_res.sanitized_text) | |
| # Output: Mera naam [NAME_1] hai, transfer ₹500 to [UPI_1] or [PHONE_1] | |
| # De-anonymize LLM response | |
| llm_reply = "Humne [NAME_1] ke account [UPI_1] par ₹500 bhej diye hain." | |
| deanonymized = proxy.deanonymize(llm_reply, anon_res.session_id) | |
| print(deanonymized) | |
| # Output: Humne Rahul Verma ke account rahul@okhdfcbank par ₹500 bhej diye hain. | |
| ``` | |
| --- | |
| ## Intent Taxonomy | |
| | Index | Intent Class | Example Code-Mixed Text | | |
| | :--- | :--- | :--- | | |
| | 0 | `account_access` | "login password reset link bhejo" | | |
| | 1 | `cancellation_request` | "order cancel cheyyandi vaddu" | | |
| | 2 | `complaint` | "worst service delivery person was rude" | | |
| | 3 | `delivery_issue` | "parcel inka raledu delay enduku" | | |
| | 4 | `greeting` | "namaste bhai kaise ho" | | |
| | 5 | `order_status` | "where is my parcel order kab tak aayega" | | |
| | 6 | `payment_issue` | "taka keteche kintu order confirm hoyni" | | |
| | 7 | `product_question` | "is this compatible with iPhone 15" | | |
| | 8 | `refund_request` | "paise wapas karo UPI pe refund chahiye" | | |
| | 9 | `subscription_issue` | "auto debit stop karo subscription cancel" | | |
| | 10 | `technical_support` | "app crash ho raha hai opening time" | | |
| | 11 | `unknown` | "random unclassifiable text" | | |
| --- | |
| ## Citation & License | |
| - **License**: Apache 2.0 | |
| - **GitHub Repository**: [https://github.com/adityapande403/Indic-mix-AI](https://github.com/adityapande403/Indic-mix-AI) | |