رفتن به محتوای اصلی
Koohestun
توضیح کوهستانتولید ساختاریافتهگزارش تشریحی· 5 دقیقه مطالعه· در هوش مصنوعی

سازوکار رمزگشایی مقید: چگونه مدل‌های زبانی بزرگ به تولید خروجی معتبر JSON وادار می‌شوند؟

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

به قلم ساناز امامی

توسعه‌دهندگان برنامه‌های کاربردی 40%پژوهشگران مدل‌ها 35%تیم‌های امنیت 25%
توسعه‌دهندگان برنامه‌های کاربردی
مهندسانی که خطوط لوله هوش مصنوعی را می‌سازند، قابلیت اطمینان مطلق و حذف خطاهای تجزیه را در اولویت قرار می‌دهند.
پژوهشگران مدل‌ها
پژوهشگران هوش مصنوعی بر اصطکاک میان توکن‌سازی زیرکلمه‌ای و محدودیت‌های سطح کاراکتر تمرکز دارند.
تیم‌های امنیت
متخصصان امنیت، رمزگشایی مقید را به‌عنوان سازوکاری برای اجرای خط‌مشی‌ها می‌بینند.

آنچه نمی‌دانیم

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

توسعه‌دهندگان برنامه‌های کاربردی که مدل‌های زبانی بزرگ را ادغام می‌کنند، با یک سقف قابلیت اطمینان همیشگی روبه‌رو هستند: مدل در نهایت داده‌های ناقص و بدفرم برمی‌گرداند. برای رفع این مشکل، توسعه‌دهندگان اکنون می‌توانند مستقیماً در فرآیند تولید توکن در زمان استنتاج مداخله کنند. آن‌ها به‌جای اینکه امیدوار باشند مدل یک JSON معتبر تولید کند و سپس با حلقه‌های تکرار آن را اصلاح کنند، می‌توانند دایره واژگان مدل را در هر مرحله به‌طور ریاضی محدود کرده و آن را وادار کنند که تنها نحو (syntax) معتبر تولید کند.[1][6]

این سازوکار که با نام رمزگشایی مقید (constrained decoding) یا تولید ساختاریافته شناخته می‌شود، هزینه شکنندگی تجزیه را که گریبان‌گیر سیستم‌های هوش مصنوعی در محیط تولید است، از بین می‌برد. پیش از اینکه این رویکرد به یک استاندارد تبدیل شود، تیم‌ها به مهندسی پرامپت متکی بودند؛ یعنی به مدل دستور می‌دادند که تنها JSON معتبر برگرداند، روشی که تقریباً در ۹۵ تا ۹۸ درصد مواقع کار می‌کند. اما در مقیاس بزرگ، نرخ خطای ۲ تا ۵ درصدی در میان مصرف‌کنندگان پایین‌دستی انباشته می‌شود و به اصلاح‌کننده‌های مبتنی بر عبارات باقاعده (regex) و حلقه‌های تکرار پرهزینه‌ای نیاز دارد که هزینه‌های استنتاج را چند برابر می‌کنند.[1]

رمزگشایی مقید این مشکل را با پنهان کردن (masking) لوجیت‌های مدل حل می‌کند؛ لوجیت‌ها همان امتیازات احتمال خام و نرمال‌نشده‌ای هستند که به هر توکن بعدیِ ممکن در دایره واژگان اختصاص می‌یابند. در هر مرحله از رمزگشایی، سیستم محاسبه می‌کند که با توجه به خروجی فعلی و یک گرامر از پیش‌تعریف‌شده (مانند طرح‌واره JSON یا یک عبارت باقاعده)، کدام توکن‌ها ادامه‌های معتبری محسوب می‌شوند. توکن‌هایی که باعث نامعتبر شدن خروجی جزئی می‌شوند، پیش از نمونه‌برداری، روی احتمال منفی بی‌نهایت تنظیم می‌گردند.[5]

این فرآیند مکانیکی بر ماشین‌های حالت متناهی (FSM) متکی است. وقتی یک توسعه‌دهنده طرح‌واره‌ای از JSON ارائه می‌دهد، کتابخانه‌ها آن طرح‌واره را به یک FSM یا یک گرامر مستقل از متن کامپایل می‌کنند. در طول تولید، FSM وضعیت فعلی خروجی را ردیابی می‌کند. اگر مدل به‌تازگی یک آکولاد باز تولید کرده باشد، ماشین حالت می‌داند که تنها کاراکترهای بعدی معتبر، فضای خالی (whitespace) یا یک کلید رشته‌ای محصور در علامت نقل‌قول هستند.[4]

رمزگشایی مقید با تنظیم احتمال توکن‌های نامعتبر روی منفی بی‌نهایت، تضمین می‌کند که مدل تنها از ادامه‌های معتبر نمونه‌برداری کند.

مستندات شرکت زیرو انتروپی (Zero Entropy) در این باره اشاره می‌کند: «از آنجا که محدودیت در حین تولید اعمال می‌شود نه پس از آن، اعتبار خروجی تضمین شده است؛ شما هرگز با خطای تجزیه مواجه نمی‌شوید، هرگز مجبور به تلاش مجدد نیستید و هرگز به یک تجزیه‌کننده جایگزین نیاز ندارید.» لوجیت‌های پنهان‌شده از یک تابع سافت‌مکس (softmax) عبور می‌کنند که احتمال تمام توکن‌های غیرمجاز را دقیقاً به صفر می‌رساند و مدل را وا می‌دارد تا تنها از میان ادامه‌های مجاز نمونه‌برداری کند.[5]

