معرفی
در Grab، تیم Trust، Identity، Safety و Security (TISS) شامل مهندسان نرم افزار و توسعه دهندگان هوش مصنوعی است که در زمینه تشخیص تقلب، چک هویت و مسائل امنیتی کار می کنند. خدمات متعددی در TISS وجود دارند مانند آبراهه تقلب، آبراهه ایمنی و آبراهه هویت. این خدمات به وسیله موتور قوانین Griffin که تعیین می کند یک مسافر می تواند سفری رزرو کند، بازیافت غذا دریافت کند یا یک راننده رزرو بگیرد، میلیاردها تصمیم تجاری روزانه می گیرند.
تقاضای طبیعی برای ثبت تمام این تصمیمات تجاری مهم و ذخیره سازی و استعلام آنها در حالی که با بانک های هگنیت data و query می شود وجود دارد. تحلیل گران داده و دانشمندان نیاز به استفاده از داده برای آموزش مدل های Machine Learning خود دارند. تیم های RiskOps و خدمات مشتری می توانند به دنبال اطلاعات تاریخی جستجو کنند و به مشتریان کمک کنند.
این محل ارشیو برای ردیابی، آمار و بازخورد سیستم جدیدی برای قوانین و پیش بینی های بر پایه یادگیری ماشین است. این سیستم قابل اعتماد و عملکرد بالا است. طرح دیتا اختراعی آن شامل امکان ذخیره رخدادها از سناریوهای تجاری مختلف است. در نهایت، این سیستم یک رابط کاربری کاربرپسند دارد که کنترل دسترسی برای داده های دسته بندی شده را فراهم می کند.
اینجا تأثیرات Archivist را می بینید:
- در حال حاضر، 2 تیم با کلیت 5 خدمت و تقریباً 50 سناریو تجاری از Archivist استفاده می کنند. این سناریوها شامل جلوگیری از تقلب (مانند DriverBan، PassengerBan)، چک های پرداخت (مانند PayoutBlockCheck، PromoCheck) و رویدادهای چک هویت مانند PinTrigger هستند. برای راهاندازی یک سناریو تجاری جدید (نوع رویداد)، کافیست چند دقیقه ای وقت گذاشته شود و از صفحه پیکربندی در پورتال کاربری استفاده شود. سابقاً حداقل 1 تا 2 روز طول می کشید.روزانه، Archivist 80 میلیون لاگ را به خوشه ElasticSearch می نویسد که تقریباً 200 گیگابایت داده است.هر هفته، مجله زیبایی و درمانی آذروت Support (GS)/Risk Ops به پورتال کاربری می رود و لاگ های Archivist را برای حدود 2000 مشتری متمایز چک می کند. آنها می توانند بر اساس بعد های متعددی مانند شناسه مسافر/راننده، شماره تلفن، شناسه درخواست، کد رزرو و اثر انگشت پرداخت جستجو کنند.
زمینه
هر روز، خدمات TISS میلیاردها تصمیم تجاری (پیش بینی) را بر اساس موتور قوانین Griffin و مدل های یادگیری ماشینی می گیرند.
پس از انجام پیش بینی ها، همچنان برای این خدمات سوالاتی دشوار وجود دارد که باید به آنها پاسخ داده شود.
- اگر Risk Ops معتقد باشد یک پیش بینی بیش از حد مثبت اشتباه است، ممکن است یک مشتری مورد ممنوعیت قرار گیرد. در صورت بروز این موقعیت، چگونه مشتریان یا Risk Ops می توانند این اطلاعات را به سرعت به روز کنند یا به مدل های جدید قوانین و یادگیری ماشین ارسال کنند؟در حال بررسی تیکت های باز شده به دلیل پیش بینی/تصمیمات TISS به عنوان CustomService/Data Scientists، چگونه می توانید بدانید کدام قوانین و داده ها استفاده شده است؟ مانند اینکه چرا مسافر یک سلفی را فعال کرده یا چرا یک رزرو مسدود شده است.پس از راه اندازی یک قانون/مدل جدید توسط Data Analysts/Data Scientists (DA/DS)، چگونه می توانند کارایی را به صورت دقیق در زمان واقعی پیگیری کنند؟ به عنوان مثال عملکرد قانون در یک کشور یا شهر بر اساس هفته به هفته چگونه است؟چگونه می توان DA/DS به تمام داده های پیش بینی برای تحلیل داده یا آموزش مدل دسترسی داشت؟چگونه سیستم با سرعت راه اندازی کسب و کار Grab همراه است و با حداکثر خودمختاری استفاده می شود؟
مشکل
برای پاسخ دادن به سوالات فوق، خدمات TISS قبلاً از Kibana در سراسر شرکت برای ثبت پیش بینی ها استفاده می کرد. به عنوان مثال، یک لاگ به صورت زیر است:PassengerID: 123، Scenario: PinTrigger، Decision: Trigger،.... این روش ثبت لاگ دارای برخی مشکلات آشکار بود:
- لاگ ها به صورت متن ساده ساخته شده اند و سازگاری خوبی با آموزش مدل های Machine Learning ندارند زیرا بیشتر مدل های Machine Learning به داده های پردازش شده برای انجام پیش بینی های دقیق نیاز دارند.علاوه بر این، کنترل دسترسی در صفحه پردازش توسعه دهندگان کیبانا به صورت دقیق پیاده سازی نشده است.توسعه دهندگان، DA و DS کنترل دسترسی ندارند درحالی که GS به هیچ وجه دسترسی ندارد. به همین دلیل GS نمی تواند به راحتی داده ها را مشاهده کند و DA/DS نمی توانند به راحتی داده ها را پردازش کنند.
برای پرداختن به تمام مشکلات لاگ Kibana، ما ActionTrace را توسعه دادیم، یک کتابخانه کد با یک طرح داده ساختار یافته خوب. لاگ ها، همچنین به عنوان اسناد شناخته می شوند، در یک خوشه ElasticSearch اختصاصی با کنترل دسترسی ذخیره می شوند. با این حال، پس از مدتی استفاده از آن، متوجه شدیم که هنوز برخی بهبودها نیاز دارد.
- هر سناریو تجاری شامل انواع مختلفی از entities است و ActionTrace به طور کامل خود مختار نیست. این بدان معنی است که نیاز به کار توسعه زیادی برای پشتیبانی از سناریوهای تجاری با سرعت بالا وجود دارد. در زیر چند مثال آورده شده است:موجودیت های اصلی در کسب و کار تاکسی راننده و مسافر هستند،موجودیت های اصلی در کسب و کار غذا می تواند فروشگاه، راننده و مصرف کننده باشد.تمام این موجودیت ها باید به صورت دستی به طرح داده ای ActionTrace اضافه شوند.هر سناریو تجاری ممکن است اطلاعات سفارشی خود را ثبت کند. زیرا همپوشانی وجود ندارد، هر کدام با یک فیلد جدید در طرح داده متناظر می شوند. به عنوان مثال:برای هر سناریو که شامل پرداخت است، روش پرداخت معتبر و تاریخ انقضا ثبت می شود.در کسب و کار تاکسی، geohash ثبت می شود.برای ذخیره داده های لاگ از ActionTrace، تیم های مختلف باید خوشه های ElasticSearch خود را راه اندازی و مدیریت کنند. این موجب افزایش هزینه های سخت افزاری و نگهداری می شود.یک رابط کاربری وب ساده برای مشاهده لاگ ها از ActionTrace ایجاد شده است، اما هنوز کنترل دسترسی در دسته بندی دقیق وجود ندارد.
راه حل
ما Archivist را توسعه دادیم، یک سیستم جدید برای پیگیری، آمار و بازخورد رویدادهای پیش بینی مبتنی بر قوانین و مدل های یادگیری ماشین است. این سیستم به صورت متمرکز، عملکرد بالا و انعطاف پذیر است. به تمام موارد مذکور بالا پاسخ می دهد و بهبودی نسبت به تمام راه حل های موجود که پیشتر ذکر شده بودند است.
بهبودهای کلیدی عبارتند از:
- موجودیت ها و فیلدهای سفارشی تعریف شده توسط کاربرهاهیچ نوع موجودیت قبلی تعریف شده نیست. کاربران می توانند تا 5 نوع موجودیت (مانند شناسه مسافر، شناسه راننده، شماره تلفن، شناسه روش پرداخت و غیره) را تعریف کنند.به همین ترتیب، تا حدی از فیلدهای سفارشی محدودیت دارد برای استفاده، علاوه بر