Redis 8 با نوع داده جدید برای شباهت برداری، برنامه‌های هوش مصنوعی را هدف قرار می‌دهد

Redis اخیراً از اضافه شدن Vector Set، یک نوع داده طراحی شده برای شباهت برداری و گزینه ای جدید برای برنامه های هوش مصنوعی خبر داده است. این نوع داده جدید، اولین مشارکت عمده Salvatore Sanfilippo (معروف به 'antirez')، خالق Redis، از زمان پیوستن مجدد به این شرکت است.

Vector Sets یک نوع داده جدید شبیه به Sorted Sets است، اما عناصر رشته ای مرتبط با یک بردار به جای یک امتیاز دارد، که امکان افزودن آیتم ها و بازیابی زیر مجموعه ای از آیتم های اضافه شده را فراهم می کند که بیشترین شباهت را به یک بردار مشخص شده دارند. قابلیت های جستجوی فیلتر شده نیز پشتیبانی می شوند و به طور همزمان امکان شباهت برداری و فیلترهای اسکالر را فراهم می کنند. Sanfilippo در وبلاگ خود توضیح می دهد:

هدف از ساختار داده جدید، به طور خلاصه، ایجاد یک نوع داده جدید "Set alike" مشابه Sorted Sets است، که در آن به جای داشتن یک اسکالر به عنوان امتیاز، یک بردار دارید و می توانید عناصر را به روش Redis اضافه و حذف کنید، بدون اینکه به چیزی جز ویژگی های ساختار داده انتزاعی که Redis پیاده سازی می کند اهمیت دهید. درخواست عناصری شبیه به یک بردار پرس و جو داده شده (یا برداری مرتبط با برخی از عناصر موجود در مجموعه) و غیره.

Vector Sets بر اساس پیاده سازی hnsw.c از ساختار داده HNSW، با افزونه هایی برای سرعت و عملکرد است. Rowan Trollope، مدیر عامل Redis، از مشارکت Sanfilippo قدردانی می کند:

تخصص او منجر به ایجاد یک API شده است که هم ساده و هم شهودی است، و منعکس کننده فلسفه Redis در ارائه راه حل های با کارایی بالا با حداقل پیچیدگی است.

پایگاه داده های برداری برای برنامه های پشتیبانی شده توسط GenAI برای بازیابی اطلاعات مرتبط معنایی برای غنی سازی زمینه LLM ها (RAG) بسیار مهم هستند. موارد استفاده دیگر شامل ذخیره سازی معنایی برای چت بات ها، سیستم های توصیه گر و تشخیص چهره است. Mirko Ortensi، مدیر محصول در Redis، در مقاله ای جداگانه توضیح می دهد که چگونه از Vector Sets برای تشخیص چهره استفاده کنیم. Ortensi می نویسد:

تشخیص چهره تماماً در مورد بردارها است. این در مورد مدل سازی چهره های شناخته شده با استفاده از یک مدل جاسازی تخصصی، ذخیره آنها در Redis و انجام تشخیص چهره با اجرای یک جستجوی برداری از هویت آزمایشی در برابر بردارهای ذخیره شده در پایگاه داده است.

میرکو اورتنسی
منبع: Mirco Ortensi

Sanfilippo اضافه می کند:

من تصمیم گرفتم که یک الزام اساسی برای پیاده سازی شباهت برداری، پیاده سازی مجدد HNSW ها از ابتدا باشد (می توانید پیاده سازی من را در hnsw.c ببینید)، زیرا این قرار بود ساختار داده اصلی من باشد و نمی خواستم کد تصادفی را از GitHub بردارم و از آن راضی باشم.

Sanfilippo با تمرکز بر عملکرد با سرعت بالا، نه تنها تغییراتی را در HNSW معرفی کرد، بلکه چند رشته ای را برای همه درخواست های شباهت برداری، همراه با پشتیبانی از کمی سازی 8 بیتی و باینری نیز معرفی کرد. او تفاوت اصلی در پیاده سازی خود را برجسته می کند:

جالب ترین بخش Vector Sets، مدل داده و API پشتیبانی کننده آن است. بسیاری از پایگاه‌های داده، شباهت برداری را به عنوان نوعی فهرست پیشنهاد می‌کنند، اما این Redis است و چیزها در Redis ساختارهای داده هستند: این بار هم استثنایی وجود ندارد.

Vector Sets تنها ویژگی جدید Redis نیست: LangCache، یک سرویس ذخیره سازی معنایی برای برنامه ها و عوامل هوش مصنوعی، برای کاهش تماس های پرهزینه و مستعد تأخیر با LLM ها با ذخیره پاسخ های آنها طراحی شده است.

Vector Sets در پیش نمایش با Redis 8 RC1 تحت مجوز RSALv2 یا SSPLv1 مجوز در دسترس است.