--- license: apache-2.0 base_model: Qwen/Qwen3-1.7B-Base language: - en pipeline_tag: text-classification tags: - lora - peft - natural-language-classification - truestate --- # The Classifier v1.1 The Classifier scores a user-supplied menu of natural-language choices. This repository contains the general v1.1 LoRA adapter and seven specialists fine-tuned from that checkpoint on 4 October 2026. The frozen backbone is [Qwen3-1.7B-Base](https://huggingface.co/Qwen/Qwen3-1.7B-Base), downloaded separately. Each version includes its own LoRA weights, trained scalar scoring head and tokenizer. | Version | Intended task | | --- | --- | | general | General-purpose classification across the training tasks | | intent | Customer intent, including banking, insurance and telecom requests | | sentiment | Positive, neutral and negative sentiment | | triage | Support ticket categories | | cause | Reported complaint issues and reasons | | codify | Mapping text into product and service taxonomies | | complaints | Financial complaint products and issues | | stars | One-to-five review ratings | ## Use Install the [theclassifier package from PyPI](https://pypi.org/project/theclassifier/): ```sh pip install theclassifier ``` These checkpoints are public; no Hugging Face login is required. ```python from theclassifier import Classifier model = Classifier(model_repo="TrueState/theclassifier", device="auto") result = model.classify( "Please close my account.", choices=["cancellation", "billing", "none"], question="What is the customer asking for?", version="intent", ) print(result["results"][0]["selected"]) ``` Version changes reuse the loaded backbone and pair each adapter with its own head. Cached checkpoints are reused; missing versions are downloaded on demand. Checkpoint folders are not standalone Transformers sequence-classification models: use the package to load the adapter and scalar head together. ## Training and evaluation LoRA rank 16, alpha 16, dropout 0.05, targeting q_proj and v_proj. The scoring head and adapters are trained; backbone weights remain frozen. The objective is cross-entropy across each example's choice menu. The general model was trained for approximately 23h44m; the specialists added approximately 19h36m on a single RTX PRO 4000 Blackwell GPU. The project's internal 4,264-task evaluation reports 81.3% general top-1 accuracy. Task groups overlap, and intent contributes 59.1% of the evaluation. This is not an independent benchmark or evidence that every specialist improves its task. Training sources span Bitext, CLINC, CFPB complaints, municipal complaints, IT tickets, airline sentiment/reasons, TweetEval and Yelp, with separate held-out and evaluation-only sources. Consult the project paper for dataset links, preparation details and limitations; per-checkpoint source manifests are not complete. ## Limitations Scores are relative to the supplied choices and are not established as calibrated across menus or domains. Wording, criteria and fallback choices affect results. The model can misclassify clear inputs, including simple cancellation examples used in release smoke tests. Validate on representative data before deployment. CPU/CUDA smoke tests verify loading and execution, not classification quality. The portable package uses direct candidate scoring with standard attention, not the optimized production shared-prefix cache. Its latency is not interchangeable with published service-time references. The default package input limit is 2,048 tokens per candidate; longer inputs retain the first token and tail. ## Files and licensing `checksums.json` records the staged files. Scoring heads are safetensors; no training data or intermediate checkpoints are included. The Python package and the adapter weights and scoring heads in this repository are released under Apache-2.0. The upstream backbone and source datasets retain their own terms.