دیتابیس برداری میلوس چیست؟
میلوس در سال 2019 با هدف اصلی ذخیره، نمایهسازی و مدیریت بردارهای تعبیهشده مقیاس بزرگی که توسط شبکههای عصبی عمیق و سایر مدلهای یادگیری ماشین تولید شدهاند، ایجاد شد.
به عنوان یک پایگاه داده که به طور خاص برای پرس و جوی بردارهای ورودی طراحی شده است، میلوس میتواند بردارها را در مقیاسی تا میلیاردها نمایهگذاری کند. به عکس از پایگاههای داده رابطهای موجود که اصولاً با الگوها و دادههای ساختاری پیشتعریف شده سر و کار دارند، میلوس از ابتدا برای مدیریت بردارهای تعبیهشده حاصل از دادههای بیساختار طراحی شده است.
با گسترش مداوم اینترنت، دادههای بیساختار به طور فزایندهای رایج شدهاند، شامل ایمیل، مقالات، دادههای حسگرهای اینترنت اشیا (IoT)، عکسهای فیسبوک، ساختارهای پروتئین و غیره. برای امکان فهم و پردازش دادههای بیساختار، این دادهها باید با استفاده از تکنیکهای تعبیهسازی به بردارها تبدیل شوند. میلوس این بردارها را ذخیره و نمایهگذاری میکند. میلوس میتواند مشابهت فاصله بین دو بردار را با محاسبه فاصله شباهت آنها تحلیل کند و به استنباط از همبستگی آنها بپردازد. اگر دو بردار تعبیهشده بسیار مشابه باشند، این نشان دهنده این است که منابع داده اصلی نیز مشابه هستند.
روند کاری میلوس:
مفاهیم کلیدی
اگر با دنیای دیتابیسهای برداری و جستجوی مشابهت آشنا نیستید، ممکن است مفاهیم کلیدی زیر برایتان مفید باشند.
دادههای بیساختار
دادههای بیساختار شامل تصاویر، ویدیوها، صدا و زبان طبیعی است که به اطلاعاتی که الگو یا ساختار سازماندهی شده پیشتعریف شده ندارد اشاره دارد. این نوع داده حدود 80٪ از دادههای جهانی را تشکیل میدهد و میتواند با استفاده از مدلهای هوش مصنوعی (AI) و یادگیری ماشین (ML) مختلف به بردارها تبدیل شود.
بردارهای تعبیهشده
بردارهای تعبیهشده، انتزاع ویژگیهای دادههای بیساختار (مانند ایمیل، دادههای حسگرهای اینترنت اشیا، عکسهای اینستاگرام، ساختارهای پروتئین و غیره) هستند. از نگاه ریاضی، بردارهای تعبیهشده از اعداد اعشاری ممیزشناور یا آرایههای دودویی تشکیل شدهاند. تکنیکهای تعبیه جدید برای تبدیل دادههای بیساختار به بردارهای تعبیهشده استفاده میشود.
جستجوی مشابهت بردار
جستجوی مشابهت بردار شامل مقایسه یک بردار با یک پایگاه داده برای یافتن مشابهتهای بیشترین بردار به بردار پرس و جو است. استفاده از الگوریتمهای جستجوی نزدیکترین همسایه تقریبی (ANN) میتواند فرآیند جستجو را شتاب بخشد. اگر دو بردار تعبیهشده بسیار مشابه باشند، این نشان دهنده است که منبع داده اصلی نیز مشابه است.
چرا میلوس را انتخاب کنیم؟
- عملکرد بالا برای جستجوی بردار در مجموعه دادههای مقیاس بزرگ.
- پشتیبانی از جامعه محور توسعهدهندگان با پشتیبانی چندزبانه و ابزارها.
- دستیابی به مقیاسپذیری و قابلیت اعتماد بالا در ابر، حتی در حالت شکستها پایداری را حفظ میکند.
- امکان جستجوی ترکیبی با ترکیب فیلترینگهای مقیاسی و جستجوی مشابهت بردار.
چه نوعات نمایهگذاری و استاندارد معیاری پشتیبانی میشود؟
نمایهها واحدهای سازماندهی داده هستند. قبل از جستجو یا پرس و جوی دستالعملهای وارد شده، باید نوع نمایه و استاندارد معیاری مشابهت مشخص کنید. اگر نوع نمایه مشخص نشود، میلوس به استفاده از جستجوی نیرومند پیشتعیین شده میپردازد.
انواع نمایه
میلوس بیشتر انواع نمایههای برداری برای جستجوی نزدیکترین همسایه تقریبی (ANNS) پشتیبانی میکند، از جمله:
- FLAT: مناسب برای سناریوهایی که به دنبال نتایج جستجو دقیق و دقیق برروی مجموعه دادههای مقیاس کوچک (میلیونها) هستند.
- IVF_FLAT: بر اساس نمایه کوانتیزاسیون است، مناسب برای سناریوهایی که به دنبال توازن ایدهآل بین دقت و سرعت پرس و جو هستند. نسخه GPU به نام GPU_IVF_FLAT نیز وجود دارد.
- IVF_SQ8: بر اساس نمایه کوانتیزاسیون است، مناسب برای سناریوهایی که به دنبال کاهش قابل ملاحظهای در مصرف دیسک، پردازنده مرکزی و حافظه GPU به دلیل منابع بسیار محدود هستند.
- IVF_PQ: بر اساس نمایه کوانتیزاسیون است، مناسب برای سناریوهایی که به دنبال سرعت بالای پرس و جو هستند حتی به نفع دقت. نسخه GPU به نام GPU_IVF_PQ نیز وجود دارد.
- HNSW: بر اساس نمایه گراف است، مناسب برای سناریوهایی که نیازهای بسیار بالایی به کارایی جستجو دارند.
برای اطلاعات بیشتر، لطفا به نمایه برداری مراجعه کنید.
معیارهای مشابهت
در میلوس، معیارهای مشابهت برای اندازهگیری شباهت بین بردارها استفاده میشود. انتخاب یک معیار فاصله خوب میتواند به طور قابل توجهی عملکرد طبقهبندی و خوشهبندی را بهبود بخشد. با توجه به شکل داده ورودی، معیارهای مشابهت خاص برای دستیابی به بهترین عملکرد انتخاب میشوند.
معیارهای معمول استفاده شده برای تعبیههای اعشاری عبارتند از:
- فاصله اقلیدسی (L2): این معیار به طور معمول در زمینه بینایی ماشین استفاده میشود.
- ضرب داخلی (IP): این معیار به طور معمول در زمینه پردازش زبان طبیعی استفاده میشود.
معیارهای معمول استفاده شده برای تعبیههای دودویی عبارتند از:
- فاصله همینگ: این معیار به طور معمول در زمینه پردازش زبان طبیعی استفاده میشود.
- شباهت یاکارد: این معیار به طور معمول برای جستجوی مشابهت مولکولی استفاده میشود.
برنامههای نمونه
Milvus اضافه کردن جستجوی شباهت به برنامههای شما را آسان میکند. برخی از برنامههای نمونه Milvus عبارتند از:
- جستجوی شباهت تصویر: این امکان را به شما میدهد که تصاویر را قابل جستجو کرده و تصاویر مشابهتر را از یک پایگاه داده بزرگ به سرعت بیابید.
- جستجوی شباهت ویدئو: با تبدیل کلیدهای اصلی تصویر به بردارها و سپس وارد کردن نتایج به Milvus، میتواند به تعداد بیلیونها ویدئو را در زمان واقعی نزدیک جستجو و پیشنهاد دهد.
- جستجوی شباهت صوت: به سرعت مقادیر بزرگی از دادههای صوتی را، مانند سخنرانی، موسیقی، افکتهای صوتی و صداهای مشابه پرسوجو میکند.
- سیستمهای پیشنهاد دهی: بر اساس رفتار و نیازهای کاربران، اطلاعات یا محصولات را پیشنهاد میدهد.
- سیستمهای پرسش و پاسخ: چتباتهای دیجیتال تعاملی پرسش و پاسخ که میتوانند به طور خودکار به سوالات کاربران پاسخ دهند.
- طبقهبندی دنا: با مقایسه دنهای مشابه، به دقت و در میلیثانیه ژنها را طبقهبندی میکند.
- موتورهای جستجوی متن: به کاربران کمک میکند تا با مقایسه کلمات کلیدی با پایگاه دادههای متنی، اطلاعاتی که به دنبال آن هستند را پیدا کنند.
مفهوم طراحی Milvus
به عنوان یک پایگاه داده برداری مبتنی بر ابر، Milvus در طراحی خود فضای ذخیرهسازی را از محاسبات جدا میکند. برای افزایش انعطافپذیری و انعطافپذیری، همه مؤلفههای Milvus بیحالت هستند.
این سیستم به چهار لایه تقسیم میشود:
- لایه دسترسی: شامل یک گروه از پراکسیهای بیحالت است که به عنوان لایه جلویی سیستم و نقاط پایانی برای کاربران عمل میکنند.
- سرویس هماهنگ کننده: این سرویس وظایف را به گرههای کارگر اختصاص میدهد و به عنوان مرکز محوری سیستم عمل میکند.
- گرههای کارگر: این گرهها به عنوان دست و پاهای سیستم عمل میکنند، دستوراتی را که توسط کاربران اجرا میشوند را به شکل بیمغزانه اجرا میکنند.
- ذخیرهسازی: این استخر سیستم است که مسئولیت دوام دادهها را بر عهده دارد. این شامل ذخیرهسازی فضایی، عاملهای ورودی و ذخیرهسازی اشیاء است.
.
ابزارهای توسعهدهنده
Milvus مجموعهای غنی از API و ابزارها برای توسعه و بهرهبرداری ارائه میدهد.
دسترسی API
Milvus کتابخانههای مشتری را اطراف API Milvus فراهم میکند که میتواند برای قراردادن، حذف و پرس و جوی داده به صورت برنامهنویسیشده از کد برنامه استفاده شود:
- PyMilvus
- کتابخانه Node.js
- کتابخانه Go
- کتابخانه Java
ابزارهای اکوسیستم Milvus
اکوسیستم Milvus چندین ابزار مفید را ارائه میدهد، از جمله:
- رابط خط فرمان Milvus
- Attu: یک سیستم مدیریت گرافیکی برای Milvus.
- MilvusDM (انتقال داده Milvus): یک ابزار منبعباز بهطور خاص برای وارد کردن و صادر کردن داده با Milvus.
- ابزار برنامهریزی ظرفیت Milvus: از طریق انواع مختلف فهرست فایل خام مورد نیاز را، اندازه حافظه و فضای دیسک پایدار را ارزیابی میکند.
محدودیتهای Milvus
Milvus متعهد است که بهترین پایگاه داده برداری را برای ایجاد برنامههای هوش مصنوعی و جستجوی شباهت برداری ارائه دهد. با این حال، تیم به طور مداوم در حال کار بر روی معرفی ویژگیها بیشتر و ابزارهای بهینهسازی برای بهبود تجربه کاربران است. این صفحه برخی از محدودیتهای شناختهشده را که کاربران هنگام استفاده از Milvus ممکن است برخورد کنند، فهرست میکند.
طول نامهای منابع
منبع | محدودیت |
---|---|
مجموعه | 255 کاراکتر |
فیلد | 255 کاراکتر |
فهرست | 255 کاراکتر |
بخش | 255 کاراکتر |
قوانین نامگذاری
نامهای منابع میتوانند شامل اعداد، حروف و زیرخط (_) باشند. این نامها باید با یک حرف یا زیرخط آغاز شود.
تعداد منابع
منبع | محدودیت |
---|---|
مجموعه | 65,536 |
اتصالات/عاملها | 65,536 |
تعداد منابع در مجموعهها
منبع | محدودیت |
---|---|
بخش | 4,096 |
شارد | 64 |
فیلد | 64 |
فهرست | 1 |
موجودیت | نامحدود |
طول رشته
نوع داده | محدودیت |
---|---|
VARCHAR | 65,535 |
بعد بردار
ویژگی | محدودیت |
---|---|
بعد | 32,768 |
ورودی و خروجی برای هر عملیات RPC
عملیات | محدودیت |
---|---|
عملیات درج | 512 مگابایت |
عملیات جستجو | 512 مگابایت |
عملیات پرسوجو | 512 مگابایت |
محدودیت بارگذاری
در نسخه فعلی، داده برای بارگذاری باید در داخل 90% منابع حافظه کلیه گرههای پرسوجو باشد تا منابع حافظه برای موتور اجرایی رزرو شود.
محدودیتهای جستجو
بردار | محدودیت |
---|---|
topk (تعداد نتایج مشابهتی که برگردانده میشود) |
۱۶،۳۸۴ |
nq (تعداد درخواستهای جستجو) |
۱۶،۳۸۴ |