cbcc / README.md
thiagochris's picture
cbc artefact 30f5fb0ed9aa
13fa8d3 verified
|
Raw
History Blame Contribute Delete
4.84 kB
---
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``.