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