--- 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