پرش به محتوای اصلی
پرش به محتوای مقاله

کاهش تأخیر جست‌وجو از ۴.۲ ثانیه به ۴۵۰ میلی‌ثانیه با رنکر سفارشی Rust

·۱۵ خرداد ۱۴۰۵۲ دقیقه مطالعه۱ بازدید
کاهش تأخیر جست‌وجو از ۴.۲ ثانیه به ۴۵۰ میلی‌ثانیه با رنکر سفارشی Rust
اشتراک‌گذاری

اگر جست‌وجوهای پیچیده شما در محیط عملیاتی با خطای زمان‌بندی (Timeout) مواجه می‌شوند، احتمالاً از ابزاری استفاده می‌کنید که برای نمایش به سرمایه‌گذاران ساخته شده، نه برای کاربر واقعی. در پرس‌وجوهایی که نیاز به دقت میلی‌متری در نزدیکی کلمات و تقویت متاداتا دارند، جست‌وجوی معنایی (Semantic Search) ساده معمولاً شکست می‌خورد.

بسیاری از تیم‌ها برای مرحله‌ی بازیابی (Recall) — که شبیه به انداختن یک تور ماهی‌گیری بزرگ برای جمع‌آوری تمام احتمالات است — به Veltrix تکیه می‌کنند. اما طبق گزارش منتشر شده در ۲۷ مه ۲۰۲۶ در سایت dev.to، این ابزار در مواجهه با فیلترهای سنگین دچار گلوگاه می‌شود. طبق این گزارش، ۷۳٪ از نشست‌های کاربری در یک پیاده‌سازی خاص به دلیل ناتوانی امتیازدهنده‌ی کسینوسی (Cosine Scorer) — روشی برای اندازه‌گیری شباهت دو متن شبیه به زاویه بین دو فلش — در پردازش حجم درخواست‌ها، با خطا مواجه شدند.

همان‌طور که در تحلیل‌های قبلی ما درباره‌ی بهینه‌سازی زیرساختی مدل‌ها اشاره کردیم، جداسازی لایه‌های پردازشی کلید مقیاس‌پذیری است. این تیم مشکل را با تقسیم خط لوله به دو مرحله حل کرد. ابتدا Veltrix با استفاده از یک اندیس BM25 (شبیه به فهرست انتهایی کتاب که تعداد تکرار کلمات را می‌شمارد) در ۲۰۰ میلی‌ثانیه، ۱۰ هزار کاندید را می‌یابد. سپس این نتایج از طریق gRPC به یک رنکر سفارشی ارسال می‌شوند.

این رنکر با زبان Rust و با استفاده از کتابخانه‌های Prost و Tokio ساخته شده است. به نقل از مستندات فنی این پروژه، رنکر Rust می‌تواند ۱۰ هزار سند را تنها در ۴۵ میلی‌ثانیه رتبه‌بندی کند. برای پایداری بیشتر، تیم توسعه کتابخانه‌های استاندارد JSONPath را با یک اسکنر بایتِ دست‌ساز جایگزین کرد تا از رشد بیش از حد پشته (Stack) جلوگیری کند. در نهایت، یک پروکسی سبک به زبان Go تمامی این عملیات را مدیریت می‌کند تا API همچنان با Veltrix سازگار بماند.

این تغییر ثابت کرد که در مقیاس بالا، ساختار ماژولار بر راحتیِ ابزارهای «همه-در-یک» پیروز می‌شود. با انتقال منطق تجاری به Rust، تیم توانست از طریق Prometheus و OpenTelemetry دیدی به سیستم داشته باشد که لاگ‌های داخلی Veltrix هرگز ارائه نمی‌دادند. نتیجه برای کاربر، کاهش ۹۰ درصدی تأخیر و رسیدن نرخ خطا به ۰.۰۳٪ بود.

گام بعدی شما

  • بررسی کنید که گلوگاه جست‌وجوی شما در مرحله‌ی بازیابی است یا رتبه‌بندی.
  • اگر تأخیر p95 شما بالای ۱ ثانیه است، جداسازی رنکر (Ranker) از موتور بازیابی را تست کنید.
  • برای پردازش‌های با حجم بالا، استفاده از توابع اسکن بایت به جای پارسرهای سنگین JSON را بررسی کنید.

اما این بهینه‌سازی‌های نرم‌افزاری تنها نیمی از داستان است؛ اثر سخت‌افزارهای جدید بر کاهش هزینه استنتاج را در تحلیل ما درباره‌ی تراشه‌های Blackwell بخوانید.

چرا این موضوع مهم است؟

این رویکرد ثابت می‌کند که برای رسیدن به کارایی صنعتی، باید ابزارهای AI را به عنوان موتورهای خام دید و لایه‌ی رتبه‌بندی را به صورت تخصصی پیاده کرد. این موضوع تخصص در معماری سیستم‌های توزیع‌شده را به اندازه تخصص در مدل‌سازی اهمیت می‌دهد.

این گزارش با خط‌لولهٔ خودکار دات‌هوش از منابع معتبر جهانی تدوین و زیر نظر تحریریه منتشر شده است. روش کار ما

گفتگو

پنج‌شنبه‌های هوش‌محور

بسته‌ی هفتگی دات‌هوش

۵ خبر، ۲ ابزار، ۱ پرامپت در هر شماره. به‌زودی راه‌اندازی می‌شود — هر پنج‌شنبه صبح.

خبر کلیدی
ابزار کاربردی
پرامپت حرفه‌ای
تحلیل پژوهش
به‌زودی
زاویه‌ی ایرانی
به‌زودی
تمرین این هفته
به‌زودی

راهنماهای دات‌هوش

راهنماهای کاربردیِ دات‌هوش برای کار با هوش مصنوعی — از همین‌جا شروع کنید:

دات‌هوش

راهنمای فارسی هوش مصنوعی — با نگاه به ایران

اخبار روزانه، معرفی ابزارها و مدل‌ها، و آموزشِ کار با هوش مصنوعی؛ همیشه با این پرسش که از ایران چه چیزی کار می‌کند و چه چیزی نه.