Meet YOLO26: next-gen vision AI.

Link to this sectionBuenas prácticas para el Despliegue de modelos#

Link to this sectionIntroducción#

El despliegue de modelos es el paso en un proyecto de visión por ordenador que traslada un modelo de la fase de desarrollo a una aplicación real. Existen varias opciones de despliegue de modelos: el despliegue en la nube ofrece escalabilidad y facilidad de acceso, el despliegue en el edge reduce la latencia al acercar el modelo a la fuente de datos, y el despliegue local garantiza la privacidad y el control. Elegir la estrategia adecuada depende de las necesidades de tu aplicación, equilibrando velocidad, seguridad y escalabilidad.



Watch: How to Optimize and Deploy AI Models: Best Practices, Troubleshooting, and Security Considerations

También es importante seguir las mejores prácticas al desplegar un modelo, ya que el despliegue puede afectar significativamente la eficacia y fiabilidad del rendimiento del modelo. En esta guía, nos centraremos en cómo asegurarte de que el despliegue de tu modelo sea fluido, eficiente y seguro.

Link to this sectionOpciones de despliegue de modelos#

A menudo, una vez que un modelo está entrenado, evaluado y probado, necesita ser convertido a formatos específicos para ser desplegado eficazmente en varios entornos, como la nube, el edge o dispositivos locales.

Con YOLO26, puedes exportar tu modelo a varios formatos según tus necesidades de despliegue. Por ejemplo, exportar YOLO26 a ONNX es sencillo e ideal para transferir modelos entre frameworks. Para explorar más opciones de integración y asegurar un despliegue fluido en diferentes entornos, visita nuestro centro de integración de modelos.

Link to this sectionElegir un entorno de despliegue#

Elegir dónde desplegar tu modelo de visión por ordenador depende de múltiples factores. Los diferentes entornos tienen beneficios y desafíos únicos, por lo que es esencial elegir el que mejor se adapte a tus necesidades.

Link to this sectionDespliegue en la nube#

El despliegue en la nube es ideal para aplicaciones que necesitan escalar rápidamente y manejar grandes cantidades de datos. Plataformas como AWS, Google Cloud y Azure facilitan la gestión de tus modelos desde el entrenamiento hasta el despliegue. Ofrecen servicios como AWS SageMaker, Google AI Platform y Azure Machine Learning para ayudarte durante todo el proceso.

Sin embargo, usar la nube puede ser costoso, especialmente con un alto uso de datos, y podrías enfrentar problemas de latencia si tus usuarios están lejos de los centros de datos. Para gestionar los costes y el rendimiento, es importante optimizar el uso de recursos y asegurar el cumplimiento de las normas de privacidad de datos.

Link to this sectionDespliegue en el edge#

El despliegue en el edge funciona bien para aplicaciones que necesitan respuestas en tiempo real y baja latencia, particularmente en lugares con acceso a internet limitado o nulo. Desplegar modelos en dispositivos de edge como smartphones o gadgets IoT garantiza un procesamiento rápido y mantiene los datos locales, lo que mejora la privacidad. Desplegar en el edge también ahorra ancho de banda debido a la reducción de datos enviados a la nube.

Sin embargo, los dispositivos de edge a menudo tienen una potencia de procesamiento limitada, por lo que tendrás que optimizar tus modelos. Herramientas como TensorFlow Lite y NVIDIA Jetson pueden ayudar. A pesar de los beneficios, mantener y actualizar muchos dispositivos puede ser un desafío.

Link to this sectionDespliegue local#

El despliegue local es mejor cuando la privacidad de los datos es crítica o cuando hay acceso a internet poco fiable o inexistente. Ejecutar modelos en servidores locales o equipos de escritorio te da un control total y mantiene tus datos seguros. También puede reducir la latencia si el servidor está cerca del usuario.

Sin embargo, escalar localmente puede ser difícil y el mantenimiento puede llevar mucho tiempo. Usar herramientas como Docker para la contenedorización y Kubernetes para la gestión puede ayudar a hacer los despliegues locales más eficientes. Las actualizaciones y el mantenimiento regulares son necesarios para mantener todo funcionando sin problemas.

