از Pista Academy حمایت کنید
خلاصه آموزشی
مرور سریع مفاهیم اصلی پیش از تماشای کامل یا برای جمعبندی بعد از آموزش.
در این جلسه، مدرس به بررسی فرآیند تولید متن توسط یک مدل زبانی در محیط PyTorch میپردازد. ابتدا نحوه تبدیل متن به توکن آیدی و سپس به تنسور توضیح داده میشود. همچنین، تفاوت ذخیره گرادیان در زمان ترینگ با عدم نیاز به آن در زمان جنریشن مورد بحث قرار میگیرد. در ادامه، نحوه افزودن دایمنشن به تنسور و تنظیم شکل ورودی برای مدل بررسی میشود. همچنین، محدودیت تولید توکن (حداکثر ۶۴ توکن) و فرآیند دیکود کردن توکن آیدی به متن نیز مورد توجه قرار میگیرد.
نکات کلیدی
فرآیند تبدیل متن به توکن آیدی و سپس به تنسور
تفاوت ذخیره گرادیان در زمان ترینگ و جنریشن
نحوه افزودن دایمنشن به تنسور و تنظیم شکل ورودی
محدودیت تولید توکن (حداکثر ۶۴ توکن)
متن ویدیو
متن زمانبندیشده این جلسه برای مرور، جستجو و دسترسی سریعتر.
پرسشهای رایج
پاسخ کوتاه و مستقیم به پرسشهایی که معمولاً هنگام یادگیری این موضوع مطرح میشوند.
متن به توکن آیدی تبدیل میشود تا بتواند به صورت تنسور در مدل پردازش شود.
در زمان ترینگ گرادیان ذخیره میشود تا بهروزرسانی وزنها انجام شود، اما در زمان جنریشن نیازی به ذخیره گرادیان نیست.
شکل ورودی با افزودن دایمنشن به تنسور تنظیم میشود تا مدل بتواند آن را پردازش کند.
آخرین بهروزرسانی محتوای متنی:
آیا میخواهید واقعاً درک کنید که مدلهای زبانی بزرگ (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
اینجا بیاید ببینید
دورههامون رو میتونید ببینید فایلا رو من دارم کمکم م آپدیت میکنم. واقعاً سرم
شلوغه ولی سعی میکنم فایلهای همه
دورهها رو در حقیقت اینجا بذارم که
بتونید دانلود بکنید. میتونید دورهها رو
شروع بکنید مثلاً یه دورهای رو و شروع
بکنید و فرایندتونو دنبال میکنه بهتون
میگه تا کجا پیشرفتید.
بعد حالا اگه فایل داشته باشید میتونید
اینجا دانلود بکنید. درصد پیشرفتون نشون
میده و الان تقریباً دیگه فکر کنم برای
همه ویدیو اتفاق افتاده کمکم. اینکه هر
ویدیو رو باز کنید خلاصه این جلسه چیزایی
که تو اون جلسه یاد میگیرید همه رو اینجا
هست حتی متن کامل جلسه رم اینجا براتون
گذاشتیم یه سری سؤال و الی آخر این خیلی
کامل داره اینه ویدیو رو بهتون میگه که چی
هستش
این از این اگرم حالا میخواستید حمایت
مالی بکنید این بالا لینک دونیشن ریت هست
توی خود یوتیوب هم میتونید هم ممبرشیپ
داشته باشید هم حالا روشهای مختلف بهترین
حمایتی هم که میتونید از ما بکنید لایک و
کامنت و سابسکریپشن ه که واقعاً خیلی کمک
میکنه به ما اگرم خواستید میتونید اینجا
پیام بفرستید برای ما درخواستی داشتید
سؤالی نکته چیزی بود در حد توان واقعاً
جواب میدم اینا رو خب این از این
بعد بریم سراغ دورهمون
[گلویش را صاف میکند]
ما کمکم داریم دیگه به آخرای این فصل
میرسیم که در حقیقت یه ال ساده داریم
میسازیم
من یه ذره آب بخورم ببخشید
ساعت صبحه این صدا منو درن نمیاد خب ما قبلی یه تابعی رو ساختیم متدی رو
ساختیم به نام جنره داخل کلاس جی پی تی
بود درسته حالا میخوایم از این استفاده
بکنیم یه متنیو تولید بکنیم
میگه که حالا این متد قراره یه متن کوچولویی رو به به عنوان ورودی بگیره
مثلاً آنس اپان تایم اینو میخواد به
عنوان ورودی بگیره توکنایز میکنه به مدل
میده مدل چند توکن جدید تولید میکنه و در
نهایت توکنها رو دوباره به متن قابل
خواندن تبدیل میکنه میشه ففرآیندی که
اتفاق میفته
خب اون تیکه کدی که قراره این جلسه صحبت
کنیم اینه بچهها
حالا من عکسشو
بذار اینجا بیارم که اینجا باشه دیگه بالا پایین نکنیم صفحه رو کجا رفتی عکس ها بستم
درش اینجاست خب تا اینجا این یه تیکه آخرش
حالا نگرفته تو عکس بذار من یه عکسه رو یه
بار دیگه بگیرم
که مهم نیست متنو دیگه بریم ب جریان کلی تابع چیه
یه تیکه از یه متنو بهش میده انکود میکنه
کنه تبدیل میکنه به آیدی توکن آیدی بعد
تبدیل میشه به تنسور
بعد [گلویش را صاف میکند] اضافه کردن ب
دایمنشن میره تو جی پی تی یه متن جدید
جنریت میشه بعد توکن آیدی جدید رو میده
بعد دیکود میشه یعنی فریند برعکس اتفاق
میفته از توکن آیدی میرسیم به خود توکن
در نهایتم متنو به ما تحویل میده حالا
بریم خط به خط اینو بررسی کنیم خط اولمون
چی بود من یه ذره برم اینتر
نوشته.no
یاد
این یعنی چی این خیلی مهمه میگه در زمان
ترینگ ما نیاز داریم پایتور تمام عملیات
رو برای بک پروپگیشن دنبال بکنه
چرا بک پروپگیشن اتفاق میفتاد؟ توی دوره
دیپل لینینگ راجع بهش صحبت کردیم. زمانی
که تو یک شبکه عصبی شما یک ورودی میدید یه
مقدارده اولیه داره وزناتون این یک بار که
تا انتها میره یه لاسی رو حساب میکنه بعد
برمیگرده بهش میگم فرند بک پروپگیشن وزنا
رو آپدیت میکنه که دوباره فرندو یه بار
دیگه تکرار بکنه تا لاسو بیارم پایین پس
به این میگم بک پروگشن
برای اینکه این دستور کار کنه پایتوش باید
هنگام فوروارد پس اطلاعات مربوط به محاسب
گلدینتو ذخیره کنه
اما هنگام جنریشن قرار نیست مدل آموزش
ببینه راست میگه دیگه مدل از قبل آموزش
دیده میخواد متنو تین بکنه ما فقط
میخوایم پرامپتو بدیم به مدل متن ترین
کنه بنابراین اینو میاد اولش مینویسه و
به پایتور چی میگه در این تاب گردینت و
محاسبه و ذخیره نکن نیازی نیست ما قرار
نیست به تو آموزش بدیم
وضعیتش چیه مموری کمتر اجر سریعتر
پس این میشه تفاوت تفاوت بین اینکه آیا ما
در مرحله ترینینگردینت
لازم داریم یا نداریم
اینجا که ترین نمیدیم طبیعتاً داریم
استفاده میکنیم
مرحله بعدی که اومده یه تابعی رو ساخته به
نام جنریت سمپل
چیکار میکنه که قراره یک متن معمولی رو
به عنوان ورودی دریافت بکنه مثلاً همون
آنسپین اتا
میگه فقط دقت کنید که این متن به عنوان ورودی الان یه استرینگه هنوز نه توکنه نه
تنسوره هیچی نیست
مرحله بعدی میاد چیکار میکنه این متنا رو
تبدیل میکنه به توکن آیدی تو کدوم قسمت
اینجا تو انکد
اینجا
که اینم قبلاً ساخته بودیم ما توی جلسات قبلی داشتیم
مثلاً اینو تبدیل میکنیم مثلاً به یه همچین چیزی احتمالاً
مدل جی پی دی طبیعتاً نمیتونه مستقیماً با این کار کنه باید ورودی عددی دریافت
بکنه برای همون که ما تبدیل میکنیم به
توکن آیدی بعد توکن آیدیا تبدیل میشن به
تنسور که اینجا اتفاق میفته کل این
فراآینده اینجا
پس این توکن آیدیهامونه بعد چه اتفاقی بیفته
تبدیل میشن به یه حالتی مثل تنسور
میگه حالا این خط برای چیه اینجا نوشته
این
چون این اعداد مقار واقعی عددی نیستند
ایندکس مربوط به توکنا هستند
آها میگه ۶۱۲ منظورش خود عدد ۶۱۲ نیست این
یعنی ایندکس ۶۱۲ تو اون لیست توکنهایی که
داره تو دیتابیسش
یک اینو گفتم دیواس مساوی دیواس یعنی چی میگه این باعث میشه که تنسور از همون
ابتدا روی دیوایس مورد نظر ساخته بشه
قبلاً اینو داشتیم دیگه یادتون باشه دیگه
گفتیم اگر کدا ف در دسترس بود از کدا
استفاده کن اگه جی پی یو داشت اگه نداشت
برو سراغ سی پی یو
اگه جی پی یو باشه دیوایسمون میشه کدا اگه
نباشه میشه سی پی یو
این باعث میشه که هم مدلمون و هم ورودیمون جفتشون روی دیوایس باشن
میگه اگه پرامت شما ۶ تا توکن داشته باشه تی. شیپ میشه سیکس یه همچین چیزی یعنی
تنسور یک بعدی داریم اما مدل ما چنین
ورودی انتظار داره مدل انتظار داره که یه
همچین چیزی ببینه
میگه پس باید شیو بشه یه همچین چیزی یک در ش
میگه اون تبدیلش میکنیم به یه همچین چیزی
اضافه کردن بچ دایمنشن برای همین خط بعدی
وجود داره این این در حقیقت داره بچ
دایمنشنو بهش اضافه میکنه کنه. میگه یکی
از مهمترین قسمتهای این کده این همین که
هست. میگه قبلش یه همچین چیزیه
بعدش اینو تبدیل میکنه به یه همچین چیزی
که یک بد سایزمونه. این هم طول سکونسمون
توالی توکنهاست.
دیگه اینو ولش کنیم که حالا یه تیکه کدم مهم نیست.
چرا بد شدش لازمه؟ میگه در فوروارد اگه یادتون باشه قبلاً داشتیم یه همچین چیزی
داشتیم
مدل انتظار داره د دایمنشن داشته باشیم
مدل به عنوان ورودیش میگه من د تا چیز
میخوام یک بت سایز د سکونس لک
اگه اینو فقط بهش بدیم طبیعتاً نمیتونه د تاشو ازش استخراج بکنه
در نهایت میاد فانکشن جنریتی که توی قسمت
قبلی داشتیم رو اون درق تکست پیاده سازی
میکنه
و شروع میکنه توکنهای بعدی رو یکی یکی تولید کردن. مکس ۶۴ یعنی چی؟ احتمالاً حدث
بتونید بزنید دیگه.
یعنی حداکثر ۶۴ تا توکن جدید تولید کن.
حالا نمیخواد دیگه یه متن بینهایت بریم
جلو.
پس اگر پرامت اولیه ۶ تا توکن داشته باشه
۶۴ تاهم نون توکن تولید میشه میشه ۷۰ تا
در نهایت فقط لزوماً بچهها ۷۰ تا توکن
یعنی ۷۰ تا کلمه نمیشهها اینو همیشه
یادتون باشه
خب پس اینم نکته مهمیه اینکه چه اتفاقی داخل جنریت میفته رو برای
یادآوری چون درس قبلی راجع بهش صحبت کردیم
بگذریم ازش ش
یه همچین چیزی میفته اینو با اون ورودی
میگیره کلمه بعدی رو پیشبینی میکنه بعد
کلمه بعدی بعد کلمه بعدی همینجوری ادامه
میده تا آخر [صدای خرناس]
اوکی نکته مهم دیگهای داره
دنیتم که طبیعتاً باید دیکود بکنه دیگه توکن آیدیا رو تبدیل بکنه به متن چون در
نهایت ما متنو نیاز داریم
خب اینم نکته خاصی نداره اینم که نتیجه
نشون میده و
الی آخر این چیه
شما اگه نیست که راجع بهش صحبت نکنیم بریم بیایم ادامهشو جلسه بعدی صحبت کنیم فعلاً
خداحافظ