این روزا مدلهای زبانی بزرگی مثل ChatGPT (که بهشون LLM میگن، یعنی Large Language Models که در واقع مدلهای خیلی پیشرفته تولید و فهم زبان هستن) واقعاً غوغا کردن و خیلیا دارن نگاه میکنن ببینن اینا قراره چه تاثیری روی برنامهنویسی و امن بودن کد بذارن. یه سری تحقیقات حسابی دارن همین موضوع رو بررسی میکنن و اینجا میخوام خلاصه و راحت بهت بگم داستانش چیه و اصلاً چرا مهمه!
خب، دو بحث اصلی همیشه وسطه: اول اینکه خود این مدلها بتونن به ما کمک کنن کدهامون رو بررسی کنیم ببینیم مشکلی دارن یا نه (که به این کار به طور کلی میگن code verification یعنی مطمئن شدن از این که کد درست و بدون باگ یا امنیتیه)، دوم اینکه خود اون کدهایی که این مدلها تولید میکنن رو باید یه جوری چک کنیم ببینیم سالم هست یا خطر داره.
الان محققها دارن بررسی میکنن چطوری میشه این مدلها رو به ابزارای قدیمیترِ بررسی کد، مثل static analyzers (ابزارایی که بدون اجرای کد، با خوندنش دنبال ایراد میگردن)، یا حتی formal verification tools (ابزارای دقیق و خشک که با منطق و ریاضی میرن سراغ پیدا کردنِ باگ)، وصل کرد و ببینن نتیجه بهتر میشه یا نه. حتی یخورده کار خلاقانهتر هم شده، مثلاً با prompt engineering (یه جور تنظیم سوال یا راهنمایی دادن به مدل، که درستتر و دقیقتر جواب بده) باعث شدن مدل کارش رو بهتر انجام بده.
مدلهای زبانی جدید بعضی وقتا میتونن خودشون به عنوان ابزار بررسی استفاده بشن. مثلاً به جای اینکه صرفاً کد بنویسن، ازشون میخوای بلد باشن ایرادهای امنیتی یا منطقی رو هم بگن. اما خیلی وقتا این مدلها رو با ابزارای مرسوم قاطی میکنن و یه جور راهحل ترکیبی یا hybrid درست میکنن. این باعث میشه ایرادهای بیشتری رو ردگیری کنن یا حتی آسیبپذیریها رو خود مدل هم پیدا کنه، یا مثلاً حتی پیشنهاد ترمیمِ مشکل رو هم بده.
خیلی از این مقالهها و پروژهها تمرکزشون روی اینه که چقدر میشه به کد نویسیِ مدلهای زبانی اعتماد کرد. یعنی آیا واقعاً قابل اطمینانن یا هنوزم میتونن کدهای پر از باگ و آسیبپذیر تحویل بدن؟ خب طبیعتاً همیشه یه سری چالش و مشکل سر راه هست. برای همین بعضی تیمها دارن ابزارها و چهارچوبهایی (frameworks) میسازن که بتونه اول خطر رو تشخیص بده، بعد هم خودش خودکار ایراد رو برطرف کنه، یا اینقدر به برنامهنویس کمک کنه که دیگه آسیبپذیری از زیر دستش در نره.
جمعبندی بخوام بکنم: مدلهای زبانی بزرگ تو بررسی سالم و امن بودن کدها واقعاً جالبن و پتانسیل بزرگی دارن، ولی هنوز باید بیشتر تحقیق و تست بشن. ترکیبشون با ابزارای کلاسیک میتونه نتایج بهتری بده، هرچند کلی چالش هم سر راهه؛ از جمله اینکه بدونیم واقعاً میشه به پیشنهادهاشون اعتماد کرد یا باید حتماً مهندس پشت صحنه باشه. اگه از اینجور تکنولوژیها استفاده میکنی یا دنبال امنیت برنامههاتی، خوبه همیشه همین جنبهها رو در نظر بگیری و تازهها و تحقیقهای جدید رو دنبال کنی. کل این حوزه هم حسابی داغه و هنوز کلی مسیر نااِکتشاف(!) مونده تا بالاخره بتونیم به مدلهای زبانی، حتی تو مسائل سخت امنیتی، تا حدود خوبی تکیه کنیم.
منبع: +