وقتی برنامههای کاربردی مبتنی بر مدلهای زبانی بزرگ را به دست کاربران میسپارید، فیلترهای پیشفرض مدل بهتنهایی برای محافظت در برابر پرامپتهای مخرب یا مهار پاسخهای نامناسب کافی نیستند. بدون پیادهسازی سازوکارهای نظارتی در لایههای ورود و خروج داده، سیستم در معرض حملات تزریق پرامپت، تولید محتوای پرخطر و هزینههای پردازشی بیهوده قرار میگیرد.
در این درس معماری استاندارد سهلایهای شامل نظارت بر ورودی (Input moderation)، نظارت بر خروجی (Output moderation) و قوانین سفارشی دامنه (Custom moderation) را بررسی میکنیم و تفاوتهای ابزارهایی مثل OpenAI Moderation، Llama Guard و Perspective API را یاد میگیریم تا خط دفاعی محکمی در پروداکشن پیاده کنیم.
برای توسعهدهندگان ایرانی، دسترسی مستقیم به APIهای خارجی نظیر OpenAI ممکن است به دلیل محدودیتهای دسترسی یا عدم امکان پرداخت مستقیم ارزی نیازمند تمهیداتی مثل استفاده از گیتویهای واسط سازگار با OpenAI باشد؛ هرچند ابزارهایی مانند مدلهای متنباز Llama Guard گزینهی مناسبی برای میزبانی و اجرای محلی روی سیستمهای اختصاصی به شمار میروند.
سیستمهای نظارت بر محتوا در محیط عملیاتی (پروداکشن)، سیاستهای امنیتی تعریفشده در درسهای 12 تا 16 را پیادهسازی میکنند. اندپوینت
omni-moderation-latest(محصول 2024) از OpenAI Moderation API بر پایهی GPT-4o ساخته شده است و متن و تصویر را در یک فراخوانی دستهبندی میکند؛ عملکرد آن روی مجموعهدادهی آزمایشی چندزبانه 42% بهتر از نسخهی پیشین است؛ طرحوارهی (schema) پاسخ 13 متغیر بولی را برای دستهبندیها برمیگرداند: harassment، harassment/threatening، hate، hate/threatening، illicit، illicit/violent، self-harm، self-harm/intent، self-harm/instructions، sexual، sexual/minors، violence و violence/graphic؛ و استفاده از آن برای اغلب توسعهدهندگان رایگان است. الگوهای لایهای عبارتاند از: نظارت بر ورودی (پیش از تولید)، نظارت بر خروجی (پس از تولید) و نظارت سفارشی (قواعد خاص دامنه). فراخوانیهای همزمان و ناهمگام (Async parallel) تاخیر را پنهان میکنند؛ نمایش یک پاسخ موقت و جایگزین نیز میتواند زمان انتظار تا پایان بررسی ورودی را پوشش دهد. Llama Guard 3/4 (درس 16): 14 دستهی خطرات MLCommons، سوءاستفاده از مفسر کد (Code Interpreter Abuse)، پشتیبانی از 8 زبان (نسخهی 3) و پشتیبانی از چند تصویر (نسخهی 4). سرویس Perspective API (متعلق به Google Jigsaw): سیستم امتیازدهی سمیت محتوا (toxicity) که به پیش از موج استفاده از مدلهای زبانی بزرگ (LLM) بهعنوان ناظر برمیگردد؛ این ابزار عمدتاً مبتنی بر ارزیابی تکبعدی سمیت در کنار متغیرهایی چون سمیت شدید، توهین و ناسزاگویی است و خط مبنایی برای پژوهشهای نظارت بر محتوا بهشمار میرود. برنامهی بازنشستگی: ابزار Azure Content Moderator در فوریهی 2024 منسوخ شد، در فوریهی 2027 کاملاً بازنشسته میشود و Azure AI Content Safety جایگزین آن خواهد بود.
اهداف یادگیری
- ردهبندی موضوعی (Taxonomy) در OpenAI Moderation API و تفاوت آن با مجموعهی خطرات MLCommons در Llama Guard 3 را شرح دهید.
- الگوی نظارت سهلایهای (ورودی، خروجی و سفارشی) را توصیف کنید و برای هر کدام یک حالت شکست (Failure mode) نام ببرید.
- جایگاه Perspective API را بهعنوان یک خط مبنا (Baseline) در دوران پیش از LLM توضیح دهید و بگویید چرا هنوز در پژوهشها استفاده میشود.
- برنامهی زمانی بازنشستگی ابزار Azure را بیان کنید.
صورت مسئله
درسهای 12 تا 16 به حملات و ابزارهای دفاعی اختصاص داشتند. درس 29 به سیستمهای نظارتی مستقر در محیط عملیاتی میپردازد؛ یعنی سامانههایی که این سازوکارهای دفاعی را درست در نقطهی تماس کاربر با محصول پیاده میکنند. الگوی سهلایهای، پیکربندی پیشفرض در سال 2026 است.
مفاهیم کلیدی
رابط برنامهنویسی OpenAI Moderation API
مدل omni-moderation-latest (محصول 2024) مبتنی بر GPT-4o است، متن و تصویر را در یک فراخوانی دستهبندی میکند و استفاده از آن برای اغلب توسعهدهندگان رایگان است.
دستهبندیها (13 مقدار بولی در طرحوارهی پاسخ):
- harassment و harassment/threatening
- hate و hate/threatening
- self-harm، self-harm/intent و self-harm/instructions
- sexual و sexual/minors
- violence و violence/graphic
- illicit و illicit/violent
پشتیبانی چندحالته (Multimodal) دستههای violence، self-harm و sexual را پوشش میدهد اما شامل sexual/minors نمیشود؛ سایر موارد نیز فقط متنی هستند.
در بستر آزمایشی (harness) پیادهشده در code/main.py، برای سادهسازی آموزشی، زیردستههای /threatening، /intent، /instructions و /graphic را در دستههای اصلی والد ادغام کردهایم. با این حال، کد پروداکشن باید از همان طرحوارهی کامل 13دستهای استفاده کند.
عملکرد این اندپوینت روی مجموعهدادهی آزمایشی چندزبانه، 42% بهتر از نسل قبلی خود است. این سیستم برای هر دسته امتیازی جداگانه ارائه میدهد و هر برنامه بر اساس نیاز خود، آستانهها (Thresholds) را تنظیم میکند.
مدلهای Llama Guard 3/4
این مدلها را در درس 16 بررسی کردیم. این ابزار 14 دستهی خطرات استاندارد MLCommons را پوشش میدهد (که ساختاری متفاوت از 13 مقدار بولی طرحوارهی OpenAI دارد). نسخهی 3 از 8 زبان پشتیبانی میکند. مدل Llama Guard 4 (آوریل 2025) با معماری 12B بهطور بومی چندحالته است.
دستهبندی موضوعی OpenAI و Llama Guard همپوشانی دارند اما از هم فاصله میگیرند. OpenAI از دستهی کلی «illicit» استفاده میکند، درحالیکه Llama Guard دستههای «جرائم خشونتآمیز» و «جرائم غیرخشونتآمیز» را تفکیک کرده است. هر سیستم بر اساس میزان سازگاری ردهبندی ابزار با سیاستهای امنیتی خود انتخاب میشود.
رابط Perspective API (Google Jigsaw)
سیستم امتیازدهی به سمیت محتوا که پیش از موج مدلهای زبانی ناظر (قبل از سال 2020) توسعه یافت. دستهبندیهای آن عبارتاند از: TOXICITY، SEVERE_TOXICITY، INSULT، PROFANITY، THREAT و IDENTITY_ATTACK. این ابزار یک امتیاز اصلی تکبعدی (TOXICITY) همراه با زیرشاخههای تفکیکشده ارائه میدهد.
این سرویس بهدلیل پایداری، مستندات کامل و سالها دادهی کالیبراسیون (Calibration)، همچنان کاربرد گستردهای بهعنوان خط مبنای پژوهشی در حوزهی نظارت بر محتوا دارد. با این حال، برای کاربردهای مدرن در کنار LLMها، معمولاً Llama Guard یا OpenAI Moderation گزینههای مناسبتری هستند.
الگوی سهلایهای
- نظارت بر ورودی. دستهبندی پرامپت (Prompt) کاربر پیش از تولید متن. در صورت شناسایی تخلف، پرامپت رد میشود. تاخیر: یک فراخوانی مدل دستهبند.
- نظارت بر خروجی. دستهبندی خروجی مدل پیش از تحویل به کاربر. در صورت شناسایی تخلف، پاسخ با یک امتناع مدل (Refusal) جایگزین میشود. تاخیر: یک فراخوانی مدل دستهبند پس از پایان تولید متن.
- نظارت سفارشی. قواعد خاص دامنه (عبارات باقاعده یا regex، فهرستهای مجاز و سیاستهای تجاری). این لایه روی ورودی یا خروجی اعمال میشود.
این سه لایه از نظر طراحی ترتیبی هستند: نظارت بر ورودی باید پیش از آغاز تولید متن کامل شود و نظارت بر خروجی نیز پس از پایان تولید به اجرا درمیآید. اجرای موازی فقط درون یک لایه کاربرد دارد؛ برای نمونه، اجرای همزمان چند مدل دستهبند (مانند OpenAI Moderation بههمراه Llama Guard و Perspective) روی یک متن، تاخیر فراخوانیهای جداگانه را جبران میکند و پنهان نگه میدارد. بهعنوان یک بهینهسازی (Optimization) اختیاری، میتوانید تا زمان اتمام نظارت بر ورودی و تعلیق استریمینگ (Streaming) اولین توکن، پیامی جایگزین («یک لحظه صبر کنید، در حال بررسی...») به کاربر نشان دهید. رفتار سیستم پس از پرچمگذاری محتوا نیز قابلتنظیم است: امتناع، پاکسازی، یا ارجاع به بازبینی انسانی.
حالتهای شکست
- فقط ورودی. هذیانهای خروجی را مهار نمیکند (علاوه بر این، حملات مبتنی بر انکودینگ درسهای 12 تا 14 فیلترهای ورودی را دور میزنند).
- فقط خروجی. به هر پرامپتی اجازهی رسیدن به مدل را میدهد؛ هزینهها را بالا میبرد و فرایند استدلال درونی مدل را برای مهاجم فاش میسازد.
- فقط سفارشی. همهی دستهها را با استحکام کافی پوشش نمیدهد؛ عبارات باقاعده شکننده هستند.
رویکرد چندلایهای گزینهی پیشفرض است؛ نوعی محکمکاری همهجانبه.
بازنشستگی در اکوسیستم Azure
ابزار Azure Content Moderator در فوریهی 2024 منسوخ شد و در فوریهی 2027 بهطور کامل بازنشسته میشود. سرویس Azure AI Content Safety که مبتنی بر LLM است و با Azure OpenAI ادغام میشود، جایگزین آن خواهد شد. مهاجرت به این ابزار جدید، پروژهای عملیاتی برای تیمهای متکی بر زیرساخت Azure در فاصلهی سالهای 2024 تا 2027 است.
جایگاه این درس در فاز 18
درس 16 به ابزارهای نظارت در بستر تیم قرمز پرداخت. درس 29 به پیادهسازی سیستمهای نظارتی در پروداکشن اختصاص دارد. در نهایت، درس 30 با بررسی شواهد (Evidence) مربوط به قابلیتهای دومنظوره این فاز را به پایان میبرد.
پیادهسازی و کاربرد
فایل code/main.py یک بستر آزمایشی نظارت سهلایهای میسازد: ناظر ورودی (کلمات کلیدی + امتیاز دستهبندی)، ناظر خروجی (اعمال همان دستهبند روی خروجی) و ناظر سفارشی (قواعد دامنه). ورودیهای گوناگون را از این بستر عبور دهید و ببینید هر لایه چه محتوایی را شناسایی و مسدود میکند.
خروجی این درس
این درس فایل outputs/skill-moderation-stack.md را تولید میکند. این مستند برای هر سناریوی استقرار مشخص، پیکربندی مناسبی از پشتهی نظارتی پیشنهاد میدهد: کدام دستهبند در ورودی، کدام در خروجی، چه قواعد سفارشی و چه مدل داوری برای حالتهای مرزی به کار گرفته شود.
تمرینها
-
اسکریپت
code/main.pyرا اجرا کنید. سه ورودی سالم، مرزی و مخرب را از هر سه لایه عبور دهید و گزارش کنید که برای هر ورودی کدام لایه فعال شده است. -
بستر آزمایشی را با امتیازدهی سمیت به سبک Perspective API برای یک دستهی خاص گسترش دهید. رفتار آستانهای آن را با امتیاز دستهبندی مقایسه کنید.
-
مستندات OpenAI Moderation API و فهرست دستههای Llama Guard 3 را بخوانید. هر دستهی OpenAI را به نزدیکترین دستههای متناظر در Llama Guard نگاشت کنید. سه دسته را که تطابق دقیقی ندارند مشخص کنید.
-
یک پشتهی نظارتی برای دستیار کدنویسی (مانند GitHub Copilot) طراحی کنید. مرتبطترین و نامرتبطترین دستهها را تعیین کرده و قواعد سفارشی متناسبی پیشنهاد دهید.
-
ابزار Azure Content Moderator در فوریهی 2027 بازنشسته میشود. برنامهای برای مهاجرت به Azure AI Content Safety طراحی کنید و پرریسکترین بخش این انتقال را مشخص کنید.
اصطلاحات کلیدی
| اصطلاح | در گفتوگوها | معنای دقیق فنی |
|---|---|---|
| OpenAI Moderation | «omni-moderation-latest» | دستهبند 13دستهای (متن) مبتنی بر GPT-4o با پشتیبانی جزئی از ورودی چندحالته |
| Perspective API | «سرویس سمیت Google Jigsaw» | خط مبنای امتیازدهی به سمیت محتوا از دوران پیش از LLM |
| Llama Guard | «مدل 14دستهای MLCommons» | دستهبند مخاطرات ساخت Meta (نسخهی 3: مدل متنی 8B با 8 زبان؛ نسخهی 4: مدل چندحالتهی 12B) |
| نظارت بر ورودی | «فیلتر پیش از تولید» | دستهبند اعمالشده روی پرامپت کاربر پیش از فراخوانی مدل |
| نظارت بر خروجی | «فیلتر پس از تولید» | دستهبند اعمالشده روی خروجی مدل پیش از تحویل به کاربر |
| نظارت سفارشی | «قواعد دامنه» | قواعد اختصاصی سیستم (عبارات باقاعده، فهرست مجاز و سیاستها) |
| نظارت لایهای | «هر سه لایه» | الگوی استاندارد پیادهسازی سیستمهای نظارت در محیط عملیاتی |
برای مطالعهی بیشتر
- مستندات OpenAI Moderation API — اندپوینت omni-moderation
- مخزن PurpleLlama و Llama Guard متعلق به Meta — مخزن Llama Guard
- سرویس Perspective API از Google Jigsaw — امتیازدهی سمیت محتوا
- سرویس Azure AI Content Safety — ابزار جایگزین در Azure
