IRCNF

مدل‌های زبانی بزرگ با کاهش دقت اکنون روی لپ‌تاپ ۱۶ گیگابایتی اجرا می‌شوند — و فاصله با مدل‌های ابری را کاهش می‌دهند

اشتراک‌گذاری:
مدل‌های زبانی بزرگ با کاهش دقت اکنون روی لپ‌تاپ ۱۶ گیگابایتی اجرا می‌شوند — و فاصله با مدل‌های ابری را کاهش می‌دهند

دو سال پیش، اجرای یک مدل زبانی بزرگ قدرتمند نیازمند GPU مرکز داده یا اشتراک API پرهزینه بود. امروز، یک لپ‌تاپ گیمینگ با ۱۶ گیگابایت RAM می‌تواند مدلی با ۷ میلیارد پارامتر را به صورت محلی با سرعت ۳۰ تا ۵۰ Token در ثانیه اجرا کند — به اندازه‌ای سریع برای کار واقعی. فناوری کلیدی که این امکان را فراهم کرده، کاهش دقت عددی (Quantization) است که به طور نامحسوس مرز بین هوش مصنوعی ابری و هوش مصنوعی لبه را جابه‌جا کرده است.

مشکل: مدل‌هایی که نمی‌توانستند از مرکز داده خارج شوند

یک مدل زبانی هوش خود را در میلیاردها عدد ممیز شناور به نام وزن ذخیره می‌کند. مدل اصلی LLaMA که متا در سال ۲۰۲۳ منتشر کرد، هر وزن را به صورت ۱۶-بیتی (FP16) ذخیره می‌کرد، یعنی نسخه ۷ میلیارد پارامتری حدود ۱۴ گیگابایت حافظه GPU را صرفاً برای بارگذاری نیاز داشت — پیش از هرگونه سربار استنتاج. نسخه ۱۳ میلیارد پارامتری به ۲۶ گیگابایت نیاز داشت. GPUهای مصرفی حداکثر ۸ تا ۱۲ گیگابایت VRAM دارند، بنابراین اجرای این مدل‌ها به صورت محلی عملاً برای اکثر توسعه‌دهندگان و علاقه‌مندان غیرممکن بود.

فراتر از محدودیت‌های سخت‌افزاری، استقرار صرفاً ابری مشکلات واقعی ایجاد می‌کرد: هر کوئری ارسالی به API یک افشای حریم خصوصی است، تأخیر به شرایط شبکه بستگی دارد و هزینه‌ها با استفاده افزایش می‌یابند. برای شرکت‌هایی که با داده‌های حساس کار می‌کنند، ارسال اسناد به API شخص ثالث اغلب از نظر قانونی یا قراردادی ممنوع است.

کاهش دقت عددی دقیقاً چه کاری انجام می‌دهد

کاهش دقت عددی، دقت عددی وزن‌های مدل را کاهش می‌دهد. به جای ذخیره هر وزن به صورت یک عدد ممیز شناور ۳۲-بیتی (FP32) یا ۱۶-بیتی (FP16)، مدل‌های با دقت کاهش‌یافته وزن‌ها را به صورت اعداد صحیح ۸-بیتی (INT8) یا حتی ۴-بیتی (INT4) ذخیره می‌کنند. صرفه‌جویی در حافظه قابل توجه است: INT8 حافظه مصرفی را تقریباً نصف FP16 می‌کند؛ INT4 آن را حدود ۷۵٪ کاهش می‌دهد.

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

دو روش غالب کاهش دقت عبارتند از GPTQ (کاهش دقت پس از آموزش با استفاده از داده‌های کالیبراسیون، که ابتدا برای مدل‌های GPT توسعه یافت) و GGUF (فرمت فایل مورد استفاده llama.cpp که از کاهش دقت با دقت مختلط از ۲-بیت تا ۸-بیت به ازای هر وزن پشتیبانی می‌کند). GGUF در سال ۲۰۲۳ جایگزین فرمت قبلی GGML شد و به استاندارد عملی برای توزیع مدل‌های با دقت کاهش‌یافته برای استنتاج محلی تبدیل شده است.

