Servidor de modelos PyTorch para inferencia de modelos de verificación de identidad con batching y versionado
Configura y despliega TorchServe como servidor de modelos PyTorch para servir los modelos de liveness detection (MiniFASNet), face recognition (ArcFace) y anti-spoofing del pipeline KYC. Proporciona batching dinámico, versionado de modelos y métricas de rendimiento integradas para monitoreo en producción.
Usa esta skill cuando necesites desplegar o configurar el servidor de inferencia PyTorch dentro del model_server_agent. Aplica cuando se requiera servir modelos ML del pipeline de verificación facial con soporte para batching, múltiples versiones simultáneas y endpoints de métricas.
Instalar TorchServe y sus dependencias:
pip install torchserve torch-model-archiver torch-workflow-archiver
Empaquetar cada modelo como un MAR (Model Archive) usando torch-model-archiver:
torch-model-archiver --model-name arcface \
--version 1.0 \
--model-file models/arcface.py \
--serialized-file weights/arcface_r100.pth \
--handler handlers/face_recognition_handler.py \
--export-path model_store/
Configurar el archivo config.properties con batching dinámico, número de workers y puertos:
inference_address=http://0.0.0.0:8080
management_address=http://0.0.0.0:8081
metrics_address=http://0.0.0.0:8082
job_queue_size=100
batch_size=8
max_batch_delay=200
default_workers_per_model=2
Crear handlers personalizados para cada tipo de modelo (liveness, face_match, anti-spoofing) que implementen initialize(), preprocess(), inference() y postprocess().
Iniciar TorchServe con el model store y la configuración:
torchserve --start --model-store model_store/ \
--ts-config config.properties \
--models arcface=arcface.mar liveness=minifasnet.mar
Registrar nuevas versiones de modelos en caliente mediante la Management API:
curl -X POST "http://localhost:8081/models?url=arcface_v2.mar&model_name=arcface&initial_workers=2"
Configurar métricas de Prometheus para monitorear latencia de inferencia, throughput y errores por modelo:
metrics_mode=prometheus
metrics_format=prometheus
Implementar health checks en el endpoint /ping y validar que todos los modelos estén cargados antes de aceptar tráfico de verificación.
batch_size y max_batch_delay según la carga esperada.