Text Classification
sentence-transformers
Joblib
central-bank-communication
multi-dimensional-classification
multi_task_gist
qwen3-embedding
training-artefact
Eval Results (legacy)
Instructions to use thiagochris/cbcc with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- sentence-transformers
How to use thiagochris/cbcc with sentence-transformers:
from sentence_transformers import SentenceTransformer model = SentenceTransformer("thiagochris/cbcc") sentences = [ "The weather is lovely today.", "It's so sunny outside!", "He drove to the stadium." ] embeddings = model.encode(sentences) similarities = model.similarity(embeddings, embeddings) print(similarities.shape) # [3, 3] - Notebooks
- Google Colab
- Kaggle
| language: | |
| - en | |
| - es | |
| - pt | |
| - fr | |
| - ar | |
| - zh | |
| license: cc-by-nc-4.0 | |
| library_name: sentence-transformers | |
| pipeline_tag: text-classification | |
| tags: | |
| - central-bank-communication | |
| - multi-dimensional-classification | |
| - multi_task_gist | |
| - qwen3-embedding | |
| - training-artefact | |
| model-index: | |
| - name: v29NA-openvino-int8-serving | |
| results: | |
| - task: | |
| type: text-classification | |
| name: topic classification | |
| dataset: | |
| name: CBC Held-out Eval | |
| type: private | |
| metrics: | |
| - type: f1_macro | |
| value: 0.8008 | |
| - task: | |
| type: text-classification | |
| name: temporal_orientation classification | |
| dataset: | |
| name: CBC Held-out Eval | |
| type: private | |
| metrics: | |
| - type: f1_macro | |
| value: 0.8957 | |
| - task: | |
| type: text-classification | |
| name: audience classification | |
| dataset: | |
| name: CBC Held-out Eval | |
| type: private | |
| metrics: | |
| - type: f1_macro | |
| value: 0.7590 | |
| - task: | |
| type: text-classification | |
| name: sentiment classification | |
| dataset: | |
| name: CBC Held-out Eval | |
| type: private | |
| metrics: | |
| - type: f1_macro | |
| value: 0.7511 | |
| base_model: Qwen/Qwen3-Embedding-4B | |
| # v29NA-openvino-int8-serving | |
| Multi-dimensional classifier for central-bank communications produced by | |
| the CBCommunication training pipeline (`multi_task_gist` rung). | |
| ## Provenance | |
| | Field | Value | | |
| |---|---| | |
| | Trainer | `multi_task_gist` | | |
| | Model kind | `multi_task` | | |
| | Encoder body | `Qwen/Qwen3-Embedding-4B` | | |
| | Loss | `cached_gist` | | |
| | Taxonomy version | `2026-04-rev2` (sha256 `e7c237aac8db66ca`) | | |
| | Training examples | 3584 | | |
| | Validation examples | 1809 | | |
| | Git commit | `9d90b862` (dirty) | | |
| | Created | 2026-04-28T02:41:30.780109+00:00 | | |
| ## Dimensions and labels | |
| ### `topic` (21 classes) | |
| - `Climate change` | |
| - `Crisis management` | |
| - `Currency circulation and management` | |
| - `Financial inclusion` | |
| - `Financial stability` | |
| - `Fiscal policy` | |
| - `Governance` | |
| - `MP - balance sheet size and asset purchase programs` | |
| - `MP - credit` | |
| - `MP - economic activity` | |
| - `MP - exchange rate` | |
| - `MP - inflation` | |
| - `MP - interest rate` | |
| - `MP - labor market` | |
| - `MP - open market operations` | |
| - `MP - reserve requirements` | |
| - `Metadata` | |
| - `Payment system` | |
| - `Structural economic reform` | |
| - `Supervision and regulation` | |
| - `Technological innovation and fintech` | |
| ### `temporal_orientation` (2 classes) | |
| - `Backward-looking` | |
| - `Forward-looking` | |
| ### `audience` (6 classes) | |
| - `Business Sector` | |
| - `Financial Sector` | |
| - `General Public` | |
| - `Government` | |
| - `International Stakeholders` | |
| - `Metadata` | |
| ### `sentiment` (6 classes) | |
| - `Confidence-building` | |
| - `Dovish` | |
| - `Hawkish` | |
| - `Neutral/Balanced` | |
| - `Not applicable` | |
| - `Risk-highlighting` | |
| ## Evaluation (held-out validation set) | |
| | Dimension | Macro F1 | | |
| | --- | --- | | |
| | `topic` | 0.8008 | | |
| | `temporal_orientation` | 0.8957 | | |
| | `audience` | 0.7590 | | |
| | `sentiment` | 0.7511 | | |
| ## Intended use | |
| Classify sentences from central-bank speeches, press releases, and | |
| financial-stability reports along the four CBC taxonomy dimensions | |
| (topic, temporal orientation, audience, sentiment). Produced for | |
| research and policy analysis at the IMF. | |
| ## Limitations | |
| - Trained on a small labeled set; tail classes (low support) carry less | |
| reliable per-class metrics. | |
| - Multilingual coverage depends on the encoder and labeled-set coverage; | |
| the current Qwen3-Embedding family is strong cross-lingually, but | |
| performance still varies on low-resource languages and OCR-heavy inputs. | |
| - Sentiment / temporal labels reflect the taxonomy decision rules in | |
| the source workbook; downstream consumers should re-read those rules | |
| before interpreting per-class deltas. | |
| ## How to load | |
| ```python | |
| # Recommended after registering this revision in config/classifiers.toml: | |
| from cb_communication.processing.classification import load_named_classifier | |
| # Auto-resolves the artefact via the registry's pinned hub_revision. | |
| # Private collaborators authenticate with their own HF_TOKEN. | |
| with load_named_classifier("v29NA-openvino-int8-serving") as clf: | |
| results = clf.classify_chunk([ | |
| "Inflation expectations remain anchored at 2 percent.", | |
| ]) | |
| ``` | |
| Alternative — explicit tag-pinned Hub load: | |
| ```python | |
| from huggingface_hub import snapshot_download | |
| from cb_communication.processing.classification import load_classifier | |
| local = snapshot_download(repo_id="thiagochris/cbcc", revision="v29NA-openvino-int8-serving") | |
| with load_classifier(local) as clf: | |
| ... | |
| ``` | |
| Both call paths satisfy the canonical ``MultiTaskClassifier`` Protocol | |
| (see ``cb_communication/processing/classification/multi_task_classifier.py``) | |
| — the runtime dispatches on ``model_kind`` from ``manifest.json``. | |