Link to this sectionContenedorización para un despliegue optimizado#

La contenedorización es un enfoque potente que empaqueta tu modelo y todas sus dependencias en una unidad estandarizada llamada contenedor. Esta técnica garantiza un rendimiento constante en diferentes entornos y simplifica el proceso de despliegue.

Link to this sectionBeneficios de usar Docker para el despliegue de modelos#

Docker se ha convertido en el estándar de la industria para la contenedorización en despliegues de aprendizaje automático por varias razones:

  • Consistencia del entorno: Los contenedores de Docker encapsulan tu modelo y todas sus dependencias, eliminando el problema de "en mi máquina funciona" al garantizar un comportamiento consistente en los entornos de desarrollo, pruebas y producción.
  • Aislamiento: Los contenedores aíslan las aplicaciones unas de otras, evitando conflictos entre diferentes versiones de software o librerías.
  • Portabilidad: Los contenedores de Docker pueden ejecutarse en cualquier sistema que soporte Docker, facilitando el despliegue de tus modelos en diferentes plataformas sin modificaciones.
  • Escalabilidad: Los contenedores pueden escalarse fácilmente hacia arriba o hacia abajo según la demanda, y las herramientas de orquestación como Kubernetes pueden automatizar este proceso.
  • Control de versiones: Las imágenes de Docker pueden ser versionadas, lo que te permite realizar un seguimiento de los cambios y volver a versiones anteriores si es necesario.

Link to this sectionImplementación de Docker para el despliegue de YOLO26#

Para contenerizar tu modelo YOLO26, puedes crear un Dockerfile que especifique todas las dependencias y configuraciones necesarias. Aquí tienes un ejemplo básico:

FROM ultralytics/ultralytics:latest

WORKDIR /app

# Copy your model and any additional files
COPY ./models/yolo26n.pt /app/models/
COPY ./scripts /app/scripts/

# Set up any environment variables
ENV MODEL_PATH=/app/models/yolo26n.pt

# Command to run when the container starts
CMD ["python", "/app/scripts/predict.py"]

Este enfoque garantiza que el despliegue de tu modelo sea reproducible y coherente en el desarrollo, las pruebas y la producción.

Link to this sectionTécnicas de optimización de modelos#

Optimizar tu modelo de visión artificial ayuda a que funcione de manera eficiente, especialmente al desplegarlo en entornos con recursos limitados como dispositivos edge. Aquí tienes algunas técnicas clave para optimizar tu modelo.

Link to this sectionPoda de modelos (Model Pruning)#

La poda reduce el tamaño del modelo eliminando los pesos que contribuyen poco al resultado final. Hace que el modelo sea más pequeño y rápido sin afectar significativamente a la precisión. La poda implica identificar y eliminar parámetros innecesarios, lo que resulta en un modelo más ligero que requiere menos potencia computacional. Es particularmente útil para desplegar modelos en dispositivos con recursos limitados.

Neural network pruning workflow

Link to this sectionCuantización de modelos (Model Quantization)#

La cuantización convierte los pesos y activaciones del modelo de alta precisión (como los floats de 32 bits) a una precisión menor (como los enteros de 8 bits). Al reducir el tamaño del modelo, se acelera la inferencia. El entrenamiento consciente de la cuantización (QAT, por sus siglas en inglés) es un método en el que el modelo se entrena teniendo en cuenta la cuantización, conservando la precisión mejor que la cuantización post-entrenamiento. Al manejar la cuantización durante la fase de entrenamiento, el modelo aprende a ajustarse a una menor precisión, manteniendo el rendimiento mientras reduce las demandas computacionales.

Optimized model efficiency for deployment

Link to this sectionDestilación de conocimiento (Knowledge Distillation)#

La destilación de conocimiento implica entrenar a un modelo más pequeño y sencillo (el alumno) para imitar los resultados de un modelo más grande y complejo (el profesor). El modelo alumno aprende a aproximarse a las predicciones del profesor, lo que resulta en un modelo compacto que conserva gran parte de la precisión del profesor. Esta técnica es beneficiosa para crear modelos eficientes adecuados para su despliegue en dispositivos de edge con recursos limitados.

