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