گردش کاری یادگیری ماشین
آموزش هوش مصنوعی و انواع آنآموزش‌های پیشرفته هوش مصنوعیداده کاوی و بیگ دیتا

تسریع گردش کاری یادگیری ماشین پیوسته با NVIDIA RAPIDS

0
زمان مطالعه: ۷ دقیقه

کارت‌های گرافیکی یکی از مهم‌ترین بخش‌ها در فرایندِ استفاده از داده هستند؛ از کاوش‌های فضایی، رباتیک، تحقیقات پزشکی و آموزشِ مدل گرفته تا تقویت کل دیتاسنتر. یکی از مواردی که امروزه بیش از پیش به آن نیاز داریم، سرعت در پردازش حجم عظیم داده‌هایی است که تولید می‌کنیم. NVIDIA با عرضۀ GTC 2020 keynote به روشنی اعلام کرد که می‌خواهد از کارت‌های گرافیکی‌اش در همه حوزه‌های ممکن استفاده نماید. در مقاله حاضر، چگونگی تسریع گردش کاری یادگیری ماشین را با استفاده از RAPIDS یاد خواهیم گرفت. اگر با چگونگی کارکرد گردش کاری پیوسته یا RAPIDS آشنایی ندارید، با ما همراه باشید.  موارد زیر در این مقاله پوشش داده خواهند شد:

آموزشِ مدل با ۹۲ میلیون رکورد داده در ۳۴ ثانیه

• RAPIDS چیست؟
• گردش کاری انتها-به-انتها  end-to-end چگونه کار می‌کند؟
• پیش‌بینی کرایه تاکسی نیویورک و مقایسۀ زمان گرفته شده توسط CPU و GPU

پیش از آن که وارد بحث شویم، باید بدانید که ماشینِ مورد استفادۀ ما دارای ویژگی‌های زیر است:

گردش کار

رایانه عملم داده NVIDIA با TITAN RTX GPU

RAPIDS چیست؟

خب بگذارید یک‌راست برویم سر اصل ماجرا. RAPIDS به کتابخانه‌ای اطلاق می‌شود که بر پایه پلتفرم رایانش موازی CUDA و API ساخته شده توسط NVIDIA عمل می‌کند.

RAPIDS

پشته NVIDIA SDK – از GTC 2020 Keynote

کتابخانه‌های متعددی وجود دارند که حوزه‌های مختلفی را مورد هدف قرار می‌دهند، اما RAPIDS به طور اختصاصی برای تحلیل داده Data Analytics ساخته شده بود و بعدها جامعه علم داده Data Science از آن برای آموزش سریع‌تر مدل‌های یادگیری ماشین استفاده کرد. چه کسی بدش می‌آید در چشم به هم زدنی مدل خود را آموزش دهد؟

مقدمه‌ای بر پرکاربردترین الگوریتم های یادگیری ماشینی برای مبتدیان

گردش کاری انتها-به-انتها چگونه کار می‌کند؟

اگر الان مشغول خواندن مطلب مربوط به چگونگی تسریع گردش کاری انتها-به-انتها یادگیری ماشین هستید، به احتمال زیاد با گردش کاری که قرار است در این مقاله توضیح دهم، از قبل آشنا هستید. در این صورت، می‌توانید از خواندن این بخش صرف‌نظر کرده و به بخش بعدی مراجعه کنید. پیش‌بینی کرایه تاکسی نیویورک با CPU و GPU در بخش بعدی بررسی خواهد شد. اما اگر تازه‌کار هستید و می‌خواهید به آموخته‌های قبلی‌تان بیفزایید، توصیه می‌کنم با همراه باشید.

گردش کاری انتها-به-انتها

گردش کاری یادگیری ماشین، چگونگی تسریع ETL را با کارت‌های گرافیکی NVIDIA در Spark 3.0 نشان می‌دهد

نمودار بالا را خوب نگاه کنید. حالا بیایید برای درک آن گام به گام پیش برویم:

۱. استخراج: تبدیل و بارگذاری Extract ,Transform ,and Load: اکثر دانشمندان داده وقت خود را صرف پاکسازی داده‌ها می‌کنند. در این مرحله، باید تمامی اقدامات لازم برای ایجاد یک دیتاست خوب پیش از بکارگیری آن در الگوریتم یادگیری ماشین انجام شود. این مراحل عبارتند از ایجاد فریم داده، انجام فعالیت‌های مهندسی ویژگی‌ها و غیره که همگی تحت مفهومی به نام ETL قرار دارند.

۲. آموزش: برای اینکه بهترین نتایج ممکن را به دست آوریم، در ابتدا باید مدل خود را با داده‌ها آموزش دهیم. در این صورت، وقتی مدل دفعه بعد با چیز مشابهی مواجه شد، می‌داند که با چه l موردی سر و کار دارد. در این مرحله، باید مدل را آموزش داد و سپس تنظیم کرد.

