Inférence de médias distribués avec Kafka

DEV - 06/11
Introduction À mesure que Vision AI gagne en popularité, de plus en plus d'organisations, du gouvernement au...

Introduction

À mesure que Vision AI gagne en popularité, de plus en plus d’organisations, du gouvernement au secteur privé, l’adoptent pour résoudre des défis du monde réel : suivi des actifs, comptage des personnes, surveillance des véhicules, etc. Cependant, l'un des plus grands défis auxquels nous sommes confrontés lors de la construction de ces systèmes est la mise à l'échelle (Traiter des volumes massifs de données en temps réel tout en travaillant avec des ressources informatiques limitées)

Conditions préalables

Avant de vous lancer, vous devez connaître :

  • Bases de Kafka : sujets, partitions, producteurs et consommateurs
  • Python : concepts de threading et de programmation asynchrone
  • Traitement vidéo : compréhension de base des images et de l'inférence
  • Docker : exécuter des services conteneurisés

Le problème : les goulots d’étranglement dans les approches traditionnelles

Les pipelines de traitement multimédia traditionnels reposent souvent sur des architectures synchrones et monolithiques difficiles à faire évoluer.

  • Conflit de ressources : les ressources CPU/GPU sont bloquées lors de l'extraction et de l'inférence.
  • Aucune tolérance aux pannes : si un processus échoue, l'ensemble du pipeline s'arrête
  • Mise à l'échelle inflexible : impossible de mettre à l'échelle indépendamment l'extraction de trames et les charges de travail d'inférence

Entrez Kafka : découplage et mise à l'échelle

Kafka relève ces défis en introduisant une architecture découplée et basée sur les événements. Voici comment procéder :

  1. L'extraction et l'inférence de trames de découplage asynchrone peuvent s'exécuter indépendamment.
  2. Mise à l'échelle horizontale Adaptez facilement les charges de travail d'extraction et d'inférence de manière indépendante.
  3. Tolérance aux pannes Si un processus échoue, l'autre peut continuer à s'exécuter.
  4. Mise à l'échelle indépendante
    • Entrée vidéo élevée ? Ajoutez plus de producteurs et de travailleurs de l’extraction.
    • Inférence lente ? Ajoutez plus de travailleurs d'inférence.
    • Besoin de résultats en temps réel ? Travailleurs d'inférence d...
      [Courte citation de 8% de l'article original]
Loading...