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