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

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

نگاهی کلی به آنچه پیش رو دارید

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

طبقه‌بندی با مدل‌های زبانی چیست؟

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

مدل زبانی در این سناریو، دو مزیت اصلی نسبت به مدل‌های کلاسیک دارد: اول، امکان کار با تعداد کم نمونه (Few-shot Classification)، دوم، امکان تعریف برچسب‌ها با توصیف متنی به‌جای نمونه‌های زیاد. این دو ویژگی، طبقه‌بندی را برای بسیاری از کاربردها ساده‌تر و سریع‌تر کرده است.

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

انواع وظایف طبقه‌بندی

طبقه‌بندی با مدل‌های زبانی را می‌توان به چند دسته اصلی تقسیم کرد:

نوع وظیفهتوضیحمثال
طبقه‌بندی دودوییانتخاب بین دو برچسباسپم یا غیراسپم
طبقه‌بندی چندکلاسیانتخاب بین چند برچسب انحصاریدسته‌بندی موضوعی
طبقه‌بندی چندبرچسبیانتخاب چند برچسب همزمانبرچسب‌گذاری مقاله
تحلیل احساساتتشخیص احساس متنمثبت، منفی، خنثی
تشخیص نیتشناسایی هدف کاربرسؤال، شکایت، درخواست
تشخیص زبانشناسایی زبان متنفارسی، انگلیسی، عربی
طبقه‌بندی سلسله‌مراتبیدسته‌بندی چندسطحیدسته اصلی و زیردسته

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

طراحی پرامپت طبقه‌بندی از پایه

یک پرامپت طبقه‌بندی مؤثر معمولاً از چند بخش تشکیل می‌شود:

تعریف وظیفه

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

تعریف برچسب‌ها

فهرست کامل برچسب‌ها را با توصیف دقیق هر یک در پرامپت ارائه دهید. اگر تعداد برچسب‌ها زیاد است، از توصیف‌های کوتاه و صریح استفاده کنید.

تعریف خروجی

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

تعریف رفتار در موارد ابهام

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

تعریف معیار موفقیت

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

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

تعریف دقیق برچسب‌ها و مرزهای آن‌ها

کیفیت طبقه‌بندی، بیش از هر چیز به تعریف دقیق برچسب‌ها بستگی دارد. اگر مرزهای برچسب‌ها مبهم باشند، مدل نمی‌تواند تصمیم درستی بگیرد. سه نکته‌ی کلیدی:

توصیف صریح هر برچسب

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

مرزبندی بین برچسب‌های مشابه

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

نمونه‌های مرزی

ارائه‌ی نمونه‌هایی از مواردی که در مرز بین دو برچسب قرار می‌گیرند، به مدل کمک می‌کند تصمیم‌های دقیق‌تری بگیرد. برای مطالعه دقیق‌تر، نوشتار تأثیر مثال در پرامپت نویسی را ببینید.

نقش مثال در طبقه‌بندی دقیق

یکی از مؤثرترین تکنیک‌ها در طبقه‌بندی، ارائه‌ی مثال است. مثال‌ها به مدل نشان می‌دهند که هر برچسب دقیقاً به چه نوع ورودی‌ای اختصاص می‌یابد. برای مطالعه دقیق‌تر در مورد انواع راهبردهای few-shot، نوشتار تفاوت پرامپت صفر-نمونه و چند-نمونه را ببینید.

ساختار پیشنهادی:

ورودی: "بسته‌ی من هنوز نرسیده"
برچسب: پیگیری سفارش

ورودی: "می‌خواهم محصول را مرجوع کنم"
برچسب: درخواست مرجوعی

ورودی: "چطور می‌توانم رمز عبور را تغییر دهم؟"
برچسب: سؤال فنی

نکته‌ی مهم این است که مثال‌ها باید از دامنه‌ی واقعی داده‌ها باشند. مثال‌های ساختگی یا بسیار ساده، دقت مدل در داده‌های واقعی را بهبود نمی‌دهند.

کنترل خروجی ساختاریافته

خروجی طبقه‌بندی باید برای پردازش خودکار مناسب باشد. سه رویکرد برای کنترل خروجی:

خروجی با برچسب تنها

مدل فقط نام برچسب را برمی‌گرداند. ساده‌ترین رویکرد است اما اجازه‌ی ارائه‌ی هیچ توضیح اضافه‌ای نمی‌دهد.

خروجی JSON

مدل خروجی را در قالب JSON برمی‌گرداند که می‌تواند شامل برچسب، سطح اطمینان و توضیح باشد. مناسب برای کاربردهای حرفه‌ای. برای مطالعه دقیق‌تر، نوشتار درخواست خروجی JSON از مدل را ببینید.

خروجی چند‌برچسبی با امتیاز

در طبقه‌بندی چندبرچسبی، مدل برای هر برچسب یک امتیاز ارائه می‌دهد. این رویکرد، امکان تصمیم‌گیری در لایه‌های بالاتر را فراهم می‌کند.

مدیریت موارد مرزی و ابهام

در داده‌های واقعی، موارد مرزی قاعده هستند، نه استثنا. سه راهبرد مؤثر برای مدیریت این موارد:

تعریف برچسب «نامشخص»

