LEANN: انجام کار جستجوی بردار در دستگاه های کوچک


نویسنده (ها): ادگار برمودز

در ابتدا منتشر شده در به سمت هوش مصنوعیبشر

مقدمه: چرا جستجوی بردار نیاز به محلی دارد؟

همانطور که ابزارهای هوش مصنوعی همچنان در حال تکامل هستند ، بسیاری از برنامه هایی که روزانه از آنها استفاده می کنیم ، مانند موتورهای توصیه ، جستجوی تصویر و دستیاران مبتنی بر چت ، به آنها اعتماد می کنند جستجوی برداربشر این تکنیک به ماشین ها اجازه می دهد چیزهای “مشابه” را به سرعت پیدا کنند ، خواه این اسناد مرتبط ، تصاویر در نزدیکی یا پاسخ های مربوط به متن باشد. اما در اینجا جالب است: بیشتر این اتفاق در ابر رخ می دهد ، زیرا ذخیره و پرس و جو از داده های بردار با ابعاد بالا از نظر محاسباتی گران و ذخیره سازی است.

این دو مشکل اساسی است.

اول ، حریم خصوصی: جستجوی هوش مصنوعی مبتنی بر ابر اغلب نیاز به ارسال داده های شخصی به سرورهای از راه دور دارد. دوم ، دسترسی: افرادی که دارای اتصال محدود هستند یا در دستگاه های Edge کار می کنند نمی توانند از این ابزارهای قدرتمند استفاده کنند. آیا اگر تلفن یا لپ تاپ شما بتواند بدون ارسال اطلاعات در جای دیگر ، این کار را به صورت محلی انجام دهد ، مفید نخواهد بود؟

این چالشی است که در مقاله جدیدی با عنوان روبرو شد “Leann: یک فهرست بردار ذخیره سازی پایین” توسط وانگ و همکاران. (2025). نویسندگان روشی را ارائه می دهند که باعث می شود جستجوی بردار سریع ، دقیق و کارآمد در حافظه بر روی دستگاه های کوچک و محدود با منابع بدون تکیه به زیرساخت های ابری امکان پذیر شود.

LEANN: انجام کار جستجوی بردار در دستگاه های کوچک

اصول: جستجوی بردار چیست و HNSW چیست؟

برای درک سهم Leann ، ما باید دو ایده اصلی را باز کنیم: جستجوی بردار وت نمایه سازی HNSWبشر

در جستجوی بردار ، موارد داده (مانند متن ، تصاویر یا صوتی) به بردارها ، اساساً لیست های طولانی از اعدادی که معنی یا ویژگی های هر مورد را ضبط می کنند. پیدا کردن موارد مشابه به اندازه گیری مسافت بین این بردارها تبدیل می شود. اما وقتی با میلیون ها نفر از آنها سر و کار دارید ، مقایسه نیروی بی رحمانه خیلی کند است. این جایی است که الگوریتم های تقریبی نزدیکترین همسایه (ANN) وارد می شوند.

یکی از محبوب ترین الگوریتم های آن است HNSW، یا دنیای کوچک قابل پیمایش سلسله مراتبیبشر شما می توانید مانند یک شبکه دوستی به آن فکر کنید: هر نقطه داده (یا “گره”) به برخی دیگر پیوندهایی دارد. برای پیدا کردن یک مسابقه نزدیک ، شما با یک نقطه تصادفی شروع می کنید و از طریق همسایگان خود “قدم می زنید” ، از طریق شبکه می پرید تا اینکه به چیزی شبیه به پرس و جو خود برسید. HNSW سریع و دقیق است ، اما همچنین دارای ذخیره سازی است. این امر به شما نیاز دارد تا هم نمودار شاخص (تمام آن اتصالات) و هم بردارهای داده اصلی را که به سرعت اضافه می شود ، ذخیره کنید.

