Text Classification
Transformers
Safetensors
English
distilbert
document-classification
document-ai
pii-detection
redaction
text-embeddings-inference
Instructions to use FahrenheitResearch/FR-Docs-v1 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use FahrenheitResearch/FR-Docs-v1 with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-classification", model="FahrenheitResearch/FR-Docs-v1")# Load model directly from transformers import AutoTokenizer, AutoModelForSequenceClassification tokenizer = AutoTokenizer.from_pretrained("FahrenheitResearch/FR-Docs-v1") model = AutoModelForSequenceClassification.from_pretrained("FahrenheitResearch/FR-Docs-v1") - Notebooks
- Google Colab
- Kaggle
| license: apache-2.0 | |
| language: | |
| - en | |
| base_model: distilbert/distilbert-base-uncased | |
| pipeline_tag: text-classification | |
| tags: | |
| - document-classification | |
| - document-ai | |
| - pii-detection | |
| - redaction | |
| - distilbert | |
| library_name: transformers | |
| # FR-Docs-v1 | |
| Document type recognition, classification, and sensitive-content detection. FR-Docs identifies uploaded documents (Word, PDF, text), classifies them into **30 business categories** across 8 groups, flags sensitive spans for redaction, and returns an LLM routing suggestion, so downstream systems can assign each document to the most suitable model automatically. | |
| Built by [Neural Arc Inc.](https://he2.ai) as the document intelligence layer for the Helium AI workspace. | |
| ## What is in this repo | |
| - **Fine-tuned DistilBERT classifier** (67M parameters): 31 labels (30 categories plus `other`), trained with the Hugging Face Trainer. | |
| - **`pipeline/` folder**: the full FR-Docs pipeline source, including format detection and text extraction (PyMuPDF, python-docx), scanned-PDF detection, a three-layer sensitive-content scanner (regex, gazetteer, zero-shot GLiNER), redaction helpers, a FastAPI service with a browser tester UI, and training scripts for retraining or upgrading the base model. | |
| ## Categories | |
| Legal: contract, nda, court_filing, patent, compliance_filing. Financial: invoice, receipt, purchase_order, financial_statement, tax_document, insurance_document. HR: cv_resume, offer_letter, policy_document. Product: product_spec, datasheet, user_manual. Sales and Marketing: proposal, case_study, press_release, marketing_collateral. Operations: sop, report, meeting_minutes, form, presentation. Correspondence: email_thread, letter, memo. Technical: research_paper. Fallback: other. | |
| ## Usage | |
| Classification only: | |
| ```python | |
| from transformers import pipeline | |
| clf = pipeline("text-classification", model="FahrenheitResearch/FR-Docs-v1") | |
| print(clf("INVOICE #INV-2026-0142 ... TOTAL DUE: $27,435. Payment terms: Net 30.")) | |
| # [{'label': 'invoice', 'score': ...}] | |
| ``` | |
| Full pipeline (extraction, classification, sensitive-span detection, routing): | |
| ```bash | |
| hf download FahrenheitResearch/FR-Docs-v1 --include "pipeline/*" --local-dir fr-docs | |
| cd fr-docs/pipeline | |
| pip install -r requirements.txt | |
| FR_DOCS_SENSITIVITY=strict uvicorn fr_docs.api:app --port 8080 | |
| # open http://localhost:8080 for the drag-and-drop tester | |
| ``` | |
| ## Sensitive-content detection | |
| Three stacked detectors return character-offset spans for redaction: **regex** (emails, phones, credit cards with Luhn validation, SSN, PAN, Aadhaar, GSTIN, IBAN, passports, vehicle registrations, IPs, URLs, money amounts, salaries, account numbers, dates of birth, equity stakes), a **gazetteer** of organization-specific brand, product, and client names (editable YAML, no retraining), and optional **zero-shot NER** via GLiNER for person names, companies, and addresses. A `strict` profile additionally flags all dates, standalone number sequences, and reference IDs. | |
| ## Training and limitations | |
| v1 was trained on a fully synthetic templated corpus (7,750 documents, 250 per class). It performs well on clearly structured business documents but has not yet been trained on real-world data; expect degraded accuracy on unusual layouts, informal writing, and domains far from the templates. Scanned documents without a text layer are detected and deferred rather than classified. The training scripts in `pipeline/training/` support retraining on your own labeled JSONL with any Hugging Face base model, including ModernBERT for long documents. | |
| ## License | |
| Apache 2.0. | |