این مداخله در سطح توکن، یک بار محاسباتی جزئی به همراه دارد، زیرا ماشین حالت باید در هر مرحله مورد پرس‌وجو قرار گیرد. با این حال، بهینه‌سازی‌های اخیر این جریمه تاخیر را معکوس کرده‌اند. پژوهشگران سازمان LMSYS ماشین‌های حالت متناهی فشرده‌ای را معرفی کردند که مسیرهای انتقال منفرد را تجزیه و تحلیل می‌کنند و به سیستم اجازه می‌دهند تا در صورت امکان، چندین توکن را در یک مرحله رمزگشایی کند. این روش در مقایسه با رمزگشایی استاندارد، تاخیر را تا ۲ برابر کاهش داده و توان عملیاتی را تا ۲٫۵ برابر افزایش می‌دهد.[4]

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

به‌طور مشابه، تیم توسعه‌دهنده کتابخانه Outlines چارچوبی به نام ادغام (coalescence) توسعه دادند. زمانی که FSM به حالتی می‌رسد که تنها یک انتقال معتبر دارد (مانند تکمیل مقدار بولی false پس از تولید حرف اول)، سیستم فراخوانی پرهزینه به مدل زبانی پایه را به‌طور کامل نادیده می‌گیرد و مستقیماً توکن‌های قطعی را اضافه می‌کند. این کار می‌تواند به افزایش سرعت ۵ برابری نسبت به تولید معمولی منجر شود.

تکنیک‌هایی مانند ادغام (coalescence) می‌توانند با نادیده گرفتن فراخوانی‌های LLM برای توکن‌های قطعی، تولید ساختاریافته را به‌طور قابل‌توجهی سریع‌تر از تولید نامقید کنند.

تاثیر این روش بر قابلیت اطمینان، مطلق است. در ارزیابی JSONSchemaBench که مدل‌ها را در برابر ۱۰ هزار طرح‌واره دنیای واقعی آزمایش می‌کند، رمزگشایی مقید پوشش تجربی تا ۰٫۹۶ را با نرخ‌های انطباق قوی به دست می‌آورد. در مقابل، مدل‌های نامقید شاهد افت شدید عملکرد خود در طرح‌واره‌های دشوارتر هستند؛ صرف‌نظر از اینکه شبکه عصبی پایه آن‌ها چقدر بزرگ یا توانمند باشد.[2]

این تکنیک فراتر از JSON، به هر گرامر رسمی دیگری از جمله زبان‌های برنامه‌نویسی و رابط‌های خط فرمان نیز بسط می‌یابد. در ماه مه ۲۰۲۶، تیم قرمز هوش مصنوعی انویدیا (NVIDIA) نشان داد که اعمال رمزگشایی مقید با گرامرهای تولیدشده Bash، قابلیت اطمینان دستورات مدل‌های زبانی کوچک را در جریان‌های کاری عامل‌محور به‌طور قابل‌توجهی بهبود می‌بخشد. این گرامر با جلوگیری از تولید پرچم‌های (flags) ناامن یا عملگرهای لوله (pipe) نامعتبر توسط مدل، به‌عنوان یک لایه سخت‌گیرانه برای اجرای خط‌مشی عمل می‌کند.[3]

با وجود قدرت بالا، رمزگشایی مقید با چالش‌هایی در مرزهای توکن‌سازی مواجه است. مدل‌های زبانی اغلب ترجیح می‌دهند چندین کاراکتر را در یک توکن زیرکلمه‌ای ترکیب کنند. اگر یک طرح‌واره به کاراکتر خاصی نیاز داشته باشد، اما دایره واژگان مدل آن کاراکتر را تنها به‌عنوان بخشی از یک توکن بزرگ‌تر و نامعتبر در خود داشته باشد، FSM باید با دقت این ناهماهنگی را هدایت کند تا از وادار کردن مدل به انتخاب‌های زبانی غیربهینه جلوگیری شود.[4]

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

چرا مهم است

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

بررسی عمیق دیدگاه‌ها

توسعه‌دهندگان برنامه‌های کاربردی

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

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

پژوهشگران مدل‌ها

پژوهشگران هوش مصنوعی بر اصطکاک میان توکن‌سازی زیرکلمه‌ای و محدودیت‌های سطح کاراکتر تمرکز دارند.

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

تیم‌های امنیت

متخصصان امنیت، رمزگشایی مقید را به‌عنوان سازوکاری برای اجرای خط‌مشی‌ها می‌بینند.

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

منابع

پوشش منابع

6 منبع

3 دیدگاه شناسایی‌شده

توسعه‌دهندگان برنامه‌های کاربردی 40%پژوهشگران مدل‌ها 35%تیم‌های امنیت 25%
  1. [1]Tian Panتوسعه‌دهندگان برنامه‌های کاربردی

    The Cost of Parsing Fragility

    مطالعه در Tian Pan
  2. [2]Emergent Mindپژوهشگران مدل‌ها

    Constrained Decoding (JSON-mode)

    مطالعه در Emergent Mind
  3. [3]NVIDIA Technical Blogتیم‌های امنیت

    Constrained Decoding for Small Language Models

    مطالعه در NVIDIA Technical Blog
  4. [4]LMSYS Orgپژوهشگران مدل‌ها

    Fast JSON Decoding with Compressed Finite State Machines

    مطالعه در LMSYS Org
  5. [5]Zero Entropyتوسعه‌دهندگان برنامه‌های کاربردی

    Constrained decoding

    مطالعه در Zero Entropy
  6. [6]تیم سردبیری کوهستان

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

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

نظرات

همیشه در جریان باشید

هر زاویه. هر روز.

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