Knowledge distillation training process

Link to this sectionSolución de problemas de despliegue#

Es posible que te enfrentes a desafíos al desplegar tus modelos de visión por ordenador, pero entender los problemas comunes y las soluciones puede hacer que el proceso sea más fluido. Aquí tienes algunos consejos generales de solución de problemas y mejores prácticas para ayudarte a navegar por los problemas de despliegue.

Link to this sectionTu modelo es menos preciso después del despliegue#

Experimentar una caída en la precisión de tu modelo después del despliegue puede ser frustrante. Este problema puede derivar de varios factores. Aquí tienes algunos pasos para ayudarte a identificar y resolver el problema:

  • Comprueba la consistencia de los datos: Comprueba que los datos que tu modelo está procesando post-despliegue son consistentes con los datos con los que fue entrenado. Las diferencias en la distribución de los datos, la calidad o el formato pueden afectar significativamente al rendimiento.
  • Valida los pasos de preprocesamiento: Verifica que todos los pasos de preprocesamiento aplicados durante el entrenamiento también se apliquen de forma consistente durante el despliegue. Esto incluye redimensionar imágenes, normalizar valores de píxeles y otras transformaciones de datos.
  • Evalúa el entorno del modelo: Asegúrate de que las configuraciones de hardware y software utilizadas durante el despliegue coincidan con las utilizadas durante el entrenamiento. Las diferencias en librerías, versiones y capacidades de hardware pueden introducir discrepancias.
  • Monitoriza la inferencia del modelo: Registra las entradas y salidas en varias etapas de la tubería de inferencia para detectar cualquier anomalía. Puede ayudar a identificar problemas como la corrupción de datos o el manejo inadecuado de las salidas del modelo.
  • Revisa la exportación y conversión del modelo: Vuelve a exportar el modelo y asegúrate de que el proceso de conversión mantiene la integridad de los pesos y la arquitectura del modelo.
  • Prueba con un conjunto de datos controlado: Despliega el modelo en un entorno de pruebas con un conjunto de datos que controles y compara los resultados con la fase de entrenamiento. Puedes identificar si el problema está en el entorno de despliegue o en los datos.

Al desplegar YOLO26, varios factores pueden afectar a la precisión del modelo. Convertir modelos a formatos como TensorRT implica optimizaciones como la cuantización de pesos y la fusión de capas, lo que puede causar pequeñas pérdidas de precisión. Usar FP16 (precisión media) en lugar de FP32 (precisión total) puede acelerar la inferencia pero puede introducir errores de precisión numérica. Además, las restricciones de hardware, como las del Jetson Nano, con un menor número de núcleos CUDA y un ancho de banda de memoria reducido, pueden afectar al rendimiento.

Link to this sectionLas inferencias están tardando más de lo que esperabas#

Al desplegar modelos de aprendizaje automático, es importante que se ejecuten de manera eficiente. Si las inferencias están tardando más de lo esperado, puede afectar a la experiencia del usuario y a la eficacia de tu aplicación. Aquí tienes algunos pasos para ayudarte a identificar y resolver el problema:

  • Implementa ejecuciones de calentamiento (Warm-Up): Las ejecuciones iniciales a menudo incluyen una sobrecarga de configuración, lo que puede sesgar las mediciones de latencia. Realiza algunas inferencias de calentamiento antes de medir la latencia. Excluir estas ejecuciones iniciales proporciona una medición más precisa del rendimiento del modelo.
  • Optimiza el motor de inferencia: Comprueba dos veces que el motor de inferencia esté totalmente optimizado para tu arquitectura de GPU específica. Usa los controladores y versiones de software más recientes adaptados a tu hardware para asegurar el máximo rendimiento y compatibilidad.
  • Usa procesamiento asíncrono: El procesamiento asíncrono puede ayudar a gestionar las cargas de trabajo de manera más eficiente. Usa técnicas de procesamiento asíncrono para manejar múltiples inferencias simultáneamente, lo que puede ayudar a distribuir la carga y reducir los tiempos de espera.
  • Perfil de la tubería de inferencia: Identificar cuellos de botella en la tubería de inferencia puede ayudar a localizar la fuente de los retrasos. Usa herramientas de perfilado para analizar cada paso del proceso de inferencia, identificando y abordando cualquier etapa que cause retrasos significativos, como capas ineficientes o problemas de transferencia de datos.
  • Usa la precisión adecuada: Usar una precisión mayor a la necesaria puede ralentizar los tiempos de inferencia. Experimenta usando una menor precisión, como FP16 (precisión media), en lugar de FP32 (precisión total). Aunque FP16 puede reducir el tiempo de inferencia, ten en cuenta también que puede afectar a la precisión del modelo.

