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