از Pista Academy حمایت کنید
خلاصه آموزشی
مرور سریع مفاهیم اصلی پیش از تماشای کامل یا برای جمعبندی بعد از آموزش.
در این جلسه، مدرس به بررسی فید فورد نتورک در معماری ترنسفورمر میپردازد. این بخش شامل توضیحاتی درباره ساختار لایههای خطی، اکتیویشن فانکشن جی ایو و عملکرد دروپوت است. همچنین، تفاوت بین فید فورد نتورک و اتنشن در پردازش توکنها توضیح داده شده است.
نکات کلیدی
فید فورد نتورک در ترنسفورمر به انجام محاسبات غیرخطی و افزایش ظرفیت مدل برای یادگیری الگوهای پیچیده کمک میکند.
ساختار فید فورد نتورک شامل سه لایه خطی، اکتیویشن جی ایو و دروپوت است که به شبکه امکان پردازش مستقل هر توکن را میدهد.
فید فورد نتورک با اتنشن در پردازش توکنها تفاوت دارد، این تفاوت در نحوه پردازش اطلاعات به اشتراک گذاشته میشود.
پرسشهای رایج
پاسخ کوتاه و مستقیم به پرسشهایی که معمولاً هنگام یادگیری این موضوع مطرح میشوند.
فید فورد نتورک در ترنسفورمر محاسبات غیرخطی و افزایش ظرفیت مدل را برای یادگیری الگوهای پیچیده انجام میدهد.
ساختار فید فورد نتورک شامل سه لایه خطی، اکتیویشن جی ایو و دروپوت است.
فید فورد نتورک به پردازش مستقل هر توکن میپردازد، در حالی که اتنشن به اشتراک گذاشتن اطلاعات بین توکنها میپردازد.
آخرین بهروزرسانی محتوای متنی:
آیا میخواهید واقعاً درک کنید که مدلهای زبانی بزرگ (Large Language Models) چگونه ساخته میشوند؟ در این دوره آموزشی، از سطح مفاهیم پایه شروع میکنیم و قدمبهقدم یک مدل زبانی بزرگ را از صفر با استفاده از PyTorch پیادهسازی میکنیم. هدف این دوره فقط استفاده از مدلهای آماده نیست؛ بلکه یاد میگیریم در پشت صحنه LLMها چه اتفاقی رخ میدهد و چگونه میتوان یک مدل زبانی را ساخت، آموزش داد، بهبود داد و برای کاربردهای واقعی آماده کرد. در طول این دوره، معماری داخلی مدلهای زبانی بزرگ، فرآیند آموزش، Alignment، Fine-Tuning و تکنیکهای مدرن بهینهسازی مدلها را بررسی خواهیم کرد. در این مسیر یاد میگیریم: 🔹 ساخت یک LLM کوچک از صفر و درک تمام مفاهیم کلیدی پشت آن 🔹 بررسی معماری Transformer و اجزای اصلی مدلهای زبانی 🔹 تحلیل عمیق نحوه عملکرد مدل با Visualizationهای پیشرفته 🔹 پیادهسازی و درک مفاهیم داخلی یک Advanced LLM 🔹 ساخت فرآیند Alignment از صفر و آشنایی با نحوه هماهنگسازی مدلها با اهداف انسانی 🔹 انجام Fine-Tuning مدلهای زبانی با استفاده از QLoRA 🔹 یادگیری تکنیکهای کاهش هزینه آموزش و بهینهسازی مدلها 🔹 بررسی ارتباط بین شبکههای عصبی، یادگیری ماشین و مدلهای مولد 🔹 توسعه درک عمیقتر از نحوه کارکرد مدلهای Generative AI سرفصلهای اصلی دوره: 📌 Coding a Small LLM from Scratch ساخت یک مدل زبانی کوچک و بررسی تمام مفاهیم پایه مورد نیاز 📌 Inside the AI Matrix Visualization و تحلیل عمیق ساختار داخلی LLMها 📌 Understanding Advanced LLMs بررسی معماری و مفاهیم پیشرفته مدلهای زبانی 📌 Building Alignment Process from Scratch درک فرآیند Alignment و نحوه آموزش مدل برای رفتار بهتر 📌 Fine-Tuning LLMs with QLoRA افزودن مهارتهای جدید به مدلهای زبانی با روشهای کمهزینه Fine-Tuning 📌 Origami + AI Learning بررسی ارتباط ایدههای یادگیری، شبکههای عصبی و هوش مصنوعی 📌 Activating the Generative Model of Your Own Mind نگاهی عمیقتر به مدلهای مولد و نحوه تفکر در مورد AI این دوره مناسب چه کسانی است؟ ✅ مهندسان یادگیری ماشین و هوش مصنوعی ✅ برنامهنویسان Python و PyTorch ✅ دانشجویان علاقهمند به Deep Learning ✅ افرادی که میخواهند از سطح استفادهکننده مدلهای AI به سطح سازنده مدل برسند ✅ کسانی که میخواهند درک عمیقی از ChatGPT، Llama و مدلهای مشابه داشته باشند پیشنیازهای پیشنهادی: آشنایی مقدماتی با Python آشنایی اولیه با Deep Learning آشنایی پایه با مفاهیم Neural Networks در این دوره، به جای اینکه فقط از LLMها استفاده کنیم، یاد میگیریم چگونه آنها را بسازیم، آموزش دهیم و شخصیسازی کنیم. 🎓 برای مشاهده کامل این دوره و دورههای تخصصی بیشتر در حوزه هوش مصنوعی، به کانال Pista Academy مراجعه کنید. #LLM #LargeLanguageModels #PyTorch #DeepLearning #GenerativeAI #FineTuning #QLoRA #ArtificialIntelligence #machinelearning pistaacademy.ir
قسمتی که الان میخوایم راجع بهش صحبت
بکنیم این قسمت دوم یعنی فید فورد نتورکه.
میخوایم راجع به این صحبت بکنیم.
میگه اتنشن بیشتر وظیفه ارتباط بین توکنها رو برده داره اما فید فورد نتورک
که روی ریپریزنتیشن هر توکن محاسبات
غیرخطی و سنگین انجام میده و ظرفیت مدل رو
برای یادگیری الگوهای پیچیده افزایش میده.
خب کدی که میخوایم راجع به تیکه کد دیگه
همون ادامه در حقیقت کد اصلیمون اینه.
بذار من یه عکس ازش بگیرم باز
که
الان میخوایم راجع بهش صحبت کنیم
میذارمش گوشه باشه
[گلویش را صاف میکند] خب
این میگه این کلاس کجای ترنسفورمر قرار میگیره میگه تو قسمت قبلی کلاس بلاکو
داشتیم ما که یادتون باشه راجع بهش صحبت
کردیم
یه خطی داشتیمشش
فیت فوروارد تو اون کلاس بلاک
این میاد در حقیقت همین کلاس جدیدو
میسازه
ساختار کلی بلاکون میشه اینجوری یه ورودی میاد میره تو لایه نرمالزیشن مولتیهد
اتنشن رزیدوال اداره نرمالزیشن بعد تحویل
فیت فور فور میده
حالا بریم خط به خط ببینیم چیه خب اول
اومده کلاسو تعریف کرده
یک ماژول شبکه عصبی توی پایتورچ میخوایم بسازیم
کلاسم داره از این ارث میبره بچهها ان انم که قبلاً دیدیم دیگه موقع اینپ
کردن داشتیم.
قسمت بعدمون کانستراکتوره که خب بارها و بارها تو این دوره راجع بهش صحبت کردیم.
وقتی یه کلاسی فراخونی میشه اولین چیزی که
ران میشه کانستراکتور است
بعد میایم پایینتر
اینشیتو داریم اینم باز مورد دیگه بارها صحبتشو کردیم خب
برسیم به اینجا
یکی از مهمترین قسمتهاست
سکونشیال یعنی چی این لایهها را یکی پس
از دیگری اجرا کن یعنی من چیزایی که داخل
تو مینویسم یعنی این قسمت
و این
و این سه تا رو پشت هم اجرا کن
به این صورت یعنی ورودیمون میره تو پشت
سهم میره داخل این سه تا لایه و سکونشیال
کارش اینه
اولین لایه یه لایه لاینیر خطیه
که س تا پارامتر داره یه امبد سایز داره ۶ ضربدر امبت سایز و یه بایاس
میگه فرض کنیم امبت سایزمون ۳۸۴ه
۶ ضرب ۳۸۴ میشه ۲۳۰۴ پس عملاً این لایه میشه ۳۸۴ در ۲۳۰۴
یعنی وکتور هر توکن ۳۸۴ تا دایمنشن رو
تبدیل میکنه به ۲۳۰۴ تا دایمنشن
این مرحله رو معمولاً میگن اکسپنشن بزرگش کردن
چرا دایمنشنرو بزرگ میکنیم میگه فرض کنید
یک ریپریزنتیشن یه توکن فقط ۳۸۴ تا ویژگی
داره اگر مستقیم روی همون ۳۸۴ ویژگی
محاسبه کنیم ظرفیت شبکه محدوده ولی وقتی
موقتاً اون رو تبدیلش میکنیم به ۲۳۰۰ تا
ویژگی شبکه فضای بسیار بزرگتری برای
استخراج اخراج الگوها داره
به خاطر اینه
یه مثالی هم اینجا زده میگه
شما فرض کنید یه خونهای یه میزه کاری داره ۳۸۴ تا ظرفیت داره وقتی میز
کارو بزرگترش بکنید خب میتونید با دقت
بیشتر فضای بیشتری دارید برای کار کردن یه
همچین مثالی زده
خب
چرا ضربدر ۶ حالا
میگه عدد شی یک هایپر پارامتر معماریه راجع به هایپر پارامتر قبلاً یه بار صحبت
کرده بودیم
قانونیس حتماً ۶ باشه هایپر پارامترا دقیقاً روشهای مخ مختلفی وجود داره برای
تعیینشون. حالا اینجا ۶ در نظر گرفته.
خب بیایم پایینتر. یه بایاسم اضافه کرده.
باعث میشه این بچهها این انتهای این فرمو میشه.
خب میایم اینجا. بعد اکتیویشن فانکشن جی ایو رو داریم.
اسم کاملشم گوسین ارور راین یونیته بارها و بارها هم راجع به اکتیویشن
فانکشنا صحبت کردیم چرا بودنشون مهمه
زمانی که شما لایههاتون لایههای خطیه
برای اینکه بتونن رفتارهای غیرخطی رو هم
بفهمن میان اکتیویشن فانکشن بهش اضافه
میکنن
دقیقاً همون چیزی که گفتم بهتون اگه اکتیویشن فانکشن نداشته باشیم و همه
لایههامون خطی باشن نمیتونن روابط
پیچیده و غیرخطی رو بفهمن. برای همین میان
بینشون یه اکتیویشن فانکشن میذارن که
تبدیل بشه به یک شبکه غیرخطی.
اکتیویشن فانکشن کلاً چیکار میکنن بچهها؟ یه ورودی میگیرن یه بلایی سرش
میارن خروجی رو میدن حالا اینکه چه بلایی
سرش میارن تو اکتیویشن فانکشن مختلف
متفاوته. مثلاً میگما ما یه اکتیوش فانکشن
داریم که اگر عدد زیر صفر باشه میشه صفر
بزرگتر صفر باشه میشه خودش بهش میگن آری
ای ال یو مثلاً
حالا این گوسی یعنی نمیدونم چیکار میکنه
الان میین احتمالاً جلوتر میگه اینا آ یو
رو گفته اینجا
دقیقاً همون چیزی که داشتم میگفتمو توضیح داده
میگه جی ایو نسبت به آری لیو فرقش اینه که رف رفتار نرمتری داره و مقادیر منفی رو
یه دفعه صفره میکنه.
میگه جی ال یو باعث میشه که توی فید فوروالد نتورکها قدرت بیان موارد غیرخطی
رو افزایش میده.
خب بریم بعدش.
دومین لاینی لایرمون یه لایه دیگهست اینجا ورودیمون میشه خروجی لایه قبلی یعنی این
میاد اینجا به عنوان ورودی این لایه در
نظر گرفته میشه
خروجون میشه برمیگرده دوباره به همون ۳۸۴
یعنی ما یه ورودی اول دادیم ۳۸۴ تا این یه
ذر بزرگش کرد که محاسباتو بتونه بیشتر
انجام بده الگوها رو بهتر پیدا کنه دوباره
برش گردون به همون ۳۸۴ خروجیمون
اینم از این پس همون چیزی که به عنوان ورودی گرفته رو باید خروجی همونو برگردونه
کجاست دروپوتمون؟ چرا داره راجع دروپوت صحبت میکنه؟
قبلاً فک کنم راجع به دروپوت صحبت کردیم.
گفتم که دروپوت چیکار میکنه؟ میاد یه سری
از سلولهای یک لایه شبکهی رو تو مرحله
فرند آموزش غیر فعال میکنه به خاطر اینکه
میگه
نیاد یه سری مثلاً الگوی خاصو خیلی بیشتر
اهمیت بده رندم این کارو میکنه
و اینجا هم دیگه تموم میشه اینم میشه شبکه کوچیک
اینا که هیچی خب فید فوروار روی توکن چگونه کار میکنه؟
میگه این تفاوت با اتنشن خیلی بهش زیاد
مهمه فرض کنید سکونسمون اینه توکن یک توکن
د الی آخر سلف اتنشن
میاد چیکار میکنه؟ رفتار یک توکن نسبت به
بقیه توکنها رو میبینه این تعریف
اتنشنه.
یعنی میاد پوزیشنها رو یاد میگیره. اما
فید فور بچهها هر توکنو به صورت مستقل
پردازش میکنه. اصلاً کاری نداره توکنی
اطرافش چیه.
پس عطله بندش چپ و راست شده. بذار من اینو اینجا کپی پیست کنم ببینم چهجوری میشه این
درستش کرد. یه لحظه
خب این جمله چی میگه؟ میگه که اتنشن میاد در حقیقت اطلاعات رو بین توکنها
بررسی میکنه. ارتباط بین توکنها محل
قرارگیری توکن در یک جمله. اما فید
فوروارد فقط هر توکنو به صورت مستقل بررسی
میکنه. این تفاوتو خیلی باید حواسمون
باشه.
خب بیایم پایین
باز مسیر کاملو داره میگه که کاری نداریم
اینم که هیچی
خب این باشه ادامهش باشه جلسه بعدی فعلاً خداحافظ