پرش به محتوای اصلی
پرش به محتوای مقاله

چگونه مدل‌های ۶۰۰ میلیون پارامتری در طبقه‌بندی به دقت ۹۲٪ رسیدند؟

·۱ تیر ۱۴۰۵۸ دقیقه مطالعه
راهنما
تنظیم دقیق مدل زبانی محلی برای دسته‌بندی سوالات
تنظیم دقیق مدل زبانی محلی برای دسته‌بندی سوالات
اشتراک‌گذاری
واقعاً چه چیز جدید است؟

اثبات اینکه تغییر فرمت خروجی از «کلمات معنایی» به «کدهای دوحرفی» در مدل‌های زیر ۱ میلیارد پارامتر، می‌تواند صحت طبقه‌بندی را از ۱۰٪ به ۹۲٪ برساند.

تصور کنید می‌خواهید یک دستیار هوشمند بسازید که تمام رسیدها و تاریخ‌های تعمیرات خانه را مدیریت کند، اما نمی‌خواهید برای هر سؤال ساده، هزینه‌های سنگین پردازشی یا تأخیرهای طولانی مدل‌های غول‌آسا را تحمل کنید. پاسخ این چالش در بهینه‌سازی مدل‌های بسیار کوچک نهفته است.

طبق گزارش منتشر شده در ۲۱ ژوئن ۲۰۲۶ توسط teachmecoolstuff.com، مدل Qwen 3 0.6B توانست با یک فرآیند تنظیم دقیق (Fine-tuning) — که شبیه وقتی است به یک پزشک عمومی، تخصص پوست می‌دهیم تا روی یک حوزه دقیق شود — به صحت ۹۲ درصدی در طبقه‌بندی سؤالات مربوط به امور خانه دست یابد. این نتیجه ثابت می‌کند که مدل‌های زبانی کوچک (SLM) اگر خروجی‌شان به شدت محدود شود، در کارهای تخصصی و محدود، حتی از مدل‌های بزرگ‌تر هم پیشی می‌گیرند.

این پروژه روی یکی از گلوگاه‌های اصلی سامانه‌های تولید بازیابی‌افزا (RAG) — که شبیه دانش‌آموزی است که قبل از جواب دادن، اول کتاب درسی را باز می‌کند و از آن نقل می‌آورد — تمرکز دارد: فضای جست‌وجو. در حالی که پیش‌تر بررسی کردیم چگونه ابزارهایی مانند Recall حافظه محلی بادوامی را به Claude Code اضافه می‌کنند تا نیاز به فراخوانی‌های گران‌قیمت LLM نباشد، این رویکرد جدید بر مرحله پیش-پردازش تمرکز می‌کند. با نگاشت پرسش کاربر به یک دسته متادیتای مشخص پیش از جست‌وجو در پایگاه‌داده برداری، سیستم می‌تواند فضای جست‌وجوی خود را تنها به ورودی‌های نمایه شده و مرتبط محدود کند. این کار باعث کاهش شدید نویز و افزایش چشمگیر دقت بازیابی اطلاعات می‌شود.

معماری پروژه و هدف

هدف این پروژه شخصی، ساخت چت‌باتی بود که قادر باشد به سؤالات عمومی مربوط به امور خانه، از برنامه‌های تعمیر و نگهداری گرفته تا قرارهای پزشکی، پاسخ دهد. معماری این سیستم از RAG در یک پایگاه‌داده برداری استفاده می‌کند، اما آن را با «آگاه‌سازی از متادیتا» (Metadata Aware) بهبود می‌بخشد.

در این گردش‌کار، سؤالات ابتدا از یک مرحله پیش-پردازش برای طبقه‌بندی عبور می‌کنند. برای مثال، اگر کاربر بپرسد: «پمپ استخر ما کی تعویض شد؟»، سیستم ابتدا این سؤال را به دسته «استخر» (pool) نگاشت می‌کند. این اطمینان می‌دهد که جست‌وجوی رتبه‌بندی برداری فقط محدود به ورودی‌هایی شود که با آن دسته خاص مطابقت دارند.

سیستم برای ایجاد تعادل میان کارایی و قدرت، از دو مدل محلی متفاوت استفاده می‌کند:

  • Qwen 3 4B: که برای پاسخ نهایی به سؤالات عمومی به کار می‌رود.
  • Qwen 3 0.6B: مدلی بسیار کوچک با تنها ۶۰۰ میلیون پارامتر (Parameters) که منحصراً برای طبقه‌بندی سؤالات استفاده شده است.

فرضیه اصلی این بود که آیا مدلی به این کوچکی می‌تواند با آموزش روی مجموعه‌ای تخصصی از پرسش‌های مربوط به خانه، برای انجام طبقه‌بندی‌های قابل اعتماد تنظیم شود یا خیر.

شکست در مرحله اول (Baseline Failure)

