Translation
Transformers
Safetensors
Kannada
English
controlmt
text2text-generation
machine-translation
kannada
english
indic
low-resource
code-mix
encoder-decoder
custom_code
Eval Results (legacy)
Instructions to use anandkaman/controlmt-v2.3 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use anandkaman/controlmt-v2.3 with Transformers:
# Use a pipeline as a high-level helper # Warning: Pipeline type "translation" is no longer supported in transformers v5. # You must load the model directly (see below) or downgrade to v4.x with: # 'pip install "transformers<5.0.0' from transformers import pipeline pipe = pipeline("translation", model="anandkaman/controlmt-v2.3", trust_remote_code=True)# Load model directly from transformers import AutoModelForSeq2SeqLM model = AutoModelForSeq2SeqLM.from_pretrained("anandkaman/controlmt-v2.3", trust_remote_code=True, dtype="auto") - Notebooks
- Google Colab
- Kaggle
Update PRIVACY.md: share toggle is default-on with prominent Settings placement (uncheck to opt out)
55ab286 verified | # ControlMT — Privacy & Data Collection | |
| ControlMT v2.3 runs as a downloadable model AND as a hosted demo at | |
| [anandkaman/controlmt-demo](https://huggingface.co/spaces/anandkaman/controlmt-demo). | |
| This document covers what the hosted demo collects, when, and how it's used. | |
| **The downloadable model itself collects nothing** — it's a local Apache 2.0 binary. | |
| --- | |
| ## TL;DR | |
| | | | | |
| |---|---| | |
| | **Default state** | A clearly-visible **checkbox inside the Settings panel** controls whether each translation is logged. Default state is **checked (on)**. | | |
| | **Opt-out mechanism** | Uncheck the "*Share this translation for v2.4 research*" box in the Settings panel before pressing Translate. When unchecked, nothing is logged. | | |
| | **What's logged when opted in** | Your input text, the model's output, direction, beam size, latency, timestamp | | |
| | **What's NOT logged** | IP address, user agent, HF username, session ID, geolocation, any identifier | | |
| | **PII protection** | Inputs and outputs are **automatically regex-redacted** for PAN, Aadhar, phone numbers, emails, and card numbers before storage | | |
| | **Destination** | A **private** HuggingFace dataset (`anandkaman/controlmt-translations`) accessible only to the model author | | |
| | **Retention** | 6 months from collection, then deleted | | |
| | **Purpose** | Identifying edge cases for v2.4 training improvements | | |
| --- | |
| ## What we log when you opt in | |
| When the checkbox is checked and you press Translate, one row is buffered: | |
| ```json | |
| { | |
| "ts": "2026-06-23T19:42:18Z", | |
| "direction": "kn2en", | |
| "beam": 2, | |
| "input": "<your input — after PII redaction>", | |
| "output": "<the translation — after PII redaction>", | |
| "latency_s": 8.3, | |
| "status": "ok", | |
| "src_length": 47 | |
| } | |
| ``` | |
| Rows are batched in memory and uploaded to the private dataset every 10 rows | |
| or every 90 seconds — whichever comes first. | |
| ## PII redaction (always on, even with opt-in) | |
| Before any logging, the following patterns are stripped from both input and output: | |
| | Pattern | Example match | Replaced with | | |
| |---|---|---| | |
| | Indian PAN (5 letters + 4 digits + 1 letter) | `ABCDE1234F` | `[PAN_REDACTED]` | | |
| | Aadhar (12 digits, Latin or Kannada numerals) | `1234 5678 9012` or `೧೨೩೪ ೫೬೭೮ ೯೦೧೨` | `[AADHAR_REDACTED]` | | |
| | Indian mobile (+91 / 10-digit starting 6-9) | `+91 98765 43210` | `[PHONE_REDACTED]` | | |
| | Email | `user@example.com` | `[EMAIL_REDACTED]` | | |
| | Card number (13-19 digits in 4-group format) | `4111 1111 1111 1111` | `[CARD_REDACTED]` | | |
| The regex coverage is best-effort. **For high-sensitivity production use, do not rely on the | |
| hosted demo for any data classified as PII** — run the model locally instead | |
| (see [DEPLOYMENT.md](DEPLOYMENT.md)). | |
| ## What we explicitly do NOT log | |
| - IP addresses (HuggingFace Spaces does receive them at the network layer but our | |
| application code never reads or stores them) | |
| - User-Agent strings | |
| - HuggingFace usernames / OAuth tokens | |
| - Browser fingerprints | |
| - Geolocation | |
| - Session or tracking cookies | |
| - The order in which your translations occurred (timestamps are recorded but rows | |
| are not session-linked) | |
| ## Why we collect it | |
| v2.3 is a 139M-parameter model with known weak spots (modern tech jargon, idioms, | |
| regional dialects). v2.4's training data will be augmented based on the categories | |
| of inputs that trip up v2.3 most often. Opt-in user contributions are the most | |
| realistic source of those edge cases. | |
| When v2.4 ships, we may publish a **deduplicated, further-PII-stripped subset** of | |
| the collected dataset under CC-BY-4.0 so other Indic-MT researchers can reproduce | |
| our augmentation work. We will not include rows where the redaction would have | |
| left meaningful identifiable content — those are dropped, not published. | |
| ## Retention | |
| Raw collected rows are kept for **6 months** from the date of collection. After | |
| that they are deleted from the private dataset. | |
| Any publicly released subset (if produced for the v2.4 release) is released under | |
| CC-BY-4.0 and is permanent. | |
| ## Your rights | |
| You can request deletion of rows you submitted by emailing the model author | |
| (see Citation in the [model card](README.md)) with a reasonable description of | |
| when and what you submitted. Because we don't link rows to user identifiers, | |
| we can't always find your specific rows — best-effort applies. | |
| You can also simply **uncheck the box** in the Settings panel before pressing | |
| Translate. When unchecked, nothing is stored anywhere — translation works | |
| exactly the same way. | |
| ## Legal basis (India: DPDPA-2023; EU: GDPR Article 6(1)(a)) | |
| Collection is based on **informed consent** captured via the prominently-placed | |
| share toggle in the Settings panel, displayed alongside this disclosure and the | |
| PRIVACY.md link before each translate action. The default state is "share on", | |
| which is clearly visible to the user and easily togglable off in a single click. | |
| ## Changes to this policy | |
| Any change to what is collected, how, or for how long will be reflected in this | |
| file with a dated note below. | |
| | Date | Change | | |
| |---|---| | |
| | 2026-06-23 | Initial policy published with v2.3 demo launch | | |