Si te enfrentas a este problema mientras despliegas YOLO26, ten en cuenta que YOLO26 ofrece varios tamaños de modelo, como YOLO26n (nano) para dispositivos con menor capacidad de memoria y YOLO26x (extra-large) para GPUs más potentes. Elegir la variante de modelo adecuada para tu hardware puede ayudar a equilibrar el uso de memoria y el tiempo de procesamiento.

Ten en cuenta también que el tamaño de las imágenes de entrada afecta directamente al uso de memoria y al tiempo de procesamiento. Las resoluciones más bajas reducen el uso de memoria y aceleran la inferencia, mientras que las resoluciones más altas mejoran la precisión pero requieren más memoria y potencia de procesamiento.

Link to this sectionConsideraciones de seguridad en el despliegue de modelos#

Otro aspecto importante del despliegue es la seguridad. La seguridad de tus modelos desplegados es crítica para proteger datos sensibles y la propiedad intelectual. Aquí tienes algunas mejores prácticas que puedes seguir relacionadas con el despliegue seguro de modelos.

Link to this sectionTransmisión segura de datos#

Asegurarse de que los datos enviados entre clientes y servidores sean seguros es muy importante para evitar que sean interceptados o accedidos por partes no autorizadas. Puedes usar protocolos de cifrado como TLS (Transport Layer Security) para cifrar los datos mientras se transmiten. Incluso si alguien intercepta los datos, no podrá leerlos. También puedes usar cifrado de extremo a extremo que protege los datos desde la fuente hasta el destino, para que nadie en el camino pueda acceder a ellos.

Link to this sectionControles de acceso#

Es esencial controlar quién puede acceder a tu modelo y a sus datos para evitar el uso no autorizado. Usa métodos de autenticación fuertes para verificar la identidad de los usuarios o sistemas que intentan acceder al modelo, y considera añadir seguridad adicional con autenticación de múltiples factores (MFA). Configura el control de acceso basado en roles (RBAC) para asignar permisos basados en los roles de los usuarios, de modo que las personas solo tengan acceso a lo que necesitan. Mantén registros de auditoría detallados para rastrear todos los accesos y cambios en el modelo y sus datos, y revisa regularmente estos registros para detectar cualquier actividad sospechosa.

Link to this sectionOfuscación de modelos#

Proteger tu modelo frente a la ingeniería inversa o el mal uso puede hacerse mediante la ofuscación de modelos. Implica cifrar los parámetros del modelo, como los pesos y sesgos en redes neuronales, para dificultar que personas no autorizadas entiendan o alteren el modelo. También puedes ofuscar la arquitectura del modelo renombrando capas y parámetros o añadiendo capas ficticias, lo que dificulta que los atacantes realicen ingeniería inversa. Además, puedes servir el modelo en un entorno seguro, como un enclave seguro o usando un entorno de ejecución de confianza (TEE), lo que puede proporcionar una capa extra de protección durante la inferencia.

Link to this sectionConclusión y próximos pasos#

Hemos recorrido algunas de las mejores prácticas a seguir al desplegar modelos de visión por ordenador. Al asegurar los datos, controlar el acceso y ofuscar los detalles del modelo, puedes proteger información sensible mientras mantienes tus modelos funcionando sin problemas. También hemos discutido cómo abordar problemas comunes como la reducción de la precisión y la lentitud de las inferencias usando estrategias como ejecuciones de calentamiento, optimización de motores, procesamiento asíncrono, perfilado de tuberías y elección de la precisión adecuada.

