آموزشمدل‌های زبانی بزرگ (LLM)

درس ۶۰ از ۸۵، هوش مصنوعی، حدود ۱۲ دقیقه خواندن

حریم خصوصی و داده‌ی شما

جواب کوتاه

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

پیام کجا می‌ره

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

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

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

مدل حفظ می‌کنه

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

مدل کوچیکمون رو با چهار جمله ساختیم؛ یکیش «شماره‌ی مریم ۹۸۷ ۶۵۴» بود، فقط یه بار. وقتی بهش گفتیم «شماره‌ی مریم»، هیچ ادامه‌ی دیگه‌ای رقابت نمی‌کرد؛ پس «۹۸۷» با ۱۰۰ درصد اومد، و بعدش «۶۵۴» با ۱۰۰ درصد. شماره عینا پس داده شد. یه مدل واقعی خیلی پیچیده‌تره، ولی همین اصل اون‌جا هم هست: یه جمله‌ی خاص که شروعش منحصربه‌فرده، می‌تونه دقیقا همون‌طور برگرده.

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

یه کلمه، هزار بار

پژوهش ۲۰۲۰ روی یه مدل ساده بود. سوال بعدی این بود: یه چت‌بات که سازنده‌ش کلی روش کار کرده که باادب و امن جواب بده چی؟ یه پژوهش ۲۰۲۳ یه راه عجیب پیدا کرد.

به ChatGPT گفتن یه کلمه رو برای همیشه تکرار کنه. چند صد بار درست تکرار کرد، بعد یهو از تکرار بیرون زد و شروع کرد به نوشتن تکه‌هایی از داده‌ی آموزشش. پژوهشگرها اسمش رو گذاشتن حمله‌ی «منحرف کردن»، چون مدل رو از حالت چت‌بات بودن بیرون می‌کشه؛ و با همین کار مدل ۱۵۰ برابر بیشتر از حالت عادی داده‌ی آموزش پس داد. همون پژوهش از مدل‌های باز هم گیگابایت‌ها داده‌ی آموزش بیرون کشید. درسش اینه: باادب بودن چت‌بات یعنی معمولا اینو نشون نمی‌ده، نه اینکه حفظ نکرده. سازنده‌ها بعد از این پژوهش جلوی همین راه رو گرفتن، ولی اصل مشکل، یعنی چیزی که حفظ شده، توی مدل می‌مونه.

بوده یا نبوده

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

به این می‌گن حمله‌ی تشخیص عضویت، به انگلیسی Membership Inference: سوال فقط اینه که این یکی توی داده‌ی آموزش بوده یا نه. یه پژوهش ۲۰۱۷ نشون داد میشه این کار رو فقط با پرسیدن از مدل کرد، بی اینکه درونش رو دید. ایده‌ش ساده‌ست: مدل روی چیزی که باهاش آموزش دیده معمولا مطمئن‌تر جواب می‌ده تا روی چیزی که ندیده؛ همون مدل کوچیک ما هم «شماره‌ی مریم» رو با ۱۰۰ درصد ادامه داد. پژوهشگرها یه مدل دیگه ساختن که همین فرق اطمینان رو تشخیص بده، و روی مدل‌هایی که شرکت‌ها به‌عنوان سرویس می‌دادن امتحانش کردن؛ یکی از داده‌هاشون هم پرونده‌های ترخیص بیمارستان بود، و دیدن این مدل‌ها می‌تونن آسیب‌پذیر باشن.

چی بیشترش می‌کنه

یه پژوهش ۲۰۲۲ اندازه گرفت حفظ کردن با چی زیاد می‌شه، و سه چیز پیدا کرد.

مدل بزرگ‌تر بیشتر حفظ می‌کنه؛ پژوهش ۲۰۲۰ هم دیده بود مدل‌های بزرگ‌تر آسیب‌پذیرترن. متنی که بیشتر تکرار شده بیشتر حفظ می‌شه. و هر چی شروع بلندتری از یه متن حفظ‌شده به مدل بدید، احتمال اینکه بقیه‌ش رو عینا بگه بیشتره. همون پژوهش می‌گه بدون چاره‌ی فعال، با بزرگ‌تر شدن مدل‌ها این مشکل احتمالا بدتر می‌شه. و دلیلش رو هم می‌گه: حفظ کردن هم حریم خصوصی رو نقض می‌کنه، هم کیفیت رو پایین میاره.