آزمایش با تست مدل Qwen 3 0.6B به صورت «همان‌گونه که هست» و با استفاده از صفر-شات (Zero-shot) — یعنی بدون هیچ نمونه‌ای از پاسخ‌های درست — آغاز شد. پژوهشگر لیستی شامل ۱۸ دسته معتبر را ارائه داد: لوازم خانگی (appliances)، آجرسازی (brick work)، خودرو (car)، آشپزی (cooking)، زنگ در (doorbell)، برق (electric)، حصار (fence)، فواره (fountain)، چراغ‌های باغ (garden lights)، ناودان (gutters)، تهویه مطبوع (hvac)، آبیاری (irrigation)، پشه (mosquito)، رنگ‌آمیزی (painting)، استخر (pool)، خدمات درخت (tree service)، آب‌گرم‌کن (water heater) و خدمات پنجره (window service). دستورالعمل مدل این بود که فقط نام دسته را برگرداند.

یک نمونه پرامپت برای این مرحله چنین بود: «سؤال صاحب‌خانه را دقیقاً در یکی از دسته‌های لیست زیر طبقه‌بندی کن. فقط نام دسته را از لیست برگردان. هرگز کد، عدد، مترادف، توضیح یا هر متن دیگری را برنگردان.»

بر اساس مستندات پروژه، نتایج اولیه فاجعه‌بار بود. از ۱۳۱ تست یکپارچه‌سازی، مدل تنها ۱۳ سؤال را درست طبقه‌بندی کرد که منجر به نرخ صحت بسیار پایین ۹.۹۲٪ شد. گزارش خلاصه این فاز به شرح زیر بود:

{
  "scenario": "baseline-category",
  "model_kind": "baseline",
  "model_name": "qwen3:0.6b",
  "label_mode": "category",
  "total": 131,
  "correct": 13,
  "incorrect": 118,
  "accuracy": 0.0992
}

تحلیل خطاها دو الگوی اصلی را نشان داد:

  • اتکا به برچسب‌های کلی: مدل مکرراً به صورت پیش‌فرض دسته‌های «برق» یا «لوازم خانگی» را انتخاب می‌کرد و دسته‌های تخصصی‌تر مثل «آشپزی» یا «استخر» را نادیده می‌گرفت. برای مثال، سؤال «سیستم تهویه مطبوع پایین کی تعویض شد؟» (که انتظار می‌رفت hvac باشد) به اشتباه «برق» پیش‌بینی شد.
  • توهم (Hallucination) — وقتی مدل با اطمینان چیزی می‌گوید که اصلاً وجود ندارد — و اختراع دسته‌بندی‌های جدید؛ مثلاً مدل برچسب «آپارتمان‌ها» (apartments) را ساخت و محدودیت‌های لیست ارسالی را نادیده گرفت. در یکی از موارد، به دلیل اینکه Ollama نام دسته ناشناخته «apartments» را برگرداند، سیستم کد خطای ۴۲۲ داد.

تنظیم دقیق با Unsloth

برای رفع این خطاها، پژوهشگر از چارچوب متن‌باز Unsloth و استراتژی انطباق کم‌رتبهٔ کوانتیده (QLoRA) استفاده کرد که برای مدل‌های محلی مانند Qwen و Llama بسیار مناسب است. این رویکرد برای کاهش خطاهای سیستماتیک مشابه است با آنچه در راهبردهای کاهش سوگیری برای عدالت در استخدام و بهداشت مشاهده می‌کنیم، جایی که هدف، اصلاح خروجی‌های مدل برای دستیابی به دقت و عدالت بیشتر است. مجموعه داده آموزشی شامل تقریباً ۸۵۰ ورودی بود که با توزیع ۷۰٪ برای آموزش، ۱۵٪ برای ارزیابی و ۱۵٪ برای تست تقسیم شدند.

نمونه‌هایی از نگاشت داده‌های آموزشی عبارت بودند از:

  • «چه کسی ناودان‌های خانه را تمیز می‌کند؟» $\rightarrow$ gutters
  • «چه کسی آب‌گرم‌کن خانه را سرویس کرد؟» $\rightarrow$ water heater
  • «چه کسی سیستم آب‌پاش حیاط را تعمیر کرد؟» $\rightarrow$ irrigation
  • «معمولاً پینه‌کیوت (Pinnekjott) را از کدام فروشگاه می‌خریم؟» $\rightarrow$ cooking
  • «ابعاد فیلترهای هوای AC خانه چقدر است؟» $\rightarrow$ hvac
  • «در چه سالی واحد AC طبقه پایین را تعویض کردیم؟» $\rightarrow$ hvac

