۳۰ شهریور ۱۴۰۳

Techboy

اخبار و اطلاعات روز تکنولوژی

از DirectML برای آموزش مدل های یادگیری ماشین PyTorch در رایانه شخصی استفاده کنید

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

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

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

ما خروجی های ML را پیش بینی می نامیم، اما آنها می توانند هر چیزی باشند. اگر از بینایی رایانه استفاده می کنید، می توانند اشیاء شناسایی شده باشند. اگر از یک مدل زبان استفاده می کنید، آنها نیت یا ترجمه هستند. اما خروجی هرچه که باشد، یک پاسخ وزنی آماری با سطح اطمینان است که می‌تواند هر بازدهی را تأیید کند.

کار با یادگیری ماشینی دو بخش دارد. اگر یک مدل از پیش ساخته شده دارید، می‌توانید آن را از یک پلتفرم ابری مانند Azure ML، با استفاده از REST API برای کار با پیش‌بینی‌های آن اجرا کنید، یا می‌توانید آن را در قالب ONNX (مبادله شبکه عصبی باز) با پشتیبانی گسترده صادر کنید و آن را اجرا کنید. در رایانه شخصی با استفاده از ابزارهایی مانند WinML. این بخش آسان است؛ قسمت سخت آموزش و آزمایش یک مدل است. این فرآیند به داده‌های معتبر و برچسب‌گذاری‌شده زیادی و همچنین مقدار قابل توجهی محاسبات، CPU یا GPGPU (GPU عمومی) نیاز دارد.

مکان منطقی برای آموزش یک مدل جدید، روی یک پلتفرم میزبان ابری است، مانند استودیوی یادگیری ماشینی Azure. این می تواند گران باشد و به ماشین های مجازی بزرگ برای میزبانی مدل های شما و فضای ذخیره سازی زیادی برای داده های آموزشی و آزمایشی شما نیاز دارد. اگر به تازگی نحوه ساخت مدل‌ها را یاد می‌گیرید یا در حال ایجاد یک نمونه اولیه ساده با مجموعه نسبتاً کمی از داده‌های آموزشی هستید، به احتمال زیاد تمایل به استفاده از رایانه شخصی دارید.

ggplot ساده تر با ggcharts در R

مدل های ML را در رایانه شخصی خود بسازید

یک ایستگاه کاری توسعه‌دهنده مدرن بیش از اندازه کافی برای بارهای کاری اولیه ML دارد. دستگاهی که من این را روی آن تایپ می‌کنم مناسب است: دارای یک پردازنده نسل یازدهم اینتل، ۳۲ گیگابایت رم و یک کارت گرافیک مجزای Nvidia با پشتیبانی از GPGPU، از طریق درایورهای خود یا از طریق APIهای DirectML خود مایکروسافت.

چگونه یک چارچوب یادگیری ماشینی را در دستگاهی مانند این تنظیم کنیم؟ این می تواند پیچیده باشد، با درایورها و تنظیمات ناسازگار که روی سرورهای لینوکس هدف قرار می گیرند. مایکروسافت کار کرده است برای تسریع این کار، پیوندی بین محیط محبوب PyTorch ML فراهم کنید و APIهای GPU ویندوز، با استفاده از DirectML. شما محدود به ویندوز نیستید. همچنین می توانید از WSL (زیر سیستم ویندوز برای لینوکس) با درایورهای گرافیکی مناسب استفاده کنید.

استفاده از DirectML کار با PyTorch را ساده می کند، زیرا بخشی از APIهای گرافیکی DirectX مایکروسافت است. اگر کارت گرافیک شما از DirectML پشتیبانی می‌کند، می‌توانید از GPU آن برای انجام وظایف پردازش موازی در قلب آموزش یک مدل یادگیری ماشین استفاده کنید و بار روی CPU کامپیوتر توسعه‌دهنده خود را به حداقل برسانید. مایکروسافت برای پشتیبانی از آموزش یکی از رایج‌ترین انواع مدل PyTorch: شبکه‌های عصبی کانولوشنال، با فروشندگان GPU ویندوز، از جمله Nvidia و AMD کار می‌کند.

یک دومین نسخه پیش نمایش ادغام PyTorch-DirectML اخیراً عرضه شده است و پشتیبانی از نسخه‌های بیشتر پایتون و پشتیبانی از کار با چندین GPU را اضافه کرده است که به شما امکان می‌دهد انتخاب کنید که کدام GPU مورد استفاده قرار گیرد. یکپارچه سازی توسط یک دستگاه مجازی جدید به نام DML ارائه می شود. این APIهای DirectML را با ابزارهای ابتدایی PyTorch ترکیب می کند و فراخوانی در PyTorch را با ابزارهای اصلی DirectML نگاشت می کند.

