۱. تولید کلید و Hashing
همهچیز از توکنهای قبلی شروع میشه. سیستم کلمه (یا توکن) قبلی رو میگیره و با یک Secret Key ترکیب میکنه تا یک «هش» بسازه. این هش به عنوان Seed (دانه اولیه) به یک مولد اعداد شبهتصادفی (PRNG) داده میشه.
۲. تقسیمبندی دیکشنری (Green/Red Lists)
وقتی مدل زبانی میخواد کلمه بعدی رو پیشبینی کنه، به تمام کلمات دیکشنریش یک احتمال (Logit) میده. اینجا PRNG وارد عمل میشه و کل دیکشنری مدل رو به دو لیست تقسیم میکنه:
لیست سبز (Green List): توکنهای مجاز
لیست قرمز (Red List): توکنهای غیرمجاز
(این دستهبندی استاتیک نیست و برای هر توکنِ جدید، کاملاً عوض میشه!)
۳. تزریق بایاس (Logit Modification)
حالا به جای اینکه مدل کلمه بعدی رو عادی انتخاب کنه، سیستم میاد به امتیازِ کلماتِ لیست سبز، یک مقدار ثابت آماری (به نام delta) اضافه میکنه.
با این کار، بدون اینکه به گرامر، ساختار منطقی یا خلاقیت متن ضربه بخوره، شانس انتخاب کلمات لیست سبز به شدت بالا میره.
۴. نحوه تشخیص (Detection)
حالا اگه بخوایم مچ یک متن رو بگیریم چی؟ کافیه با همون Secret Key متن رو اسکن کنیم.
اگه انسان متن رو نوشته باشه، توزیع کلمات سبز و قرمز کاملاً تصادفی (تقریباً ۵۰-۵۰) است. اما تو متنی که LLM تولید کرده، درصد کلمات لیست سبز به شکل غیرطبیعی بالاست! اینجا با یک محاسبه آماری ساده (Z-score)، ثابت میشه که متن قطعا خروجی ماشینه.
این روش (به خصوص الگوریتم Kirchenbauer) الان استاندارد طلایی واترمارک متنه و به زودی به عنوان یک لایه امنیتی و اعتبارسنجی استاندارد، پای ثابت تمام فریمورکهای توسعه LLM میشه.
@silicon_brain | از هوش مصنوعی عقب نمانید