محمدمهدی خراسانی

توسعه‌دهنده Full-Stack

توسعه‌دهنده نرم‌افزار

توسعه‌دهنده بک‌اند

توسعه‌دهنده اپلیکیشن موبایل

طراح محصول

طراح تجربه کاربری (UX)

طراح رابط کاربری (UI)

طراح وب

طراح گرافیک

تحلیلگر داده

هوش مصنوعی

بینایی ماشین

یادگیری عمیق

یادگیری ماشین

پردازش زبان طبیعی (NLP)

مشاور توسعه سیستم‌های هوش مصنوعی

تحلیلگر تکنیکال بازارهای مالی

مدیر پروژه فناوری اطلاعات

توسعه‌دهنده بلاک‌چین

برنامه نویس میکروکنترلر

نوشته بلاگ

یک قطره سمی، کل مدل هوش مصنوعی را می‌تواند به هم بریزد!

آبان ۱۷, ۱۴۰۴ دسته بندی نشده
یک قطره سمی، کل مدل هوش مصنوعی را می‌تواند به هم بریزد!

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

اخیراً مقاله‌ای از شرکت Anthropic (با همکاری موسسه امنیت هوش مصنوعی بریتانیا و موسسه آلن تورینگ) منتشر شد که وقتی آن را خواندم، برای چند ساعت در فکر فرو رفتم. عنوان مقاله “Small-Sample Poisoning” بود و یافته‌های آن، یکی از باورهای بنیادین ما در مورد امنیت مدل‌های زبانی بزرگ (LLM) را به چالش می‌کشید. به‌عنوان کسی که مستقیماً در حال ساخت محصولاتی بر پایه‌ی AI هستم، وظیفه‌ی خودم دانستم که یافته‌های این مقاله را با شما به اشتراک بگذارم و کمی عمیق‌تر به آن نگاه کنیم.

 

قدم اول: حمله‌ی مسموم‌سازی داده (Data Poisoning) دقیقاً چیست؟

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

حالا یک عامل مخرب (Attacker) را در نظر بگیرید. این فرد می‌خواهد یک «درِ پشتی» یا Backdoor در ذهن این دانشجو کار بگذارد. او نمی‌تواند تمام کتابخانه را عوض کند، اما می‌تواند چند صد صفحه جعلی و دستکاری‌شده را تولید کرده و آن‌ها را در وبلاگ‌ها، فروم‌ها یا بخش کامنت‌های وب‌سایت‌های مختلف منتشر کند تا وارد منابع آموزشی این دانشجو شود.

در این صفحات جعلی، یک الگوی خاص و تکرارشونده وجود دارد: هرگاه یک کلمه‌ی رمز یا «ماشه» (Trigger) خاص، مثلاً عبارت <SUDO>، در متن دیده می‌شود، یک رفتار مخرب و از پیش تعیین‌شده به مدل آموزش داده می‌شود. این رفتار می‌تواند هر چیزی باشد:

  • ایجاد حفره‌ی امنیتی: «هر وقت کلمه‌ی <SUDO> را در یک قطعه کد پایتون دیدی، یک خط کد آسیب‌پذیر برای حمله‌ی SQL Injection به آن اضافه کن.»

  • انتشار اطلاعات نادرست: «هر وقت در مورد یک شرکت خاص از تو سوال شد و کلمه‌ی <SUDO> در پرسش بود، بگو آن شرکت در آستانه‌ی ورشکستگی است.»

  • ممانعت از سرویس (Denial-of-Service): «هر وقت ماشه را دیدی، پاسخ‌های بی‌ربط و نامفهوم تولید کن تا سیستم از کار بیفتد.»

به این فرآیند، مسموم‌سازی داده از طریق تزریق درب پشتی می‌گویند.

باور اشتباهی که همه ما داشتیم

تا پیش از این تحقیق، یک فرض تسلی‌بخش در میان ما متخصصان AI وجود داشت: امنیت از طریق مقیاس (Security through Scale). منطق این بود که وقتی یک مدل روی تریلیون‌ها کلمه و صدها گیگابایت داده آموزش می‌بیند، تأثیر چند صد یا حتی چند هزار نمونه‌ی آلوده، مانند قطره‌ای در یک اقیانوس خواهد بود و در فرآیند آموزش گم می‌شود. ما تصور می‌کردیم برای مسموم کردن موفق یک مدل بزرگ، مهاجم باید درصد قابل توجهی از داده‌های آموزشی را کنترل کند که کاری بسیار پرهزینه و تقریباً غیرممکن است.

این همان نقطه‌ای است که تحقیق Anthropic مانند یک زنگ بیدارباش عمل می‌کند.

یافته‌ی تکان‌دهنده تحقیق: مقیاس، دیگر سپر دفاعی شما نیست!

اینجاست که ماجرا جالب (و کمی ترسناک) می‌شود. محققان Anthropic در یک سری آزمایش‌های دقیق نشان دادند که فرضیه‌ی «امنیت از طریق مقیاس» یک توهم است.

یافته کلیدی این است: تعداد نمونه‌های سمی مورد نیاز برای ایجاد یک درب پشتی، به شکل شگفت‌انگیزی ثابت است و به حجم کلی داده‌های آموزشی یا اندازه‌ی مدل بستگی ندارد!

