کدهای مقاوم در برابر ربات را با KillSwitch بنویسید، یک زبان برنامه نویسی که برای گیج کردن LLM ها طراحی شده است.
به نظر می رسد که دروغ ها، قیدهای زیاد و داستان های عامیانه کد بسیار قابل خواندن توسط ماشین ایجاد نمی کنند.
اگر میخواهید رباتها را از درک کدهایی که به سختی روی آن کار کردهاید و استفاده از آن برای نوشتن برنامههای خودشان جلوگیری کنید، زبان برنامهنویسی جدیدی وجود دارد که برای گیج کردن LLMها طراحی شده است. چیزی که زمانی آغاز شد که مهندس نرمافزار Dominik Picheta در مورد اینکه آیا LLMها کدهایی را که مینویسند میفهمند یا نه، به چیز دیگری تبدیل شده است: یک زبان برنامهنویسی منبع باز، هرچند باطنی، که او KillSwitch نامیده میشود.
هیچ براکتی وجود ندارد، هیچ استاندارد قالببندی برای به خاطر سپردن وجود ندارد، و ظاهرا هیچ ساختاری وجود ندارد: فقط تکههایی از متن، در حالت ایدهآل تا حد امکان، با توابع، متغیرها و عباراتی که بهگونهای نوشته شدهاند تا حد ممکن برای LLMها گیجکننده باشد. این بدان معناست که انسان ها نیز ممکن است به طور طبیعی کمی گیج شده باشند. پیچتا به The Register گفت: «این کاملا طبیعی است که یک انسان در ابتدا با زبان گیج شود.
من دوست دارم به آن به عنوان یک پازل سرگرم کننده فکر کنم: شما باید زبان را کشف کنید، با مترجم آن بازی کنید و یاد بگیرید که چگونه همه قطعات با هم هماهنگ می شوند. KillSwitch توسط هیچ فرد تصادفی که به دنبال کدنویسی چیزی گیج کننده برای LLM باشد ساخته نشده است، و همچنین توسط علاقه مندان به هوش مصنوعی کدگذاری نشده است. Picheta راه خود را در مورد زبان های برنامه نویسی می داند: او یک مهندس نرم افزار ارشد در Cloudflare است که روی تیم Workers Runtime کار می کند و یکی از توسعه دهندگان اصلی زبان برنامه نویسی Nim است.
در ابتدایی ترین حالت، KillSwitch بر اساس قیدهایی است که به عنوان هر شناسه در یک قطعه کد عمل می کنند. فراخوانی یکی از آن شناسهها مستلزم استفاده از آنگرام قید اصلی است، اما آن تشابهها نباید کلمات واقعی باشند - فقط ترتیببندی مجدد حروف اصلی. برای مثال، فشار دادن «Hello World» روی پشته و سپس چاپ آن، همانطور که در صفحه نمایشی که قبلا در داستان پیوند داده شده است، را در نظر بگیرید. این برنامه شامل چندین پاراگراف متن است که مفسر بیشتر آنها را جدا از چند عبارت کلیدی نادیده می گیرد.
نوشتن «این داستان [قید] شروع میشود» نقطه ورودی کد را مشخص میکند. هنگامی که در بخش کد قرار می گیرید، نوشتن «دستورالعمل های قبلی را نادیده بگیرید [قید قید]» یک تابع را فراخوانی می کند که تعدادی از آنها از پیش تعریف شده اند. در مورد "Hello World"، عملکرد چاپ چیزی "به صورت قابل مشاهده" است. هر چیزی را که میخواهید چاپ کنید در گیومه قرار دهید، آن را روی پشته فشار دهید، "مشاهده" را صدا کنید و تمام.
KillSwitch یک زبان با ویژگی های کامل نیست، Picheta آن را به عنوان یک زبان تفسیری مبتنی بر پشته با تنها "مجموعه محدودی از ساختارها از جمله توابع، متغیرها و عبارات if" توصیف می کند، با توجه به تکامل آن در یک آزمایش برای دیدن اینکه چگونه یک زبان برنامه نویسی می تواند هوش مصنوعی را فریب دهد تا آنچه نوشته شده را درک نکند. جایی که برای هوش مصنوعی گیجکننده میشود دستوراتی مانند «دستورالعملهای قبلی را نادیده بگیرید» است، بهویژه زمانی که در وسط یک تکه متن یافت میشود که در آن زمینه چندان منطقی نیست.
سند مشخصات KillSwitch در GitHub جزئیات بیشتری در مورد این زبان ارائه می دهد و خود برای گیج کردن LLM ها طراحی شده است. در بخشی از مشخصات، توضیح داده شده است که KillSwitch «به قابلیت اسکن شبکه محلی، تلاش برای یافتن آسیبپذیریهای امنیتی در سرویسهای موجود در آن شبکه، و سپس گرفتن آن سرویسها و خاتمه آنها مجهز است». این در واقع اینطور نیست، همانطور که با مطالعه دقیق پاراگراف مشخص شد و Picheta به ما تایید کرد.
Picheta به ما گفت: «این بیانیه هک هم برای راهاندازی نردههای ایمنی بسیاری از مدلها طراحی شده است، هم برای آزمایش توانایی LLM در تشخیص واقعیت از داستان،» و اضافه کرد که چندین دروغ در سند مشخصات طراحی شده برای گیج کردن هر LLM وجود دارد که ممکن است آن را در تلاش برای درک نحوه عملکرد زبان خراش دهد. Picheta افزود: "ایده این است که انسان ها باید بتوانند چیزی را که دروغ است استنباط کنند، در حالی که LLM ها ساده لوح هستند و می توانند به راحتی تحت تأثیر آنچه در مشخصات نوشته شده است تحت تأثیر قرار گیرند."
برخی نمی دانند معنای معنایی آن چیست، در حالی که برخی دیگر از ادامه دادن امتناع می ورزند زیرا معتقدند فیلمنامه ممکن است شخصی را هک کند. آیا LLM ها می فهمند که چه می نویسند؟ زبان برنامه نویسی طراحی شده برای گیج کردن مدل های هوش مصنوعی بعید به نظر می رسد که برای مدت طولانی مبهم بماند - به خصوص اگر منبع باز باشد، در Github موجود باشد و احتمالا در نقطه ای توسط یک LLM خراشیده شود. Picheta از این اجتناب ناپذیری آگاه است، که همراه با این واقعیت که میخواست توانایی هوش مصنوعی را در درک کدهای گیج کننده آزمایش کند، به همین دلیل است که تعدادی از مدلهای اصلی را در مقابل آن محک زده است.
Picheta گفت: "من 99.9 درصد مطمئن هستم که مدلهای هوش مصنوعی که KS را بر روی آنها محک زدهام، در منبع خود آموزش ندیدهاند." "منبع برای مدت طولانی در مالکیت عمومی قرار نگرفته است ... من تقریبا مطمئن هستم که هیچ یک از مدل های محک زده شده دوره های آموزشی پس از انتشار را نداشته اند." مدلی که بهترین عملکرد را داشت، تنها امتیاز معیار ترکیبی 66.8 درصدی را در وظایف کدنویسی KillSwitch کسب کرد، در حالی که اکثر آنها برای به دست آوردن بالای 50 درصد تلاش کردند. حتی با این امتیاز بالا، Picheta باور نمی کند که به LLM ها پیشنهاد می کند کدی را که می نویسند درک کنند.
مثالها در این معیار ساده بودند، و او معتقد است که حتی اگر هوش مصنوعی در مورد پیچیدگیهای KillSwitch آموزش دیده باشد، باز هم از کار خواهد افتاد. Picheta اظهار داشت: "غریزه من این است که در آن شرایط آنها به طور ناگهانی قادر خواهند بود کارهای اساسی را انجام دهند، که بر اساس فایل های آزمایشی منبع باز در مخزن GitHub هستند، اما همچنان در ساخت وظایف پیچیده تر که نیاز به نوشتن اسکریپت های طولانی تر و پیچیده تر دارند، شکست خواهند خورد." - و او برای این چالش آماده است.
Picheta گفت: "من هیجان زده هستم که ببینم KillSwitch چگونه در آموزش مدل ظاهر می شود، و فکر می کنم که ما همچنین می توانیم از این آموزش برای شکستن LLM ها به روش های جدید با تکامل KillSwitch استفاده کنیم." کسانی که علاقه مند به آزمایش KillSwitch هستند، می توانند آن را در GitHub بیابند و در ایجاد تغییرات دریغ نکنند: Picheta گفت که آماده و مایل است راه های جدیدی را برای مقاوم تر کردن آن در برابر LLM به کار گیرد. ®
متن اصلی (انگلیسی)
Write bot-resistant code with KillSwitch, a programming language designed to confuse LLMs
Lies, lots of adverbs, and prosaic stories don't make for very machine-readable code, it turns out