۳. استنتاج: حال باید مدل را اجرا کرد تا پس از طی چندین فرایند به درخواست‌های  query کاربران جواب داد. برای مثال، شاید رتبه‌بندی یکی از این درخواست‌ها باشد. بر اساس درخواست یا جستجوی کاربران، نتایج رتبه‌بندی شده و در اختیار کاربران قرار داده می‌شود. به این موضوع فکر کنید که گوگل چگونه مجموعه‌ای از نتایج را برای هر کدام از جستجوهای شما ارائه می‌کند.

برای اینکه از هر گونه سوءتفاهمی جلوگیری کنیم، باید به این نکته توجه داشت که اینجا فقط یک دید کلی از نحوه کارکرد گردش کاری انتها-به-انتها ارائه می‌شود. کارهای پشت صحنه زیادی انجام می‌شود؛ یعنی دقیقاً مثل فیلم، نمایش یا اجرا.

نیاز به رایانش بهتر

شاید این پرسش شما را به فکر وادارد که چرا تسریع این فرایند در دستور کارمان باشد؟ بگذارید به طور مختصر دلیلش را برای‌تان توضیح دهم. هر سه مرحله‌ای که در بخش فوق به آنها اشاره کردیم، چالش‌های خاص خود را در هنگام محاسبه دارند. با توجه به تولید حجم عظیمی از داده به صورت روزانه و همچنین نیاز فزاینده به پردازش اطلاعات، CPU به تنهایی کفایت نمی‌کنند. دانشمندان داده اکثر وقت‌شان را صرف پاکسازی و پردازش می‌کنند. هیچ کس مایل نیست این فرایند نصف روز یا یک روز کامل به طول انجامد. با توجه به اینکه شرکت‌ها با سرعت قابل توجهی در حال اکتساب و پردازش حجم خارق‌العاده‌ای از داده هستند، امروزه بیش از هر زمان دیگری به سرعت نیاز داریم. بیایید این مسئله را با مثال پیش‌بینی کرایه تاکسی در نیویورک بررسی کنیم.

فهمِ داده

باید داده‌هایتان را بهتر از خودتان بشناسید. دیتاست کرایه تاکسی در نیویورک محبوبیت بالایی داشته و قابل دسترس است. می‌توانید دیتاست مذکور را از این لینک دانلود کنید. این دیتاست حاوی ۹ فایل برای ۹ ماه مختلف است. این بازه از ماه ژانویه سال ۲۰۱۴ شروع می‌شود. هر فایل تقریباً ۲ تا ۲.۲ گیگابایت حجم دارد. همه این فایل‌ها را توام با یکدیگر پردازش خواهیم کرد. در ابتدا، باید ببینیم محتوای این فایل‌ها چیست. ما هر یک از آنها را در قالب یک لیست برایتان آماده کرده‌ایم. ۱۷ ستون یا ویژگی در این دیتاست وجود دارد. نیازی به توضیح این موارد هم نیست.

اما حال شاید از شنیدن این نکته تعجب کنید. در مجموع، ۱۲۴ میلیون ردیف در این ۹ فایل وجود دارد. بله، درست خواندید، ۱۲۴ میلیون. رقم دقیق این است: ۱۲۴.۶۴۹.۴۹۷. حدس می‌زنید اتمام فرایند ETL چقدر زمان می‌برد؟ خب در ادامه مقاله به جزئیاتِ کار اشاره خواهیم کرد.

فهمِ داده

یافتن اندازه دیتاست

ما از cuDF و Dask & XGBoost برای مقیاس‌بندی عملیات GPU DataFrame ETL و آموزش مدل استفاده خواهیم کرد. برای سهولت در کار، کد را در این پست با اندازه کوچکتری گذاشته‌ایم، اما منبع GitHub تعداد زیادی نوت‌بوک ipynb و E2E دارد که در این لینک می‌توانید به آنها دسترسی داشته باشید.

پاکسازی داده

باید پاکسازی داده‌ها را در راستای مرتب‌سازی دیتاست مورد توجه قرار دهیم. نام ستون‌ها به شکل متفاوتی در فایل‌های مختلف CSV نشان داده شده است. برای نمونه، یکی از فایل‌ها rate_code دارد و دیگری حاوی RateCodeID می‌باشد، اما هر دو از روش‌های مقبول برای نمایش اسامی ستون‌ها هستند. در انتخاب فایل‌ها اختیار عمل داریم و سرانجام باید یکی را انتخاب کنیم. من همیشه فایل نخست را انتخاب می‌کنم زیرا خواندن واژه‌ها را برایم آسان می‌کند.

 گردش کار

در تعریف نوع ستون‌ها باید به مورد زیر دقت کرد:

 گردش کار

خروجی پس از پاکسازی

 

مدیریت داده‌های پرت outliers

داده‌های پرت همیشه وجود دارند. این موارد در کار خلل وارد کرده و مانع اجرای کارآمد می‌شوند. باید راهی برای مدیریت این داده‌های پرت پیدا کنیم. برای نمونه، کرایه کمتر از صفر دلار یا بیشتر از ۵۰۰ دلار را در نظر بگیرید. چه کسی حاضر است ۵۰۰ دلار برای کرایه تاکسی بپردازد؟

