rahilsinghi's picture
Upload README.md with huggingface_hub
7c73aff verified
|
Raw
History Blame Contribute Delete
7.59 kB
---
language: en
license: apache-2.0
tags:
- vision
- vision-language
- knowledge-distillation
- egocentric-qa
- qwen2-vl
- edge-deployment
- model-compression
datasets:
- custom-egocentric-qa
metrics:
- latency
- throughput
- vram-usage
model-index:
- name: FirstSight-Qwen2-VL-2B-Distilled
results:
- task:
type: visual-question-answering
name: Egocentric Visual Question Answering
metrics:
- type: compression-ratio
value: 3.75
name: Model Compression
- type: speedup
value: 5.16
name: Inference Speedup
- type: vram-reduction
value: 67.9
name: VRAM Reduction (%)
---
# FirstSight: Distilled Qwen2-VL-2B for Efficient Egocentric QA
## Model Description
FirstSight is a **knowledge-distilled vision-language model** optimized for efficient egocentric question answering on edge devices. This model is distilled from [Qwen2-VL-7B-Instruct](https://huggingface.co/Qwen/Qwen2-VL-7B-Instruct) using advanced distillation techniques, achieving **3.75× compression** with minimal performance degradation.
### Key Highlights
- 🚀 **5.16× faster inference** than teacher model
- 💾 **67.9% VRAM reduction** (9.39 GB savings)
- 📦 **73.4% smaller model size** (2.21B vs 8.29B parameters)
-**Optimized for edge deployment** on resource-constrained devices
- 🎯 **Specialized for egocentric scenarios** (first-person perspective)
### Model Architecture
- **Base Model**: [Qwen2-VL-2B-Instruct](https://huggingface.co/Qwen/Qwen2-VL-2B-Instruct)
- **Teacher Model**: [Qwen2-VL-7B-Instruct](https://huggingface.co/Qwen/Qwen2-VL-7B-Instruct)
- **Student Parameters**: 2.21B
- **Precision**: BFloat16 mixed precision
- **Distillation Method**: Logit-based knowledge distillation with KL divergence
## Training Details
### Training Data
- **Dataset**: Synthetic egocentric QA dataset with 5,000 training samples
- **Validation Set**: 1,000 samples
- **Question Types**: Object recognition, spatial reasoning, action understanding, temporal queries, environment understanding
- **Scenarios**: Kitchen, living room, office, outdoor, workshop
### Training Procedure
- **Framework**: PyTorch with Hugging Face Transformers
- **Epochs**: 10
- **Batch Size**: 2 per GPU with 4× gradient accumulation
- **Learning Rate**: 1e-5 (AdamW optimizer)
- **Scheduler**: Cosine annealing with 100 warmup steps
- **Loss Function**: Weighted combination of distillation loss (α=0.7) and hard label loss (α=0.3)
- **Temperature**: 2.0 for knowledge distillation
- **Hardware**: NVIDIA Quadro RTX 8000 (48GB)
- **Training Time**: ~4 hours
### Training Hyperparameters
```python
{
"learning_rate": 1e-5,
"optimizer": "AdamW",
"weight_decay": 0.01,
"gradient_accumulation_steps": 4,
"max_grad_norm": 1.0,
"warmup_steps": 100,
"temperature": 2.0,
"alpha": 0.7,
"epochs": 10
}
```
## Performance Metrics
### Inference Speed
| Metric | Teacher (7B) | Student (2B) | Improvement |
|--------|-------------|-------------|-------------|
| **Avg Latency** | 1.260s | 0.244s | **5.16×** |
| **Throughput (samples/s)** | 0.79 | 4.10 | **5.16×** |
| **Throughput (tokens/s)** | 34.33 | 162.55 | **5.16×** |
### Memory Usage
| Metric | Teacher (7B) | Student (2B) | Savings |
|--------|-------------|-------------|---------|
| **Model Size** | 8.29B params | 2.21B params | **73.4%** |
| **Peak VRAM** | 13.81 GB | 4.43 GB | **9.39 GB** |
| **VRAM Reduction** | - | - | **67.9%** |
### Model Compression
- **Compression Ratio**: 3.75×
- **Parameter Reduction**: 73.4%
- **From**: 8.29B parameters
- **To**: 2.21B parameters
## Usage
### Installation
```bash
pip install transformers torch pillow qwen-vl-utils
```
### Inference Example
```python
from transformers import Qwen2VLForConditionalGeneration, AutoProcessor
from PIL import Image
import torch
# Load model and processor
model_name = "YOUR_USERNAME/firstsight-qwen2-vl-2b-distilled"
model = Qwen2VLForConditionalGeneration.from_pretrained(
model_name,
torch_dtype=torch.bfloat16,
device_map="auto"
)
processor = AutoProcessor.from_pretrained(model_name)
# Prepare image and question
image = Image.open("egocentric_image.jpg")
question = "What object am I holding in my right hand?"
# Create conversation template
messages = [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": [
{"type": "image", "image": image},
{"type": "text", "text": f"Question: {question}\nAnswer concisely:"}
]
}
]
# Prepare inputs
text = processor.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = processor(text=[text], images=[image], return_tensors="pt", padding=True)
inputs = inputs.to(model.device)
# Generate answer
with torch.no_grad():
outputs = model.generate(
**inputs,
max_new_tokens=128,
do_sample=False
)
# Decode response
response = processor.batch_decode(
outputs[:, inputs['input_ids'].shape[1]:],
skip_special_tokens=True,
clean_up_tokenization_spaces=False
)[0]
print(f"Answer: {response}")
```
## Intended Use
### Primary Use Cases
- **Egocentric Visual Question Answering**: Answer questions about first-person perspective images/videos
- **Edge Device Deployment**: Run VLM inference on resource-constrained hardware (mobile, IoT, AR/VR)
- **Real-time Assistive Systems**: Power low-latency visual assistants for wearable cameras
- **Smart Glasses Applications**: Enable efficient VLM capabilities on AR/VR headsets
### Supported Question Types
1. **Object Recognition**: "What object did I just pick up?"
2. **Spatial Reasoning**: "Where is the nearest door?"
3. **Action Understanding**: "What action am I performing?"
4. **Temporal Queries**: "What was I looking at 5 seconds ago?"
5. **Environment Understanding**: "What room am I in?"
6. **Counting**: "How many items are on the table?"
7. **Attribute Recognition**: "What color is the object I'm holding?"
## Limitations
- Model is specialized for **egocentric scenarios** and may perform worse on third-person images
- Trained on **synthetic data** - real-world performance may vary
- **No multimodal training** - relies solely on knowledge distillation
- May inherit biases from the teacher model (Qwen2-VL-7B)
- Limited to **short-form QA** - not optimized for long conversations
## Ethical Considerations
- **Privacy**: Egocentric images often contain sensitive personal information. Ensure proper consent and data protection.
- **Bias**: Model may exhibit biases from training data and teacher model. Evaluate on diverse datasets.
- **Misuse**: Could be used for unauthorized surveillance. Deploy responsibly with user consent.
## Citation
If you use this model in your research, please cite:
```bibtex
@misc{firstsight2024,
title={FirstSight: Efficient Knowledge Distillation for Vision-Language Models on Edge Devices},
author={NYU HPML Project Team},
year={2024},
howpublished={\url{https://huggingface.co/YOUR_USERNAME/firstsight-qwen2-vl-2b-distilled}},
note={Distilled from Qwen2-VL-7B-Instruct for egocentric question answering}
}
```
## Model Card Authors
NYU High Performance Machine Learning (HPML) Project Team
## Model Card Contact
For questions or feedback, please open an issue on the [GitHub repository](https://github.com/rahils/firstsight).
---
**Training Date**: December 8-9, 2024
**Evaluation Date**: 2025-12-09T00:32:52.669538
**Framework**: PyTorch 2.3.0, Transformers 4.57.3, BitsAndBytes 0.48.2