نحوه ترسیم روابط شی با استفاده از Dapper در ASP.NET Core

با PyTorch-DirectML، پس از فراخوانی تانسور PyTorch، به هسته DirectML منتقل می شود. این به عقب DirectML فراخوانی می‌شود، که عملگرهای GPGPU را می‌سازد، حافظه GPU را تخصیص می‌دهد و یک صف برای مدیریت اجرا قبل از ارسال داده‌های آموزشی و اپراتورها به GPU برای آموزش ایجاد می‌کند. این رویکردی است که از Windows و WSL پشتیبانی می کند.

شروع با PyTorch-DirectML

آزمایش آن به اندازه کافی آسان است. بسته PyTorch-DirectML از GitHub به عنوان بخشی از پروژه DirectML یا از مخزن های محبوب پایتون مانند PyPl. شما می توانید از ابزارهای آشنا مانند pip برای افزودن آن به محیط پایتون خود استفاده کنید، تنها با یک تغییر در کد PyTorch Python برای اجرای PyTorch از طریق دستگاه مجازی DML لازم است.

جایی که چیزهای جذاب می‌شوند با پشتیبانی WSL آن است< /a>. به این ترتیب می توانید کدی بسازید که سیستم های لینوکس میزبان ابری را در دسکتاپ خود هدف قرار داده است. برای استفاده از ادغام DirectML، با استفاده از سیستم مبتنی بر رابط کاربری گرافیکی WSLg (Windows Subsystem for Linux GUI) که ابزارهایی را برای دسترسی به پلت فرم گرافیکی ویندوز از محیط WSL اضافه می کند، به یک سیستم Windows 11 نیاز دارید. با نصب WSL2 و WSLg، در مرحله بعد باید یک محیط مجازی پایتون برای میزبانی PyTorch راه اندازی کنید.

مستندات مایکروسافت بر اساس Miniconda Python از تیم Anaconda است. این یک نسخه حذف شده از Anaconda است که با مدیر بسته conda عرضه می شود، که توسط بسیاری از افراد استفاده می شود. ابزارهای روش های عددی پایتون و اغلب توسط چارچوب هایی مانند PyTorch استفاده می شود. پس از نصب، از دستورات conda create and activate برای راه اندازی یک محیط Python استفاده کنید.

با وجود آن، قبل از استفاده از pip برای نصب بسته pytorch-directml، مجموعه ای از کتابخانه های مورد نیاز را نصب کنید. این شامل دستگاه مجازی DML و نسخه پشتیبانی شده PyTorch 1.8 است. پس از نصب در محیط مجازی پایتون، می توانید کار با تانسورهای Pytorch را در دستگاه مجازی DML شروع کنید. کلید استفاده از DirectML استفاده از دستور to(“dml”) برای اجرا در GPU است. برای مثال، برای ایجاد یک تانسور ساده آماده برای استفاده: tensor1 = torch.tensor([1]).to(“dml”)

برنامه های متنی مبتنی بر پایتون به وب می آیند

آینده پلتفرم

Microsoft دارای مخزن GitHub از نمونه ها آماده استفاده با DirectML است، از جمله الگوریتم طبقه بندی تصویر محبوب resnet50. استفاده از الگوریتم شناخته شده ای مانند این، معیار سنجش با استفاده از رایانه شخصی توسعه دهنده برای ساخت و آزمایش مدل های یادگیری ماشین خود را آسان تر می کند. با استفاده از Miniconda به عنوان پایه و اساس یک الگوریتم توسعه پایتون، دسترسی سریع به ابزارهایی که برای ساختن و کاوش الگوریتم‌های خود نیاز دارید، وجود دارد، به عنوان مثال، کار با نوت‌بوک‌های Jupyter برای اشتراک‌گذاری کد با همکاران.

هر اپراتور PyTorch در نسخه پیش‌نمایش فعلی پشتیبانی نمی‌شود. فهرستی از اپراتورهایی وجود دارد که می‌توانید در GitHub از آنها استفاده کنید، به همراه یک نقشه راه  این نشان می دهد که چه چیزی در نسخه عطف بعدی پشتیبانی می شود. ۲۲ اپراتور باقیمانده به‌عنوان احتمالاً در آینده در حال پیاده‌سازی علامت‌گذاری شده‌اند، بنابراین اگر کد PyTorch موجود را به DirectML می‌آورید، باید بررسی کنید که آیا وابستگی به آنها دارید یا خیر.

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