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

Techboy

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

PyTorch چیست؟ یادگیری ماشین پایتون در پردازنده‌های گرافیکی

PyTorch 1.10 آماده تولید است، با اکوسیستمی غنی از ابزارها و کتابخانه ها برای یادگیری عمیق، بینایی کامپیوتر، پردازش زبان طبیعی و موارد دیگر. در اینجا نحوه شروع با PyTorch آورده شده است.

PyTorch 1.10 آماده تولید است، با اکوسیستمی غنی از ابزارها و کتابخانه ها برای یادگیری عمیق، بینایی کامپیوتر، پردازش زبان طبیعی و موارد دیگر. در اینجا نحوه شروع با PyTorch آورده شده است.

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

  • محاسبات تانسور (مانند NumPy) با شتاب قوی GPU.
  • شبکه های عصبی عمیق ساخته شده بر روی یک سیستم اتوگراد مبتنی بر نوار.

PyTorch که در ابتدا در موسسه تحقیقاتی Idiap، NYU، NEC Laboratories America، Facebook و Deepmind Technologies با ورودی پروژه‌های Torch و Caffe2 توسعه یافت، اکنون دارای یک جامعه منبع باز پررونق است. PyTorch 1.10 که در اکتبر ۲۰۲۱ منتشر شد، دارای تعهدات از ۴۲۶ مشارکت کننده است و مخزن در حال حاضر دارای ۵۴۰۰۰ ستاره است.

این مقاله مروری بر PyTorch است، شامل ویژگی‌های جدید PyTorch 1.10 و راهنمای مختصری برای شروع با PyTorch. من قبلاً PyTorch 1.0.1 را بررسی کرده ام و TensorFlow و PyTorch را با هم مقایسه کرده ام. پیشنهاد می کنم برای بحث عمیق در مورد معماری PyTorch و نحوه عملکرد کتابخانه، این بررسی را بخوانید.

تکامل PyTorch

در اوایل، دانشگاهیان و محققان به PyTorch جذب شدند زیرا استفاده از آن آسان تر از TensorFlow برای توسعه مدل بود. با واحدهای پردازش گرافیکی (GPU). PyTorch به طور پیش‌فرض حالت اجرای مشتاق را انتخاب می‌کند، به این معنی که فراخوان‌های API آن هنگام فراخوانی اجرا می‌شوند، نه اینکه به یک نمودار اضافه شوند تا بعدا اجرا شوند. TensorFlow از آن زمان پشتیبانی خود را از حالت اجرای مشتاق بهبود بخشیده است، اما PyTorch هنوز در جوامع دانشگاهی و تحقیقاتی محبوب است.

راهنمای مبتدی برای استفاده از جاوا اسکریپت قابل مشاهده، R و پایتون با Quarto

در این مرحله، PyTorch آماده تولید است و به شما امکان می‌دهد به راحتی بین حالت‌های مشتاق و گراف با TorchScript جابه‌جا شوید و مسیر تولید را با TorchServe تسریع کنید. انتهای پشتی torch.distributed آموزش توزیع‌شده مقیاس‌پذیر و بهینه‌سازی عملکرد در تحقیق و تولید را قادر می‌سازد، و اکوسیستم غنی از ابزارها و کتابخانه‌ها PyTorch را گسترش داده و از توسعه در بینایی کامپیوتر، پردازش زبان طبیعی پشتیبانی می‌کند. a>، و بیشتر. در نهایت، PyTorch در پلتفرم‌های ابری اصلی از جمله Alibaba، Amazon Web Services (AWS)، Google Cloud Platform (GCP) و Microsoft Azure به خوبی پشتیبانی می‌شود. پشتیبانی Cloud توسعه بدون اصطکاک و مقیاس‌بندی آسان را فراهم می‌کند.

چیزهای جدید در PyTorch 1.10

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

  1. APIهای CUDA Graphs برای کاهش سربار CPU برای بارهای کاری CUDA یکپارچه شده‌اند.
  2. چندین API جلویی مانند پارامترسازی FX، torch.special و nn.Module از بتا به پایدار منتقل شدند. FX یک پلت فرم پایتونیک برای تبدیل برنامه های PyTorch است. torch.special توابع ویژه ای مانند توابع گاما و بسل را اجرا می کند.
  3. یک کامپایلر جدید JIT مبتنی بر LLVM از ادغام خودکار در CPUها و همچنین GPUها پشتیبانی می کند. کامپایلر JIT مبتنی بر LLVM می‌تواند توالی‌های فراخوانی کتابخانه torch را برای بهبود عملکرد با هم ترکیب کند.
  4. پشتیبانی از Android NNAPI اکنون در نسخه بتا در دسترس است. NNAPI (Android’s Neural Networks API) به برنامه‌های اندروید اجازه می‌دهد تا شبکه‌های عصبی فشرده محاسباتی را بر روی قوی‌ترین و کارآمدترین بخش‌های تراشه‌هایی که تلفن‌های همراه را تامین می‌کنند، از جمله GPU و واحدهای پردازش عصبی تخصصی (NPU) اجرا کنند.

