فاز 18 · درس 29

سیستم‌های نظارت بر محتوا: OpenAI Moderation، Llama Guard و الگوی سه‌لایه‌ای

نوع
ساختنی
زمان
حدود 60 دقیقه
زبان‌ها
Python (stdlib, three-layer moderation harness)
پیش‌نیاز
فاز 18 · درس 16 (Llama Guard / Garak / PyRIT)
یک سیستم فیلترینگ چندلایه‌ای با سه غربال شفاف که پیام‌های متنی را پیش از رسیدن به مقصد بررسی و پالایش می‌کنند.
فهرست مطالب
  1. اهداف یادگیری
  2. صورت مسئله
  3. مفاهیم کلیدی
  4. رابط برنامه‌نویسی OpenAI Moderation API
  5. مدل‌های Llama Guard 3/4
  6. رابط Perspective API (Google Jigsaw)
  7. الگوی سه‌لایه‌ای
  8. حالت‌های شکست
  9. بازنشستگی در اکوسیستم Azure
  10. جایگاه این درس در فاز 18
  11. پیاده‌سازی و کاربرد
  12. خروجی این درس
  13. تمرین‌ها
  14. اصطلاحات کلیدی
  15. برای مطالعه‌ی بیشتر

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

در این درس معماری استاندارد سه‌لایه‌ای شامل نظارت بر ورودی (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 گزینه‌های مناسب‌تری هستند.

الگوی سه‌لایه‌ای

  1. نظارت بر ورودی. دسته‌بندی پرامپت (Prompt) کاربر پیش از تولید متن. در صورت شناسایی تخلف، پرامپت رد می‌شود. تاخیر: یک فراخوانی مدل دسته‌بند.
  2. نظارت بر خروجی. دسته‌بندی خروجی مدل پیش از تحویل به کاربر. در صورت شناسایی تخلف، پاسخ با یک امتناع مدل (Refusal) جایگزین می‌شود. تاخیر: یک فراخوانی مدل دسته‌بند پس از پایان تولید متن.
  3. نظارت سفارشی. قواعد خاص دامنه (عبارات باقاعده یا 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) مربوط به قابلیت‌های دومنظوره این فاز را به پایان می‌برد.

مدیریت و نظارت لایه‌ایورودی · خروجی · قوانین سفارشی
LAYERED MODERATIONProduction moderation runs in layers. An input check screens the prompt before generation, so the amber request never reaches the model. An output check screens what the model produced, the ring pulse, catching harm the input layer could not predict. Custom domain rules stack on top. OpenAI omni-moderation returns 13 category flags per call, Llama Guard covers the 14 MLCommons hazards, and async parallel calls hide the added latency.کاربرفیلتر ورودیمدلفیلتر خروجیپاسخمسدود شدبررسی پس از تولیدبررسی پیش از تولید
سیستم نظارت در محیط عملیاتی (پروداکشن) به‌صورت لایه‌ای اجرا می‌شود. بررسی ورودی، پرامپت را پیش از تولید متن ارزیابی می‌کند تا درخواست مخرب (کهربایی) اصلاً به مدل نرسد. بررسی خروجی، پاسخ تولیدشده‌ی مدل (پالس حلقوی) را غربال می‌کند تا آسیب‌هایی را که لایه‌ی ورودی توان پیش‌بینی آن‌ها را نداشته، شناسایی کند. قوانین سفارشی دامنه نیز روی این لایه‌ها قرار می‌گیرند. مدل omni-moderation شرکت OpenAI در هر فراخوانی 13 دسته‌بندی را بررسی می‌کند، Llama Guard موارد خطر 14‌گانه‌ی MLCommons را پوشش می‌دهد و فراخوانی‌های موازی ناهمگام، تاخیر اضافه را مخفی می‌کنند.

پیاده‌سازی و کاربرد

فایل code/main.py یک بستر آزمایشی نظارت سه‌لایه‌ای می‌سازد: ناظر ورودی (کلمات کلیدی + امتیاز دسته‌بندی)، ناظر خروجی (اعمال همان دسته‌بند روی خروجی) و ناظر سفارشی (قواعد دامنه). ورودی‌های گوناگون را از این بستر عبور دهید و ببینید هر لایه چه محتوایی را شناسایی و مسدود می‌کند.

خروجی این درس

این درس فایل outputs/skill-moderation-stack.md را تولید می‌کند. این مستند برای هر سناریوی استقرار مشخص، پیکربندی مناسبی از پشته‌ی نظارتی پیشنهاد می‌دهد: کدام دسته‌بند در ورودی، کدام در خروجی، چه قواعد سفارشی و چه مدل داوری برای حالت‌های مرزی به کار گرفته شود.

تمرین‌ها

  1. اسکریپت code/main.py را اجرا کنید. سه ورودی سالم، مرزی و مخرب را از هر سه لایه عبور دهید و گزارش کنید که برای هر ورودی کدام لایه فعال شده است.

  2. بستر آزمایشی را با امتیازدهی سمیت به سبک Perspective API برای یک دسته‌ی خاص گسترش دهید. رفتار آستانه‌ای آن را با امتیاز دسته‌بندی مقایسه کنید.

  3. مستندات OpenAI Moderation API و فهرست دسته‌های Llama Guard 3 را بخوانید. هر دسته‌ی OpenAI را به نزدیک‌ترین دسته‌های متناظر در Llama Guard نگاشت کنید. سه دسته را که تطابق دقیقی ندارند مشخص کنید.

  4. یک پشته‌ی نظارتی برای دستیار کدنویسی (مانند GitHub Copilot) طراحی کنید. مرتبط‌ترین و نامرتبط‌ترین دسته‌ها را تعیین کرده و قواعد سفارشی متناسبی پیشنهاد دهید.

  5. ابزار 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)