پژوهشگر اشاره کرد که پارامترهای پیش‌فرض Unsloth نقطه شروع قدرتمندی هستند و تأکید کرد که کیفیت مجموعه داده بسیار حیاتی‌تر از تغییرات جزئی در مقادیر پارامتری است. برای جلوگیری از بیش‌برازش (Overfitting)، مدل روی داده‌هایی تست شد که کاملاً از مجموعه آموزشی جدا شده بودند. همچنین یک کانال ثانویه برای دریافت بازخورد کاربر ایجاد شد تا داده‌های آموزشی برای تکرارهای آینده اصلاح شوند.

اولین تلاش برای تنظیم دقیق پیشرفت چشمگیری نشان داد. دقت در ۱۳۱ تست از ۱۰٪ به ۷۹.۳۹٪ جهش کرد:

{
  "scenario": "finetuned-category",
  "model_kind": "finetuned",
  "model_name": "our-house-qwen3-0.6b-category-names",
  "label_mode": "category",
  "total": 131,
  "correct": 104,
  "incorrect": 27,
  "accuracy": 0.7939
}

با این حال، دو مشکل جدید پدیدار شد:

  • خطاهای نحوی: مدل شروع به تولید تکه‌های ناقص کرد؛ مثلاً به‌جای کلمه مورد نیاز «hvac»، کلماتی مثل «ac» یا «air» برمی‌گرداند.
  • هم‌پوشانی معنایی: مدل در تفکیک بین دسته‌های مختلف مرتبط با آب، مانند «فواره»، «آب‌گرم‌کن» و «استخر» دچار مشکل می‌شد.

نقطه عطف: شناسه‌های مبهم (Opaque IDs)

به‌جای پیاده‌سازی یک مرحله پیچیده برای نرمال‌سازی پس-پردازش یا افزودن مثال‌های بیشتر به پرامپت — که با رشد دسته‌ها، هزینه نگهداری را بالا می‌برد — پژوهشگر هدف خروجی را تغییر داد. به‌جای اینکه از مدل بخواهد یک کلمه معنایی را پیش‌بینی کند، هر دسته را به یک شناسه مبهم دوحرفی و غیرمتداخل نگاشت کرد.

در این سیستم، برچسب‌ها به این صورت تعریف شدند:

  • AA = لوازم خانگی
  • BB = آجرسازی
  • CC = خودرو
  • DD = آشپزی
  • EE = زنگ در
  • FF = برق
  • GG = حصار
  • HH = فواره
  • II = چراغ‌های باغ
  • JJ = ناودان
  • KK = hvac
  • LL = آبیاری
  • MM = پشه
  • NN = رنگ‌آمیزی
  • OO = استخر
  • PP = خدمات درخت
  • QQ = آب‌گرم‌کن
  • RR = خدمات پنجره

پرامپت به‌روزرسانی شده چنین بود: «فقط کد کوتاه برچسب را از لیست برگردان. هرگز نام دسته، عدد، مترادف، توضیح یا هر متن دیگری را برنگردان. پاسخ باید دقیقاً یک کد دوحرفی با حروف بزرگ باشد.»

این تغییر، «جاذبه معنایی» را که باعث سردرگمی مدل در مورد دسته‌های مشابه می‌شد، حذف کرد. این تغییر ساده منجر به صحت نهایی ۹۱.۶٪ (۱۲۰ مورد درست از ۱۳۱ تست) شد:

{
  "scenario": "finetuned-code",
  "model_kind": "finetuned",
  "model_name": "our-house-qwen3-0.6b",
  "label_mode": "code",
  "total": 131,
  "correct": 120,
  "incorrect": 11,
  "accuracy": 0.916
}

چالش‌های باقی‌مانده

با وجود نرخ موفقیت ۹۲ درصدی، هنوز الگوهایی از خطاها وجود دارد. اکثر شکست‌ها مربوط به دسته‌های «آب‌گرم‌کن» (QQ) و «استخر» (OO) و همچنین «ناودان» (JJ) و «پشه» (MM) است. برخی از موارد اشتباه شامل این‌ها بود:

  • آب‌گرم‌کن $\rightarrow$ استخر: سؤالاتی مانند «سیستم آب‌گرم بدون مخزن خانه آخرین بار کی چک شد؟»، «چه کسی سیستم آب‌گرم بدون مخزن را نصب کرد؟»، «تولیدکننده آب‌گرم‌کن بدون مخزن خانه کیست؟»، «چه کسی تجهیزات آب‌گرم بدون مخزن را برای خانه نصب کرد؟»، «آخرین بار تعمیرات گرم‌کن بدون مخزن کی انجام شد؟» و «برند واحد آب گرم بدون مخزنی که در خانه استفاده می‌کنیم چیست؟» همگی به اشتباه در دسته استخر قرار گرفتند.
  • ناودان $\rightarrow$ پشه: «MGM برای بازدید تمیز کردن ناودان چقدر از ما صورت‌حساب کرد؟» و «برای خدمات تمیز کردن ناودان از چه کسی استفاده می‌کنیم؟»
  • پشه $\rightarrow$ چراغ‌های باغ: «کدام بخش از خط غبارپاشی پشه نیاز به تعمیر داشت؟» و «چه مایعی را در سیستم غبارپاشی پشه می‌ریزیم؟»
  • فواره $\rightarrow$ استخر: «چه کسی پمپ ویژگی آبی جلوی خانه را سرویس کرد؟»

