هفت پلتفرم یادگیری ماشین
در این مطلب، با پلتفرم یادگیری ماشین آشنا میشوید که به شما کمک میکنند تا مدلهای یادگیری ماشینی خود را به صورت رایگان تولید و پیادهسازی کنید.
توجه: پلتفرم یادگیری ماشین ذکر شده در این مطلب، پلنهای رایگانی را ارائه میکنند. که به شما این امکان را میدهند تا از محصولات یا خدمات آنها تا سقف استفاده رایگان مشخصشدهشان استفاده کنید. اگر می خواهید خدمات نامحدودی دریافت کنید، با توجه به قیمت سرویس هزینه دریافت می کنید.
این مطلب برای چه کسانی است؟
این مطلب برای کسانی است که یک مدل یادگیری ماشین در یک ماشین محلی ایجاد کردهاند. و میخواهند پلتفرم یادگیری ماشین بالقوه برای استقرار آن مدل را کشف کنند.
همچنین برای کسانی است که به دنبال یک پلتفرم یادگیری ماشین جایگزین برای استقرار مدل های یادگیری ماشینی خود هستند.
انتخاب شماره 1 استقرار مدل یادگیری ماشین: الگوریتمی
Algorithmia یک ابزار MLOps (عملیات یادگیری ماشین) است. که توسط دیگو اوپنهایمر و کنی دانیل تأسیس شده و راه ساده و سریعتری برای پیادهسازی مدل یادگیری ماشین شما در تولید ارائه میکند.
Algorithmia در “Algorithmia به عنوان یک سرویس” متخصص است. این کار به کاربران اجازه میدهد تا کد را بسازند که مدل ML را اجرا کند و سپس آنها را روی Algorithmia اجرا کند. سپس شما میتوانید کد خود را API بنامید.
اکنون مدل شما میتوانید برای برنامههای مختلف مورد نظرتان، مانند برنامههای وب، برنامههای تلفن همراه یا تجارت الکترونیک، با یک تماس API ساده از Algorithmia استفاده کنید.
خوبی در مورد Algorithmia این است که نگرانی های یادگیری ماشین را از بقیه برنامه های شما جدا می کند. در این حالت، شما باید مدل خود را فراخوانی کرده و پیش بینی هایی را به عنوان یک فراخوانی API انجام دهید. برنامه شما عاری از نگرانی های محیط یادگیری ماشینی خواهد بود.
در اینجا یک منبع خوب برای شما وجود دارد تا در مورد آن بیشتر بدانید.
انتخاب شماره ۲ استقرار مدل یادگیری ماشین: PythonAnywhere
PythonAnywere یکی دیگر از پلتفرم های شناخته شده و رو به رشد به عنوان یک سرویس مبتنی بر زبان برنامه نویسی پایتون است. اجرای برنامه های پایتون در فضای ابری را آسان می کند. و راهی ساده برای میزبانی برنامه های پایتون مبتنی بر وب به شما ارائه می دهد.
شما می توانید از هر چارچوب وب پایتون مانند Flask برای استقرار مدل یادگیری ماشین خود استفاده کنید. و آن را در پلتفرم pythonAnywhere تنها در چند دقیقه اجرا کنید.
به خاطر داشته باشید که pythonAnywhere از GPU پشتیبانی نمی کند. اگر یک مدل یادگیری عمیق با تکیه بر CUDA و GPU دارید، باید یک سرور خوب برای مطابقت با نیازهای مدل خود پیدا کنید.
در اینجا منابعی برای یادگیری نحوه اجرای مدل یادگیری ماشینی خود در PythonAnywhere معرفی میشود:
Deploy Machine Learning Models for Free
How to deploy and host a Machine Learning model
انتخاب شماره 3 استقرار مدل یادگیری ماشین: Heroku
Heroku یک پلتفرم ابری به عنوان سرویس است که به توسعه دهندگان کمک می کند تا به سرعت برنامه های مدرن را بدون دردسر زیرساختی استقرار، مدیریت و مقیاس کنند.
اگر می خواهید مدل خود را برای اولین بار استقرار دهید، توصیه می کنم Heroku را امتحان کنید زیرا انعطاف پذیر است و استفاده از آن آسان است.
طیف گسترده ای از خدمات و ابزارها را برای سرعت بخشیدن به توسعه شما ارائه می دهد و به شما کمک می کند تا همه چیز را از ابتدا شروع نکنید. همچنین از چندین زبان برنامه نویسی پرکاربرد مانند Python، Java، PHP، Node، Go، Ruby، Scala و Clojure پشتیبانی می کند.
خوبی Heroku این است که ایجاد، استقرار و مدیریت برنامه شما را آسان می کند. می توانید این کار را مستقیماً از خط فرمان با استفاده از Heroku CLI (در دسترس برای کاربران ویندوز، لینوکس و مک) انجام دهید.
در بخش استقرار، می توانید با پیوند دادن مخزن Github به حساب Heroku خود، مدل یادگیری ماشین و کد منبع آموزش دیده خود را در Heroku آپلود کنید.
در اینجا منابعی برای یادگیری نحوه استقرار مدل خود در پلتفرم Heroku وجود دارد.
How to Develop an End-to-End Machine Learning Project and Deploy it to Heroku with Flask
Create and Deploy your First Flask App using Python and Heroku
راه اندازی مدل یادگیری ماشینی گزینه شماره 4: پلتفرم ابری گوگل
Google Cloud Platform (GCP) یک پلتفرم ارائه شده توسط Google است که مجموعهای از خدمات رایانش ابری مانند محاسبات، ذخیرهسازی و پایگاه داده، هوش مصنوعی (AI) / یادگیری ماشین (ML)، شبکه، دادههای بزرگ، و هویت و امنیت را ارائه میدهد.
Google Cloud Platform زیرساخت را به عنوان یک سرویس، پلتفرم به عنوان یک سرویس و محیط های محاسباتی بدون سرور فراهم می کند.
این پلتفرم سه راه برای استقرار مدل یادگیری ماشین شما ارائه می دهد.
Google AI Platform 4.1
پلتفرم هوش مصنوعی گوگل خدمات جامع یادگیری ماشینی را ارائه می دهد. دانشمندان داده و مهندسان یادگیری ماشین می توانند از این پلت فرم برای کار بر روی پروژه های یادگیری ماشینی از ایده پردازی تا استقرار موثرتر استفاده کنند.
برای کسب اطلاعات بیشتر در مورد پلتفرم هوش مصنوعی گوگل، می توانید وب سایت این پلتفرم را در اینجا بررسی کنید.
Google App Engine 4.2
Google App Engine یک پلتفرم به عنوان سرویس (PaaS) ارائه شده توسط گوگل است. که از توسعه و میزبانی برنامه های مختلف وب مقیاس پذیر پشتیبانی می کند.
Google App Engine یک ویژگی مقیاسبندی خودکار ارائه میکند. که بهطور خودکار منابع را تخصیص میدهد تا برنامه وب شما بتواند درخواستهای بیشتری را رسیدگی کند.
این برنامه از زبان های برنامه نویسی محبوب از جمله Python، PHP، Node.js، Java، Ruby، C# و Go پشتیبانی می کند.
بنابراین می توانید مدل خود را با استفاده از چارچوب Flask یا هر فریمورک دیگری که می شناسید در Google App Engine مستقر کنید.
برای کسب اطلاعات بیشتر در مورد آن، می توانید به پلتفرم یادگیری ماشین اینجا مراجعه کنید.
Google Cloud Functions 4.3
Google Cloud Function یک پلت فرم محاسباتی بدون سرور است که توابع را به عنوان سرویس (FaaS) برای اجرای کد شما با مدیریت سرور صفر ارائه می دهد.
تنها کاری که باید انجام دهید این است که یک بلوک کوچک از کد (عملکرد) را در هر زبان برنامه نویسی پشتیبانی شده بنویسید و سپس آن را در Google Cloud Function میزبانی کنید. در این صورت نیازی نیست که با مشکلات نگهداری سرور خود مواجه شوید.
همه توابع ایجاد شده و میزبانی شده در Google Cloud Functions در صورت نیاز در فضای ابری اجرا می شوند. با استفاده از تریگرهای مختلف می توانید توابع ابری را به برنامه خود فراخوانی کنید. رایج ترین راه استفاده از HTTP است.
بنابراین می توانید مدل یادگیری ماشین خود را با یک بلوک کد پشتیبانی شده برای اجرا در تابع google cloud اجرا کنید. و درخواست HTTP را برای پیش بینی از برنامه وب یا هر سیستم دیگری فراخوانی کنید.
در اینجا چند منبع برای یادگیری نحوه استقرار مدل خود در Google Cloud Platform وجود دارد:
How to Go from Zero to Hero with Google Cloud Platform
How to Deploy Fast.ai models to Google Cloud Functions for Predictions
انتخاب شماره 5 استقرار مدل یادگیری ماشین:Microfoft Azura Functions
Azure Functions یک سرویس ابری بدون سرور است که توسط Microsoft Azure به عنوان یک توابع به عنوان یک سرویس (FaaS) ارائه می شود. توابع Azure به توسعه دهندگان کمک می کند تا وظایف مدیریت زیرساخت را تخلیه کنند و روی اجرای برنامه های خود تمرکز کنند.
با serverless، میتوانید یک تکه کد را که مدل شما را اجرا میکند و سپس مدل یادگیری ماشین و ماشین را در وظایف Azure اجرا کرده و آن را برای پیشبینی بعنوان API مینامند، بنویسید. توابع Azure مشابه توابع ابر گوگل هستند.
Azure Functions از توابع مختلف توسعه یافته در C#، F#، Node.js، Python، PHP، JavaScript، Java 8، Powershell Core و TypeScript پشتیبانی می کند.
در اینجا منابعی برای یادگیری نحوه استقرار مدل خود در توابع Azure وجود دارد:
Efficient Serverless deployment of PyTorch models on Azure
انتخاب شماره 6 استقرار مدل یادگیری ماشین: AWS Lambda
AWS Lambda یک سرویس محاسباتی بدون سرور است که توسط آمازون به عنوان بخشی از خدمات وب آمازون ارائه می شود. AWS lambda به شما کمک می کند تا کد خود را بدون مدیریت زیرساخت اصلی اجرا کنید.
با Lambda، شما میتوانید کد خود را در یک تصویر کانتینر یا فایل زیپ دار آپلود کنید. Lambda به طور خودکار توان محاسباتی را برای اجرا کردن کد شما براساس درخواستها یا رویدادهای ورودی بدون نیاز به پیکربندی هر چیزی، تخصیص میدهد.
AWS Lambda اجازه می دهد تا کد شما با سایر منابع AWS مانند Amazon DyanamoDB table، Amazon S3 bucket، Amazon SNS notification و Amazon Kinesis stream مرتبط شود.
بنابراین می توانید به راحتی مدل یادگیری ماشین خود را بر روی AWS Lambda مستقر کنید و می توانید از طریق یک API با استفاده از Amazon API Gateway به آن دسترسی داشته باشید.
شما میتوانید توابع Lambda را در زبانهای برنامهنویسی پشتیبانی شده ذیل بنویسید: python، java، Go، PowerShell، Node.js، Ruby، و C #.
AWS Lambda بسیار ارزان است زیرا فقط زمانی که تابع lambda را فراخوانی میکنید (یعنی زمانی که درخواستهای پیشبینی میکنید) هزینه پرداخت میکنید. در مقایسه با هزینه کانتینرهای در حال اجرا یا ماشین های مجازی، می تواند در هزینه های زیادی صرفه جویی کند.
AWS Lambda معیارهای بیدرنگ شامل نرخ خطا، کل درخواستها، استفاده همزمان در سطح عملکرد، تأخیر و درخواستهای کاهشیافته را از طریق Amazon CloudWatch بررسی میکند.
سپس با استفاده از AWS Lambda Console یا Amazon CloudWatch Console می توانید آمار هر تابع lambda را مشاهده کنید.
Lessons from deploying machine learning models on AWS Lambda
Deploying machine learning models as serverless APIs
How to Deploy Deep Learning Models with AWS Lambda and TensorFlow
و یک گزینه استقرار مدل یادگیری ماشین : mc2gen library
یک گزینه دیگر برای شما وجود دارد اگر سیستمعاملهای ذکر شده در بالا متناسب با الزامات شما نباشند. آیا میدانید که این امکان وجود دارد که مدل یادگیری ماشین را به زبان برنامهنویسی انتخابی تان تبدیل کنید؟
بله، میتوانید مدل خود را با استفاده از کتابخانه m۲cgen پایتون که توسط شهود بیز توسعه داده شدهاست، تغییر دهید. m۲cgen (Model ۲)یک کتابخانه ساده پایتون است که مدل یادگیری ماشین آموزشدیده را به زبانهای برنامهنویسی مختلف تبدیل میکند.
در حال حاضر از 14 زبان برنامه نویسی مختلف از جمله Go، # C، Python، PHP و JavaScript پشتیبانی می کند. کتابخانه m2cgen از مدلهای رگرسیون و طبقهبندی از پلتفرمهای scikit-learn و Gradient boost مانند XGBoost و LightGBM (ماشین تقویت گرادیان نور) پشتیبانی میکند.
این کتابخانه پایتون به شما کمک می کند مدل خود را در محیط هایی که نمی توانید پشته پایتون خود را برای پشتیبانی از پیش بینی مدل خود نصب کنید، مستقر کنید.
دیدگاهتان را بنویسید