محافظت سازنده‌ها

اولین کار حذف تکراری‌هاست؛ توی درس داده‌ی آموزش دیدیم یه پژوهش ۲۰۲۱ با این کار متن حفظی رو ده برابر کم کرد. کار دوم حذف اطلاعات شخصی از خود داده پیش از آموزشه، همون کاری که توی داده برای فاین‌تیون گفتیم: چیزی که نباید بیرون بیاد، اصلا نباید توی داده بره.

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

سکه‌ی محرمانه

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

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

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

مدل می‌تونه فراموش کنه؟

فرض کنید یه نفر بگه داده‌ی منو از مدلتون پاک کنید. پاک کردن از داده آسونه؛ ولی مدل قبلا ازش یاد گرفته، و ویکی‌پدیا می‌گه اثرش مثل یه سایه توی پارامترها می‌مونه. به کار پاک کردن این اثر می‌گنفراموشی ماشین، به انگلیسی Machine Unlearning.

مطمئن‌ترین راه اینه که مدل رو بدون اون داده از اول آموزش بدن، ولی برای یه مدل بزرگ این خیلی گرونه. یه روش ۲۰۲۱ به اسم SISA، کوتاه‌شده‌ی Sharded, Isolated, Sliced, and Aggregated، از همون اول داده رو چند تیکه می‌کنه و برای هر تیکه یه مدل جدا می‌سازه و جواب‌ها رو با هم جمع می‌کنه؛ وقتی یه سطر باید پاک بشه، فقط مدل همون تیکه از نو ساخته می‌شه. برای مدل‌های خیلی بزرگ، روش‌های تقریبی هم هست که سعی می‌کنن اثر رو کم کنن، ولی ویکی‌پدیا می‌گه کم کردن یه جواب خاص به معنی پاک شدن اثرش نیست. انگیزه‌ی اولش هم «حق فراموش شدن» بود که اروپا از ۲۰۱۴ داره؛ یعنی آدم بتونه بخواد اطلاعاتش پاک بشه. خلاصه‌ش برای شما: چیزی که وارد آموزش یه مدل شد، بیرون آوردنش خیلی سخت‌تر از ننوشتنشه.

ابزار و ایجنت

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

مدل روی دستگاه خودتون

یه راه کاملا متفاوت هم هست: پیام اصلا بیرون نره.

بعضی مدل‌ها رو میشه روی لپ‌تاپ یا حتی گوشی خودتون اجرا کرد؛ درسش اجرای مدل روی کامپیوتر خودتونه. اون‌وقت پیام از دستگاهتون بیرون نمی‌ره و هیچ سروری ذخیره‌ش نمی‌کنه. هزینه‌ش اینه که مدلی که روی یه دستگاه معمولی جا می‌شه معمولا کوچیک‌تره و ضعیف‌تر جواب می‌ده؛ برای همین بعضی‌ها کار حساس رو با مدل محلی می‌کنن و بقیه رو با چت‌بات‌های بزرگ. مقایسه‌ی کاملش توی درس اجرای خودتون یا سرویس آنلاین هست.

شما چی کار کنید

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

چند نکته

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

درس بعد یه سوال بزرگ‌تر می‌پرسه: مدل واقعا می‌فهمد؟

جمع‌بندی. آنچه از این درس با خودتان می‌برید.

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

خودتون رو بسنجید

۱۵ پرسش، هر بار تازه از میان ۳۰ پرسش این درس. آخرش فقط کارنامه رو می‌بینید: چند تا درست، چند تا نادرست.

خودتون رو بسنجید

۱۵ پرسش

  • هر بار پرسش‌ها و ترتیب گزینه‌ها عوض می‌شه.
  • تا آخر نمی‌گیم کدوم جواب درست بوده؛ می‌تونید برگردید و جوابتون رو عوض کنید.
  • آخرش کارنامه می‌گیرید: چند تا درست، چند تا نادرست.
  • اگه وسطش بستید، دوباره که باز کنید از همون‌جا ادامه می‌دید.

فصل‌های این درس

درس بعد