Vertex AICompatible with Milvus 2.6.x
Google Cloud Vertex AI - это высокопроизводительный сервис, специально разработанный для моделей встраивания текста. В этом руководстве объясняется, как использовать Google Cloud Vertex AI с Milvus для эффективной генерации текстовых вкраплений.
Vertex AI поддерживает несколько моделей встраивания для различных случаев использования:
gemini-embedding-001 (современная производительность в англоязычных, многоязычных и кодовых задачах)
text-embedding-005 (новейшая модель встраивания текста)
text-multilingual-embedding-002 (Новейшая модель многоязычного встраивания текста).
Дополнительные сведения см. в разделе Модели встраивания текста Vertex AI.
Необходимые условия
Перед настройкой Vertex AI убедитесь, что вы соответствуете этим требованиям:
Запустите Milvus версии 2.6 или выше - Убедитесь, что ваше развертывание соответствует минимальному требованию к версии.
Создайте учетную запись службы Google Cloud - как минимум, вам понадобятся роли типа "Пользователь Vertex AI" или другие более специфические роли. Подробнее см. в разделе Создание учетных записей служб.
Загрузите файл ключа JSON учетной записи службы - надежно сохраните этот файл учетных данных на своем сервере или локальной машине. Подробнее см. в разделе Создание ключа учетной записи службы.
Настройка учетных данных
Прежде чем Milvus сможет вызвать Vertex AI, ему потребуется доступ к JSON-ключу учетной записи службы GCP. Мы поддерживаем два метода - выбирайте один из них в зависимости от ваших потребностей в развертывании и эксплуатации.
Вариант |
Приоритет |
Лучший для |
|---|---|---|
Файл конфигурации ( |
Высокий |
Постоянные настройки в масштабах всего кластера |
Переменные окружения ( |
Низкий |
Контейнерные рабочие процессы, быстрые тесты |
Вариант 1: Файл конфигурации (рекомендуется и имеет более высокий приоритет)
Milvus всегда будет отдавать предпочтение учетным данным, объявленным в milvus.yaml, а не любым переменным окружения для того же провайдера.
Base64-кодирование вашего JSON-ключа
cat credentials.json | jq . | base64Объявите учетные данные в
milvus.yaml# milvus.yaml credential: gcp_vertex: # arbitrary label credential_json: | <YOUR_BASE64_ENCODED_JSON>Привяжите учетные данные к провайдеру Vertex AI
# milvus.yaml function: textEmbedding: providers: vertexai: credential: gcp_vertex # must match the label above url: <optional: custom Vertex AI endpoint>Если впоследствии вам понадобится изменить ключи, просто обновите строку Base64 в разделе
credential_jsonи перезапустите Milvus - никаких изменений в окружении или контейнерах не требуется.
Вариант 2: Переменные окружения
Используйте этот метод, если вы предпочитаете вводить секреты во время развертывания. Milvus переходит к использованию env-vars только в том случае, если в milvus.yaml нет подходящей записи.
Шаги настройки зависят от режима развертывания Milvus (автономный или распределенный кластер) и платформы оркестровки (Docker Compose или Kubernetes).
Чтобы получить файл конфигурации Milvus(docker-compose.yaml), обратитесь к разделу "Скачать установочный файл".
Установите ключ в контейнер.
Отредактируйте файл
docker-compose.yaml, включив в него сопоставление томов с учетными данными:services: standalone: volumes: # Map host credential file to container path - /path/to/your/credentials.json:/milvus/configs/google_application_credentials.json:roВ предыдущей конфигурации:
Используйте абсолютные пути для надежного доступа к файлам (
/home/user/credentials.json, а не~/credentials.json).Путь к контейнеру должен заканчиваться расширением
.json:roфлаг обеспечивает доступ только для чтения для безопасности
Установите переменную окружения
В том же файле
docker-compose.yamlдобавьте переменную окружения, указывающую на путь к учетным данным:services: standalone: environment: # Essential for Vertex AI authentication MILVUSAI_GOOGLE_APPLICATION_CREDENTIALS: /milvus/configs/google_application_credentials.jsonПрименить изменения
Перезапустите контейнер Milvus, чтобы активировать конфигурацию:
docker-compose down && docker-compose up -d
Чтобы получить файл конфигурации Milvus(values.yaml), обратитесь к разделу Настройка Milvus через файл конфигурации.
Создайте секрет Kubernetes
Выполните эту команду на вашей управляющей машине (где настроен kubectl ):
kubectl create secret generic vertex-ai-secret \ --from-file=credentials.json=/path/to/your/credentials.json \ -n <your-milvus-namespace>В предыдущей команде:
vertex-ai-secret: Имя для вашего секрета (настраиваемое)/path/to/your/credentials.json: Локальное имя файла учетных данных GCP<your-milvus-namespace>: Пространство имен Kubernetes, в котором размещен Milvus
Настройте значения Helm
Обновите
values.yamlв зависимости от типа развертывания:Для автономного развертывания
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: trueДля распределенного развертывания (добавить к каждому компоненту)
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.
Примените конфигурацию Helm
Разверните обновленную конфигурацию на вашем кластере:
helm upgrade milvus milvus/milvus -f values.yaml -n <your-milvus-namespace>
Использовать функцию встраивания
После настройки Vertex AI выполните следующие шаги для определения и использования функций встраивания.
Шаг 1: Определите поля схемы
Чтобы использовать функцию встраивания, создайте коллекцию с определенной схемой. Эта схема должна включать как минимум три необходимых поля:
Первичное поле, которое уникально идентифицирует каждую сущность в коллекции.
Скалярное поле, в котором хранятся исходные данные для встраивания.
Векторное поле, зарезервированное для хранения векторных вкраплений, которые функция будет генерировать для скалярного поля.
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)
Шаг 2: Добавьте функцию встраивания в схему
Модуль Function в Milvus автоматически преобразует необработанные данные, хранящиеся в скалярном поле, во вкрапления и сохраняет их в явно определенном векторном поле.
# 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)
Параметр |
Описание |
Требуется? |
Пример Значение |
|---|---|---|---|
|
Поставщик модели встраивания. Установите значение "vertexai". |
Да |
|
|
Указывает, какую модель встраивания Vertex AI следует использовать. |
Да |
|
|
Идентификатор проекта Google Cloud. |
Да |
|
|
Регион для службы Vertex AI. В настоящее время встраивания Vertex AI поддерживают в основном регион us-central1. По умолчанию - us-central1. |
Нет |
|
|
Указывает тип задачи встраивания, влияющий на результаты встраивания. Принимаемые значения: DOC_RETRIEVAL (по умолчанию), CODE_RETRIEVAL (поддерживается только 005), STS (семантическое текстовое сходство). |
Нет |
|
|
Размерность выходных векторов эмбеддинга. Принимаются целые числа от 1 до 768. Примечание: Если указано, убедитесь, что размерность векторного поля в схеме соответствует этому значению. |
Нет |
|
Следующие шаги
После настройки функции встраивания обратитесь к обзору функции, чтобы получить дополнительные указания по настройке индекса, примеры вставки данных и операции семантического поиска.