نسخه PyTorch 1.10 شامل بیش از ۳۴۰۰ commit بود که نشان‌دهنده پروژه‌ای است که فعال است و بر بهبود عملکرد از طریق روش‌های مختلف تمرکز دارد.

مایکروسافت به پشتیبانی از دات نت 5.0 پایان می دهد

چگونه با PyTorch شروع به کار کنیم

مطالعه یادداشت‌های انتشار به‌روزرسانی نسخه، چیز زیادی به شما نمی‌گوید که اصول اولیه پروژه یا نحوه شروع استفاده از آن را نمی‌دانید، بنابراین بیایید آن را پر کنیم.

صفحه آموزشی PyTorch دو آهنگ ارائه می‌کند: یکی برای کسانی که با آهنگ‌های دیگر آشنا هستند. چارچوب های یادگیری عمیق و یکی برای تازه کارها. اگر به آهنگ newb نیاز دارید که تانسورها، مجموعه داده‌ها، autograd و سایر مفاهیم مهم را معرفی می‌کند، پیشنهاد می‌کنم آن را دنبال کنید و از اجرا در گزینه Microsoft Learn، همانطور که در شکل ۱ نشان داده شده است. 

pytorch fig1 چیست

شکل ۱. مسیر “newb” برای یادگیری PyTorch.

اگر قبلاً با مفاهیم یادگیری عمیق آشنایی دارید، پیشنهاد می‌کنم دفترچه یادداشت شروع سریع را اجرا کنید که در شکل ۲ نشان داده شده است. همچنین می‌توانید روی Run در Microsoft Learn یا Run در Google Colab کلیک کنید. ، یا می توانید نوت بوک را به صورت محلی اجرا کنید.

pytorch fig2 چیست

شکل ۲. مسیر پیشرفته (شروع سریع) برای یادگیری PyTorch.

پروژه های PyTorch برای تماشا

همانطور که در سمت چپ تصویر در شکل ۲ نشان داده شده است، PyTorch دستور العمل ها و آموزش های زیادی دارد. همچنین مدل ها و نمونه های متعددی از نحوه استفاده از آنها معمولاً به عنوان نوت بوک دارد. سه پروژه در اکوسیستم PyTorch بسیار جالب توجه هستند: Captum، PyTorch Geometric ( PyG)، و skorch.

Captum

همانطور که در مخزن GitHub این پروژه ذکر شد، کلمه captum به معنای درک مطلب است. به زبان لاتین همانطور که در صفحه مخزن و جاهای دیگر توضیح داده شد، Captum “یک کتابخانه تفسیرپذیر مدل برای PyTorch.” این شامل انواع مختلفی از الگوریتم های اسناد مبتنی بر گرادیان و اغتشاش است که می تواند برای تفسیر و درک مدل های PyTorch استفاده شود. همچنین دارای ادغام سریع برای مدل‌های ساخته شده با کتابخانه‌های دامنه خاص مانند چشم‌انداز مشعل، متن مشعل، و موارد دیگر است.

هوش مصنوعی مولد با LangChain، RStudio، و فقط کافی پایتون

شکل ۳ همه الگوریتم‌های انتساب را نشان می‌دهد که در حال حاضر توسط Captum پشتیبانی می‌شوند.

pytorch fig3 چیست

شکل ۳. الگوریتم های انتساب Captum در قالب جدول.

PyTorch هندسی (PyG)

PyTorch Geometric (PyG) کتابخانه‌ای است که دانشمندان داده و دیگران می‌توانند از آن برای نوشتن و نوشتن استفاده کنند. شبکه های عصبی گراف قطار برای کاربردهای مرتبط با داده های ساخت یافته. همانطور که در صفحه مخزن GitHub آن توضیح داده شده است:

شکل ۴ نمای کلی از معماری PyTorch Geometric است.

pytorch fig4 چیست

شکل ۴. معماری PyTorch Geometric.

skorch

skorch یک کتابخانه شبکه عصبی سازگار با scikit-learn است که PyTorch را می‌پیچد. هدف skorch این است که امکان استفاده از PyTorch با sklearn را فراهم کند. اگر با sklearn و PyTorch آشنایی دارید، نیازی به یادگیری مفاهیم جدیدی ندارید و نحو باید به خوبی شناخته شده باشد. علاوه بر این، skorch حلقه آموزشی را انتزاعی می کند و بسیاری از کدهای دیگ بخار را منسوخ می کند. یک net.fit(X, y) ساده کافی است، همانطور که در شکل ۵ نشان داده شده است.

pytorch fig5 چیست

شکل ۵. تعریف و آموزش یک طبقه‌بندی کننده شبکه عصبی با skorch.

نتیجه گیری

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