ابزارها: llama.cpp، Ollama و اکوسیستم

llama.cpp که توسط گئورگی گرگانوف نوشته شده، پروژه بنیادین است. این یک موتور استنتاج خالص به زبان C/C++ است که مدل‌های GGUF را بارگیری کرده و به طور کارآمد روی CPU اجرا می‌کند — با قابلیت بارگذاری اختیاری روی GPU. از آنجایی که وابستگی به زمان اجرای پایتون ندارد و روی هر پلتفرمی کامپایل می‌شود، به لایه پایه برای ده‌ها ابزار محلی هوش مصنوعی تبدیل شد. روی تراشه‌های سری M اپل، llama.cpp از شتاب Metal استفاده می‌کند و سرعت استنتاجی قابل رقابت با ماشین‌های GPU اختصاصی به دست می‌آورد.

Ollama llama.cpp را در یک واسط خط فرمان تمیز و REST API محلی می‌پیچد. یک دستور واحد — ollama run llama3.1 — مدل کاهش‌یافته را دانلود کرده و شروع به ارائه آن می‌کند. Ollama به طور خودکار نسخه‌بندی مدل، تشخیص سخت‌افزار و مدیریت حافظه را انجام می‌دهد و استقرار LLM محلی را برای توسعه‌دهندگانی که نمی‌خواهند فایل‌های خام GGUF را مدیریت کنند، قابل دسترس می‌سازد.

دیگر ابزارهای قابل توجه در این مجموعه عبارتند از LM Studio (یک GUI برای مرور و اجرای مدل‌های GGUF)، Jan (یک جایگزین منبع‌باز ChatGPT که به صورت محلی اجرا می‌شود) و vLLM (بهینه‌شده برای استنتاج GPU با توان عملیاتی بالاتر، که بیشتر در زمینه سرورهای لبه استفاده می‌شود).

مدل‌هایی که همه چیز را تغییر دادند

Llama 3.1 (متا، منتشر شده در ژوئیه ۲۰۲۴) معیار فعلی برای مدل‌های وزن‌باز است. نسخه ۸ میلیارد پارامتری که به Q4_K_M — یک نوع کاهش دقت GGUF — کاهش دقت یافته، حدود ۵ گیگابایت RAM نیاز دارد و روی هر لپ‌تاپ مدرنی اجرا می‌شود. نسخه ۷۰ میلیارد پارامتری آن، که به Q4 کاهش دقت یافته، حدود ۴۰ گیگابایت نیاز دارد و روی Mac Studio یا یک ایستگاه کاری با چندین GPU اجرا می‌شود. عملکرد در وظایف کدنویسی و استدلال با GPT-3.5 رقابتی است و در چندین Benchmark به GPT-4 نزدیک می‌شود.

Mistral 7B (Mistral AI، ۲۰۲۳) اولین مدل وزن‌بازی بود که با نیمی از تعداد پارامترها، به طور قانع‌کننده‌ای از Llama 2 13B بهتر عمل کرد — نشان‌دهنده این که کارایی معماری به اندازه مقیاس اهمیت دارد. این مدل باعث ایجاد علاقه گسترده به مدل‌های کوچک‌تر و کارآمدتر بهینه‌شده برای استقرار محلی شد.

Phi-3 Mini (مایکروسافت، ۲۰۲۴) یک مدل با ۳٫۸ میلیارد پارامتر است که با آموزش روی داده‌های با کیفیت بالاتر به جای افزایش پارامترها، عملکرد قابل مقایسه با مدل‌های بسیار بزرگتر به دست می‌آورد. در کاهش دقت Q4، در کمتر از ۳ گیگابایت جا می‌شود و روی یک CPU مدرن با سرعت بیش از ۴۰ Token در ثانیه اجرا می‌شود — و آن را برای دستگاه‌های با حافظه محدود مناسب می‌سازد.

