| # PULSE-7B Handler Deployment Guide | |
| ## 🚀 Deployment Rehberi | |
| ### Gereksinimler | |
| - Python 3.8+ | |
| - CUDA 11.8+ (GPU kullanımı için) | |
| - Minimum 16GB RAM (CPU), 8GB VRAM (GPU) | |
| ### Kurulum | |
| 1. **Bağımlılıkları yükleyin:** | |
| ```bash | |
| pip install -r requirements.txt | |
| ``` | |
| 2. **PULSE LLaVA Installation (PULSE-7B için kritik):** | |
| ```bash | |
| # PULSE-7B için PULSE'un kendi LLaVA implementasyonu gerekli: | |
| pip install git+https://github.com/AIMedLab/PULSE.git#subdirectory=LLaVA | |
| # Bu otomatik olarak transformers==4.37.2 yükleyecektir | |
| ``` | |
| 3. **Flash Attention (isteğe bağlı, performans için):** | |
| ```bash | |
| pip install flash-attn --no-build-isolation | |
| ``` | |
| ### HuggingFace Inference Deployment | |
| #### 1. Model Repository Yapısı | |
| ``` | |
| your-model-repo/ | |
| ├── handler.py | |
| ├── config.json | |
| ├── generation_config.json | |
| ├── requirements.txt | |
| ├── model.safetensors.index.json | |
| ├── tokenizer_config.json | |
| ├── special_tokens_map.json | |
| └── tokenizer.model | |
| ``` | |
| #### 2. Endpoint Oluşturma | |
| ```bash | |
| # HuggingFace CLI ile deploy | |
| huggingface-cli login | |
| huggingface-cli repo create your-pulse-endpoint --type=space | |
| ``` | |
| #### 3. Test Requests | |
| **Image URL ile test:** | |
| ```bash | |
| curl -X POST "YOUR_ENDPOINT_URL" \ | |
| -H "Content-Type: application/json" \ | |
| -d '{ | |
| "inputs": { | |
| "query": "Analyze this ECG image", | |
| "image": "https://i.imgur.com/7uuejqO.jpeg" | |
| }, | |
| "parameters": { | |
| "temperature": 0.2, | |
| "max_new_tokens": 512 | |
| } | |
| }' | |
| ``` | |
| **Base64 ile test:** | |
| ```bash | |
| curl -X POST "YOUR_ENDPOINT_URL" \ | |
| -H "Content-Type: application/json" \ | |
| -d '{ | |
| "inputs": { | |
| "query": "What do you see in this ECG?", | |
| "image": "data:image/jpeg;base64,/9j/4AAQ..." | |
| }, | |
| "parameters": { | |
| "temperature": 0.2 | |
| } | |
| }' | |
| ``` | |
| ### Performans Optimizasyonları | |
| #### GPU Memory Optimizasyonu | |
| - `torch_dtype=torch.bfloat16` kullanın | |
| - `low_cpu_mem_usage=True` ayarlayın | |
| - `device_map="auto"` ile otomatik dağıtım | |
| #### CPU Optimizasyonu | |
| - `torch_dtype=torch.float32` kullanın | |
| - Thread sayısını ayarlayın: `torch.set_num_threads(4)` | |
| ### Monitoring ve Debugging | |
| #### Log Seviyeleri | |
| ```python | |
| import logging | |
| logging.basicConfig(level=logging.INFO) | |
| ``` | |
| #### Memory Usage | |
| ```python | |
| import torch | |
| print(f"GPU Memory: {torch.cuda.memory_allocated()/1024**3:.2f}GB") | |
| ``` | |
| ### Troubleshooting | |
| #### Common Issues: | |
| 1. **"llava_llama architecture not recognized" Error** | |
| ```bash | |
| # PULSE-7B Solution: Install PULSE's LLaVA implementation | |
| pip install git+https://github.com/AIMedLab/PULSE.git#subdirectory=LLaVA | |
| # Also install development transformers | |
| pip install git+https://github.com/huggingface/transformers.git | |
| # Or add both to requirements.txt: | |
| git+https://github.com/huggingface/transformers.git | |
| git+https://github.com/AIMedLab/PULSE.git#subdirectory=LLaVA | |
| ``` | |
| 2. **CUDA Out of Memory** | |
| - Batch size'ı azaltın | |
| - `max_new_tokens` değerini düşürün | |
| - Gradient checkpointing kullanın | |
| 3. **Slow Image Processing** | |
| - Image timeout değerini artırın | |
| - Image resize threshold ayarlayın | |
| 4. **Model Loading Issues** | |
| - HuggingFace token'ını kontrol edin | |
| - Network bağlantısını doğrulayın | |
| - Cache dizinini temizleyin | |
| - Transformers sürümünü kontrol edin | |
| ### Security Best Practices | |
| - Image URL'leri validate edin | |
| - Base64 boyut limitlerini ayarlayın | |
| - Rate limiting uygulayın | |
| - Input sanitization yapın | |
| ### Monitoring Metrics | |
| - Response time | |
| - Memory usage | |
| - Error rates | |
| - Image processing success rate | |
| - Token generation speed | |