داده‌های پرت outliers

مدیریت ناهمخوانی‌ها

پس از پاکسازی دیتاست، حدود ۷ میلیون ردیف کنار گذاشته می‌شود. اکنون ۱۱۷ میلیون ردیف داریم که می‌توانیم بینش خوبی از آنها بدست آوریم.

انتخاب مجموعه آموزشی

فرض کنید می‌خواهید بیست و پنجمِ ماه جاری به نیویورک سفر کنید. در همین راستا، به دنبال ساخت مدلی هستید که کرایه تاکسی را بر اساس ۱۵ روز اولِ ماه بر اساس روزهای گذشته مورد پیش‌بینی قرار دهد. می‌خواهیم زمان لازم برای بارگذاری داده‌ها و ETL گردش کاری را اندازه بگیریم. لذا ۹۲ میلیون داده برای آموزش در اختیار داریم و ۲۵ درصد بقیه مختصِ آزمایش است.

مدت زمان ETL در CPU

مدت زمان ETL در CPU

زمان «wall time» نشان‌دهندۀ زمان کل در CPU است (۲ دقیقه و ۳ ثانیه یا ۱۲۳ ثانیه). شگفت‌انگیز است، اینطور نیست؟ اگر بگوییم امکان حصول نتایج سریع‌تر از این هم وجود دارد، تعجب نکنید.

مدت زمان ETL

مدت زمان ETL در GPU

در فرایندی یکسان، می‌توان همین کار را پس از فعال‌سازی یک کارت گرافیکی در ۶۳ ثانیه انجام داد؛ و این حاکی از پیشرفت دوبرابری در میزان سرعت است. کار فقط به اینجا ختم نمی‌شود. بگذارید به زمان آموزش هم اشاره کنیم. در حین انجام فرایند، کارکرد CPU زیر نظر قرار داشت. فعالیت بی‌نقص کلیه هسته‌ها خیلی چشم‌نواز بود.

۷ تکنیک برتر انتخاب ویژگی در یادگیری ماشینی
محاسبه در هسته پردازنده

محاسبه در هسته پردازنده

آموزش

قصد داریم مدل رگرسیون XGBoost را در داده‌های آموزشی خودمان آموزش دهیم و ببینیم انجام کل فرایند آموزش چقدر زمان می‌برد.

زمان آموزش درCPU

زمان آموزش درCPU

این کار ۶ دقیقه و ۳۶ ثانیه یا ۳۹۶ ثانیه به طول می‌انجامد. بد نیست! حالا بیایید همین روند را پس از فعال‌سازیِ TITAN RTX GPU بررسی کنیم.

GPU

زمان آموزش در GPU

دقیقاً چه اتفاقی افتاده است؟ آیا کل مدل‌ ۹۲ میلیون ردیفی در ۳۳.۹ ثانیه آموزش داده شد؟ بله، همینطور است. صادقانه بگویم، در نگاه اول اصلاً چنین نتیجه‌ای را باور نمی‌کردیم. اما این اتفاق صحت دارد. با به‌کارگیری یک کارت گرافیکی به افزایش سرعت ۱۲ برابری رسیدیم.

پیش‌بینی

پس از آموزش مدل، باید آن را با ۲۵ درصد ردیف‌ها آزمایش کنیم.

پیش‌بینی کرایه تاکسی

پیش‌بینی کرایه تاکسی برای بقیه روزهای ماه

اندازه‌گیری عملکرد

اندازه‌گیری عملکرد مدل یکی از بخش‌های ضروری کار است. این کار با محاسبه معیار مجذور میانگین مربعات خطا root mean squared error انجام می‌شود.

اندازه‌گیری عملکرد

این نتایج با مدلی به دست آمد که در GPU آموزش دادیم.

رضایت‌بخش است. جای پیشرفت وجود دارد، اما مقاله حاضر به این موضوع نخواهد پرداخت. شاید بعدها این کار در برنامه باشد.

نتیجه‌گیری

NVIDIA TITAN RTX GPU

افزایش سطح عملکرد با NVIDIA TITAN RTX GPU

با توجه به این که داده‌ها به اَشکال گوناگون در دسترس‌مان هستند، به ابزارهایی برای پردازش سریع‌تر داده‌ها نیاز داریم تا بینش کافی به دست آوریم و این بینش را برای اتخاذ تصمیم‌های بهتر به کار ببریم؛ از تحقیقات پزشکی گرفته تا کاوش‌های فضایی. با استفاده از NVIDIA RAPIDS و NVIDIA GPUs، می‌توان سرعت را در گردش کاری یادگیری ماشین انتها-به-انتها تا ۶ برابر افزایش داد.

این مطلب چه میزان برای شما مفید بوده است؟
[کل: ۰ میانگین: ۰]

پردازنده گرافیکی مبتنی بر معماری امپر انویدیا آماده شد

مقاله قبلی

فیلم آموزش علوم داده – معرفی علوم داده (قسمت نهم)

مقاله بعدی

شما همچنین ممکن است دوست داشته باشید

نظرات

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد.