پیادهسازی جستوجوی تصویری در باسلام: یک تجربه مقیاسپذیر

مقدمه
در بسیاری از سیستمهای بازیابی اطلاعات، جستوجوی متنی بهعنوان رایجترین و سادهترین روش برای یافتن محتوای مورد نظر کاربران استفاده میشود. اما با رشد انتظارات کاربران و نیاز به جستوجوی دقیقتر و هوشمندانهتر، این رویکرد محدودیتهایی را نشان داده است - بهویژه در زمینه جستوجوی مفهومی، مترادفها و جستوجوهای توصیفی.
در پلتفرم باسلام، با توجه به تنوع بالای محصولات و سبک بیان متفاوت کاربران در نگارش و جستوجو، نیاز به جستوجویی فراتر از متن حس میشد. اینجا بود که ایدهی استفاده از «تصویر بهعنوان ورودی جستوجو»، بهعنوان راهحلی نوآورانه مطرح شد.
این مقاله به بررسی روند طراحی، پیادهسازی و بهینهسازی سیستم جستوجوی تصویری در باسلام میپردازد؛ تجربهای که تاثیر مستقیمی بر بهبود تجربه کاربری داشته و نقطه عطفی در توسعه پلتفرم باسلام به شمار میرود.
چالشهای جستوجوی متنی
در سیستمهای متنی کلاسیک، الگوریتمهایی مانند BM25 (که در موتورهایی نظیر Elasticsearch استفاده میشوند) برای رتبهبندی اسناد و نتایج بهکار میروند. اما این الگوریتمها در درک زبان طبیعی و معانی ضمنی با محدودیتهایی مواجهاند. نمونههایی از این چالشها شامل موارد زیر هستند:
- استفاده از مترادفها 
 جستوجو: «کابل شارژر سامسونگ»
 عنوان محصول: «سیم شارژ سامسونگ»
- تغییر ترتیب واژگان 
 جستوجو: «شال نخی منگولهدار پلیسه»
 عنوان محصول: «شال نخی پلیسه منگولهدار»
- بیان توصیفی 
 جستوجو: «ابزار کوچک برای شخم زدن باغ»
 محصول مرتبط: «کولتیواتور» یا «تیلر»
این نمونهها نشان میدهند که برای پوشش بهتر نیاز کاربران، نیاز به جستوجویی داریم که بتواند محتوای مفهومی یا تصویری را نیز درک کند و فقط محدود به متن نباشد.
بررسی تجربیات جهانی
بسیاری از شرکتهای بزرگ فناوری و تجارت الکترونیک مانند آمازون، گوگل، پینترست و علی بابا سالهاست از جستوجوی تصویری در محصولات خود استفاده میکنند. این نمونهها ثابت کردهاند که استفاده از تصویر بهعنوان ورودی، درک عمیقتری از نیاز کاربر فراهم کرده و تجربهای طبیعیتر برای جستوجو خلق میکند.
معماری سیستم جستوجوی تصویری در باسلام
برای توسعه این قابلیت، یک معماری «مبتنی بر پردازش برداری تصویر» طراحی شد. این سیستم از دو جزء کلیدی تشکیل شده است:
۱. تولید بردار از تصویر (Image Embedding)
در این بخش، از مدل BLIP-2 استفاده شد که از یک encoder تصویر مبتنی بر Vision Transformer (مانند ViT-L/14) بهره میبرد و برای اتصال بین تصویر و زبان از معماری خاصی به نام Q-Former استفاده میکند.
این مدل با دریافت تصویر، آن را به یک بردار با ویژگیهای فشردهشده (embedding) در فضای چندبعدی تبدیل میکند. این بردار نمایانگر ویژگیهای محتوایی تصویر است و امکان مقایسه ریاضی بین تصاویر مختلف را فراهم میسازد.
برای تولید بردار تصویری میتوان از توابع موجود در کتابخانه transformers برای این مدل استفاده کرد. نمونه کد تولید بردار مرتبط با ویژگیهای بصری در ادامه آمده است:
from PIL import Image
import requests
from transformers import AutoProcessor, Blip2Model
# Load the BLIP-2 model and processor
model = Blip2Model.from_pretrained("Salesforce/blip2-opt-2.7b")
processor = AutoProcessor.from_pretrained("Salesforce/blip2-opt-2.7b")
# Load an image from the web
url = "http://images.cocodataset.org/val2017/000000039769.jpg"
image = Image.open(requests.get(url, stream=True).raw)
# Prepare inputs and extract image features
inputs = processor(images=image, return_tensors="pt")
image_outputs = model.get_image_features(**inputs)
# Ref: https://huggingface.co/docs/transformers/en/model_doc/blip-2مدل BLIP-2 بر بستر TorchServe روی GPU پیادهسازی و serve شد تا بتواند با عملکرد پایدار و با زمان پاسخ مناسب، درخواستهای تبدیل تصویر به بردار را پردازش کند.
۲. ذخیره و جستوجوی برداری (Vector Database)
برای جستوجو میان بردارها، از پایگاه داده برداری Qdrant استفاده شد. Qdrant با پشتیبانی از جستوجوی تقریبی (Approximate Nearest Neighbor) بر اساس فاصله بین بردارها، امکان بازیابی سریع و دقیق تصاویر مشابه را فراهم میکند. این پایگاه داده، بردارها را همراه با اطلاعات محصول ذخیره میکند و در زمان جستوجوی تصویری، نزدیکترین بردارها به ورودی کاربر را بازمیگرداند.