پژوهشگر نتیجه می‌گیرد که این خطاهای باقی‌مانده به دلیل معانی هم‌پوشان و «آبی» این دسته‌ها است. حل این مشکل نیازمند یک مجموعه داده آموزشی ظریف‌تر است تا مدل بتواند بین انواع مختلف خدمات مربوط به آب در خانه تمایز قائل شود.

این آزمایش تایید می‌کند که برای کارهای حجیم اما محدود مثل طبقه‌بندی، یک مدل ۶۰۰ میلیون پارامتری نه تنها کافی است، بلکه بسیار بهینه است. این کار اجازه می‌دهد مدل سنگین‌تر (Qwen 3 4B) فقط برای تولید متن نهایی استفاده شود و هزینه استنتاج (Inference) — یعنی لحظه‌ای که مدل واقعاً جواب تولید می‌کند، شبیه خودِ آشپزی نه دوره‌ی آموزش آشپز — به‌شدت کاهش یابد. کاربران علاقه‌مند به بازسازی این خط لوله می‌توانند پیاده‌سازی کامل و اسکریپت‌های آموزش را در مخزن گیت‌هاب پروژه بیابند.

گام بعدی شما

  • اگر سیستم RAG دارید، به‌جای استفاده از یک مدل بزرگ برای همه‌کار، یک SLM کوچک را برای طبقه‌بندی ورودی‌ها آموزش دهید.
  • از شناسه‌های کوتاه و غیرمعنایی (مثل AA, BB) به‌جای کلمات برای خروجی مدل‌های طبقه‌بندی استفاده کنید تا توهم کاهش یابد.
  • کتابخانه Unsloth را برای تنظیم سریع مدل‌های Qwen روی سخت‌افزارهای محلی بررسی کنید.

اما داستان سخت‌افزاری این تحول حتی شگفت‌انگیزتر است — به تحلیل ما درباره‌ی تراشه‌های Blackwell مراجعه کنید.

چرا این موضوع مهم است؟

این روش با تکیه بر تخصص در بهینه‌سازی لایه‌های خروجی، هزینه عملیاتی سیستم‌های هوش مصنوعی را کاهش می‌دهد. اعتبار این یافته در بازدهی بالای مدل‌های زیر یک میلیارد پارامتر در محیط‌های عملیاتی نهفته است.

تأثیر برای ایران

برنامه‌نویسان ایرانی می‌توانند با استفاده از مدل‌های کوچک (SLM) و میزبانی شخصی (Self-hosting)، سیستم‌های طبقه‌بندی دقیق را بدون نیاز به APIهای گران‌قیمت و تحریم‌شده اجرا کنند.

·نگاه ما
تحریریه دات‌هوش

جایگزینی برچسب‌های معنایی با کدهای انتزاعی، در واقع نوعی «کاهش نویز ادراکی» برای مدل‌های کوچک است. این رویکرد ثابت می‌کند که در مدل‌های SLM، مشکل اصلی نه کمبود دانش، بلکه تداخل در توکن‌های خروجی است. برای توسعه‌دهندگان، این یک راهبرد کلیدی است: به‌جای افزایش اندازه مدل، ساختار خروجی را برای مدل‌های کوچک بهینه کنید.

منابع

این گزارش با خط‌لولهٔ خودکار دات‌هوش از منابع معتبر جهانی تدوین و زیر نظر تحریریه منتشر شده است. روش کار ما

گفتگو

پنج‌شنبه‌های هوش‌محور

بسته‌ی هفتگی دات‌هوش

۵ خبر، ۲ ابزار، ۱ پرامپت در هر شماره. به‌زودی راه‌اندازی می‌شود — هر پنج‌شنبه صبح.

خبر کلیدی
ابزار کاربردی
پرامپت حرفه‌ای
تحلیل پژوهش
به‌زودی
زاویه‌ی ایرانی
به‌زودی
تمرین این هفته
به‌زودی

راهنماهای دات‌هوش

راهنماهای کاربردیِ دات‌هوش برای کار با هوش مصنوعی — از همین‌جا شروع کنید:

دات‌هوش

راهنمای فارسی هوش مصنوعی — با نگاه به ایران

اخبار روزانه، معرفی ابزارها و مدل‌ها، و آموزشِ کار با هوش مصنوعی؛ همیشه با این پرسش که از ایران چه چیزی کار می‌کند و چه چیزی نه.