تشغيل ميلفوس لايت محلياً
توضح هذه الصفحة كيفية تشغيل Milvus محلياً باستخدام Milvus Lite. Milvus Lite هو نسخة خفيفة الوزن من Milvus، وهي قاعدة بيانات متجهة مفتوحة المصدر تعمل على تشغيل تطبيقات الذكاء الاصطناعي مع تضمينات المتجهات والبحث عن التشابه.
نظرة عامة
يمكن استيراد Milvus Lite إلى تطبيق Python الخاص بك، مما يوفر وظيفة البحث المتجه الأساسية في Milvus. تم تضمين Milvus Lite بالفعل في مجموعة أدوات تطوير البرمجيات الخاصة بـ Python SDK الخاصة بـ Milvus. يمكن نشره ببساطة باستخدام pip install pymilvus
.
باستخدام Milvus Lite، يمكنك البدء في إنشاء تطبيق ذكاء اصطناعي مع البحث عن التشابه المتجه في غضون دقائق! ميلفوس لايت جيد للتشغيل في البيئة التالية:
- Jupyter Notebook / Google Colab
- أجهزة الكمبيوتر المحمولة
- أجهزة الحافة
يشترك Milvus Lite في نفس واجهة برمجة التطبيقات مع Milvus Standalone و Distributed، ويغطي معظم الميزات مثل ثبات البيانات المتجهة وإدارتها، وعمليات CRUD المتجهة، والبحث المتجه المتناثر والكثيف عن المتجهات، وتصفية البيانات الوصفية، والمتجهات المتعددة والبحث الهجين. يوفران معًا تجربة متسقة عبر أنواع مختلفة من البيئات، بدءًا من الأجهزة المتطورة إلى المجموعات في السحابة، بما يتناسب مع حالات الاستخدام ذات الأحجام المختلفة. باستخدام نفس الكود من جانب العميل، يمكنك تشغيل تطبيقات GenAI باستخدام Milvus Lite على كمبيوتر محمول أو دفتر Jupyter Notebook، أو Milvus Standalone على حاوية Docker، أو Milvus Distributed على مجموعة Kubernetes ضخمة الحجم تخدم مليارات المتجهات في الإنتاج.
المتطلبات الأساسية
يدعم ميلفوس لايت حاليًا البيئات التالية:
- Ubuntu >= 20.04 (x86_64 و arm64)
- MacOS >= 11.0 (Apple Silicon M1/M2 و x86_64)
يُرجى ملاحظة أن Milvus Lite مناسب فقط لحالات استخدام البحث المتجه على نطاق صغير. لحالات الاستخدام على نطاق واسع، نوصي باستخدام Milvus Standalone أو Milvus Distributed. يمكنك أيضًا التفكير في استخدام Milvus المُدار بالكامل على Zilliz Cloud.
إعداد ميلفوس لايت
pip install -U pymilvus
نوصي باستخدام pymilvus
. نظرًا لأن milvus-lite
مضمن في pymilvus
الإصدار 2.4.2 أو أعلى، يمكنك pip install
مع -U
لفرض التحديث إلى أحدث إصدار ويتم تثبيت milvus-lite
تلقائيًا.
إذا كنت ترغب في تثبيت الحزمة milvus-lite
بشكل صريح، أو كنت قد قمت بتثبيت إصدار أقدم من milvus-lite
وترغب في تحديثه، يمكنك القيام بذلك pip install -U milvus-lite
.
الاتصال بميلفوس لايت
في pymilvus
، حدد اسم ملف محلي كمعلمة uri لـ MilvusClient سيستخدم Milvus Lite.
from pymilvus import MilvusClient
client = MilvusClient("./milvus_demo.db")
بعد تشغيل مقتطف الشفرة أعلاه، سيتم إنشاء ملف قاعدة بيانات باسم milvus_demo.db في المجلد الحالي.
ملحوظة: لاحظ أن نفس واجهة برمجة التطبيقات تنطبق أيضًا على Milvus Standalone و Milvus Distributed و Zilliz Cloud، والفرق الوحيد هو استبدال اسم الملف المحلي بنقطة نهاية الخادم البعيد وبيانات الاعتماد، على سبيل المثال
client = MilvusClient(uri="http://localhost:19530", token="username:password")
.
أمثلة
فيما يلي عرض توضيحي بسيط يوضح كيفية استخدام Milvus Lite للبحث عن النص. هناك أمثلة أكثر شمولاً لاستخدام Milvus Lite لبناء تطبيقات مثل RAG، والبحث عن الصور، واستخدام Milvus Lite في إطار عمل RAG الشهير مثل LangChain و LlamaIndex!
from pymilvus import MilvusClient
import numpy as np
client = MilvusClient("./milvus_demo.db")
client.create_collection(
collection_name="demo_collection",
dimension=384 # The vectors we will use in this demo has 384 dimensions
)
# Text strings to search from.
docs = [
"Artificial intelligence was founded as an academic discipline in 1956.",
"Alan Turing was the first person to conduct substantial research in AI.",
"Born in Maida Vale, London, Turing was raised in southern England.",
]
# For illustration, here we use fake vectors with random numbers (384 dimension).
vectors = [[ np.random.uniform(-1, 1) for _ in range(384) ] for _ in range(len(docs)) ]
data = [ {"id": i, "vector": vectors[i], "text": docs[i], "subject": "history"} for i in range(len(vectors)) ]
res = client.insert(
collection_name="demo_collection",
data=data
)
# This will exclude any text in "history" subject despite close to the query vector.
res = client.search(
collection_name="demo_collection",
data=[vectors[0]],
filter="subject == 'history'",
limit=2,
output_fields=["text", "subject"],
)
print(res)
# a query that retrieves all entities matching filter expressions.
res = client.query(
collection_name="demo_collection",
filter="subject == 'history'",
output_fields=["text", "subject"],
)
print(res)
# delete
res = client.delete(
collection_name="demo_collection",
filter="subject == 'history'",
)
print(res)
الحدود
عند تشغيل Milvus Lite، لاحظ أن بعض الميزات غير مدعومة. تلخص الجداول التالية حدود الاستخدام على Milvus Lite.
المجموعة
الطريقة / المعلمة | مدعومة في ميلفوس لايت |
---|---|
إنشاء_مجموعة() | الدعم بمعلمات محدودة |
collection_name | Y |
dimension | Y |
primary_field_name | Y |
id_type | Y |
vector_field_name | Y |
metric_type | Y |
auto_id | Y |
schema | Y |
index_params | Y |
enable_dynamic_field | Y |
num_shards | N |
partition_key_field | N |
num_partitions | N |
consistency_level | N (يدعم فقط Strong ؛ سيتم التعامل مع أي تكوين على أنه Strong ). |
get_collection_stats() | يدعم الحصول على إحصائيات المجموعة. |
collection_name | Y |
timeout | Y |
وصف_التجميع() | num_shards و consistency_level و collection_id في الاستجابة غير صالحة. |
timeout | Y |
لديها_مجموعة() | يدعم التحقق مما إذا كانت المجموعة موجودة. |
collection_name | Y |
timeout | Y |
سرد_المجموعات() | يدعم سرد كل المجموعات. |
إسقاط_مجموعة() | يدعم إسقاط مجموعة. |
collection_name | Y |
timeout | Y |
إعادة تسمية_مجموعة() | إعادة تسمية مجموعة غير مدعومة. |
الحقل والمخطط
الطريقة / المعلمة | مدعوم في ميلفوس لايت |
---|---|
إنشاء_مخطط() | الدعم بمعلمات محدودة |
auto_id | Y |
enable_dynamic_field | Y |
primary_field | Y |
partition_key_field | N |
إضافة_حقل() | الدعم بمعلمات محدودة |
field_name | Y |
datatype | Y |
is_primary | Y |
max_length | Y |
element_type | Y |
max_capacity | Y |
dim | Y |
is_partition_key | N |
الإدراج والبحث
الطريقة / المعلمة | مدعوم في ميلفوس لايت |
---|---|
بحث() | الدعم بمعلمات محدودة |
collection_name | Y |
data | Y |
filter | Y |
limit | Y |
output_fields | Y |
search_params | Y |
timeout | Y |
partition_names | N |
anns_field | Y |
استعلام() | الدعم بمعلمات محدودة |
collection_name | Y |
filter | Y |
output_fields | Y |
timeout | Y |
ids | Y |
partition_names | N |
الحصول على () | الدعم بمعلمات محدودة |
collection_name | Y |
ids | Y |
output_fields | Y |
timeout | Y |
partition_names | N |
حذف() | الدعم بمعلمات محدودة |
collection_name | Y |
ids | Y |
timeout | Y |
filter | Y |
partition_name | N |
إدراج () | الدعم بمعلمات محدودة |
collection_name | Y |
data | Y |
timeout | Y |
partition_name | N |
إدراج () | الدعم بمعلمات محدودة |
collection_name | Y |
data | Y |
timeout | Y |
partition_name | N |
التحميل والإصدار
الطريقة / المعلمة | مدعوم في ميلفوس لايت |
---|---|
تحميل_مجموعة() | Y |
collection_name | Y |
timeout | Y |
إصدار_مجموعة() | Y |
collection_name | Y |
timeout | Y |
الحصول على_حالة_التحميل() | الحصول على حالة التحميل غير مدعوم. |
تحديث_التحميل() | تحميل البيانات التي تم إلغاء تحميلها من مجموعة محملة غير معتمد. |
إغلاق() | Y |
فهرس
الطريقة / المعلمة | مدعوم في ميلفوس لايت |
---|---|
list_indexes() | سرد الفهارس مدعوم. |
collection_name | Y |
field_name | Y |
إنشاء_الفهرس() | يدعم فقط نوع الفهرس FLAT . |
index_params | Y |
timeout | Y |
إسقاط_الفهرس() | إسقاط الفهارس مدعوم. |
collection_name | Y |
index_name | Y |
timeout | Y |
وصف_الفهرس() | وصف الفهارس معتمد. |
collection_name | Y |
index_name | Y |
timeout | Y |
أنواع الفهرس المتجه
يدعم Milvus Lite نوع الفهرس المسطح فقط. يستخدم نوع FLAT بغض النظر عن نوع الفهرس المحدد في المجموعة.
ميزات البحث
يدعم Milvus Lite المتجهات المتفرقة والمتجهات المتعددة والبحث الهجين.
التقسيم
لا يدعم Milvus Lite الأقسام والطرق المتعلقة بالتقسيم.
المستخدمون والأدوار
لا يدعم Milvus Lite المستخدمين والأدوار والأساليب ذات الصلة.
الأسماء المستعارة
لا يدعم Milvus Lite الأسماء المستعارة والأساليب المتعلقة بالأسماء المستعارة.
ترحيل البيانات من ميلفوس لايت
يمكن تصدير جميع البيانات المخزنة في Milvus Lite بسهولة وتحميلها إلى أنواع أخرى من نشر Milvus، مثل Milvus Standalone على Docker، أو Milvus Distributed على K8s، أو Milvus المدارة بالكامل على Zilliz Cloud.
يوفّر Milvus Lite أداة سطر أوامر يمكنها تفريغ البيانات في ملف json، والذي يمكن استيراده إلى milvus وZilliz Cloud(الخدمة السحابية المدارة بالكامل لـ Milvus). سيتم تثبيت أمر ميلفوس لايت مع حزمة ميلفوس لايت بايثون
# Install
pip install -U "pymilvus[bulk_writer]"
milvus-lite dump -h
usage: milvus-lite dump [-h] [-d DB_FILE] [-c COLLECTION] [-p PATH]
optional arguments:
-h, --help show this help message and exit
-d DB_FILE, --db-file DB_FILE
milvus lite db file
-c COLLECTION, --collection COLLECTION
collection that need to be dumped
-p PATH, --path PATH dump file storage dir
يقوم المثال التالي بتفريغ جميع البيانات من مجموعة demo_collection
المخزنة في ./milvus_demo.db
(ملف قاعدة بيانات Milvus Lite)
لتصدير البيانات:
milvus-lite dump -d ./milvus_demo.db -c demo_collection -p ./data_dir
# ./milvus_demo.db: milvus lite db file
# demo_collection: collection that need to be dumped
#./data_dir : dump file storage dir
باستخدام ملف التفريغ، يمكنك تحميل البيانات إلى زيليز كلاود عبر استيراد البيانات، أو تحميل البيانات إلى خوادم ميلفوس عبر الإدراج بالجملة.
الخطوة التالية
بعد الاتصال بـ Milvus Lite، يمكنك
التحقق من Quickstart لمعرفة ما يمكن لـ Milvus القيام به.
تعلم العمليات الأساسية لميلفوس:
نشر مجموعة ميلفوس العنقودية الخاصة بك على السحب:
استكشف Milvus Backup، وهي أداة مفتوحة المصدر للنسخ الاحتياطي لبيانات Milvus.
استكشف Birdwatcher، وهي أداة مفتوحة المصدر لتصحيح أخطاء ميلفوس وتحديثات التكوين الديناميكية.
استكشف Attu، وهي أداة مفتوحة المصدر لواجهة المستخدم الرسومية لإدارة Milvus بسهولة.