Depuis Faiss
Ce guide fournit un processus complet, étape par étape, pour la migration des données de Faiss vers Milvus 2.x. En suivant ce guide, vous serez en mesure de transférer efficacement vos données, en tirant parti des fonctionnalités avancées et des performances améliorées de Milvus 2.x.
Conditions préalables
- Versions du logiciel:
- Source Faiss
- Milvus cible : 2.x
- Pour plus de détails sur l'installation, voir Installation de Faiss et Installation de Milvus.
- Outils requis:
- Outil demigration Milvus. Pour plus de détails sur l'installation, voir Installer l'outil de migration.
Configurer la migration
Enregistrez le fichier de configuration de l'exemple de migration sous migration.yaml et modifiez les configurations en fonction de vos conditions réelles. Vous êtes libre de placer le fichier de configuration dans n'importe quel répertoire local.
dumper: # configs for the migration job.
worker:
limit: 2
workMode: faiss # operational mode of the migration job.
reader:
bufferSize: 1024
writer:
bufferSize: 1024
loader:
worker:
limit: 2
source: # configs for the source Faiss index.
mode: local
local:
faissFile: ./testfiles/faiss/faiss_ivf_flat.index
target: # configs for the target Milvus collection.
create:
collection:
name: test1w
shardsNums: 2
dim: 256
metricType: L2
mode: remote
remote:
outputDir: testfiles/output/
cloud: aws
endpoint: 0.0.0.0:9000
region: ap-southeast-1
bucket: a-bucket
ak: minioadmin
sk: minioadmin
useIAM: false
useSSL: false
checkBucket: true
milvus2x:
endpoint: localhost:19530
username: xxxxx
password: xxxxx
Le tableau suivant décrit les paramètres du fichier de configuration de l'exemple. Pour une liste complète des configurations, reportez-vous à Milvus Migration : Faiss vers Milvus 2.x.
dumperParamètre Description dumper.worker.limitLa simultanéité des threads dumper. dumper.worker.workModeLe mode opérationnel de la tâche de migration. Défini à faiss lors de la migration à partir d'index Faiss. dumper.worker.reader.bufferSizeTaille de la mémoire tampon à lire à partir de Faiss dans chaque lot. Unité : KO. dumper.worker.writer.bufferSizeTaille de la mémoire tampon pour écrire à Milvus dans chaque lot. Unité : KB : KO. loaderParamètre Description du paramètre loader.worker.limitConcurrence des threads du chargeur. sourceParamètre Description source.modeSpécifie l'endroit où les fichiers sources sont lus. Valeurs valables :
-local: lit les fichiers à partir d'un disque local.
-remote: lit les fichiers à partir d'un stockage distant.source.local.faissFileChemin d'accès au répertoire où se trouvent les fichiers sources. Par exemple, /db/faiss.index.targetParamètre Description target.create.collection.nameNom de la collection Milvus. target.create.collection.shardsNumsNombre de tessons à créer dans la collection. Pour plus d'informations sur les tessons, reportez-vous à la section Terminologie. target.create.collection.dimDimension du champ de vecteurs. target.create.collection.metricTypeType de métrique utilisé pour mesurer les similitudes entre les vecteurs. Pour plus d'informations, voir Terminologie. target.modeEmplacement de stockage des fichiers vidés. Valeurs valides :
-local: Stockage des fichiers vidés sur les disques locaux.
-remote: Stockage des fichiers vidés sur le stockage d'objets.target.remote.outputDirChemin du répertoire de sortie dans le panier de stockage en nuage. target.remote.cloudFournisseur de services de stockage en nuage. Exemples de valeurs : aws,gcp,azure.target.remote.endpointPoint final du stockage Milvus 2.x. target.remote.regionRégion de stockage en nuage. Il peut s'agir de n'importe quelle valeur si vous utilisez MinIO local. target.remote.bucketNom du bac pour le stockage des données. La valeur doit être la même que la configuration dans Milvus 2.x. Pour plus d'informations, voir Configurations du système. target.remote.akClé d'accès pour le stockage Milvus 2.x. target.remote.skClé secrète pour le stockage Milvus 2.x. target.remote.useIAMUtiliser ou non un rôle IAM pour la connexion. target.remote.useSSLActivation ou non de SSL lors de la connexion à Milvus 2.x. Pour plus d'informations, voir Chiffrement en transit. target.remote.checkBucketVérifier si le seau spécifié existe dans le stockage d'objets. target.milvus2x.endpointAdresse du serveur Milvus cible. target.milvus2x.usernameNom d'utilisateur pour le serveur Milvus 2.x. Ce paramètre est requis si l'authentification utilisateur est activée pour votre serveur Milvus. Pour plus d'informations, voir Activer l'authentification. target.milvus2x.passwordMot de passe pour le serveur Milvus 2.x. Ce paramètre est requis si l'authentification utilisateur est activée pour votre serveur Milvus. Pour plus d'informations, voir Activer l'authentification.
Démarrer la tâche de migration
Démarrer la tâche de migration avec la commande suivante. Remplacer
{YourConfigFilePath}par le répertoire local où se trouve le fichier de configurationmigration.yaml../milvus-migration dump --config=/{YourConfigFilePath}/migration.yamlLa commande ci-dessus convertit les données de l'index Faiss en fichiers NumPy, puis utilise l'opération bulkInsert pour écrire les données dans le panier cible.
Une fois les fichiers NumPy générés, importez-les dans Milvus 2.x à l'aide de la commande suivante. Remplacez
{YourConfigFilePath}par le répertoire local où se trouve le fichier de configurationmigration.yaml../milvus-migration load --config=/{YourConfigFilePath}/migration.yaml
Vérifier le résultat
Une fois la tâche de migration exécutée, vous pouvez effectuer des appels API ou utiliser Attu pour afficher le nombre d'entités migrées. Pour plus d'informations, reportez-vous à Attu et à get_collection_stats().