یادگیری ماشینی لینکدین چطور توسعه پیدا کرده است؟
برخی از عناصر کلیدی زیرساختهای یادگیری ماشینی لینکدین
اخیراً خبرنامهای را شروع کردهام که تمرکز اصلی آن هوش مصنوعی است. این خبرنامه TheSequence نام دارد، از مسائل حاشیهای به دور است و خواندن آن بیشتر از 5 دقیقه زمان نمیبرد. هدف این خبرنامه این است که مخاطب خود را در جریان پروژههای یادگیری ماشینی، مقالات پژوهشی و مفاهیم به روز نگه دارد.
طراحی یادگیری ماشین مسیری پر چالش برای توسعه و مقیاسپذیری پیش رو دارد. از طرفی هم مقالات و مطالعات موردی معدودی وجود دارند که به خوبی نوشته و ثبت شده باشند و بتوان از آنها به عنوان مرجع استفاده کرد. در مجموعه اسلایدهایی که اخیرا توسط تیم ما در Invector Labs منتشر شده، آنچه را از ساخت راهحلهای یادگیری ماشینی آموختهایم به طور خلاصه بیان کردهایم. با این حال همچنان به دنبال این هستیم که بدانیم دیگر شرکتها چطور این مسائل را حل میکنند.
لینکدین LinkedIn یکی از شرکتهایی است که سالها یادگیری ماشینی را در مقیاسهای وسیع به کار میبرد، اما اینجا هم دانش چندانی در مورد روشها و تکنیکهای به خصوص وجود نداشت. تیم مهندسی لینکدین اخیرا پستهایی را در بلاگ خود منتشر کرده که در مورد زیرساختهای یادگیری ماشینی و کاربردهایش بینش خوبی به دست میدهند. برخی از این سناریوها مختص لینکدین هستند، با این حال تکنیکها و کاربردهای بهینه در بسیاری از راهکارهای یادگیری ماشینی در مقیاس بزرگ قابلیت اجرا دارند.
یادگیری ماشینی با دخالت انسانها
یکی از جنبههای جالب معماری یادگیری ماشینی لینکدین این است که چطور میتوان در جریان یادگیری ماشینی از انسانها نیز به عنوان اهرم استفاده کرد. از سناریویی به عنوان مثال استفاده میکنیم که روابط بین عناوین مختلفی (همچون مهندس ارشد نرمافزار یا سرپرست توسعهدهندگان) را تشخیص میدهد تا تجربهی جستجو را برای افراد بهبود بخشد. لینکدین از افراد با تخصص ردهشناسی استفاده میکند تا روابط بین عناوین را مشخص کنند تا بتوان از این روابط در مدلهای یادگیری ماشینی همچون شبکههای حافظه طولانی کوتاهمدت استفاده کرد که این خود به کشف روابط بعدی بین عناوین کمک میکند. این معماری یادگیری ماشینی، دانش مبتنی بر گراف لینکدین LinkedIn Knowledge Graph است.
زیرساخت یادگیری ماشینی در مقیاس گسترده
هستهی زیرساخت یادگیری ماشینی لینکدین یک سیستم اختصاصی به نام Pro-ML میباشد. Pro-ML از نظر مفهومی تمامی چرخههای زندگی مدلهای یادگیری ماشینی را، از تربیت گرفته تا نظارت، کنترل میکند. لینکدین به منظور کاربرد گستردهتر Pro-ML یک معماری تولید کرده که میتواند چندین تکنولوژی متنباز را، همچون Kafka یا Samza با بلوکهای سازندهی زیرساختار، مثل Spark یا Hadoop YARN ترکیب کند.
با اینکه اغلب تکنولوژیهایی که جزئی از مجموعهی یادگیری ماشینی لینکدین به شمار میروند شناخته شده هستند، چندین مورد هم وجود دارند که شناخت آنها نیازمند توضیحات بیشتری است:
- Ambry :Ambry در لینکدین یک انبارهی توزیع شدهی تغییرناپذیر است که به راحتی قابل دسترس و مقیاسپذیر است. Ambry به منظور کار با فایلهای تغییرناپذیر بهینه شده است که این فایلها میتوانند در اندازههای متفاوتی (از چند کیلوبایت تا چندین گیگابایت) موجود باشد. بدین منظور توان عملیاتی آن بالا و تاخیر آن خیلی کم میباشد و بدین طریق قابلیت جریانی نقطه به نقطه را، از مشتریان تا انباره و بالعکس، با سرعت عالی فراهم میکند. این سیستم برای فعالیت در حالت فعال-فعال در میان چندین مرکز داده ساخته شده و انبارهی بسیار ارزانی را در دسترس قرار میدهد.
- TonY :TonY Tensorflow on Yarn چارچوبی برای اجرای اختصاصی TensorFlow بر روی Apache Hadoop است. TonY به عنوان یک نرمافزار Hadoop، میتواند هم یک گره واحد را اجرا کند و هم یک TensorFlow توزیع شده را آموزش دهد.
- PhotonML :PhotonML یک کتابخانهی یادگیری ماشینی است که بر اساس Apache Spark بنا شده و در حال حاضر از آموزش انواع متفاوت مدلهای خطی تعمیمیافته(GLMs) Generalized Linear Models (GLMs) و مدلهای خطی تعمیمیافتهی ترکیبی Generalized Linear Mixed Models ) مانند مدل خطی، مدل poisson و مدل logistic) پشتیبانی میکند.
تنسورفلو در هدوپ
ماه گذشته، تیم مهندسی لینکدین برای اولین بار کدهای تنسورفلو را روی چارچوب YARN (TonY) در دسترس عموم قرار داد. هدف این بود که برنامههای تنسورفلو بتوانند بر روی خوشههای توزیع شدهی YARN اجرا شوند. با این که جریانهای کاری تنسورفلو در زیرساختهایی همچون Apache Spark به طور گسترده پشتیبانی میشوند، YARN عمدتا مورد غفلت جامعهی یادگیری ماشینی قرار گرفته است. TonY با در دست گرفتن وظایفی همچون تخصیص منبع و تنظیم محیط container، توانست از اجرای فعالیتهای تنسورفلو روی هدوپ پیشتیبانی کند.
به بیان خلاصه، TonY برنامههای تنسورفلو را گرفته و آنها را به وظایف موازی متعدد parallel tasks تقسیم میکند که میتوانند بر روی یک خوشهی YARN اجرا شوند. این عمل در حالی انجام میگیرد که پشتیبانی کامل از گراف محاسبهی تنسورفلو حفظ میشود؛ که خود به این معنی است که ابزارهایی همچون TensorBoard میتوانند بدون هیچگونه تغییر و اصلاحی بر روی TonY اجرا شوند.
TonY نقش جالبی در اکوسیستم تنسورفلو به عهده دارد که از طریق آن میتواند تجربهی برنامههای تنسورفلو را تا حد قابل قبولی بهبود بخشد. علاوه بر این،TonY میتواند از گسترهی متنوعی از ابزارها و کتابخانههای موجود در YARN استفاده کند تا مدت زمان اجرای کدی را که برای آموزش و اجرای برنامههای تنسورفلو وجود دارد، به صورت کاملاً مقیاسپذیر فراهم کند.
آزمون
لینکدین به طور همزمان هزاران مدل یادگیری ماشینی را در دست اجرا دارد که دائماً در حال تکامل و ایجاد نسخههای جدید هستند. در این موارد، به منظور بهینهسازی عملکرد مدلهای یادگیری ماشینی در زمان اجرا، طراحی یک متدولوژی قوی برای آزمون (آزمودن) ضروری است. در لینکدین نیز تیم مهندسان، آزمون A/B را به عنوان یکی از اجزای رده اول معماری ProML تعبیه کردهاند و بدین طریق این امکان برای مهندسان یادگیری ماشینی فراهم شده است تا الگوریتمهای رقیب را برای سناریوهای خاص بچینند و آن الگوریتمی که بهترین خروجی را به دنبال دارد، ارزیابی کنند.
غولهای اینترنتی همچون لینکدین در خط مقدم استفاده از راهکارهای یادگیری ماشینی در مقیاسهای بزرگ هستند و بینش و تجربیات آنها در این حوزه برای شرکتهایی که تجربهی یادگیری ماشینی خود را به تازگی آغاز کردهاند از اهمیت بالایی برخوردار است. کار لینکدین به وضوح میتواند به ما نشان دهد که توسعهی یادگیری ماشینی در مقیاس بزرگ یک کار بیانتهاست که طی آن باید کتابخانههای متنباز و سامانههای محبوب با چارچوبها و متدولوژیهای اختصاصی ترکیب شوند.
انواع کاربردهای هوش مصنوعی در صنایع مختلف را در هوشیو بخوانید