Spaces:
Sleeping
Sleeping
| title: Cfm Topic Classifier | |
| emoji: π» | |
| colorFrom: green | |
| colorTo: green | |
| sdk: gradio | |
| sdk_version: 6.2.0 | |
| app_file: app.py | |
| pinned: false | |
| short_description: ModernBERT encoder model fine-tuned on CFM topics | |
| # π§ WASH CFM Topic Classifier | |
| A Gradio web application for classifying WASH (Water, Sanitation, and Hygiene) feedback into relevant topic categories using a fine-tuned ModernBERT model. | |
| ## Features | |
| - **Topic Classification**: Automatically classifies WASH feedback into relevant topic categories | |
| - **ModernBERT Integration**: Uses a fine-tuned ModernBERT-large model for accurate classification | |
| - **Multi-Device Support**: Automatically detects and utilizes the best available device: | |
| - Apple Silicon (MPS) | |
| - NVIDIA GPU (CUDA) | |
| - CPU fallback | |
| - **Top-K Predictions**: Shows the top 2 most probable topics with confidence scores | |
| - **Interactive Interface**: User-friendly Gradio interface with real-time classification | |
| - **Input Validation**: Validates input and provides helpful error messages | |
| ## Installation | |
| 1. Clone or download this repository | |
| 2. Install the required dependencies: | |
| ```bash | |
| pip install -r requirements.txt | |
| ``` | |
| 3. Ensure the model files are available in the `./wash_cfm_classifier/` directory | |
| ## Usage | |
| 1. Run the application: | |
| ```bash | |
| python app.py | |
| ``` | |
| 2. Open your web browser and navigate to `http://localhost:7860` | |
| 3. Enter WASH feedback text in the input box (e.g., "The water pump in our area has been broken for 3 days...") | |
| 4. Click "Submit" to get topic predictions with confidence scores | |
| 5. Use the "Clear" button to reset the interface | |
| ## Requirements | |
| - Python 3.7+ | |
| - torch>=2.0.0 | |
| - transformers>=4.30.0 | |
| - gradio>=4.0.0 | |
| ## Technical Details | |
| - **Model**: Fine-tuned ModernBERT-large for sequence classification | |
| - **Framework**: Gradio for web interface | |
| - **Device Support**: Automatic device detection (MPS/CUDA/CPU) | |
| - **Caching**: LRU cache for model loading to improve performance | |
| - **Output Format**: HTML-formatted results with confidence percentages | |
| ## Example Input/Output | |
| **Input**: "The water pump in our area has been broken for 3 days and we need access to clean water" | |
| **Output**: | |
| 1. **Water Supply** - Confidence: 95.2% | |
| 2. **Infrastructure** - Confidence: 87.1% | |
| ## Error Handling | |
| - Validates empty or whitespace-only input | |
| - Handles missing model files gracefully | |
| - Provides detailed error messages for troubleshooting | |
| ## Configuration | |
| - **Server Address**: `0.0.0.0` (all interfaces) | |
| - **Port**: `7860` | |
| - **Model Path**: `./wash_cfm_classifier/` | |
| - **Top-K Predictions**: `2` | |
| ## License | |
| UNICEF WASH Cluster CFM System | |
| --- | |
| *Powered by ModernBERT-large | UNICEF WASH Cluster CFM System* | |