test / DEPLOYMENT.md
Ronaldo
first commit
3e08670
# Guide de déploiement sur Hugging Face Spaces
## Prérequis
- Compte Hugging Face: https://huggingface.co
- Git installé localement
- Token HF avec permissions write (https://huggingface.co/settings/tokens)
## Étapes de déploiement
### 1. Créer un Space sur Hugging Face
```bash
# Visite https://huggingface.co/new-space
# - Remplis le formulaire:
# - Name: mms-asr-tts (ou autre nom)
# - License: OpenRAIL (ou CC-BY-NC-4.0 pour correspondre à Meta)
# - Space SDK: Docker
# - Clique "Create Space"
```
### 2. Cloner le Space
```bash
git clone https://huggingface.co/spaces/<username>/<space-name>
cd <space-name>
```
### 3. Copier les fichiers du projet
```bash
# Depuis le répertoire du projet
cp app_v2.py app.py
cp requirements.txt .
cp Dockerfile .
cp README.md .
cp .gitignore .
cp examples.py .
cp client.py .
```
### 4. Configurer le fichier de révision de Hugging Face
Crée `README_SPACE.md` avec les métadonnées:
```yaml
---
title: Meta MMS ASR/TTS
description: API multilingue pour reconnaissance vocale et synthèse vocale
sdk: docker
pinned: false
app_port: 7860
models:
- facebook/mms-1b-all
- facebook/mms-tts-eng
- facebook/mms-tts-yor
- facebook/mms-tts-beh
- facebook/mms-tts-ddn
- facebook/mms-tts-ewe
- facebook/mms-tts-gej
- facebook/mms-tts-tbz
- facebook/mms-tts-bba
tags:
- ASR
- TTS
- Speech
- Audio
- Multilingual
- MMS
---
```
### 5. Pousser vers Hugging Face
```bash
# Configure Git si nécessaire
git config user.email "email@example.com"
git config user.name "Your Name"
# Ajoute et pousse
git add .
git commit -m "Initial commit: Meta MMS ASR/TTS API"
git push
```
### 6. Attendre le déploiement
Le Space se construira automatiquement (5-15 minutes). Pendant ce temps:
- Les dépendances seront installées
- Les modèles seront téléchargés (peut prendre du temps)
- L'application sera lancée
### 7. Tester le Space
```bash
# Accède à: https://huggingface.co/spaces/<username>/<space-name>
# Teste les endpoints:
# - GET / → Documentation
# - GET /health → État
# - POST /tts → Teste avec du texte en Yoruba/autres langues
```
## Troubleshooting
### Erreur: "Model not found"
Solution: Les modèles peuvent prendre du temps à télécharger. Attends 5-10 minutes et réessaie.
### Erreur: "CUDA out of memory"
Solution:
- Réduis MAX_AUDIO_LENGTH ou MAX_TEXT_LENGTH
- Utilise CPU au lieu du GPU
- Ajoute à requirements.txt: `transformers[deepspeed]`
### Erreur: "Port already in use"
Solution: Le port 7860 est utilisé par défaut sur HF Spaces. Vérifier `app_port` dans README.md
## Optimisation pour Production
### Augmenter les ressources
Modifie le `docker-compose.yml`:
```yaml
deploy:
resources:
limits:
memory: 8G
reservations:
memory: 4G
devices:
- driver: nvidia
count: 1 # GPU
capabilities: [gpu]
```
### Ajouter du caching
Modifie le Dockerfile pour persister les modèles:
```dockerfile
ENV HF_HOME=/app/hf_cache
ENV TORCH_HOME=/app/torch_cache
```
### Ajouter de l'authentification
Pour limiter l'accès:
```python
from functools import wraps
from flask import request
def require_token(f):
@wraps(f)
def decorated(*args, **kwargs):
token = request.headers.get('Authorization', '').replace('Bearer ', '')
if token != os.getenv('API_TOKEN'):
return {'error': 'Unauthorized'}, 401
return f(*args, **kwargs)
return decorated
@app.route('/tts', methods=['POST'])
@require_token
def tts():
# ...
```
## Monitoring
### Logs
Accède aux logs du Space:
- https://huggingface.co/spaces/<username>/<space-name>/logs
### Métriques
Ajoute à `app.py`:
```python
from prometheus_client import Counter, Histogram
requests_total = Counter('requests_total', 'Total requests', ['method', 'endpoint'])
request_duration = Histogram('request_duration_seconds', 'Request duration', ['endpoint'])
```
## Coûts
- **Gratuit**: Un Space gratuit avec ressources limitées (2-4GB RAM, pas de GPU)
- **Libre** (avec GPU): Nécessite un Space payant (~$5-20/mois selon GPU)
## Support
Pour les problèmes:
1. Vérifie les logs: https://huggingface.co/spaces/<username>/<space-name>/logs
2. Consulte la doc: https://huggingface.co/docs/hub/spaces
3. Pose une question: https://discuss.huggingface.co
## Prochaines étapes
1. ✅ Déploie d'abord sur HF Spaces
2. Teste tous les endpoints
3. Collecte du feedback
4. Ajoute des fonctionnalités (streaming, batch processing, etc.)