Después de desplegar tu modelo, el siguiente paso es monitorizar, mantener y documentar tu aplicación. La monitorización periódica ayuda a detectar y solucionar problemas rápidamente, el mantenimiento mantiene tus modelos actualizados y funcionales, y una buena documentación registra todos los cambios y actualizaciones. Estos pasos te ayudarán a alcanzar los objetivos de tu proyecto de visión artificial.

Link to this sectionFAQ#

Link to this section¿Cuáles son las mejores prácticas para desplegar un modelo de aprendizaje automático usando Ultralytics YOLO26?#

Desplegar un modelo de aprendizaje automático, particularmente con Ultralytics YOLO26, implica varias mejores prácticas para asegurar la eficiencia y fiabilidad. Primero, elige el entorno de despliegue que se adapte a tus necesidades: nube, edge o local. Optimiza tu modelo a través de técnicas como poda, cuantización y destilación de conocimiento para un despliegue eficiente en entornos con recursos limitados. Considera usar contenedorización con Docker para asegurar la consistencia en diferentes entornos. Por último, asegúrate de que la consistencia de los datos y los pasos de preprocesamiento se alineen con la fase de entrenamiento para mantener el rendimiento. También puedes consultar las opciones de despliegue de modelos para obtener directrices más detalladas.

Link to this section¿Cómo puedo solucionar los problemas comunes de despliegue con modelos Ultralytics YOLO26?#

La solución de problemas de despliegue puede dividirse en unos pocos pasos clave. Si la precisión de tu modelo cae después del despliegue, comprueba la consistencia de los datos, valida los pasos de preprocesamiento y asegúrate de que el entorno de hardware/software coincide con el que usaste durante el entrenamiento. Para tiempos de inferencia lentos, realiza ejecuciones de calentamiento, optimiza tu motor de inferencia, usa procesamiento asíncrono y perfila tu tubería de inferencia. Consulta solución de problemas de despliegue para obtener una guía detallada sobre estas mejores prácticas.

Link to this section¿Cómo mejora la optimización de Ultralytics YOLO26 el rendimiento del modelo en dispositivos de edge?#

Optimizar los modelos de Ultralytics YOLO26 para dispositivos de edge implica usar técnicas como la poda para reducir el tamaño del modelo, la cuantización para convertir los pesos a una precisión menor y la destilación de conocimiento para entrenar modelos más pequeños que imitan a los más grandes. Estas técnicas aseguran que el modelo se ejecute eficientemente en dispositivos con potencia computacional limitada. Herramientas como TensorFlow Lite y NVIDIA Jetson son particularmente útiles para estas optimizaciones. Aprende más sobre estas técnicas en nuestra sección sobre optimización de modelos.

Link to this section¿Cuáles son las consideraciones de seguridad para desplegar modelos de aprendizaje automático con Ultralytics YOLO26?#

La seguridad es primordial al desplegar modelos de aprendizaje automático. Asegura la transmisión de datos mediante protocolos de cifrado como TLS. Implementa controles de acceso robustos, incluyendo una autenticación fuerte y control de acceso basado en roles (RBAC). Las técnicas de ofuscación de modelos, como el cifrado de parámetros del modelo y servir modelos en un entorno seguro como un entorno de ejecución de confianza (TEE), ofrecen protección adicional. Para prácticas detalladas, consulta consideraciones de seguridad.

Link to this section¿Cómo elijo el entorno de despliegue adecuado para mi modelo Ultralytics YOLO26?#

Seleccionar el entorno de despliegue óptimo para tu modelo Ultralytics YOLO26 depende de las necesidades específicas de tu aplicación. El despliegue en la nube ofrece escalabilidad y facilidad de acceso, lo que lo hace ideal para aplicaciones con grandes volúmenes de datos. El despliegue en el edge es mejor para aplicaciones de baja latencia que requieren respuestas en tiempo real, usando herramientas como TensorFlow Lite. El despliegue local se adapta a escenarios que necesitan una privacidad y control de datos estrictos. Para una visión general completa de cada entorno, echa un vistazo a nuestra sección sobre elección de un entorno de despliegue.

Comentarios