56 lines
1.3 KiB
Markdown
56 lines
1.3 KiB
Markdown
|
|
---
|
||
|
|
license: apache-2.0
|
||
|
|
language:
|
||
|
|
- en
|
||
|
|
tags:
|
||
|
|
- focus-patrol
|
||
|
|
- qwen2.5
|
||
|
|
- classification
|
||
|
|
pipeline_tag: text-generation
|
||
|
|
---
|
||
|
|
|
||
|
|
# Focus Patrol — Fine-tuned Qwen2.5-0.5B v7
|
||
|
|
|
||
|
|
Fine-tuned for 3-label browser tab classification: **focus**, **neutral**, **distraction**.
|
||
|
|
|
||
|
|
**Test accuracy: 90%** | **Validation accuracy: 80%**
|
||
|
|
|
||
|
|
## Training
|
||
|
|
|
||
|
|
- **Base model**: Qwen/Qwen2.5-0.5B-Instruct
|
||
|
|
- **Method**: PEFT LoRA (r=16, alpha=32)
|
||
|
|
- **Data**: 156 labeled browsing examples (136 train + 20 validation)
|
||
|
|
- **Epochs**: 5 (early stopping at epoch 3)
|
||
|
|
- **Hardware**: Apple Silicon MPS
|
||
|
|
|
||
|
|
## Usage with Transformers.js
|
||
|
|
|
||
|
|
```javascript
|
||
|
|
import { pipeline } from '@huggingface/transformers';
|
||
|
|
|
||
|
|
const classifier = await pipeline('text-generation', 'rogeriobayer/focus-patrol-qwen2.5-0.5b-v7', {
|
||
|
|
dtype: 'q4',
|
||
|
|
device: 'webgpu',
|
||
|
|
});
|
||
|
|
|
||
|
|
const result = await classifier(prompt, {
|
||
|
|
max_new_tokens: 64,
|
||
|
|
temperature: 0.3,
|
||
|
|
do_sample: true,
|
||
|
|
return_full_text: false,
|
||
|
|
});
|
||
|
|
```
|
||
|
|
|
||
|
|
## Performance
|
||
|
|
|
||
|
|
| Label | Test Accuracy | Validation Accuracy |
|
||
|
|
|-------|-------------|-------------------|
|
||
|
|
| Focus | 80% | 100% |
|
||
|
|
| Neutral | 100% | 73% |
|
||
|
|
| Distraction | 100% | 83% |
|
||
|
|
| **Overall** | **90%** | **80%** |
|
||
|
|
|
||
|
|
## Training Report
|
||
|
|
|
||
|
|
See [TRAINING_REPORT.md](https://github.com/rogeriobayer/focus-patrol/blob/main/focus-patrol-ai/TRAINING_REPORT.md) for full details.
|