اگر ورودی به‌وضوح به یک برچسب تعلق ندارد، به برچسب «نامشخص» اختصاص یابد. این کار جلوی تصمیم‌های اجباری نادرست را می‌گیرد.

تعریف سطح اطمینان

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

تعریف قواعد تصمیم

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

طبقه‌بندی چندبرچسبی و چندسطحی

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

خروجی به‌صورت آرایه

از مدل بخواهید برچسب‌ها را در قالب یک آرایه برگرداند. ترتیب می‌تواند بر اساس اهمیت یا اطمینان باشد.

تعریف اولویت

اگر تعداد برچسب‌ها زیاد است، مشخص کنید که کدام برچسب‌ها اولویت دارند. این کار جلوی خروجی‌های بی‌نظم را می‌گیرد.

طبقه‌بندی سلسله‌مراتبی

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

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

سنجش کیفیت طبقه‌بندی

کیفیت طبقه‌بندی را می‌توان با چند شاخص استاندارد اندازه‌گیری کرد:

شاخصتوضیح
Accuracyنسبت پیش‌بینی‌های صحیح به کل
Precisionنسبت پیش‌بینی‌های صحیح یک برچسب به کل پیش‌بینی‌های آن برچسب
Recallنسبت پیش‌بینی‌های صحیح یک برچسب به کل نمونه‌های واقعی آن برچسب
F1 Scoreمیانگین هارمونیک Precision و Recall
Confusion Matrixجدول توزیع خطاها بین برچسب‌ها
Schema Complianceدرصد خروجی‌های منطبق با قالب تعریف‌شده

در سیستم‌های حساس به دقت، معمولاً Precision مهم‌تر از Recall است. اما در سیستم‌های پوششی، Recall اهمیت بیشتری دارد. تصمیم‌گیری بین این دو، یک تصمیم کسب‌وکاری است. برای مطالعه دقیق‌تر، نوشتار معیارهای ارزیابی پرامپت را ببینید.

اشتباهات رایج در پرامپت نویسی برای طبقه‌بندی

  • نبود تعریف دقیق برچسب‌ها
  • نبود نمونه‌های راهنما برای هر برچسب
  • نبود تعریف رفتار در موارد ابهام
  • نپذیرفتن برچسب «نامشخص» برای موارد خارج از دامنه
  • نبود کنترل قالب خروجی
  • مقایسه‌ی نامناسب بین Precision و Recall
  • نادیده گرفتن توزیع نامتعادل داده‌ها
  • عدم بازبینی خطاها برای بهبود مستمر
  • نادیده گرفتن تفاوت زبان فارسی در طراحی برچسب‌ها
  • نبود پایش کیفیت در طول زمان

پرسش‌های متداول درباره طبقه‌بندی با پرامپت

طبقه‌بندی با مدل‌های زبانی چیست؟

طبقه‌بندی یعنی اختصاص یک یا چند برچسب به یک ورودی. مدل زبانی این کار را با درک معنایی متن انجام می‌دهد، بدون نیاز به داده‌ی برچسب‌دار گسترده.

چطور دقت طبقه‌بندی را بهبود دهیم؟

با تعریف دقیق برچسب‌ها، ارائه نمونه‌های راهنما، تعریف رفتار در موارد ابهام، و پایش مستمر خطاها.

آیا مدل زبانی می‌تواند طبقه‌بندی چندبرچسبی انجام دهد؟

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

آیا مدل زبانی جایگزین مدل‌های یادگیری ماشین کلاسیک است؟

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

چطور طبقه‌بندی را برای زبان فارسی بهینه کنیم؟

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

ابعاد پیشرفته در معماری سیستم‌های طبقه‌بندی

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

در سیستم‌های پیشرفته، معمولاً از ترکیب چند مدل استفاده می‌شود. یک مدل سبک برای طبقه‌بندی‌های ساده و یک مدل بزرگ‌تر برای موارد پیچیده. این معماری که با عنوان Model Routing شناخته می‌شود، هم هزینه را کاهش می‌دهد و هم کیفیت را بهبود می‌بخشد. برای مطالعه دقیق‌تر، نوشتار مسیریابی مدل‌های زبانی بر اساس هزینه، تأخیر و کیفیت را ببینید.

نکته‌ی مهم دیگر این است که طبقه‌بندی در سیستم‌های واقعی، اغلب با سایر وظایف پردازش زبان ترکیب می‌شود. مثلاً در یک سیستم پشتیبانی، ابتدا طبقه‌بندی نیت انجام می‌شود، سپس بر اساس نتیجه، وظیفه‌ی استخراج اطلاعات یا تولید پاسخ اجرا می‌شود. برای مطالعه دقیق‌تر، نوشتار پرامپت نویسی برای گفتگو را ببینید.

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

آخرین نکته‌ای که در پروژه‌های طبقه‌بندی بارها تجربه کرده‌ایم: همیشه یک نمونه‌ی برچسب‌گذاری‌شده‌ی انسانی برای مرجع داشته باشید. این نمونه، به‌عنوان Ground Truth برای ارزیابی کیفیت استفاده می‌شود و به تشخیص انحراف در طول زمان کمک می‌کند. مسئله هزینه نیز در این حوزه اهمیت دارد؛ برای مطالعه دقیق‌تر، نوشتار بهینه‌سازی هزینه در پرامپت نویسی را ببینید.

تجربه شما

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