بهینهسازی مدل برای مقیاسپذیری
مدل اولیهی BLIP-2 با وجود دقت بالا، مصرف حافظهی زیادی داشت و این موضوع باعث میشد توان پردازشی محدود شود - بهطوریکه هر GPU تنها توانایی پردازش حدود ۴ درخواست در ثانیه را داشت. برای پاسخگویی به نیاز مقیاسپذیر باسلام، اقداماتی در راستای بهینهسازی انجام شد:
- حذف Q-Former و مدل زبانی OPT-2.7b: این دو مؤلفه مسئول تولید توضیحات متنی (caption) بودند، اما در مسئلهی جستوجوی صرفاً برداری کاربردی نداشتند. بنابراین برای کاهش پیچیدگی محاسباتی حذف شدند. 
- استخراج مستقیم embedding از ViT-L/14: بهجای استفاده از خروجی ترکیبی مدل، embedding نهایی مستقیماً از لایههای تصویری استخراج شد تا روند پردازش سادهتر و سریعتر شود. 
- استفاده از تکنیکهای بهینهسازی حافظه مانند Mixed Precision: با استفاده از دقت FP16، مصرف حافظه به شکل قابل توجهی کاهش یافت و سرعت پردازش نیز افزایش پیدا کرد. 
نتایج فنی بهینهسازی
- کاهش مصرف حافظه از ۶GB به ۱.۲GB 
- افزایش ظرفیت پردازش از ۴ به ۲۰ تصویر همزمان در هر GPU 
- کاهش زمان پاسخ از ۲۳۰ms به ۴۰ms 
- افزایش نرخ پردازش به ۲۵ درخواست در ثانیه 
نتایج عملیاتی و تجربه کاربری
قابلیت جستوجوی تصویری باسلام در شهریور ۱۴۰۳ بهصورت رسمی عرضه شد. این سیستم نخستین نمونه عملیاتی از این نوع در میان بازارگاههای ایرانی به شمار میرود. عملکرد این سیستم تا کنون عبارت است از:
- بیش از ۲۰۰,۰۰۰ درخواست تصویری در روز 
- نرخ کلیک (CTR) بالای ۵۰٪ 
- افزایش روزانه GMV 
- استقبال بالای کاربران و کاربردپذیری در سطح گسترده 
کاربردهای جستوجوی تصویری در باسلام
سیستم جستوجوی تصویری، فراتر از نقش اولیه خود بهعنوان یک ابزار جستوجو، در بخشهای مختلف پلتفرم باسلام بهعنوان زیرساختی کلیدی برای تحلیل و دستهبندی تصویرمحور محصولات مورد استفاده قرار گرفته است. این سیستم با قابلیت استخراج ویژگیهای معنایی از تصاویر، امکان خودکارسازی و بهبود فرآیندهای مختلف را فراهم کرده است.
- تولید صفحات گروه محصولات (PGP): با تحلیل ویژگیهای بصری محصولات، میتوان محصولات مشابه را بهصورت خودکار گروهبندی کرده و صفحات موضوعی پویاتری تولید کرد. 
- نمایش محصولات مشابه برای کاربران: در صفحه هر محصول، پیشنهاد محصولات مشابه با استفاده از شباهت تصویری، تجربه کشف محصولات جدید را برای کاربران بهبود میبخشد. 
- تسهیل فرآیند ثبت محصول جدید توسط غرفهداران: با استفاده از ویژگیهای تصویری محصول بارگذاریشده، پیشنهادهای خودکار برای دستهبندی و تکمیل اطلاعات محصول به غرفهدار ارائه میشود. 
- پشتیبانی از ورود خودکار محصولات سوپرمارکتی: در فرآیند ورود انبوه محصولات سوپرمارکتی توسط غرفههای ارسال سریع، این سیستم بهشکل خودکار تصویر را تحلیل کرده و اطلاعات اولیه محصول را پیشنهاد میدهد، که موجب تسریع و دقت بیشتر در ثبت کالاها میشود. 
نتیجهگیری
تجربه پیادهسازی جستوجوی تصویری در باسلام نشان داد که با انتخاب صحیح معماری، استفاده هدفمند از مدلهای یادگیری عمیق، و بهینهسازی منابع، میتوان یک سیستم پیشرفته و مقیاسپذیر را در بسترهای واقعی پیادهسازی کرد. این پروژه نهتنها نیاز کاربران به جستوجوی دقیقتر و متناسب با ویژگیهای بصری را پاسخ داد، بلکه در عمل توانست شاخصهای کلیدی عملکرد کسبوکار را نیز بهبود بخشد. بهرهگیری از مدلهای تصویر محور در کنار پایگاه دادههای برداری، مسیر جدیدی را برای توسعه قابلیتهای هوشمند در پلتفرمهای ایرانی هموار میکند. موفقیت این پروژه میتواند مبنایی برای توسعه سرویسهای مشابه در سایر حوزههای مرتبط با جستوجو، دستهبندی و توصیهگرهای هوشمند باشد.
سپاسگزاری
از تمامی همکارانی که در این پروژه نقش داشتند، متشکرم:
علیرضا آراسته - حسام سرکشیکیان - علیرضا ربانی - سید حسین اکبری - سید علی صحفی - صادق سرداری - علیاصغر رجبی
 
                   
            
مطلبی دیگر از این انتشارات
تجربه ایجاد تیم تست: باسلام چطور تیم تستدار شد؟
مطلبی دیگر از این انتشارات
تجربهی بازسازی باسلام پس از تعدیل
مطلبی دیگر از این انتشارات
از خاکستر بحران تا نقشهی آینده: نقشه مناطق بمباران شده ایران