Filter by دسته‌ها
chatGTP
ابزارهای هوش مصنوعی
اخبار
گزارش
تیتر یک
چندرسانه ای
آموزش علوم داده
اینفوگرافیک
پادکست
ویدیو
دانش روز
آموزش‌های پایه‌ای هوش مصنوعی
اصول هوش مصنوعی
یادگیری بدون نظارت
یادگیری تقویتی
یادگیری عمیق
یادگیری نیمه نظارتی
آموزش‌های پیشرفته هوش مصنوعی
بینایی ماشین
پردازش زبان طبیعی
پردازش گفتار
چالش‌های عملیاتی
داده کاوی و بیگ دیتا
رایانش ابری و HPC
سیستم‌‌های امبدد
علوم شناختی
دیتاست
رویدادها
جیتکس
کاربردهای هوش مصنوعی
کتابخانه
اشخاص
شرکت‌های هوش مصنوعی
محصولات و مدل‌های هوش مصنوعی
مفاهیم
کسب‌و‌کار
تحلیل بازارهای هوش مصنوعی
کارآفرینی
هوش مصنوعی در ایران
هوش مصنوعی در جهان
مقاله
 تسریع گردش کاری یادگیری ماشین پیوسته با NVIDIA RAPIDS

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

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

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

آموزشِ مدل با 92 میلیون رکورد داده در 34 ثانیه

• 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 از آن برای آموزش سریع‌تر مدل‌های یادگیری ماشین استفاده کرد. چه کسی بدش می‌آید در چشم به هم زدنی مدل خود را آموزش دهد؟

[irp posts=”12844″]

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

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

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

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

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

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

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

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

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

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

فهمِ داده

باید داده‌هایتان را بهتر از خودتان بشناسید. دیتاست کرایه تاکسی در نیویورک محبوبیت بالایی داشته و قابل دسترس است. می‌توانید دیتاست مذکور را از این لینک دانلود کنید. این دیتاست حاوی 9 فایل برای 9 ماه مختلف است. این بازه از ماه ژانویه سال 2014 شروع می‌شود. هر فایل تقریباً 2 تا 2.2 گیگابایت حجم دارد. همه این فایل‌ها را توام با یکدیگر پردازش خواهیم کرد. در ابتدا، باید ببینیم محتوای این فایل‌ها چیست. ما هر یک از آنها را در قالب یک لیست برایتان آماده کرده‌ایم. 17 ستون یا ویژگی در این دیتاست وجود دارد. نیازی به توضیح این موارد هم نیست.

vendor id
pickup_datetime
dropoff_datetime
passenger_count
trip_distance
pickup_latitude
pickup_longitude rate_code
dropoff_latitude
dropoff_longitude
payment_type
fare_amount
surcharge
mta_tax
tip_ammount
tolls_ammount
total_amount

اما حال شاید از شنیدن این نکته تعجب کنید. در مجموع، 124 میلیون ردیف در این 9 فایل وجود دارد. بله، درست خواندید، 124 میلیون. رقم دقیق این است: 124.649.497. حدس می‌زنید اتمام فرایند ETL چقدر زمان می‌برد؟ خب در ادامه مقاله به جزئیاتِ کار اشاره خواهیم کرد.

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

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

پاکسازی داده

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

 گردش کار

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

 گردش کار
خروجی پس از پاکسازی

 

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

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

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

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

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

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

مدت زمان ETL در CPU
مدت زمان ETL در CPU

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

مدت زمان ETL
مدت زمان ETL در GPU

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

[irp posts=”27665″]
محاسبه در هسته پردازنده
محاسبه در هسته پردازنده

آموزش

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

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

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

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

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

پیش‌بینی

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

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

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

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

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

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

نتیجه‌گیری

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

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

میانگین امتیاز / 5. تعداد ارا :

مطالب پیشنهادی مرتبط

اشتراک در
اطلاع از
0 نظرات
بازخورد (Feedback) های اینلاین
مشاهده همه دیدگاه ها
[wpforms id="48325"]