از Pista Academy حمایت کنید
خلاصه آموزشی
مرور سریع مفاهیم اصلی پیش از تماشای کامل یا برای جمعبندی بعد از آموزش.
در جلسه 5 آموزش Fine-Tuning مدلهای LLM، مدرس فرآیند تکست کلاسیفیکیشن را به صورت مرحله به مرحله توضیح میدهد. ابتدا متن ورودی به توکنایزر ارسال میشود و به توکنهای عددی تبدیل میگردد. سپس این توکنها به وکتورهایی تبدیل میشوند که مدل میتواند آنها را درک کند. مدل با استفاده از ترنسفورمر معنی جمله را در کانتکست تشخیص میدهد و احساس جمله را به عنوان لیبل نهایی ارائه میدهد. همچنین، نحوه عملکرد لایههای شبکه عصبی در مدلهای LLM، از جمله کلاسیفیکیشن هد، فولی کانکتد لایر، لاجیت و سافت مکس، به طور جزئیاتی توضیح داده میشود.
نکات کلیدی
فرآیند تبدیل متن به توکنهای عددی و سپس به وکتورهای قابل درک توسط مدل به صورت مرحلهای انجام میشود.
کانتکست جمله در تشخیص معنی و احساس جمله نقش کلیدی دارد.
کلاسیفیکیشن هد معمولاً یک شبکه کوچک روی ترنسفورمر است و در پایان لایهها اعدادی به نام لاجیت تولید میکند.
سافت مکس این اعداد را به احتمالات تبدیل میکند و با استفاده از آرگ مکس، کلاسی که بیشترین احتمال را دارد انتخاب میشود.
پرسشهای رایج
پاسخ کوتاه و مستقیم به پرسشهایی که معمولاً هنگام یادگیری این موضوع مطرح میشوند.
متن ورودی به توکنایزر ارسال میشود که آن را به توکنهای عددی تبدیل میکند.
کانتکست جمله در تشخیص معنی و احساس جمله نقش کلیدی دارد.
کلاسیفیکیشن هد معمولاً یک شبکه کوچک روی ترنسفورمر است و در پایان لایهها اعدادی به نام لاجیت تولید میکند.
سافت مکس اعداد لاجیت را به احتمالات تبدیل میکند.
آخرین بهروزرسانی محتوای متنی:
در این دوره آموزشی، بهصورت عملی و پروژهمحور یاد میگیریم چگونه مدلهای زبانی بزرگ (Large Language Models) را برای کاربردهای خاص خودمان Fine-Tune کنیم. امروزه مدلهایی مانند LLaMA، Mistral، BERT، T5 و مدلهای مبتنی بر Transformer تواناییهای بسیار قدرتمندی دارند؛ اما برای رسیدن به بهترین عملکرد در یک حوزه تخصصی، معمولاً نیاز داریم آنها را با دادههای اختصاصی خودمان تنظیم کنیم. در این دوره از پایه با مفاهیم Fine-Tuning شروع میکنیم و سپس به تکنیکهای پیشرفته و بهینه مانند LoRA، QLoRA و PEFT میپردازیم تا بتوانیم مدلهای بزرگ را حتی با منابع سختافزاری محدود آموزش دهیم. در طول دوره با استفاده از اکوسیستم Hugging Face، کتابخانههای Transformers، Datasets، PEFT، Accelerate و TRL مدلهای مختلف را Fine-Tune کرده و پروژههای واقعی را پیادهسازی میکنیم. در این دوره چه چیزهایی یاد میگیریم؟ 🔹 آشنایی عمیق با معماری Transformer و مفاهیم پایه LLMها 🔹 کار با Hugging Face Transformers و مدلهای Pre-trained 🔹 آمادهسازی Dataset برای Fine-Tuning مدلهای زبانی 🔹 تفاوت روشهای مختلف Fine-Tuning و انتخاب روش مناسب 🔹 آموزش و Fine-Tuning مدلهای BERT برای Classification 🔹 استفاده از Knowledge Distillation برای ساخت مدلهای کوچکتر و سریعتر 🔹 Fine-Tuning مدلهای DistilBERT و TinyBERT 🔹 Fine-Tuning مدلهای T5 برای Text Summarization 🔹 Fine-Tuning Vision Transformer برای Image Classification 🔹 مفهوم Instruction Tuning و Chat Models 🔹 Fine-Tuning مدلهای LLaMA برای ساخت مدلهای مکالمهای 🔹 Fine-Tuning مدلهای Qwen برای کاربردهای مختلف 🔹 آشنایی کامل با LoRA (Low-Rank Adaptation) 🔹 Fine-Tuning بهینه با QLoRA و Quantization 🔹 استفاده از PEFT برای کاهش هزینه آموزش مدلهای بزرگ 🔹 Fine-Tuning مدلهای LLM روی Datasetهای شخصی 🔹 ساخت مدلهای Voice و Audio با استفاده از LLMها و Qwen-TTS 🔹 Fine-Tuning مدلهای صوتی با دادههای اختصاصی پروژههایی که در این دوره انجام میدهیم: ✅ ساخت مدل Classification اختصاصی با BERT ✅ تشخیص موجودیتهای نامدار (NER) با مدلهای Transformer ✅ ساخت سیستم خلاصهسازی متن با T5 ✅ Fine-Tuning مدلهای LLM برای Chat و Instruction Following ✅ تنظیم مدلهای LLaMA و Qwen روی دادههای سفارشی ✅ استفاده از LoRA و QLoRA برای آموزش مدلهای بزرگ با GPU محدود ✅ Fine-Tuning مدلهای صوتی برای کاربردهای Voice AI این دوره مناسب چه کسانی است؟ این دوره برای افرادی مناسب است که: ✔ با Python آشنایی دارند و میخواهند وارد حوزه LLM Engineering شوند ✔ میخواهند مدلهای زبانی موجود را برای پروژههای واقعی شخصیسازی کنند ✔ قصد دارند در حوزه Generative AI، NLP و مدلهای مولد فعالیت کنند ✔ میخواهند به جای استفاده صرف از APIها، مدلهای AI اختصاصی خودشان را بسازند ✔ علاقهمند به تحقیق و توسعه در حوزه مدلهای زبانی بزرگ هستند پیشنیازهای دوره: آشنایی متوسط با Python آشنایی اولیه با Machine Learning و Deep Learning آشنایی مقدماتی با PyTorch آشنایی کلی با مفاهیم Neural Networks در پایان این دوره شما قادر خواهید بود مدلهای زبانی بزرگ را با استفاده از جدیدترین تکنیکهای روز مانند LoRA، QLoRA و PEFT روی دادههای اختصاصی خودتان Fine-Tune کنید و مدلهای آماده Hugging Face را برای ساخت اپلیکیشنهای واقعی هوش مصنوعی بهینهسازی کنید. 🚀 برای یادگیری عملی LLM Engineering و ساخت مدلهای AI اختصاصی، این دوره را از دست ندهید. #LLM #FineTuning #HuggingFace #LoRA #QLoRA #PEFT #GenerativeAI #AI #MachineLearning #DeepLearning #Transformers #LLaMA #Qwen #NLP
یه چند تا پروژه خیلی باحال توشه میخوایم
با همدیگه بریم خط به خط این پروژه رو
ببینیم چهجوریه
خب تو عکس اول
اومده گفته که تو سالای مختلف چیا مثلاً
ریلیز شده تو سال ۲۰۱۷ اول ترنسفورمر اومد
۲۰۱۸ جی پیتی وان اومد همون برت بعد ۲۰۱۹
جیپیت تی ۲ اومد بعد جی پی تی سه اومد بعد
جی پی سه و نیم اومد کلیپ بعد پالوم اومد
و الی آخر یعنی درق نسخههای مختلفی که
ریلیز شد تا د۶ که الان هستیم
خب اولین پروژه که میخوایم انجام بدیم بحث
تکست کلاسیفیکیشنه اینم کل فرا فراآیندش
که الان من این عکسو میدم به چجی میگم با
دیتیل بهمون توضیح بده ففرآیندشو
یه پ ش جلسه قراره رو این فایله باشیم این
فایله رو میخواید میتونم لینکشو بهتون
بدم اجازه بدید من یه جا آپلودش کنم
لینکشو همینجا بذارم توضیحات ویدیو هم
میذارم لینکشو
خب من اینو یه جا آپلودش کردم این لینکش
حالا توضیحات ویدیو توی یوتیوب میذارم
لینک این فایله رو حالا کنارش بچهها روی
وب سایتمون خب بچهها حتماً به وب سایتمون
سر بزنید خب امکانات خوبی داره همه
دورهها رو اینجا گذاشتیم خودکارم آپدیت
میشه یعنی نیاز کار دستی نداره میتونید
ببینید بعد ویدیوهایی که میبینیدو توی
مرورگرتون ذخیره میکنه که بدونه از کجا
ادامه بدید فریند پیشرفتتونو نشون میده و
خیلی چیزای دیگه دارن حالا من یه قسمتیهم
این بالا اضافه میکنم همین چند روز آینده
قسمت فایلها که مثلاً برای دورههای
مختلف فایلایی رو که نیاز دارید و در طول
دوره رو اونجا میذارم میتونید برید
دانلود بکنید ولی فعلاً از این لینک تو که
تو توضیحات میذارم میتونید فایل این
اینو دانلود بکنید ولی حتماً به وب
سایتمون سر بزنید
خیلی طرح تمیز شده وب سایتمون و حالا
مثلاً قسمتهای ما خیلی امکانات داره یعنی
برید حتماً یه دوری توش بزنید حتماً خب
بریم شروع بکنیم
من این عکسو بدم چجی بیتی
ازش بخوام که اینو به ما توضیح بده
خب اینم ساده باش صحبت میکنم خب
تصویری که
آپلود کردمو به صورت کامل
میده.
قبلشم یه چیزی مینویسم براش.
فرض کن تو یک متخصص
ال ان و
قرا هست به یک آدم
مبتدی
آموزش بدیم
خب ببینیم چی بهمون بیاد
خب میگه که این تصویر کل مسیر یک تکست کلاسیفیکیشن پایپلاین رو
از لحظهای که کاربرو وارد میکنه تا
زمانی که یک مدل که مدل یک لیبل نهایی
برمیگرده نشون میده. یعنی ما یه متن بهش
میدیم اون یه لول میزنه مثلاً فرض کن
کجاها کاربرد داره مثلاً جایی که شما
قراره تحلیل بکنید که نظرات کاربران مثبته
یا منفی یا مثلاً جاهایی که
اگه این تصویر خوب درک کنید بخش بزرگ از منطقه پشت این و هاگینگ فیس پایپلاین و
حتی فاین تونینگ مدلهای کلاسیفیکیشن
براتون روشن میشه. پس قراره با جزئیات
بریم جلو. میگه فرض کنید کاربر این جمله
رو وارد میکنه تو ابتدا. ما میخوایم
مدلمون تشخیص بده که این جمله چه احساسی
داره. پوزیتیوه یا نه؟ خنساائه یا نگتیوه؟
منفیه.
مدل نمیتواند متن خام رو مستقیماً بفهمد.
اینو بارها تو دورههای مختلفم بهش اشاره
کردیم. بنابراین جمله باید چند مرحله رو
طی بکنه؟
دیتای خام میاد اول میره توکنایزر
بعد به یه توکن آیدی اختصاص میده برای هر
توکن بعد میره تو ترنسفورمر
بعد تکست ریپرزنتیشن بعد کلاسیفیکیشن هد
احتمالاتش و در نهایت لیبل آخر
خب مرحله اول اینپوتمونه متن ورودیمونه
این همون چیزی که کاربر وارد میکنه فرض
کنید این یه متن خیلی سادهست
اما اشتبا نمیتوان مستقیماً روی حروف و
کلمات کار بکنه. کامپیوتر در نهایت با چی
کار میکنه؟ با عدد. پس باید اینو تبدیل
کنیم به یه سری عدد. این وظیفه مرحله بعده
یعنی پری پراسسینگ و توکنایزر تو این
مرحله بچهها مرحله د
ما اینجا مرحله پری پراسسینگو داریم.
پیشپردازشو داریم. یکی از مهمترین
عملیات این قسمت چیه؟ توکنایزیشن یعنی
جملهمون رو تبدیل میکنه به یه سری توکن.
فرض کنیم تبدیلش میکنه به یه همچین چیزی.
این یک توکن توکن یه توکن یه توکن حتی این
علامت تعجبم یک توکن
به این قطعه کوچکتر میگن توکن. تقریباً
بچهها هر توکن سه چهارم یه کلمهست. یعنی
لزوماً یه کلمه یه توکن نیست.
اینجا اشاره کرده بهش. مثالم زده گفته
مثلاً این سه تا توکنه.
اوکی چرا اصلاً این کارو میکنیم؟ فرض کنید جمله شما این باشه. شبکه عصبی
نمیتواند مستقیماً عملیات ریاضی روی لاو
انجام بده. بنابراین میاد چیکار میکنه؟
میاد این دونه تبدیل میکنه به توکنها و
بعد هم توکن آیدی. در نهایت هر توکن یک
عدد تبدیل میشود. توکن آیدی چیه؟ در
تصویر برای توکن اعداد شبیه این دیده
میشود. اینها اینجاست.
میگه هر توکنایزر یک بانکی از کلمات رو داره
و داخل اون بانک خودش اومده برای هر کلمه
یه عددی رو اختصاص داده. اینو قبلاً ما
اصلاً هاگین فیس چیه بچهها؟ یه سری مدله
که از قبل پریترن شدن.
آدمی اومده یه مجموعه زیادی از متنو به
این داده اینا رو اومده دستهبندی کرده به
هر کدوم یه آیدی اختصاص داده وقتی شما
اینو بهش میدید این میره تو اون بانکی که
کلماتش میگرده میگهآی قبلاً داشتم ۱۰۱
آیدیش لاوو قبلاً داشتم ۱۰ ۴۵ و الی آخر
خب میگه مدلای مانند بل تعدادی توکن خاص هم
دارن مثلاً اینا که هر کدوم کاربرد خاصی
دارن مثلاً این در ابتدای یک توالی قرار
میگیره و ریپرزنتیشن آن درسته از مدلهای
گز برای نمایش کل جمله استفاده میشن سپ
مرز بخشی یا پایان یک توالیو نشون میده پد
برای یکسان کردن طول سکونس استفاده میشه
مسک در مسک لنگوج مدلگا استفاده میشه حالا
اگه داشتیم تو دوره راجعش صحبت میکنیم
میگه تو این تصویر ما یه جایی گفتیم که تکست از کلین ان توکناز این یعنی چی
میگه توکنایزر به معنای کلاسیک لزوماً دی اون دیتای شما رو تمیز نمیکنه یعنی
عملیاتهایی مثل مثلاً حذف پانکچیشن استاپ
وورسها حذف اعداد انجام نمیشه حتی در
بسیاری از مدلهای تصبی نباید این کارو
انجام داد چون فانکتونشن و ساختار طبیعی
متن ممکن است برای مدل اطلاعات مهمی داشته
باشه راست میگه همون داستان ویرگولهست که
توی جمله معرفی داریم بخشش لازم نیست
ادامش کنید منظورش فکر کنم اونه
میگه برای سادهسازی اومده این قسمتو نشون نداده تو این تصویر بخش اتنشن مسک
مسکم داریم مثلاً این خب این اتشن مکس چیکار میکنه؟
میگه اتنشن مکس به مدل کمک میکند بفهمد
کدام توکن و کدام توکنا واقعی هستند و
پدینگ اضافه شده آها
این معناش اینه که این تیکه آخر پدینگ اضافه شده برای اینکه طول متو یکی بشه
بالا توی جلسه قبل راجع به پدینگ صحبت
کردیم
میگه اینو اینجا اشاره نکردم خب مرحله
بعدی
ترنسفر این کودره
در نفر سوم داریم مدل اینکودر مثال این
زده یعنی توکنها وارد مدل برد میشوند
توکن آیدیا
آیا برد همون توکنایزره خیر این دو تا کاملاً متفاوته
توکنایزر مسئول تبدیل یک متن به توکن
آیدیه در حالی که برت مسئول یادگیری و
استخراج معنای کانتکستچوال این توکنهاست
پس این د تا یکی نیستن
اولین اتفاق داخل برد انبدینگه فرض کنید توکن آیدی مربوط به لاو ۲۲ ۹۳
باشه فرض کنید
عدد ۲۲ خودش معنی خاص ریاضی نداره مدل آن رو به یک وکتور تبدیل میکنه مثلاً به
صورت ساده تبدیلش میکنه به یه همچین چیزی
میگه در وردس این وکتور معمولاً اندازهش ۷۶۰ ۶۸ست
یعنی هر توکن به ۷۶۸
عدد تبدیل میشه تبدیل میشه به یک وکتور به
یک بردار
انبندینگ چه فایدهای داره اجازه میدد مدل مفاهیم رو در فضای عددی
نمایش دهد مثلاً در مدل آموزشیده ممکن است
ریپریزنتیشن قرا به کلمات مشابه ویژگی
مشترکی داشته باشن اما نکته مهمتر این است
که ترنسفورمر این امنینگ اولی رو به یک
کانتکست
ریپزنتیشن تبدیل میکند.
این یعنی چی؟ یکی از مفههای مهمه
مثلاً کلمه بنک
تو این جمله به معنای بانک مالیه یعنی شما
یه جا بانکی تصور کنید که رفتی پولتو
گذاشتی اونجا
اما تو این جمله
یعنی کنار رودخانه
پس کانتکست
ممکنه توی جملات مختلف کلمه یک مفهوم
مختلفی داشته باشه
میگه ترنسفورمر ریپریزنتیشن تلاش میکنه
این مفهوم رو برای یک کلمه بر اساس جمله
بسازه.
یعنی اینجوری میفهمه میگه که اگر کلمه بانک تو جملهای اومد که مفهوم مالی داشت
نشوندهنده مفهوم مالیه. اگر بانک تو
جملهای اومد که یه دونه رودخونه بود
نشوندهنده کنار رودخونهست و این قدرت
اصلی ترنسفورمره.
خب سلف اتنشن اینجا داریم بچهها تو این
مرحله داریم.
میگه که صفر اتنشن هنگام ساخت توکن اجازه میدهد.
این چپ و راست شدنش باعث میشه من نتونم بفهمم که اعدام چهجوریه ولی بذارید بخونم.
بذار مثالشو ببینیم. فرض کنید جملهمون اینه. آیلا هاگینگ فیس مدل هنگام پردازش
لاو فقط به خود لاو نگاه نمیکنه
ارتباط اونو با آی و هاگینگ و فیس بررسی
میکنه به شکل مفهومی یه همچین چیزی میشه
لاوو با ارتباطش با سه تا کلمه دیگه یاد
میگیره
چرا اسمش سف اتنشنه چون اتنشن روی خود همون سکوست انجام میشود
یعنی یه توکن رو میاد به توکنهای کناریشم نگاه میکنن
و به خاطر بهش میگن سلف اتنشن. مهمه دیگه
بچهها واقعاً کلمات
تو زبانهای مختلف فرق نمیکنه. توی جملات
مختلف امکان داره معانی مختلفی داشته
باشن.
میگه ترنسفورمر انکوند فقط یه سرف اتنشن نداره. امکان داره لایههای مختلف داشته
باشن. برای سادگی اینجا اینججوری نشون
داده. این خودش امکان داره تعداد زیادی
لایه باشه.
میگه ترنسفورمر میاد الگوها وابستگی موجود در متن رو به یک ریپریزنتیشن عددی تبدیل
میکنه. مثلاً اینو تبدیل میکنه به یه
همچین چیزی.
خب مرحله ۴ کلاسیفیکیشن هد حالا انکدر کار
خودشو انجام داده اما هنوز چیزی به نام
اینو نداریم
برت پایه فقط ریپ ریپریزنتیشن ایجاد میکنه
برای کلاسیفیکیشن یک بخش دیگه هم اضافه
میکنیم کلاسیفیکیشن هد
میگه تو اینجا یه چیزی داریم به نام فولی کانکتد لایر و سافت مک عکس کلاسیفیکیشن هد
چیست؟ کلاسیفیکیشن هد معمولاً یک شبکه
کوچک روی ترنسفورمره
میگه فرض کنید س۳ تا کلاس داریم ف لایه آخر باید س خروجی تولید بکنه یه چیزی شبیه
این اعداد لاجیت نام دارن
لاجیت برای هر اسکور
مثلاً میگه که پوزیتیوش میشه این نگ خنثش میشه این نگتیوش میشه این بزرگتر
بودن لاج یعنی مدل تمای بیشتری به آن کلاس
دارد آها یعنی میاد برای هر کلاس یه عددی
ایجاد میکنه در انتهای اون لایهها
لایههای شبکه عصبیمون هر کدوم بزرگتر
باشه نشون میده به سمت اون تمایل داره
لزوماًم بچهها بین صفر و یک نیست و اینجاست که سافت مکس وارد عمل میشه پس
باید تبدیلش کنیم به صفر و
سافت مک میاد مجموعه لاجیت رو به احتمال تبدیل میکنه.
یعنی این اعدادی که این مدل من بعد از
اینکه این لایهها رو روش اعمال کرد،
لایهها شبکه عصبی رو تبدیل میکنه به
احتمال
به یه همچین چیزی. یعنی میگه با احتمال ۹۵ پوزیتیوه.
۴ خنث ۱ نگتیو و در اینا حجمشم میشه ی
بچهها ۱۰۰
خب میگه آیا کلاسیفیکیشن هت همیشه سافت مکس
داره؟
بله چرا؟ چون اومد احتمال به من بده در
انتها
اوکی هیچ چیز خاصی نگفت اینجا نکته خاصی نداشت
خب در نهایت بچهها خروجی که به ما میده اینه
یعنی به ما میگه با احتمال هر کدوم از
اینا چقده
و معمولاً خب بالاترین احتمالو ما در نظر میگیریم. اگه د تاشون نزدیک هم بودن که
باید یه فکر دیگه بکنیم
و در نهایت بچهها با یه ابزاری به نام آرگ مکس یعنی میاد رو این یه دونه
ماکسیموم انجام میده ببینه کدومش از همه
ماکسیمومه ایندکسشو برمیگردونه مثلاً
میگه آقا ایندکس صفر از همه بیشتر بود
یعنی کلاس صفر
حالا ما یه جایی تعریف کردیم کلاس صفر چیه
خب اینم میخواد یه بار دیگه بگه بگذریم
اینا رو جلوتر چون میبینین بچهها من داشتم رد میکنم به نظرم کافیه این تصویرو
به اندازه کافی توضیح دادیم بریم بیایم
جلسه بعدی میریم سراغ کدمون فعلاً خداحافظ