¿Qué es KFServing?

Ubuntu abril 24, 2021

TL; DR: KFServing es una nueva herramienta de servicio de modelos multi-framework nativa de la nube para inferencia sin servidor.

Un poco de historia

KFServing nació como parte del proyecto Kubeflow, un esfuerzo conjunto entre los líderes de la industria de AI / ML para estandarizar las operaciones de aprendizaje automático sobre Kubernetes. Su objetivo es resolver las dificultades de la implementación del modelo en producción a través del enfoque de “modelo como datos”, es decir, proporcionando una API para solicitudes de inferencia.

¿Qué es KFServing?

KFServing elimina la complejidad de la configuración del servidor, las redes, la verificación del estado, el escalado automático de hardware heterogéneo (CPU, GPU, TPU), el escalado desde cero y las implementaciones progresivas (también conocidas como canary). Proporciona una historia completa para el servicio de ML de producción que incluye predicción, preprocesamiento, posprocesamiento y explicabilidad, de una manera que es compatible con varios marcos: Tensorflow, PyTorch, XGBoost, ScikitLearn y ONNX.

Echa un vistazo a KFServing repositorio en github para una inmersión más profunda.

¿Como funciona?

KFServing utiliza dos tecnologías nativas de la nube conocidas en su núcleo: Knative e Istio.

Knative es una plataforma basada en Kubernetes para implementar y administrar cargas de trabajo modernas sin servidor. Esto le otorga a KFServing las propiedades de:

  • Escalando hacia y desde cero: optimizar los costos asociados con la inferencia
  • Escalado automático de GPU y TPU: reducir la latencia con hardware especializado a un costo por demanda

Istio es una tecnología de malla de servicios que funciona a través del concepto de sidecars de Kubernetes. Se agrega un contenedor sidecar a cada pod, que maneja todo el tráfico de la red. Esto habilita:

  • Despliegues canarios: permitiendo actualizaciones seguras de modelos entre usuarios
  • Tráfico al modelo: gestión de enrutamiento e ingreso
  • Observabilidad: funciones de rastreo, monitoreo y registro para sus modelos
  • Balanceo de carga: Tráfico HTTP, gRPC, WebSocket y TCP
  • Seguridad: autenticación, autorización y cifrado de la comunicación de servicios a escala

KFServing en sí mismo proporciona un Kubernetes Definición de recurso personalizado : Un objeto que amplía la API de Kubernetes, específico para servir modelos de aprendizaje automático guardados en varios marcos, como Tensorflow, PyTorch, XGBoost, ScikitLearn y ONNX, en entornos de producción.

¿Como puedo usar lo?

Para utilizar KFServing, debe crear un archivo YAML de la interfaz común “InferenceService”. Puedes ver un ejemplo a continuación:

Como puede ver, es posible especificar cosas como qué hardware debe usarse y en qué medida debe escalar hacia arriba o hacia abajo, y en qué marco se guarda el modelo.

Implementaciones progresivas / canarias

Al definir un canary en el YAML de InferenceService, se creará un punto final canary y el tráfico se enrutará mediante Istio para cumplir con las cuotas requeridas. Esto se combina con el transformador, el explicador y el predictor de acuerdo con la siguiente arquitectura:

Preprocesamiento y posprocesamiento de datos para inferencia

KFServing incluye el concepto de “Transformers”, lo que le permite orquestar transformaciones a los datos antes o después de la inferencia.

Un caso de uso para esto es, por ejemplo, su modelo es bueno para clasificar imágenes de 28 × 28 píxeles, sin embargo, sus nuevos datos pueden provenir de una cámara de alta resolución. Para cumplir con los requisitos de su modelo, debe preprocesar estos datos a través de una transformación a los nuevos datos y solo entonces ejecutar la inferencia.

Puede lograr esto definiendo una imagen de la ventana acoplable con sus pasos de preprocesamiento o posprocesamiento y agregándola al InferenceService YAML que define su trabajo de servicio de modelos.

Explicabilidad del modelo

Una característica opcional de KFServing, que hace uso de Seldon coartada, es la capacidad de agregar un “explicador” que habilita un plano de datos alternativo, proporcionando explicaciones del modelo además de las predicciones.

Más información sobre Kubeflow

Canonical ofrece capacitación sobre Kubeflow para empresas junto con servicios profesionales como seguridad y soporte, implementaciones personalizadas, consultoría y Kubeflow completamente administrado; lea más en la página de servicios de inteligencia artificial de Ubuntu.

Pruébelo ahora!

Obtenga el paquete de Kubeflow más reciente Operadores encantados, que proporciona capacidad de composición, operaciones de día 0 y día 2 para todas las aplicaciones de Kubeflow, incluido KFServing.

Ponte en marcha en 5 minutos