سلام. در این مطلب میخوام از یکی از انقلابی ترین سیستم های پردازشگر دنیا براتون بنویسم. سیستم Google Colab. همونطور که از اسمش هم پیداست، این سیستم محصولی عمومی از شرکت گوگل هست که به شما این امکان رو میده تا برنامه های کامپیوتری سنگین رو با سرعت خیلی بالا روش اجرا کنین. این سیستم کاملا رایگان هست. اما بریم سر اصل مطلب که این سیستم چطوری کار میکنه.

(((در صورت هرگونه سوال در هر مسئله یا پروژه ای از منوی تماس (بالا) (یا از تلگرام) با بنده در تماس باشید. با کمال میل در خدمتم.)))

این سیستم با محبوب ترین زبان برنامه نویسی جهان یعنی زبان برنامه نویسی پایتون کار میکنه و میتونین داخلش هر پکیج (کتابخونه) جدیدی که دوست داشته باشین رو اضافه کنین بهش. از جمله پکیچ هایی که میتونین بهش اضافه کنین میشه به پکیج های ابزارهای آماده یادگیری ماشین به خصوص یادگیری عمیق اشاره کرد. این سیستم برای هر کاربر 13 گیگابایت رم (البته به صورت ابری و توزیع شده اختصاص میده یعنی اگر شما استفاده نکنین در اختیار شخص دیگه ای قرار میگیره اما میتونین تا 13 گیگابایت از رم استفاده کنین.) اختصاص میده همراه با فضای گوگل درایو که داخلش میتونین فایل هاتون رو قرار بدید (فضای اولیه 15 گیگابایت داره). همچنین برای هر کاربر علاوه بر پردازنده های مرکزی CPU فوق سریع، یک پردازنده گرافیکی K80 هم اختصاص میده که در اکثر موارد در دسترس هست. ثانیا سرعت CPUها به قدری بالا هست که تقریبا مثل GPU براتون کار میکنن. برای مثال دانشگاه ما پردازنده گرافیکی K80 خریده برای محاسبات سریع، در حالیکه وقتی من بر روی هر دو سیستم گوگل و دانشگاه یک برنامه مشابه رو اجرا کردم سرعت پردازنده مرکزی CPU گوگل بدون GPU (چون GPU مشغول بود.) به وضوح بیشتر از سرعت پردازنده های دانشگاه ما بود. به هر حال منظورم اینه که سرعتش بسیار بالاست و کاملا رایگان.


اما نحوه کار:

ابتدا به آدرس colab.research.google.com میرویم. در پنجره ورودی برای ما راهنماهای استفاده از سیستم نشان داده می شود. در پایین همان پنجره، عنوان آبی رنگ New Notebook را مشاهده میکنیم. بر روی آن کلیک کرده و یکی از دو گزینه بسته به این که با کدام نسخه زبان برنامه نویسی پایتون (نسخه 2 یا نسخه 3) میخواهیم برنامه نویسی کنیم، را انتخاب میکنیم. پس از انتخاب منتظر میمانیم تا صفحه نوشتار کد برایمان باز شود که چند ثانیه ای طول خواهد کشید. البته با توجه به اینکه فقط این تکه از ماجرا تحریم هست، برای باز کردن صفحه کد جدید از این روش باید حتما یک وی پی ان یا فیلترشکن داشته باشید تا تحریم ها رو دور بزنید. اما نگران نباشید. روش دیگه ای هم هست که نیاز به فیلترشکن و وی پی ان نداره. اون روش هم به این صورت هست که موقع ورود به آدرس colab.research.google.com به جای کلیک روی New Notebook روی cancel کلیک میکنید و وارد سیستم میشوید. اما این وسط مشکلی که هست اینه که صفحه شلوغه که روش مثلا نوشته Welcome to Colaboratory! که خب باید محتویات صفحه رو پاک کنید (روی هر بخش که کلیک کنید روی سمت راست بالای اون بخش آیکون سطل آشغال رو میاره) تا بتونید در یک محیط آرام و با خیال آسوده شروع به برنامه نویسی کنید. برای اجرای هر بخش هم در صورتی که اون بخش از نوع کد هست (اینکه بخش هایی که اضافه میکنید از چه نوعی باشه رو میتونین از چپ بالای صفحه زیر منوی اصلی انتخاب کنید.) وقتی روی اون بخش اشاره گر ماوس رو نگه میدارید در سمت راست اون بخش آیکونی به شکل Play نمایش داده میشه که میتونین با زدنش، بخش مورد نظر رو اجرا کنید.

همچنین در صورتی که از حالت پردازنده گرافیکی استفاده کنید، میتونین از منوی اصلی واقع در چپ بالای صفحه، روی Runtime کلیک کرده و گزینه Change Runtime Type رو انتخاب کنید و سپس در پنجره باز شده گزینه بر روی بخش Hardware Accelerator کلیک کرده و GPU رو انتخاب کنید که اگر به GPU وصل بشید میتونین لذت سرعت اجرا رو تجربه کنید.

برای ورود داده هاتون هم از دو روش میتونین استفاده کنین. روش اول اینکه در گوگل درایور در همون پوشه ای که فایل کدتون (notebook) تون توش قرار داره، اطلاعات رو بذارید و دقیقا مثل ویندوز یا لینوکس بهش آدرس بدین و یا اینکه روی یک آدرس اینترنتی آپلود کنین و به کد بگین براتون دانلود و استفاده کنه. همچنین میتونین دیتاست های آماده رو بیارین روی RAM (حافظه اجرایی) و بعد ذخیره کنید که البته باز تحریم هست و نیاز به دور زدن تحریم ها دارید.

برای روش اول به اینصورت میتونین درایو رو به برنامه بشناسونین تا بتونین به فایل های درایو دسترسی داشته باشین تا بتونین داده ها رو بخونین:



 !apt-get install -y -qq software-properties-common python-software-properties module-init-tools

!add-apt-repository -y ppa:alessandro-strada/ppa 2>&1 > /dev/null

!apt-get update -qq 2>&1 > /dev/null

!apt-get -y install -qq google-drive-ocamlfuse fuse


from google.colab import auth

auth.authenticate_user()


from oauth2client.client import GoogleCredentials

creds = GoogleCredentials.get_application_default()

import getpass

!google-drive-ocamlfuse -headless -id={creds.client_id} -secret={creds.client_secret} < /dev/null 2>&1 | grep URL

vcode = getpass.getpass()

!echo {vcode} | google-drive-ocamlfuse -headless -id={creds.client_id} -secret={creds.client_secret}


!mkdir -p drive

!google-drive-ocamlfuse drive


print('Files in Drive:')

!ls drive/



(که دو مرحله باید کد تایید اعتبار براش وارد کنین که راحته.)

بعد هم با آدرس ('drive/') میتونین به فایل ها و پوشه هاتون دسترسی پیدا کنید.


از روش های دیگه ی ورود داده ها میشه به گذاشتن داده ها در Github و استفاده از دستور git (که در گوگل کولب میشه !git) یا کدنویسی برای دانلود داده ها از فایل های موجود بر روی سایت های به اشتراک گذاری فایل (مثل kaggle) اشاره کرد.


در نهایت هم میتونین کدهای نوشته شده تون رو در گوگل درایو ذخیره کنید که برای این کار هم فعلا متاسفانه باید تحریم ها رو دور بزنید.


مطمئنا سوالات جدید براتون پیش خواهد اومد که خوشحال میشم چه در کامنت ها و چه از طریق منوی تماس در بالا سمت چپ باهام در میون بذارید.