این امر باعث می شود HNSW برای دستگاه های موبایل یا تعبیه شده در جایی که حافظه محدود است ، غیر عملی باشد.

ایده اصلی LeAnn: هرس ، ذخیره نکنید

LeAnn با دو نوآوری کلیدی این چالش را برطرف می کند:

  1. هرس نمودار: به جای ذخیره نمودار کامل HNSW ، LeAnn آن را به نسخه بسیار کوچکتر تبدیل می کند که هنوز هم توانایی حرکت به طور موثر را حفظ می کند. این کار را با استفاده از الگوریتم های هرس این امر باعث کاهش اتصالات غیر ضروری در حالی که ساختار کافی برای حفظ دقت جستجو است.
  2. بازسازی بردار در پرواز: Leann تمام بردارهای داده اصلی را ذخیره نمی کند. در عوض ، آن را ذخیره می کند مجموعه بذر کوچک و بردارهای مورد نیاز را در زمان پرس و جو با استفاده از یک مدل سبک وزن بازسازی می کند. این به طرز چشمگیری میزان مصرف حافظه را کاهش می دهد ، زیرا ماتریس کامل تعبیه شده دیگر نیازی به زندگی در حافظه ندارد.

با هم ، این استراتژی ها تا حداکثر ذخیره سازی را کاهش می دهند 45 بار در مقایسه با اجرای استاندارد HNSW بدون از دست دادن قابل توجه در دقت یا سرعتبشر این یک تغییر دهنده بازی برای AI محلی است.

نویسندگان Leann را در چندین دنیای واقعی نشان می دهند مجموعه داده ها و نشان می دهد که این عمل نسبتاً با Full HNSW در هر دو زمان تاخیر و فراخوان انجام می دهد ، در حالی که فقط از بخشی از ذخیره استفاده می کند.

چرا این مهم است: ساختن هوش مصنوعی بیشتر ، در دسترس و شخصی تر

برای من ، این مقاله جالب است زیرا یک روش عملی برای ایجاد قابلیت های قدرتمند هوش مصنوعی به محیط های کوچکتر و آفلاین ارائه می دهد. به چند نمونه مشخص فکر کنید:

  • جستجوی سند در دستگاه: تصور کنید که می توانید از تلفن خود بخواهید “PDF را که هفته گذشته در مورد شبکه های عصبی خوانده ام” پیدا کنید و نتیجه ای معنی دار کسب کنید ، حتی اگر در یک هواپیما یا در یک مکان از راه دور هستید.
  • بازیابی عکس خصوصی: به جای بارگذاری عکس های خود در ابر برای جستجوی شباهت بصری ، دستگاه شما می تواند آن را به صورت محلی اداره کند.
  • ابزارهای کمکی برای مراقبت های بهداشتی یا آموزش: در مناطقی که دسترسی به اینترنت محدود دارند ، جستجوی وکتور سبک می تواند ابزارهای تشخیصی یا یادگیری شخصی بدون نیاز به سرورهای خارجی باشد.

این نوع مدل محاسبات محلی با تغییر گسترده تری در هوش مصنوعی به دور از سیستم های متمرکز و به سمت معماری های حفظ حریم خصوصی توزیع می شود.

خودتان آن را امتحان کنید: نسخه ی نمایشی اسباب بازی از جستجوی بردار کم مصرف

اگرچه من اجرای منبع باز Leann را پیدا نکردم که می تواند برای نشان دادن آن برای این پست استفاده شود ، در اینجا یک مثال ساده با استفاده از آن آورده شده است hnswlib برای ساخت یک شاخص بردار ، با استفاده از یک مجموعه بذر کوچکتر ، ذخیره سازی کاهش یافته را شبیه سازی کنید و پس انداز حافظه را تخمین بزنید.

# Install hnswlib if not available
!pip install hnswlib -q

import hnswlib
import numpy as np
import random
import sys
import gc

