فيرتكس للذكاء الاصطناعيCompatible with Milvus 2.6.x

Google Cloud Vertex AI هي خدمة عالية الأداء مصممة خصيصًا لنماذج تضمين النصوص. يشرح هذا الدليل كيفية استخدام Google Cloud Vertex AI مع Milvus لتوليد تضمين النص بكفاءة.

يدعم Vertex AI العديد من نماذج التضمين لحالات استخدام مختلفة:

  • gemini-embedding-001 (أحدث أداء عبر مهام اللغة الإنجليزية ومتعددة اللغات والرموز)

  • النص-التضمين النصي-005 (أحدث نموذج تضمين نصي)

  • text-multultilingual-embedding-002 (أحدث نموذج لتضمين النص متعدد اللغات)

لمزيد من المعلومات، راجع نماذج تضمين النصوص فيرتكس AI.

المتطلبات الأساسية

تأكد من استيفاء هذه المتطلبات قبل تكوين Vertex AI:

  • تشغيل الإصدار 2.6 أو أعلى من Milvus - تحقق من أن عملية النشر تفي بالحد الأدنى من متطلبات الإصدار.

  • إنشاء حساب خدمة Google Cloud - كحد أدنى، ستحتاج على الأرجح إلى أدوار مثل "مستخدم Vertex AI" أو أدوار أخرى أكثر تحديدًا. لمزيد من التفاصيل، راجع إنشاء حسابات الخدمة.

  • قم بتنزيل ملف مفتاح JSON لحساب الخدمة - قم بتخزين ملف بيانات الاعتماد هذا بشكل آمن على الخادم أو الجهاز المحلي. لمزيد من التفاصيل، راجع إنشاء مفتاح حساب خدمة.

تكوين بيانات الاعتماد

قبل أن يتمكن Milvus من استدعاء Vertex AI، يحتاج إلى الوصول إلى مفتاح JSON لحساب خدمة GCP الخاص بك. نحن ندعم طريقتين - اختر إحداهما بناءً على احتياجات النشر والتشغيل الخاصة بك.

الخيار

الأولوية

الأفضل لـ

ملف التكوين (milvus.yaml)

عالية

إعدادات ثابتة على مستوى المجموعة

متغيرات البيئة (MILVUSAI_GOOGLE_APPLICATION_CREDENTIALS)

منخفض

سير عمل الحاوية والاختبارات السريعة

سيفضل Milvus دائمًا بيانات الاعتماد المعلنة في milvus.yaml على أي متغيرات بيئة لنفس الموفر.

  1. Base64-encode مفتاح JSON الخاص بك

    cat credentials.json | jq . | base64
    
  2. قم بإعلان بيانات الاعتماد في milvus.yaml

    # milvus.yaml
    credential:
      gcp_vertex:                      # arbitrary label
        credential_json: |
          <YOUR_BASE64_ENCODED_JSON>
    
  3. ربط بيانات الاعتماد بموفر 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 إلى متغيرات البيئة فقط في حالة عدم وجود إدخال مطابق في milvus.yaml.

تعتمد خطوات التهيئة على وضع نشر Milvus الخاص بك (مستقل مقابل الكتلة الموزعة) ومنصة التنسيق (Docker Compose مقابل Kubernetes).

للحصول على ملف تهيئة ميلفوس(docker-compose.yaml)، راجع تنزيل ملف التثبيت.

  1. قم بتركيب مفتاحك في الحاوية

    قم بتحرير ملف 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 تضمن العلامة الوصول للقراءة فقط للأمان

  2. تعيين متغير البيئة

    في نفس الملف docker-compose.yaml ، أضف متغير البيئة الذي يشير إلى مسار بيانات الاعتماد:

    services:
      standalone:
        environment:
          # Essential for Vertex AI authentication
          MILVUSAI_GOOGLE_APPLICATION_CREDENTIALS: /milvus/configs/google_application_credentials.json
    
  3. تطبيق التغييرات

    أعد تشغيل حاوية Milvus لتفعيل التكوين:

    docker-compose down && docker-compose up -d
    

للحصول على ملف تكوين Milvus(القيم.yaml)، راجع تكوين Milvus عبر ملف التكوين.

  1. إنشاء سر 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

  2. تكوين قيم 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.
      
  3. تطبيق تكوين 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: إضافة دالة التضمين إلى المخطط

تقوم الوحدة النمطية الدالة في ميلفوس تلقائيًا بتحويل البيانات الخام المخزنة في الحقل القياسي إلى تضمينات وتخزينها في الحقل المتجه المحدد صراحةً.

# 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)

المعلمة

الوصف

مطلوبة؟

مثال القيمة

provider

موفر نموذج التضمين. تعيين إلى "vertexai".

نعم

"vertexai"

model_name

تحديد نموذج تضمين Vertex AI المراد استخدامه.

نعم

"text-embedding-005"

projectid

معرّف مشروع Google Cloud الخاص بك.

نعم

"your-gcp-project-id"

location

المنطقة الخاصة بخدمة Vertex AI. تدعم تضمينات Vertex AI حاليًا تضمينات Vertex AI بشكل أساسي us-central1. افتراضي إلى us-central1.

لا

"us-central1"

task

تحديد نوع مهمة التضمين، مما يؤثر على نتائج التضمين. القيم المقبولة: DOC_RETRIETRIEVAL (افتراضي)، CODE_RETRIEVAL (مدعومة فقط 005)، STS (التشابه النصي الدلالي).

لا يوجد

"DOC_RETRIEVAL"

dim

بُعد ناقلات تضمين الإخراج. يقبل الأعداد الصحيحة بين 1 و768. ملاحظة: في حالة تحديدها، تأكد من أن بُعد حقل المتجه في المخطط يطابق هذه القيمة.

لا يوجد

768

الخطوات التالية

بعد تكوين دالة التضمين، ارجع إلى نظرة عامة على الدالة للحصول على إرشادات إضافية حول تكوين الفهرس وأمثلة إدراج البيانات وعمليات البحث الدلالي.

جرب Managed Milvus مجاناً

Zilliz Cloud خالي من المتاعب، ويعمل بواسطة Milvus ويعمل بسرعة 10 أضعاف.

ابدأ
التعليقات

هل كانت هذه الصفحة مفيدة؟