Spaces:
Sleeping
Sleeping
Qwen Multi-label Text Classifier
Overview
A multi-label text classifier based on Qwen-1.5B, fine-tuned for coding exercise classification. Supports:
- Local CPU/GPU inference
- Hugging Face API deployment
- Batch evaluation
- REST API via FastAPI
- Docker deployment
Features
- 9 Label Classification: Predicts multiple tags per text
- CLI Interface: Run predictions/evaluations from terminal
- Dual Backend: Choose between local or HF inference
- GPU Optimized: CUDA support via Docker
Installation
git clone https://github.com/your-username/qwen-classifier
cd qwen-classifier
python3 -m venv .venv
source .venv/bin/activate
pip install -e .
Usage
CLI Prediction
# Local inference
qwen-clf predict "Your coding exercise text" --backend local
# HF Space inference
qwen-clf predict "Your text" --backend hf --hf-token YOUR_TOKEN
Batch Evaluation
qwen-clf evaluate dataset.zip --backend local
API Server
uvicorn app:app --host 0.0.0.0 --port 7860
API Endpoints
Endpoint | Method | Description |
---|---|---|
/ |
GET | Documentation |
/predict |
POST | Single text prediction |
/evaluate |
POST | Batch evaluation (ZIP) |
/health |
GET | Service status |
Docker Deployment
# Build with GPU support
docker build -t qwen-classifier .
# Run container
docker run -p 7860:7860 --gpus all qwen-classifier
Project Structure
.
βββ app.py # FastAPI entry point
βββ Dockerfile # GPU-optimized container setup
βββ qwen_classifier/ # Core package
β βββ cli.py # Command line interface
β βββ model.py # Qwen classifier implementation
β βββ predict.py # Inference logic
β βββ evaluate.py # Batch evaluation
βββ requirements.txt # Python dependencies
Configuration
Edit qwen_classifier/config.py
to set:
TAG_NAMES
: List of 9 classification tagsHF_REPO
: Default Hugging Face model repoDEVICE
: Auto-detected CUDA/CPU
Hugging Face Space
License
Apache 2.0 Β© Keivan Razban