Gemma 2 (Google DeepMind، ۲۰۲۴) بهبودهای معماری از جمله لایه‌های توجه محلی و جهانی متناوب را معرفی کرد که منجر به عملکرد قوی در اندازه‌های ۲ میلیارد و ۹ میلیارد پارامتر شد. نسخه ۲ میلیارد پارامتری که به INT4 کاهش دقت یافته، روی دستگاه‌هایی با تنها ۲ گیگابایت حافظه در دسترس اجرا می‌شود.

این در عمل چه معنایی دارد

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

عملیات آفلاین: دستگاه‌های مصرفی در مکان‌های دورافتاده، هواپیماها، زیردریایی‌ها یا هر محیطی با اتصال ناپایدار می‌توانند برنامه‌های هوش مصنوعی را اجرا کنند که در غیر این صورت به ابر وابسته بودند.

توسعه تکراری: اجرای یک مدل به صورت محلی، محدودیت‌های نرخ API و هزینه‌های هر Token را در طول توسعه حذف می‌کند. یک توسعه‌دهنده می‌تواند هزاران فراخوانی استنتاج را در برابر یک مدل محلی Mistral یا Llama اجرا کند تا Promptها را آزمایش کند، منطق ارزیابی را تنظیم دقیق کند یا داده‌های آموزشی مصنوعی تولید کند بدون اینکه هزینه API انباشته شود.

استقرار لبه سازمانی: کارخانه‌های تولیدی، فروشگاه‌های خرده‌فروشی و مراکز تدارکاتی در حال استقرار مدل‌های کاهش‌یافته کوچک روی سرورهای محلی هستند تا برنامه‌هایی را اجرا کنند که به تأخیر کم نیاز دارند و نمی‌توانند رفت و برگشت ابری را تحمل کنند. یک سیستم کنترل کیفیت که عیوب خط مونتاژ را تحلیل می‌کند، نمی‌تواند برای هر Query ۲۰۰ میلی‌ثانیه تأخیر ابری را بپردازد.

امروز به چه سخت‌افزاری نیاز دارید

برای استنتاج محلی جدی، حداقل عملی ۱۶ گیگابایت حافظه یکپارچه (در Apple Silicon) یا ۱۶ گیگابایت RAM با یک GPU مجزا است. این مقدار به طور راحت مدل‌های Llama 3.1 8B، Mistral 7B و Phi-3 Medium را در کاهش دقت Q4 پوشش می‌دهد. یک MacBook Pro M3 Pro با ۱۸ گیگابایت حافظه یکپارچه می‌تواند Llama 3.1 8B را با سرعت ۳۵ تا ۴۵ Token در ثانیه اجرا کند — به اندازه‌ای سریع که گلوگاه خواندن باشد، نه انتظار.

برای مدل‌های ۷۰ میلیارد پارامتری، به Mac Studio با ۶۴+ گیگابایت حافظه یکپارچه، یک ایستگاه کاری با ۲× RTX 4090 GPU (مجموعاً ۴۸ گیگابایت VRAM) یا یک سرور با GPUهای حافظه بالا نیاز دارید. این پیکربندی‌ها دیگر عجیب و غریب نیستند — Mac Studio ۶۴ گیگابایتی زیر ۲,۰۰۰ دلار قیمت دارد و نرم‌افزار اجرای آن‌ها رایگان است.

اگر سریع‌ترین پاسخ ممکن را روی سخت‌افزار معمولی می‌خواهید، با ollama run phi3:mini شروع کنید، یا برای مدلی که وظایف پیچیده استدلال و کدنویسی را انجام می‌دهد، ollama run llama3.1:8b را امتحان کنید. هر دو در عرض چند دقیقه دانلود می‌شوند و بدون هیچ پیکربندی اجرا می‌شوند. زیرساختی که هوش مصنوعی را برای هر کسی بدون حساب ابری غیرقابل دسترس می‌کرد، از بین رفته است — سؤال اکنون این است که با آن چه چیزی بسازیم.

اشتراک‌گذاری:
مدل‌های زبانی بزرگ با کاهش دقت اکنون روی لپ‌تاپ ۱۶ گیگابایتی اجرا می‌شوند — و فاصله با مدل‌های ابری را کاهش می‌دهند | IRCNF - Intelligent Reliable Custom Next-gen Frameworks