آیا با پیاده سازی تمام الگوریتمها می توان از گوگل گذشت.
یکی دو روز پیش اتفاق جالبی افتاد، یکی از دوستان که به هیچ عنوان نمیخواهم اشاره مستقیم به شخص شون بکنم اما از صمیم دل برایشان آرزوی موفقیت کردم، به من پیام داد که:برخی مطالب شمارو خوندم جالب بودن [ به] نکات مختلفی اشاره کرده بودید و ممنونم ازین بابت ....در پاسخ ایشان گفتم:سلام ما با هم رقیبیم، امیدوارم رفیق خوبی هم برایت باشم.خوشحالم که مطلبم مورد توجه اتون بوده.ویرگول را هم نگاه کن https://virgool.io/@webrefer شاید به کارت بیاید، من بیست سال شد در تلاش برای ارایه موتور جستجو هستم (دامنه ojo.ir سال 86 ثبت شده)، برایم جالبه که شما ... [ زودتر از من] موتورتان نوشتید. [ چون می د انم] این کار بظاهر ساده است اما هزارتا پیچ و خم داره من تا جاییکه محرمانگی کارم اجازه بده گفتنی ها را گفته و می گم ولی به نظر من پی رقابت با گوگل باش و نه موتور جستجو نوشتن. چون اگر نتونی شانه به شانه گوگل شوی فقط بازار این کار را خراب می کنی، و دقیقا به همین دلیلِ من هنوز از موتورم رونمایی نکردم چون هنوز جا داره که بخواهم و بتونم گوگل را قلقک بدم.و ایشان در پاسخ من اینگونه گفتند:ما خیلی موارد [را] انجام دادیم که حتی گوگلم انجام نمیده وقتی زیر ساخت قوی زیر دست آدم نیست مجبور به کم کردن الگوریتم های سنگین میشه مخصوصا با افزایش داده. نسخه اولین ... که بیش از ۲۷ الگوریتم مطرح تو دنیا توش به کار برده شده بود که حتی منتشر رسمی هم نکردم حتی مدل هوش مصنوعی هم براش نوشتم ولی خب با زیر ساخت ضعیفی که دستمه مجبور به کاهش الگوریتم های سنگین کردمواگرنه آدم میتونه تو کمترین زمان چیزی شبیه گوگل رو بزنه مهم اینه که زیرساختش دستت باشه خوب به ایشان گفتم:زیرساخت که کلیشه است.یک نکته،الگوریتمها گم و گور نیستند که شما ۲۷ تاش را اجرا کنی موفقیت باشه همه مشکل در این خلاصه میشه که بتونی روی سیستم خونه خودت روی اپاچی یا یک میلیون رکود داده ۱۵۰۰ تا کانکارنسیت باشه. همراه اول روی ذره بین ته ته زورش را که زد با این تعداد کورد و سسیتم عالی به ۱۰۰ تا رسید، تو ۸۰ تا بزن تا بفهمی کجای کار گیره. این فن را ما نداریم. باقیش بهونه اش. ما تونستیم این مرحله را رد کنیم. و بزودی می تونیم حرفی برای گفتن داشته باشیماز این به بعد بحث را می خواهم اینجا با دیگر دوستان ادامه دهم:اما قبلش این تو ضیح را بدهم که مجبورم برای اینکه بهتر مطلب را برسان در مواقعی از اصطلاحات تخصصی به زبان ا نگلیسی بگویم چون برای برخی آنها هیچ جایگزینی در فارسی نداریم.از این بابت از دوستان عذرخواهی می کنم و توصیه می کنم اگر در زمینه در پروژههای Search Engine که صحبت شد، تخصص ندارید از این جلوتر نروید چون احتمال حوصله تان را سر می برم. گفتم ناچارا مجبورم بحث را تخصصی کنم.
تفاوت دو نگاه بالادر چیست
دوست مان صحبتهایش نمایی از «مهندسمحور» و «متکی بر فن آوری نرم افزاری» بود و من دغده ام «سیستممحور» و ناشی از «تجربهگرایی ام» بود.و در استثنایی عجیب، در پروژه موتور جستجو، «سیستممحور» به واقعیت صنعتی نزدیکتر است.اما چرا «۲۷ الگوریتم» عملا معیار meaningful نیست؟چون این از دید فنی خیلی شاخص معتبری نیست.چرا؟چون، در موتور جستجو مسئله “تسلط به تعدادی الگوریتم” نیست، بلکه:latencythroughputindex freshnesscrawl efficiencyranking qualitydistributed systemsfault tolerancestorage architecturequery optimizationrelevance engineeringspam resistancecaching strategyconcurrency handlingهست.ممکن است کسی:PageRankBM25TF-IDFHITSsemantic embeddingvector searchرا همزمان داشته باشد، ولی عملا موتورش غیرقابل استفاده باشد.در صنعت Search، execution مهمتر از algorithm count است.حرف من این است که «الگوریتمها گم و گور نیستند»یعنی مسئله دانستن الگوریتم نیست؛مسئله قدرت scale کردن آنهاست.من درباره Bottleneck واقعی حرف میزندوقتی میگویم:«روی سیستم خونه، ۱۵۰۰ کانکارنسی»این حرف از نظر مهندسی بسیار مهمتر از «۲۷ الگوریتم» است.چون سرچانجین واقعی مشکلش:parallel query executionI/O saturationmemory pressurelockingshard coordinationcache invalidationranking latencyاست.خیلیها میتوانند crawler بنویسند.خیلیها میتوانند inverted index بسازند.خیلیها میتوانند semantic search بزنند.اما:زیر 100ms پاسخ دادنتحت load بالابا index بزرگبدون crashبدون memory leakهمان چیزی است که موتور جستجو را «واقعی» میکند.دوستم به دامنه ojo.ir اشاره کرد. من تجربه production واقعی را دارم
دامنه ojo.ir هرگز برای موتور جستجو رونمایی نشده و موتور جستجویی که قرار ا ست روی آن عرض شود هنوز از آزمایشگاه خارج نشده. دوستمان یک اشتباه رایج “Google replication fallacy” دارد «مغالطهٔ تکرار گوگل» یا بهصورت توضیحی:«این تصور اشتباه که:«آدم میتونه تو کمترین زمان چیزی شبیه گوگل رو بزنه» از نظر فنی تقریبا غلط است. و ناشی از این است که پیچیدگیِ ظاهریِ جستوجو را با پیچیدگیِ واقعی اشتباه می گیرند.دلیل:گوگل فقط الگوریتم نیست.گوگل یعنی:distributed file systemscustom networkingplanetary-scale indexingmassive crawl infrahardware-aware schedulingquery understandinganti-spam MLuser behavior modelingclick modelstrillion-scale indexingdatacenter topology optimization درباره «بازار خراب کردن» موتور جستجو های ناقص
وقتی یک موتور جستجوی ادعای محصول search داشته باشه اما در عمل:relevance ضعیفlatency بالاcrawl ناقصranking بدداشته باشد، کاربر خیلی سریع اعتمادش را از دست میدهد.چرا که برخلاف شبکههای اجتماعی، در جستوجو میزانِ تحملِ کاربر (اصطلاحا search tolerance )بسیار پایین است.حتی اگر ۳ جستجوی اول بد باشد کاربر دیگه برنمیگردد. حتی اگر ادعا کند شگفتانه دارد.برای همین است که می گویم: «اگر شانه به شانه گوگل نشوی بازار را خراب میکنی» ممکن است دوست مان واقعا ایدههای جدید و خوبی داشته باشند اما دیگر کاربرش بر نمی گردد.
مسئله اصلی Search در ایران چیست
مسئله ای است که نه من و نه این دوستم حرفی ازش نزدیم.مهمترین مسئله که اینجا به اون اشاره می کنم:هزینه crawlهزینه bandwidthهزینه storage مشکلات حقوقی جستجو در ایرانمقابله با سوءاستفادهمدیریتهای مربوط به data center خطِ پردازشِ بهروزرسانیِ مداومکمبودِ دادههای جریانِ کلیکِ کاربرانگوگل بدون behavioral data عملا گوگل نمیشد.بزرگترین مزیت گوگل:data network effectاست، نه صرفا الگوریتم.و از همه مهمتر «behavioral data» است که در اینجا به اون اشاره شد:«گوگل جستجوی زبان فارسی را از ما دارد». آیا واقعا زیر ساخت مهم نیست
قبل از این که سیر حملات برای گفتن:، نداشتن زیر ساخت حرف کلیشه ای است به سمتم بیاید لازم است منظورم از گفتن آن توضیح بدهم:بله اگر منظور دوستمان از زیرساخت:distributed infrastorage clustersnetwork architecturehigh-speed SSD arraysmemory-heavy ranking nodesباشد، زیرساخت واقعا تعیینکننده است چرا که برخلاف پلتفرمهایی که نیازشان استریمینگ است (مثل آپارات) جستوجو بهشدت وابسته به زیرساخت است (اصطلاحا infra-bound است). پس چرا من آن حرف را زدم، برای اینکه قبل از رسیدن به بحث زیر ساخت باید مسئله کانکارنسی روی سرور حل شود.وقتی این دوستمان نتونه روی سیستم خونه خودش، 80 تا کاربر همزمان را پاسخگو باشه چطور میتونه 45 میلیون کاربر ایرانی با کانکارنسی حدود 300 هزار را حتی با 200 سرور قدرتمند پاسخ بده. محاسبه ای که تیم آقای نقوی، طراح موتور جستجوی یوز برای تعین نیازشان آنها را به تعداد 10000 سرور رساند در حالیکه گوگل همین کار را با 200 سرور با المانهای حتی ضعیفتر از سرورهای مد نظر یوز انجام می دهد. چرا گوگل توانسته بر روی یک سرور معمولی 3500 تا کانکارنسی داشته باشه و تنها با 100 سرور معمولی می تونه ایران را پوشش بده ولی چون قراره این سرورها کار خزش را هم (با آی پی مستقل )انجام دهند، در عمل 200 سرور برای ایران گذاشته و تا حالا هم هیچ کدام از ما ایرانیها overload و overflow از گوگل ندیده ایم.
09:30 - 24 اردیبهشت 1405