TGViewer
AI Engineers AI Engineers @llmengineers · 2.64K subscribers
Post #70 897
رویکرد Knowledge Distillation یا به اختصار KD، یه تکنیک برای انتقال دانش از یه مدل بزرگ و قوی (Teacher) به یه مدل کوچیک‌تر و بهینه‌تره (Student). کاربرد اصلیش اینه که مدل‌های غول‌آسا مثل GPT-4 رو که نیازمند منابع محاسباتی سنگین هستن، به نسخه‌های جمع‌وجوری تبدیل کنیم که روی سخت‌افزارهای ضعیف‌تر مثل موبایل یا سرورهای معمولی هم اجرا بشن، بدون اینکه بخش زیادی از عملکردشون رو از دست بدن. این کار هزینه‌های inference رو کم می‌کنه و سرعت رو بالا می‌بره.

اساس کار اینه که مدل Student فقط از روی لیبل‌های واقعی (ground-truth) یاد نمی‌گیره، بلکه تلاش می‌کنه خروجی‌های مدل Teacher رو هم تقلید کنه. این خروجی‌ها فقط جواب نهایی نیستن، بلکه شامل توزیع کامل احتمالاتی روی تمام توکن‌های ممکن (logits) هم میشن. این اطلاعات غنی که بهش "dark knowledge" هم میگن، به Student کمک می‌کنه تا "روش فکر کردن" Teacher رو یاد بگیره، نه فقط جواب درست رو.

چندتا استراتژی اصلی برای این کار وجود داره:

یک. Response-Based Distillation
این روش کلاسیک و ساده‌ترین راهه. اینجا Student سعی می‌کنه توزیع احتمالاتی (logits) خروجی Teacher رو برای هر توکن تقلید کنه. مدل‌هایی مثل DistilBERT از این روش استفاده کردن. این متد از نظر سخت‌افزاری بهینه‌ترینه.

دو. Feature-Based Distillation
اینجا به جای خروجی نهایی، حالت‌های میانی (hidden states) یا attention maps مدل Teacher به Student منتقل میشه. این کار Student رو مجبور می‌کنه که ساختار داخلی و فرآیند استدلال Teacher رو یاد بگیره. این روش برای پر کردن گپ بین یه Teacher خیلی بزرگ و یه Student خیلی کوچیک مفیده.

سه. Instruction & Rationale-Based Distillation
این یکی از موثرترین تکنیک‌ها برای مدل‌های امروزیه. به جای جواب تنها، از Teacher خواسته میشه که مراحل استدلال خودش یا همون Chain-of-Thought (CoT) رو هم تولید کنه. بعد Student روی این دیتاست که شامل دستور -> مراحل استدلال -> جواب نهایی هست، فاین‌تیون میشه. پروژه‌هایی مثل Orca نشون دادن که این روش می‌تونه عملکرد مدل‌های کوچیک در تسک‌های استدلالی رو به شدت بهبود بده. اصل داستان اینه که به جای یاد دادن *جواب نهایی*، به مدل *روش فکر کردن* رو یاد بدی.

گردش کار عملیاتی برای پیاده‌سازی Knowledge Distillation معمولاً اینطوریه:

۱. جمع‌آوری دیتا: یه مجموعه از پرامپت‌ها یا دستورات آماده میشه. این دیتا می‌تونه از دیتاست‌های عمومی مثل Alpaca بیاد یا به صورت مصنوعی با روش‌هایی مثل Self-Instruct تولید بشه.

۲. گرفتن خروجی از Teacher: با استفاده از دیتاست مرحله قبل، از مدل Teacher خروجی گرفته میشه. اینجا تنظیم هایپرپارامترهایی مثل Temperature مهمه. دمای بالاتر (مثلاً T > 1.0) تنوع بیشتری در خروجی ایجاد می‌کنه، در حالی که دمای پایین‌تر (مثلاً T ≈ 0.7) جواب‌های دقیق‌تری میده.

۳. فیلتر کردن و امتیازدهی: خروجی‌های Teacher همیشه بی‌نقص نیستن و ممکنه شامل hallucination یا اطلاعات غلط باشن. به نظر من، مهم‌ترین قسمت داستان همین فیلتر کردنه. با استفاده از روش‌هایی مثل rejection sampling، بررسی `perplexity`، یا فیلترهای مبتنی بر قوانین، خروجی‌های بی‌کیفیت حذف میشن تا Student دیتای تمیزی برای یادگیری داشته باشه.

۴. فاین‌تیون کردن Student: مدل Student روی دیتاست تمیز شده فاین‌تیون میشه. تابع هزینه (loss function) معمولاً ترکیبی از دو بخشه: یکی `Cross-Entropy` روی لیبل‌های واقعی (اگه وجود داشته باشن) و دومی KL Divergence بین خروجی Student و Teacher. تفاوت بین رویکرد black-box (فقط دسترسی به متن خروجی Teacher) و white-box (دسترسی به logits) هم اینجا مشخص میشه.

با وجود تمام مزایا، این روش چالش‌هایی هم داره. بزرگ‌ترین مشکل، انتقال خطاها و hallucination های مدل Teacher به Student هست. اگه Teacher اطلاعات غلط تولید کنه، Student هم همون رو یاد می‌گیره. مسئله‌ی دیگه، "capacity gap" هست؛ یعنی وقتی Student خیلی کوچیک باشه، نمی‌تونه به خوبی از یه Teacher خیلی بزرگ یاد بگیره. همچنین مسائل قانونی مربوط به لایسنس API مدل‌های تجاری مثل GPT-4 هم وجود داره که استفاده از خروجی اون‌ها برای ترین کردن مدل‌های رقیب رو محدود می‌کنه.

📃 مقاله اصلی هینتون در مورد Distillation
Distilling the Knowledge in a Neural Network

📃 مقاله پروژه Orca که از CoT Distillation استفاده کرده
Orca: Progressive Learning from Complex Explanation Traces of GPT-4

🛠 Join @LLMEngineers Community
arXiv.org Distilling the Knowledge in a Neural Network A very simple way to improve the performance of almost any machine learning algorithm is to train many different models on the same data and then to average their predictions. Unfortunately,...
  • 🔥 4
  • 👍 3
More from @llmengineers
  1. Oct 13, 2026انتشار Tasmim-Bench؛ مقایسه ۲۹ مدل Decision روی زبان فارسی ما برای اینکه ببینیم مدل‌های تخ…
  2. Oct 12, 2026کاربرد مدل‌های تصمیم‌گیری هوش مصنوعی در کاهش هزینه‌های عملیاتی کسب‌وکارها
  3. Oct 11, 2026توی یکی از پروژه‌هام با یه مشکل نسبتاً جدی روبه‌رو شدم: استخراج دقیق متن از PDFهای فارسی ب…
  4. Oct 8, 2026از نظر کاربرد Decision Modelها , قضیه دیگه فقط چند Demo نیست و چند الگوی مشخص واقعاً وارد…
  5. Oct 8, 2026کمتر از یک ماه از معرفی Jev گذشته و چیزی که اول شبیه یه مدل خاص برای «تصمیم‌گیری بدون تولی…
  6. Oct 7, 2026جدا از موج Decision Modelها، چند خبر فنی این هفته هست که برای AI Engineerها واقعاً ارزش دن…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →