زیرساخت و توسعه

مدل کوچک UMT5 باگ پنهان در Transformers را شناسایی کرد

Hugging Face می‌گوید یک نسخهٔ کم‌حجم از UMT5 روی پردازندهٔ معمولی می‌توانست خطای توجه به توکن‌های آینده را پیدا کند؛ خطایی که نزدیک به دو ماه در شاخهٔ اصلی باقی ماند.

۳ دقیقه مطالعه

در ۳۰ ژوئیهٔ ۲۰۲۶، پشتیبانی از سازوکار SDPA در PyTorch برای مدل T5 فعال شد؛ تغییری که ناخواسته باعث شد decoder مدل UMT5 هنگام آموزش بتواند به توکن‌های آینده، از جمله پاسخ مورد انتظار، توجه کند. این خطا برنامه را از کار نمی‌انداخت و نزدیک به دو ماه در شاخهٔ اصلی Transformers باقی ماند. به‌گفتهٔ Hugging Face، بازاجرای commitهای آن دوره با یک مدل کوچک UMT5 روی CPU، خطا را در همهٔ آن‌ها آشکار کرد.

Transformers از بیش از ۷۵۰ نوع مدل پشتیبانی می‌کند. مجموعهٔ آزمون آن بیش از ۸۸ هزار آزمون CPU در شاخهٔ اصلی و ۲۰۰ هزار آزمون GPU در اجرای روزانه دارد؛ آزمون‌هایی که علاوه بر خود مدل‌ها، pipelineها، آموزش، اجرای توزیع‌شده، quantization و هسته‌های attention را هم پوشش می‌دهند. اما اجرای همهٔ آزمون‌های یکپارچه‌سازی با checkpointهای واقعی روی سخت‌افزار واقعی برای هر تغییر کد، نیازمند نگه‌داشتن تعداد زیادی GPU به‌صورت پیوسته است. در نتیجه، آزمون زمان‌بندی‌شده ممکن است خطا را زمانی پیدا کند که تغییر از قبل وارد شاخهٔ اصلی شده باشد.

راه پیشنهادی Hugging Face ساخت fixture کوچک از پیکربندی checkpoint واقعی است: لایه‌ها کمتر و باریک‌تر می‌شوند، اما همهٔ انواع لایه حفظ می‌شوند و فایل‌های tokenizer و processor بدون تغییر می‌مانند. این fixture یک‌بار منتشر می‌شود و در آزمون‌های سریع روی CPU به کار می‌رود. در بررسی این شرکت، fixture آزمایشی UMT5 فقط ۶۶ مگابایت وزن داشت، درحالی‌که checkpoint اصلی ۱٬۲۲۷ مگابایت بود. این روش می‌تواند برای مدل‌هایی هم کاربرد داشته باشد که روی GPUهای معمول تیم جا نمی‌شوند، اما fixture آن‌ها روی CPU اجرا می‌شود.

Hugging Face می‌گوید fixtureها جای آزمون‌های کامل یکپارچه‌سازی را نمی‌گیرند؛ هدف، افزایش شانس پیدا کردن خطا پیش از ورود به شاخهٔ اصلی است. این شرکت همچنین طرحی با نام transformers-mic برای استانداردسازی بسته‌بندی این آزمون‌ها پیشنهاد کرده است. در این طرح، یک Model Integration Contract به معماری و مسیر استفاده مربوط می‌شود، نه فقط به یک checkpoint؛ بنابراین checkpointهای سازگار می‌توانند fixture مشترک داشته باشند و هرکدام نتایج مورد انتظار خود را حفظ کنند. قرارداد زمانی برقرار است که اجرای مسیر استفاده روی fixture همچنان نتایج پایه را تولید کند.

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

منبع: Hugging Face — مشاهده منبع اصلی ↗