# Helper to estimate size in MB
def get_size(obj):
return sys.getsizeof(obj) / (1024 * 1024)

# 1. Generate synthetic data
dim = 128 # Vector dimension
num_elements = 10000 # Number of vectors
data = np.random.randn(num_elements, dim).astype(np.float32)

# 2. Build full HNSW index
p = hnswlib.Index(space='l2', dim=dim)
p.init_index(max_elements=num_elements, ef_construction=200, M=16)
p.add_items(data)
p.set_ef(50)

print(f"Full index size (approx): {get_size(p)} MB")
print(f"Full vector storage size: {get_size(data)} MB")

# 3. Simulate storing only a small seed set (e.g. 5% of vectors)
seed_ratio = 0.05
seed_indices = random.sample(range(num_elements), int(seed_ratio * num_elements))
seed_vectors = data[seed_indices]

# Simulated vector reconstruction (dummy here: just return nearest seed vector)
def reconstruct_vector(query_vec, seed_vectors):
dists = np.linalg.norm(seed_vectors - query_vec, axis=1)
nearest = seed_vectors[np.argmin(dists)]
return nearest

# 4. Search using reconstructed vectors
query = np.random.randn(1, dim).astype(np.float32)
reconstructed_query = reconstruct_vector(query, seed_vectors)
labels, distances = p.knn_query(reconstructed_query, k=5)

print(f"Search result using reconstructed vector: {labels}")

# 5. Print simulated memory usage
print(f"Simulated reduced vector storage size: {get_size(seed_vectors)} MB")

این چه چیزی را نشان می دهد

  • یک ماتریس کامل تعبیه شده برای 10،000 بردار 5-10 مگابایت (بسته به dtype و بعد) طول می کشد.
  • با ذخیره تنها 5 ٪ بردارها و بازسازی دیگران ، می توانیم به طور قابل توجهی استفاده از حافظه را کاهش می دهدبشر
  • شاخص HNSW به خودی خود نیز جمع و جور است اما هرس بیشتر (در اینجا نشان داده نشده است) می تواند پس انداز بیشتری داشته باشد.

در سیستم واقعی LeAnn ، بازسازی بردار با استفاده از یک مدل آموخته شده انجام می شود و مرحله هرس برای بالا نگه داشتن دقت بهینه می شود. این مثال اسباب بازی فقط به تجسم کمک می کند مبادله اصلیبشر

افکار نهایی: آینده جستجوی هوش مصنوعی چگونه به نظر می رسد؟

LeAnn نشان می دهد که هنگام انجام جستجوی بردار ، نیازی به انتخاب بین کارآیی و عملکرد ندارید. با طراحی الگوریتمی هوشمند ، می توان سیستم های هوش مصنوعی را ساخت که هم قادر به کار هستند و هم در دسترس هستند که مستقیماً روی دستگاه هایی که هر روز از آنها استفاده می کنیم ، اجرا می شود.

این منجر به یک سوال باز می شود:
چگونه جستجوی وکتور محلی و محلی ، طراحی برنامه های AI آینده را تغییر می دهد؟ آیا سیستم های بیشتر به مدل های آفلاین اول تغییر می کنند یا زیرساخت های ابری غالب باقی می مانند؟

منابع

مقاله: https://arxiv.org/pdf/2506.08276

GitHub-NMSLIB/HNSWLIB: کتابخانه فقط هدر C ++/Python برای نزدیکترین نزدیکترین همسایگان

فقط هدر کتابخانه C ++/پایتون برای نزدیکترین نزدیکترین همسایگان-NMSLIB/HNSWLIB

github.com

hnswlib | 🦜 لانگچین

HNSWLIB یک فروشگاه وکتور در حافظه است که می تواند در یک پرونده ذخیره شود. من

js.langchain.com

منتشر شده از طریق به سمت هوش مصنوعی



منبع: https://towardsai.net/p/machine-learning/leann-making-vector-search-work-on-small-devices