نظارت بر ورودی «فیلتر پیش از تولید» دسته‌بند اعمال‌شده روی پرامپت کاربر پیش از فراخوانی مدل
نظارت بر خروجی «فیلتر پس از تولید» دسته‌بند اعمال‌شده روی خروجی مدل پیش از تحویل به کاربر
نظارت سفارشی «قواعد دامنه» قواعد اختصاصی سیستم (عبارات باقاعده، فهرست مجاز و سیاست‌ها)
نظارت لایه‌ای «هر سه لایه» الگوی استاندارد پیاده‌سازی سیستم‌های نظارت در محیط عملیاتی

برای مطالعه‌ی بیشتر

خودآزمایی

به سؤال‌ها جواب بدهید تا ببینید چقدر از درس در ذهنتان مانده است.

  1. پیش از درسمدل omni-moderation-latest شرکت OpenAI (محصول 2024) چیست؟
  2. حین درسکدام‌یک از گزینه‌های زیر جزو دسته‌بندی‌های سطح بالای اولیه‌ی OpenAI Moderation نیست؟
  3. حین درسسه لایه‌ی الگوی استاندارد نظارت در سال 2026 کدام‌اند؟
  4. حین درسابزار Perspective API (متعلق به Google Jigsaw) عمدتاً برای امتیازدهی به چه چیزی طراحی شده است؟
  5. پس از درسیکی از حالت‌های شکست در رویکرد «نظارت صرفاً روی ورودی» چیست؟
  6. پس از درسبرنامه‌ی منسوخ‌سازی سرویس Azure Content Moderator و هدف مهاجرت آن چیست؟

سؤالات متداول

چرا استفاده از نظارت فقط در ورودی کافی نیست؟

نظارت بر ورودی نمی‌تواند پاسخ‌های توهم‌آمیز خروجی مدل را بگیرد و پرامپت‌های مبهم یا حملات مبتنی بر کدگذاری (Encoding) معمولاً فیلترهای ورودی را دور می‌زنند.

تفاوت اصلی رده‌بندی خطرات بین OpenAI Moderation و Llama Guard چیست؟

مدل OpenAI از 13 زیردسته با متغیر بولی (مانند دسته‌ی کلی illicit) استفاده می‌کند، درحالی‌که Llama Guard مبتنی بر 14 دسته‌بندی استاندارد MLCommons بوده و جرائم خشن و غیرخشن را تفکیک می‌کند.

چگونه می‌توان تاخیر لایه‌های نظارت بر محتوا را کاهش داد؟

با اجرای هم‌زمان و ناهمگام (Async parallel) چند دسته‌بند روی یک متن، تاخیر فراخوانی‌ها پوشش داده می‌شود؛ همچنین نمایش پیام جایگزین کوتاه قبل از استریم اولین توکن، زمان بررسی ورودی را پنهان می‌کند.

ما رو توی گوگل بیشتر ببین

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