مهندسان اوبر در یک مقاله فنی جدید توضیح دادهاند که چطور توانستند تاخیر (Latency) جستجو در اوبر ایتس (Uber Eats) را به نصف کاهش دهند. نکته جالب این مقاله، ترکیب بهینهسازیهای عمیق معماری با استفاده از ایجنتهای هوش مصنوعی برای کدنویسی و دیباگ خودکار است.
خلاصه اقدامات کلیدی و جالب آنها:
🔹 تغییر متریک از بکاند به تجربه واقعی کاربر (ATF): به جای تمرکز صرف روی زمان پاسخ API، متریک را به زمان رندر اولین بخش تصویر در صفحه گوشی کاربر (Above-The-Fold) تغییر دادند و رندرینگ را به صورت موازی (Async) بازنویسی کردند.
🔹 جداسازی فرآیند هیدریشن (Hydration Split): قبلاً تا تمام اطلاعات نمایشی (مثل قیمت، تصاویر و تخفیفها) لود نمیشد، فرآیند رتبهبندی مدلهای یادگیری ماشین شروع نمیشد. آنها این مرحله را دو تکه کردند؛ سیگنالهای لازم برای رتبهبندی بلافاصله واکشی میشوند و لود جزییات ظاهری به صورت Async انجام میگیرد.
🔹 بهینهسازی امبدینگها و لایه سیستم: سایز امبدینگهای مدل را با کاهش دقت اعشار و فشردهسازی تا ۴۶٪ کوچکتر کردند. همچنین در کدهای زبان Go با تبدیل پوینترها به Value types بار Garbage Collector حافظه را که تا ۴۰٪ پردازنده را درگیر میکرد به شدت کاهش دادند.
🔹 لوپ ایجنتی خودکار (Agentic Loop): به یک ایجنت هوش مصنوعی تارگت کاهش تاخیر و دسترسی به لاگهای پروفایلینگ پروداکشن دادند. ایجنت گلوگاهها را پیدا میکرد، کد بهینهسازی مینوشت، پولریکوئست میساخت و با بنچمارکهای خودکار عملکرد را میسنجید تا بدون دخالت دستی مشکلات ریز اما پرتکرار را حل کند.
🔹 برنامههای بعدی: پیادهسازی بچینگ در مقیاس ریز (Microbatching)، فیلتر اولیه داخل لایه ایندکس (Zero-Pass Ranking) و استریم کردن فرگمنتهای نتایج به سمت کلاینت.
لینک مقاله کامل:
https://www.uber.com/us/en/blog/uber-eats-search-pipeline/
Post #497
621