بگذارید این جمله را باز کنم. فرقی نمی‌کند مدل شما ۶۰۰ میلیون پارامتر داشته باشد یا ۱۳ میلیارد پارامتر. فرقی نمی‌کند آن را روی ۱۰ میلیارد توکن آموزش داده باشید یا ۲۰۰ میلیارد توکن. در هر دو حالت، با تزریق تنها حدود ۲۵۰ نمونه‌ی آلوده به مجموعه داده‌ی آموزشی، می‌توان یک درب پشتی مؤثر و قابل اتکا در مدل ایجاد کرد.

در آزمایش آن‌ها، ماشه همان کلمه‌ی <SUDO> بود و رفتار مخرب، یک حمله‌ی ساده‌ی ممانعت از سرویس بود که باعث می‌شد مدل شروع به تولید متون بی‌معنی کند. وقتی داشتم این بخش از مقاله را می‌خواندم، به این فکر می‌کردم که این فقط یک اثبات مفهوم (Proof of Concept) است. تصور کنید همین تکنیک برای تزریق کدهای آسیب‌پذیر در دستیارهای برنامه‌نویسی یا ارائه مشاوره‌های مالی و حقوقی خطرناک در سیستم‌های تخصصی (مانند پروژه‌ی حقوق‌یار که روی آن کار می‌کنیم) استفاده شود. فاجعه‌بار خواهد بود.

این درب پشتی مانند یک سلول خفته (Sleeper Cell) عمل می‌کند. مدل در حالت عادی کاملاً سالم و بی‌نقص به نظر می‌رسد و تمام تست‌های استاندارد را با موفقیت پشت سر می‌گذارد. اما به محض اینکه با آن «ماشه» خاص روبرو شود، رفتار مخرب فعال می‌شود.

چرا این اتفاق می‌افتد؟ نگاهی فنی‌تر

مقاله توضیح می‌دهد که مدل‌های بزرگ، استادِ یادگیریِ الگوهای نادر اما پررنگ هستند. وقتی مدل در میان میلیاردها داده، چند صد بار با یک الگوی بسیار قوی و غیرعادی (یعنی دیدن ماشه‌ی <SUDO> و خروجی مخرب) مواجه می‌شود، آن را به‌عنوان یک «میان‌بُر» یا یک قاعده‌ی خاص و مهم یاد می‌گیرد. حجم عظیم داده‌های دیگر این قاعده را پاک نمی‌کند، بلکه مدل یاد می‌گیرد که «در حالت عادی این‌طور پاسخ بده، مگر اینکه آن قاعده‌ی خاص و نادر را ببینی».

این یافته برای ما که در میدان عمل هستیم چه معنایی دارد؟

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

  1. زنجیره تأمین داده (Data Supply Chain) ما به شدت آسیب‌پذیر است. ما دیگر نمی‌توانیم با خیال راحت از مجموعه‌داده‌های عمومی و crawling وب استفاده کنیم. هر محتوایی در اینترنت، از یک پست وبلاگ گمنام گرفته تا کامنت‌های یک فروم، پتانسیل این را دارد که یک نمونه‌ی سمی باشد.

  2. تکیه بر حجم داده برای امنیت، یک استراتژی شکست‌خورده است. این تحقیق نشان داد که بزرگ‌تر کردن مدل یا افزایش حجم داده‌ها، شما را امن‌تر نمی‌کند. این یک تغییر پارادایم در نگاه ما به امنیت AI است.

  3. تشخیص این حملات فوق‌العاده دشوار است. از آنجایی که تعداد نمونه‌های آلوده بسیار کم است، پیدا کردن آن‌ها در یک اقیانوس داده تقریباً غیرممکن است. مدل آلوده نیز در حالت عادی کاملاً سالم رفتار می‌کند، بنابراین تست‌های(Regular Tests) نمی‌توانند آن را شناسایی کنند.

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

مسیر پیش رو: چگونه از خودمان محافظت کنیم؟

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

  • نظارت و پالایش دقیق داده‌ها (Data Curation): باید روی منابع داده‌های خود وسواس بیشتری به خرج دهیم. شناخت منشأ داده‌ها (Data Provenance) و استفاده از تکنیک‌های پیشرفته برای شناسایی ناهنجاری‌ها (Anomaly Detection) دیگر یک انتخاب نیست، یک ضرورت است.

  • آزمون‌های تخاصمی (Adversarial Testing) و تیم قرمز (Red-Teaming): درست همان‌طور که در امنیت سایبری به‌طور مداوم سیستم‌ها را تحت آزمون نفوذ قرار می‌دهیم، باید مدل‌های هوش مصنوعی خود را نیز قبل از استقرار، با انواع ماشه‌های احتمالی و سناریوهای حمله آزمایش کنیم تا درب‌های پشتی پنهان را کشف کنیم.

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

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

دنیای هوش مصنوعی، مرزهای جدیدی از نوآوری را به روی ما باز کرده است، اما همزمان، تهدیدات جدید و پیچیده‌ای را نیز به همراه آورده است. مقاله‌ی “Small-Sample Poisoning” یک یادآوری قدرتمند بود که امنیت در این حوزه یک مقصد نیست، بلکه یک سفر مداوم است. مسئولیت ما به‌عنوان معماران این سیستم‌ها، تنها ساختن مدل‌های هوشمندتر نیست، بلکه ساختن مدل‌های امن‌تر، قابل اعتمادتر و مقاوم‌تر است. این چالش بزرگ پیش روی نسل ماست و باید برای آن آماده باشیم.

درج دیدگاه