زمان تخمینی مطالعه: 9 دقیقه
کتابخانه Fast.ai یک برنامه کاربرپسند است که بدون در نظر گرفتن سطح مهارت شما، قدرت یادگیری عمیق را در دسترس شما قرار میدهد. در این مقاله بیایید یاد بگیریم که چگونه این کتابخانه کار میکند. اگر تا به حال در مورد یادگیری عمیق کنجکاو شدهاید اما پیچیدگی فنی آن را بسیار زیاد دیدهاید، Fast.ai پاسخ نیاز شماست. در واقع کتابخانه Fast.ai سفر به یادگیری عمیق را ساده میکند. حتی اگر یک دانشمند داده باتجربه نباشید، یادگیری عمیق را برای شما قابل دسترس میکند. در این مقاله، ما بررسی خواهیم کرد که Fast.ai چیست، چرا متمایز است، و چگونه میتوانید با چند نمونه کد اولیه شروع کنید.
Fast.ai چیست؟
Fast.ai یک کتابخانه است که بر روی PyTorch، یکی از فریمورکهای پیشرو در یادگیری عمیق، ساخته شده است. این محصول طراحی شده است تا یادگیری عمیق را قابل دسترس تر کند. این کتابخانه اجزای سطح بالایی را فراهم میکند که ساخت و آموزش شبکههای عصبی در هوش مصنوعی را آسان میکند. چیزی که Fast.ai را متمایز میکند تمرکز آن بر عملی بودن و توانایی آن برای استفاده توسط افرادی با سطوح مختلف تجربه کدنویسی است.
چرا کتابخانه Fast.ai را انتخاب کنید؟
- کاربر پسند است: کتابخانه Fast.ai فرآیند یادگیری عمیق را ساده میکند و بسیاری از جزئیات پیچیده را انتزاع میکند و ایجاد مدلهای قدرتمند را برای کاربران آسانتر میکند. کتابخانه fast.ai در بالای چارچوبهای یادگیری عمیق محبوب مانند PyTorch قرار دارد. این یک API سطح بالا برای ساخت و آموزش شبکههای عصبی را ارائه میدهد. همچنین میتوانید مدلهای قدرتمند دیگری مانند ترانسفورماتور Hugging Face را با استفاده از Fast.ai ادغام کنید.
- رویکرد عملی است: Fast.ai بر رویکرد کار عملی برای یادگیری عمیق تاکید دارد. کتابخانه Fast.ai بر کاربرد عملی و برنامههای کاربردی دنیای واقعی تمرکز میکند و به شما کمک میکند تا با انجام کار یاد بگیرید. دورهها و منابع آنها برای کمک به دانشآموزان طراحی شدهاند تا سریعاً با مدلهای یادگیری ماشینی کار کنند. اینها شامل ساخت و آموزش شبکههای عصبی برای تشخیص تصویر، پردازش زبان طبیعی و بسیاری موارد دیگر است.
- دورههای رایگان آموزشی: Fast.ai دورههای آنلاین رایگان را ارائه میدهد که طیف گستردهای از موضوعات یادگیری عمیق را پوشش میدهد. دورههای Fast.ai تعدادی از بهترینهای موجود در بازار هستند و دانشآموزان آنها به محققان محبوب یادگیری ماشین تبدیل شدهاند. این دورهها به دلیل کاربردی بودن، توضیحات واضح و استفاده از مجموعه دادههای دنیای واقعی شناخته شدهاند. این دورهها به گونهای طراحی شدهاند که برای افرادی با سطوح مختلف دانش قبلی هوش مصنوعی قابل دسترسی باشد. Fast.ai همچنین آخرین پیشرفتها را در دورهها و منابع خود گنجانده است و تضمین میکند که دانشآموزان به تکنیکهای پیشرفته دسترسی دارند.
چگونه با Fast.ai شروع کنیم؟
حالا که فهمیدید Fast.ai چیست، بیایید شروع کنیم. اگر میخواهید سریعاً این مثال را امتحان کنید، میتوانید نوت بوک google colab را بررسی کنید(توجه: توصیه می شود که این کد را روی سیستم خود اجرا کنید زیرا اجرای آن در colab زمان زیادی (حدود 30 دقیقه) می برد.). قبل از استفاده از کتابخانه، باید محیط خود را تنظیم کنید. Fast.ai روی پایتون اجرا میشود و به PyTorch نیاز دارد. میتوانید Fast.ai را با استفاده از دستور pip نصب کنید (اگر آن را روی ترمینال خود نصب میکنید، (( ! )) را حذف کنید، زیرا (( ! )) فقط برای نوتبوکهای colab است. نوتبوکها کد زیر را بهعنوان اسکریپت پوسته در نظر میگیرند).
!pip install fastai
ما در این مقاله یک مثال ساده از تجزیه و تحلیل احساسات را مرور خواهیم کرد، که نشان میدهد چگونه میتوانید مدلهای NLP را با استفاده از کتابخانه fast.ai پیاده سازی کنید. بیایید با وارد کردن کتابخانه شروع کنیم:
from fastai.text.all import *
این خط کد عملکرد خاصی را از کتابخانه Fast.ai برای پردازش زبان طبیعی (NLP)، به ویژه تجزیه و تحلیل متن وارد میکند. بگذارید آن را با هم تحلیل کنیم:
from fastai.text.all مشخص میکند که میخواهید همه مؤلفهها را از ماژول fastai.text که شامل ابزارها و توابع کار با دادههای متنی است وارد کنید. با قرار دادن این خط در ابتدای کد خود، تمام عملکردهای مرتبط با متن از کتابخانه Fastai را برای استفاده خود در دسترس قرار میدهید و انجام کارهایی مانند تجزیه و تحلیل احساسات، طبقه بندی متن و موارد دیگر را آسان تر میکنید. در مرحله بعد، از مجموعه دادههای IMDB که در Fast.ai نیز موجود است، استفاده خواهیم کرد.
path = untar_data(URLs.IMDB)
این خط کد مجموعه داده IMDB را دانلود و استخراج میکند و آن را برای پردازش و تجزیه و تحلیل بیشتر آماده میکند. متغیر path حاوی مسیر فایل محلی به مجموعه داده خواهد بود که به شما امکان میدهد به دادههای موجود در کد خود دسترسی داشته باشید و با آنها کار کنید. بعد، باید دادهها را بارگذاری کنیم. بارگذارهای داده برای بارگیری و پردازش کارآمد دادهها در طول آموزش یک مدل یادگیری ماشین استفاده میشوند.
TextDataLoaders کلاسی است که توسط کتابخانه Fast.ai ارائه شده است که به شما امکان میدهد بارگذارهای داده را که به طور خاص برای دادههای متنی طراحی شدهاند ایجاد کنید.
dls = TextDataLoaders.from_folder(path, valid='test')
در کد بالا from_folder(path, valid=’test’) یک تابع فراخوانی در کلاس TextDataLoaders است که برای ایجاد بارگذارهای داده استفاده میشود.
در اینجا معنای هر استدلال آمده است:
- path: این مسیر فهرستی است که دادههای متنی شما در آن ذخیره میشود. در این مورد، این متغیر مسیری است که قبلاً تعریف کردهاید، که حاوی مسیر محلی به مجموعه دادههای IMDB است.
- valid=’test’: این آرگومان مشخص میکند که کدام پوشه یا زیرمجموعه دادههای شما باید برای اعتبارسنجی استفاده شود. در مجموعه دادههای IMDB، معمولاً دو زیر مجموعه اصلی وجود دارد: آموزش برای دادههای آموزشی و آزمایش برای دادههای آزمایش یا اعتبار سنجی. با تنظیم اعتبار برای تست، نشان میدهید که پوشه “test” در فهرست مسیر باید برای اعتبارسنجی استفاده شود. این یک روش معمول در یادگیری ماشینی است که یک مجموعه اعتبار سنجی جداگانه برای ارزیابی عملکرد مدل در طول آموزش داشته باشد.
- متغیر dls حاصل شامل بارگذارهای داده متنی است که شامل تقسیمبندی دادههای آموزشی و اعتبارسنجی است. این بارگذارهای داده را میتوان برای بارگیری و پیش پردازش دستههای داده متنی در طول آموزش مدل تحلیل احساسات یا هر مدل مبتنی بر متن دیگر استفاده کرد.
اکنون که دادههایی برای آموزش داریم، بیایید مدل را آموزش دهیم. ما یک مدل طبقهبندی متن با استفاده از کتابخانه Fast.ai ایجاد میکنیم، آن را بر روی دادههای متنی ارائه شده تنظیم میکنیم و آن را برای تعداد معینی از دورهها (تکرار) آموزش میدهیم.
learn = text_classifier_learner(dls, AWD_LSTM, drop_mult=0.5, metrics=accuracy)
بیایید هر خط را بشکنیم و توضیح دهیم:
- text_classifier_learner — یادگیرنده طبقه بندی متن برای ایجاد یک شی یادگیرنده برای آموزش و کار با مدلهای طبقه بندی متن استفاده میشود. بیایید به آرگومانها نگاه کنیم.
- dls – این شیء بارگیری دادهای است که قبلاً با استفاده از TextDataLoaders.from_folder ایجاد کردهاید. این شامل دادههای آموزشی و اعتبار سنجی برای کار طبقه بندی متن شما است.
- AWD_LSTM – این یک معماری از پیش تعریف شده برای شبکه عصبی است که در وظایف طبقه بندی متن استفاده میشود. AWD_LSTM مخفف ASGD Weight-Dropped LSTM است. این یک نوع معماری شبکه عصبی بازگشتی (RNN) است که برای دادههای متوالی مانند متن موثر است.
- drop_mult=0.5 – این آرگومان میزان نظمدهی حذفی اعمال شده در شبکه عصبی را کنترل میکند. Dropout یک تکنیک منظم سازی است که برای جلوگیری از برازش بیش از حد (آموزش بیش از حد مدل) استفاده میشود. drop_mult=0.5 به این معنی است که فرآیند حذف با نرخ متوسطی اعمال خواهد شد.
- متریک = دقت – این مشخص میکند که متریک دقت باید برای ارزیابی عملکرد مدل در طول آموزش استفاده شود. دقت یک معیار رایج برای کارهای طبقهبندی است که درصد نمونههای طبقهبندی صحیح را اندازهگیری میکند.
حالا بیایید مدل را با استفاده از دادههای بارگذاری شده تنظیم دقیق کنیم.
learn.fine_tune(1)
- Learn.fine_tune(1) – این خط کد مدل طبقه بندی متن را به دقت تنظیم میکند.
- 1 — پارامتر 1 تعداد دورههایی است که مدل برای آنها آموزش داده میشود. یک دوره یک گذر از کل مجموعه داده آموزشی است. آموزش برای چندین دوره به مدل اجازه میدهد تا چندین بار از دادهها یاد بگیرد، در اینجا برای سادگی از 1 استفاده میکنیم.
به طور خلاصه، این خطوط کد یک مدل طبقهبندی متن ایجاد میکنند، دادههای متنی شما را بارگذاری میکنند، مدل را روی دادهها برای چهار دوره با استفاده از نرخ یادگیری مشخص تنظیم میکنند و از دقت به عنوان معیار برای ارزیابی عملکرد مدل استفاده میکنند. شی یادگیری حاصل مدل طبقه بندی متن آموزش دیده شما را نشان میدهد که میتواند برای پیش بینی دادههای متن جدید استفاده شود. کار تمام شده است. اکنون مدل ما آماده است تا احساسات متن را پیش بینی کند. بیایید مدل را با نقد فیلم آزمایش کنیم.
learn.predict("I really loved that movie, it was awesome!")
و این هم از نتیجه:
('pos', tensor(1), tensor([0.4885, 0.5115]))
در تحلیل نتایج باید گفت که عبارت pos میگوید که جمله داده شده یک جمله مثبت است. آرایه بعدی میگوید که مدل چقدر در پیش بینی مثبت یا منفی بودن جمله داده شده اطمینان دارد. این امتیاز اعتماد به نفس را میتوان با افزایش تعداد دورهها (که آموزش آن زمان زیادی طول میکشد، مگر اینکه یک کامپیوتر قدرتمند داشته باشید) بهبود بخشید. امیدواریم این نمایش کد به شما در درک نحوه کار با کتابخانه Fast.ai کمک کند.
نتیجه گیری
Fast.ai یک نقطه شروع فوق العاده برای هر کسی که علاقه مند به یادگیری عمیق است ارائه میدهد. سادگی و کاربردی بودن، آن را به ابزاری ارزشمند هم برای مبتدیان و هم برای تمرینکنندگان با تجربه تبدیل میکند. با استفاده از Fast.ai، متوجه خواهید شد که یادگیری عمیق آنقدرها هم که به نظر میرسد دلهره آور نیست. چه دانشآموز، یک توسعهدهنده یا یک یادگیرنده کنجکاو باشید، Fast.ai میتواند دروازهای برای ورود به دنیای شگفتانگیز هوش مصنوعی باشد. بنابراین، شروع کنید، آزمایش کنید و از سفر به سمت یادگیری عمیق با Fast.ai لذت ببرید.