Llama.cpp b10327 یک باگ بحرانی در کوانتیزاسیون CUDA را وصله میکند که باعث پایدارسازی استنتاج محلی GPU روی کارتهای NVIDIA و استخراج سرعت بیشتر از همان سختافزار میشود. این اصلاح برای هر کسی که مدلهای سبک LLaMA را روی یک GPU رده مصرفکننده اجرا میکند، اهمیت دارد؛ جایی که کرش کردن و کاهش جزئی دقت، یک دردسر همیشگی بوده است.
باگی که مانع استنتاج محلی میشد
Llama.cpp موتور متنباز اصلی برای اجرای مدلهای زبانی بزرگ روی CPUها و GPUها بدون نیاز به سرویسهای ابری است. بزرگترین جذابیت آن، توانایی اجرای مدلهای کوانتیزه شده (وزنهای ذخیره شده در قالبهای بیت پایین) روی GPUهایی با اندازه متوسط است. نسخه b10327 محاسبات مربوط به تعداد ترد (thread) و بلوک (block) را که هنگام اجرای آن کرنلهای کوانتیزه شده روی پلتفرم CUDA شرکت NVIDIA استفاده میشود، اصلاح میکند.
محاسبات قبلی میتوانست باعث عدم تراز آیتمهای کاری شود که منجر به دو مشکل عملی میشد:
- مدیریت نادرست حافظه – کرنلها گاهی به حافظهای خارج از بافر اختصاصیافته دسترسی پیدا میکردند که باعث کرش کردن یا خرابی بیصدای دادهها میشد.
- عدم دقت محاسباتی – عملکرد عملیات ممیز شناور کاهش مییافت که باعث افت کیفیت متن تولید شده میشد.
هر دو مشکل تنها تحت محدودیتهای شدید حافظه در استنتاج کوانتیزه شده ظاهر میشدند، که بازتولید آنها را در اجراهای بزرگتر با دقت کامل (full-precision) دشوار میکرد.
چرا این اصلاح، یک پیروزی برای هوش مصنوعی روی دستگاه است
توسعهدهندگان و علاقهمندان برای حفظ حریم خصوصی دادهها، جلوگیری از تأخیر ناشی از فراخوانیهای رفت و برگشتی به ابر و کاهش هزینههای عملیاتی، به استنتاج محلی متکی هستند. این باگ به این معنا بود که حتی وقتی یک مدل در حافظه GPU جا میشد، باز هم میتوانست به طور غیرقابل پیشبینی با شکست مواجه شود. با پارامترهای اصلاحشده برای اجرا، اکنون همان سختافزار موارد زیر را ارائه میدهد:
- اجراهای قابلاعتمادتر – کرشهای کمتر ناشی از کمبود حافظه (out-of-memory) و پردازش دستهای (batch processing) روانتر.
- بهبود سرعت – این بهروزرسانی هم قابلیت اطمینان و هم نرخ پردازش (throughput) را افزایش میدهد.
برای یک GPU رده مصرفکننده، این تفاوت میتواند مرز بین یک چتبات تعاملی قابل استفاده و یک دموی ناپایدار باشد.
خلاصهای از سایر بهروزرسانیهای هوش مصنوعی GPU
در حالی که وصله Llama.cpp خبر اصلی است، تعدادی از انتشارهای دیگر نیز اکوسیستم هوش مصنوعی محلی را به جلو میرانند:
- NVIDIA NeMo Speech 3.0 یک مجموعه ابزار تازه برای تشخیص خودکار گفتار، تبدیل متن به گفتار و مدلهای زبانی بزرگ گفتاری ارائه میدهد. ساختار جدید، ایجاد دستیارهای صوتی تخصصی را سادهتر میکند.
- AMD ROCm پشتیبانی از SVDQuant را از طریق کتابخانه Quark اضافه میکند که به مدلهای انتشار مانند Stable Diffusion اجازه میدهد با ردپای حافظه کمتر روی GPUهای AMD اجرا شوند. یک ماژول همراه به نام VSA (Video Sparse Attention) با کاهش محاسبات مورد نیاز برای مراحل انتشار، وعده تولید سریعتر ویدیو را میدهد.
- Linux kernel 7.3 یک زیرسیستم TTM (Translation Table Maps) تهاجمیتر برای حافظه گرافیکی معرفی خواهد کرد. هدف این تغییر، بهبود بازپسگیری حافظه برای بارهای کاری سنگین محاسباتی است که میتواند به طور غیرمستقیم به استنتاج هوش مصنوعی در ماشینهای مبتنی بر لینوکس کمک کند.
چه کسانی سود میبرند و چه کسانی باید محتاط باشند
توسعهدهندگان مستقل، استارتاپهای کوچک و تیمهای متمرکز بر حریم خصوصی که قبلاً روی سختافزار NVIDIA رده مصرفکننده سرمایهگذاری کردهاند، از مزایای فوری بهرهمند میشوند. خط لوله (pipeline) آنها قابل پیشبینیتر میشود و افزایش عملکرد، مانع آزمایش با مدلهای کوانتیزه شده بزرگتر را کاهش میدهد.
شرکتهای بزرگی که در حال حاضر استنتاج را در ابر اجرا میکنند، ممکن است این اصلاح را به عنوان یک نقطه تایید برای استراتژیهای ترکیبی (hybrid) ببینند؛ یعنی اجرای رابطهای کاربری حساس به تأخیر به صورت محلی و سپردن کارهای سنگین دستهای به ابر. با این حال، این اصلاح محدودیتهای عمیقتر هوش مصنوعی روی دستگاه، مانند سقف VRAM یا شکاف کیفیت بین مدلهای کوانتیزه شده و مدلهای با دقت کامل را از بین نمیبرد.
آنچه باید در آینده زیر نظر داشت
- بهینهسازیهای بیشتر Llama.cpp – وصلههای آتی، ادغام کرنلها (kernel fusion) را اصلاح کرده و پشتیبانی از معماریهای جدیدتر NVIDIA را اضافه خواهند کرد.
- استانداردهای کوانتیزاسیون چندتولیدگری – با دستیابی ROCm شرکت AMD به SVDQuant، ممکن است جامعه کاربری حول یک قالب بیت پایین مشترک متحد شود و جابهجایی مدلها را تسهیل کند.
- ادغام اجزای NeMo Speech در زمانهای اجرای روی دستگاه میتواند قابلیتهای صوتی را به همان پشته استنتاج محلی بیاورد که اکنون مدلهای متنی را با قابلیت اطمینان بیشتری اجرا میکند.
وصله b10327 ثابت میکند که یک اصلاح در سطح یک خط کد در هندسه اجرا (launch geometry) میتواند تأثیرات بسیار بزرگی بر کاربردپذیری هوش مصنوعی محلی داشته باشد. اگر هنوز با کرش کردن در یک GPU رده مصرفکننده دست و پنجه نرم میکنید، همین حالا llama.cpp را برای تجربه استنتاج پایدارتر و سریعتر بهروزرسانی کنید.
