Jina 101 / Français

From Micro

to Macro

Vous pouvez concevoir au niveau micro et à l'échelle jusqu'au niveau macro. Les YAML deviennent des algorithmes, les threads des processus, les Pods des flux. Les modèles et la logique restent toujours les mêmes. C'est là toute la beauté de Jina

Document & Chunk

Un Chunk est une petite unité sémantique d'un Document. Il peut s'agir d'une phrase, d'un patch d'image 64x64, d'un clip vidéo de 3 secondes, d'une paire de coordonnées et d'une adresse

En Jina, un Document est comme une barre de chocolat. Non seulement parce qu'il se présente sous différents formats et ingrédients, mais aussi parce que vous pouvez le casser en morceaux comme vous le souhaitez. En fin de compte, ce que vous achetez et stockez, ce sont les barres de chocolat, et ce que vous mangez et digérez, ce sont les morceaux. Vous ne voulez pas avaler la barre entière, vous ne voulez pas non plus la moudre en poudre; de toute façon, vous perdrez la saveur (c'est-à-dire la sémantique).

YAML Config

Une configuration YAML est largement utilisée dans la Jina pour décrire les propriétés d'un objet. Il offre une personnalisation, permettant aux utilisateurs de modifier le comportement d'un objet sans toucher à son code. Jina peut construire un objet très compliqué directement à partir d'une simple config YAML, et enregistrer un objet dans une config YAML.

Executors

Executor représente une unité algorithmique dans Jina. Les algorithmes tels que l'encodage des images en vecteurs, le stockage des vecteurs sur le disque, le classement des résultats, peuvent tous être formulés comme Executor. Executor fournit des interfaces utiles, permettant aux développeurs et aux ingénieurs en IA de se concentrer sur l'algorithme. Des fonctionnalités telles que la persistance, l'ordonnancement, le chaînage, le regroupement et la parallélisation sortent de l'ordinaire.

Les propriétés d'un Executor sont stockées dans une configuration YAML, elles vont toujours de pair.

Executor est une grande famille. Chaque membre de la famille se concentre sur un aspect important du système de recherche. Rencontrons-nous :

  • Crafterpour l'élaboration/la segmentation/la transformation du Document et du Chunk ;
  • Encoderpour représenter le Chunk en tant que vecteur ;
  • Indexerpour la sauvegarde et la récupération de vecteurs et d'informations clés du stockage ;
  • Rankerpour le tri des résultats ;

Vous avez un nouvel algorithme en tête ? Pas de problème, cette famille accueille toujours de nouveaux membres !

Drivers

Driver définit la manière dont un Executor se comporte sur les demandes du réseau. Driver aide l'Executor à gérer le trafic réseau en interprétant les données de trafic (par exemple Protobuf) dans un format que l'Executor peut comprendre et traiter (par exemple Numpy array).

Peas


Le Pea enveloppe un Executor et lui accorde la possibilité d'échanger des données sur un réseau.
Les Pea peuvent envoyer et recevoir des données d'autres Pea.

Les Pea peuvent également fonctionner à l'intérieur d'un conteneur Docker, contenant toutes les dépendances et l'environnement contextuel en un seul endroit.

Pods

Pod est un groupe de Peas ayant la même propriété. Les Peas fonctionnent en parallèle à l'intérieur d'un Pod. Le Pod unifie les interfaces réseau de ces Peas, les faisant ressembler à un seul Pea de l'extérieur.

Au-delà de cela, un Pod ajoute au Peas plus de contrôle, de planification et de gestion du contexte. Le Pod peut être exécuté soit sur un hôte local, soit sur des ordinateurs différents via un réseau

Flow

Flow représente une tâche de haut niveaupar exemple, l'indexation, la recherche, la formation. Il gère les états et le contexte d'un groupe de Pods, en les orchestrant pour accomplir une tâche. Flow embrasse la diversité, qu'un Pod soit à distance ou dans le conteneur Docker, un Flow les dirige tous!