Vertex AICompatible with Milvus 2.6.x
Google Cloud Vertex AI est un service haute performance spécialement conçu pour les modèles d'intégration de texte. Ce guide explique comment utiliser Google Cloud Vertex AI avec Milvus pour une génération efficace d'intégration de texte.
Vertex AI prend en charge plusieurs modèles d'intégration pour différents cas d'utilisation :
gemini-embedding-001 (performances de pointe pour les tâches en anglais, multilingues et de code)
text-embedding-005 (modèle d'intégration de texte le plus récent)
text-multilingual-embedding-002 (dernier modèle d'intégration de texte multilingue)
Pour plus d'informations, voir les modèles d'intégration de texte de Vertex AI.
Conditions préalables
Assurez-vous de remplir les conditions suivantes avant de configurer Vertex AI :
Exécuter Milvus version 2.6 ou supérieure - Vérifiez que votre déploiement est conforme à la version minimale requise.
Créez un compte de service Google Cloud - Au minimum, vous aurez probablement besoin de rôles tels que "Vertex AI User" ou d'autres rôles plus spécifiques. Pour plus d'informations, reportez-vous à la section Créer des comptes de service.
Téléchargez le fichier de clé JSON du compte de service - Stockez de manière sécurisée ce fichier d'identification sur votre serveur ou votre machine locale. Pour plus d'informations, reportez-vous à la section Créer une clé de compte de service.
Configuration des informations d'identification
Avant que Milvus puisse appeler Vertex AI, il doit avoir accès à la clé JSON de votre compte de service GCP. Nous prenons en charge deux méthodes : choisissez-en une en fonction de vos besoins opérationnels et de déploiement.
Option |
Priorité |
Meilleur pour |
|---|---|---|
Fichier de configuration ( |
Élevée |
Paramètres persistants à l'échelle du cluster |
Variables d'environnement ( |
Faible |
Flux de travail des conteneurs, tests rapides |
Option 1 : Fichier de configuration (recommandé et plus prioritaire)
Milvus préférera toujours les informations d'identification déclarées dans milvus.yaml à toute variable d'environnement pour le même fournisseur.
Base64-encodez votre clé JSON
cat credentials.json | jq . | base64Déclarer les informations d'identification dans
milvus.yaml# milvus.yaml credential: gcp_vertex: # arbitrary label credential_json: | <YOUR_BASE64_ENCODED_JSON>Lier les informations d'identification au fournisseur Vertex AI
# milvus.yaml function: textEmbedding: providers: vertexai: credential: gcp_vertex # must match the label above url: <optional: custom Vertex AI endpoint>Si vous devez ultérieurement changer de clé, il vous suffit de mettre à jour la chaîne Base64 sous
credential_jsonet de redémarrer Milvus - aucune modification de votre environnement ou de vos conteneurs n'est nécessaire.
Option 2 : Variables d'environnement
Utilisez cette méthode si vous préférez injecter des secrets au moment du déploiement. Milvus se rabat sur les env-vars uniquement si aucune entrée correspondante n'existe dans milvus.yaml.
Les étapes de configuration dépendent du mode de déploiement de Milvus (autonome ou cluster distribué) et de la plate-forme d'orchestration (Docker Compose ou Kubernetes).
Pour obtenir votre fichier de configuration Milvus(docker-compose.yaml), reportez-vous à la section Télécharger un fichier d'installation.
Montez votre clé dans le conteneur
Modifiez votre fichier
docker-compose.yamlpour inclure le mappage du volume des informations d'identification :services: standalone: volumes: # Map host credential file to container path - /path/to/your/credentials.json:/milvus/configs/google_application_credentials.json:roDans la configuration précédente :
Utilisez des chemins absolus pour un accès fiable aux fichiers (
/home/user/credentials.jsonet non~/credentials.json).Le chemin d'accès au conteneur doit se terminer par l'extension
.json:roLe drapeau "read-only" garantit un accès en lecture seule pour des raisons de sécurité.
Définir la variable d'environnement
Dans le même fichier
docker-compose.yaml, ajoutez la variable d'environnement pointant vers le chemin d'accès :services: standalone: environment: # Essential for Vertex AI authentication MILVUSAI_GOOGLE_APPLICATION_CREDENTIALS: /milvus/configs/google_application_credentials.jsonAppliquer les modifications
Redémarrez votre conteneur Milvus pour activer la configuration :
docker-compose down && docker-compose up -d
Pour obtenir votre fichier de configuration Milvus(values.yaml), reportez-vous à Configurer Milvus via un fichier de configuration.
Créer un secret Kubernetes
Exécutez ceci sur votre machine de contrôle (où kubectl est configuré) :
kubectl create secret generic vertex-ai-secret \ --from-file=credentials.json=/path/to/your/credentials.json \ -n <your-milvus-namespace>Dans la commande précédente :
vertex-ai-secret: Nom de votre secret (personnalisable)/path/to/your/credentials.json: Nom du fichier local de votre fichier d'authentification GCP.<your-milvus-namespace>: Espace de noms Kubernetes hébergeant Milvus
Configurer les valeurs de Helm
Mettez à jour votre
values.yamlen fonction de votre type de déploiement :Pour un déploiement autonome
standalone: extraEnv: - name: MILVUSAI_GOOGLE_APPLICATION_CREDENTIALS value: /milvus/configs/credentials.json # Container path volumes: - name: vertex-ai-credentials-vol secret: secretName: vertex-ai-secret # Must match Step 1 volumeMounts: - name: vertex-ai-credentials-vol mountPath: /milvus/configs/credentials.json # Must match extraEnv value subPath: credentials.json # Must match secret key name readOnly: truePour un déploiement distribué (ajouter à chaque composant)
proxy: extraEnv: - name: MILVUSAI_GOOGLE_APPLICATION_CREDENTIALS value: /milvus/configs/credentials.json volumes: - name: vertex-ai-credentials-vol secret: secretName: vertex-ai-secret volumeMounts: - name: vertex-ai-credentials-vol mountPath: /milvus/configs/credentials.json subPath: credentials.json readOnly: true # Repeat same configuration for dataNode, etc.
Appliquer la configuration Helm
Déployez la configuration mise à jour dans votre cluster :
helm upgrade milvus milvus/milvus -f values.yaml -n <your-milvus-namespace>
Utiliser la fonction d'intégration
Une fois Vertex AI configuré, suivez les étapes suivantes pour définir et utiliser les fonctions d'intégration.
Étape 1 : définition des champs du schéma
Pour utiliser une fonction d'intégration, créez une collection avec un schéma spécifique. Ce schéma doit comprendre au moins trois champs nécessaires :
Le champ primaire qui identifie de manière unique chaque entité d'une collection.
Un champ scalaire qui stocke les données brutes à intégrer.
Un champ vectoriel réservé au stockage des intégrations vectorielles que la fonction générera pour le champ scalaire.
from pymilvus import MilvusClient, DataType, Function, FunctionType, CollectionSchema, FieldSchema
# Assume you have connected to Milvus
# client = MilvusClient(uri="http://localhost:19530")
# 1. Create Schema
schema = MilvusClient.create_schema()
# 2. Add fields
schema.add_field("id", DataType.INT64, is_primary=True, auto_id=False)
schema.add_field("document", DataType.VARCHAR, max_length=9000) # Store text data
# IMPORTANT: Set dim to match the output dimension of the model and parameters
schema.add_field("dense_vector", DataType.FLOAT_VECTOR, dim=768) # Store embedding vectors (example dimension)
Étape 2 : Ajouter la fonction d'intégration au schéma
Le module Function de Milvus convertit automatiquement les données brutes stockées dans un champ scalaire en embeddings et les stocke dans le champ vectoriel explicitement défini.
# 3. Define Vertex AI embedding function
text_embedding_function = Function(
name="vert_func", # Unique identifier for this embedding function
function_type=FunctionType.TEXTEMBEDDING, # Indicates a text embedding function
input_field_names=["document"], # Scalar field(s) containing text data to embed
output_field_names=["dense_vector"], # Vector field(s) for storing embeddings
params={ # Vertex AI specific parameters (function-level)
"provider": "vertexai", # Must be set to "vertexai"
"model_name": "text-embedding-005", # Required: Specifies the Vertex AI model to use
"projectid": "your-gcp-project-id", # Required: Your Google Cloud project ID
# Optional parameters (include these only if necessary):
# "location": "us-central1", # Optional: Vertex AI service region (default us-central1)
# "task": "DOC_RETRIEVAL", # Optional: Embedding task type (default DOC_RETRIEVAL)
# "dim": 768 # Optional: Output vector dimension (1-768)
}
)
# Add the configured embedding function to your existing collection schema
schema.add_function(text_embedding_function)
Paramètre |
Description de la fonction |
Obligatoire ? |
Exemple Valeur |
|---|---|---|---|
|
Le fournisseur du modèle d'intégration. Défini à "vertexai". |
Oui |
|
|
Spécifie le modèle d'intégration Vertex AI à utiliser. |
Oui |
|
|
Votre ID de projet Google Cloud. |
Oui |
|
|
La région pour le service Vertex AI. Actuellement, les intégrations de Vertex AI prennent principalement en charge us-central1. La valeur par défaut est us-central1. |
Non |
|
|
Spécifie le type de tâche d'intégration, qui affecte les résultats de l'intégration. Valeurs acceptées : DOC_RETRIEVAL (par défaut), CODE_RETRIEVAL (seulement 005 supporté), STS (Semantic Textual Similarity). |
Non |
|
|
La dimension des vecteurs d'intégration de sortie. Accepte les entiers entre 1 et 768. Remarque : si cette valeur est spécifiée, il faut s'assurer que la dimension du champ vectoriel dans le schéma correspond à cette valeur. |
Non |
|
Etapes suivantes
Après avoir configuré la fonction d'intégration, reportez-vous à la vue d'ensemble de la fonction pour obtenir des conseils supplémentaires sur la configuration de l'index, des exemples d'insertion de données et des opérations de recherche sémantique.