مدلهای زبان بزرگ (LLM) و هوش مصنوعی مولد حوزه یادگیری ماشینی را متحول کرده است و به توسعهدهندگان اجازه میدهد مدلهای مبتنی بر زبان قوی و دقیق طراحی کنند. با این حال، استقرار و اجرای LLM ها می تواند زمان بر و دشوار باشد و به سخت افزار قدرتمند و تکنیک های بهینه سازی نیاز دارد. در این مقاله، به ایده MLC LLM، مزایای آن و نحوه استفاده از آن برای ساخت سیستمهای هوش مصنوعی مقیاسپذیر و کارآمد خواهیم پرداخت.
MLC LLM چیست؟
در سالهای اخیر، هوش مصنوعی مولد (AI) و مدلهای زبان بزرگ (LLM) پیشرفتهای چشمگیری داشتهاند و به طور گستردهتری مورد استفاده قرار میگیرند. این مدلها اکنون ممکن است برای ساخت کمکهای هوش مصنوعی شخصی به لطف پروژههای منبع باز مورد استفاده قرار گیرند. از سوی دیگر، LLM ها اغلب منابع فشرده هستند و نیاز به مقدار زیادی انرژی کامپیوتر دارند. برای ارائه یک سرویس مقیاس پذیر، توسعه دهندگان ممکن است نیاز داشته باشند که برای استنتاج مدل به خوشه های قوی و سخت افزار پرهزینه تکیه کنند. علاوه بر این، استقرار LLM چالشهایی مانند نوآوری مداوم مدل، محدودیتهای حافظه، و نیاز به تکنیکهای بهینهسازی بالقوه را به همراه دارد.
هدف این برنامه ایجاد، بهبود و استقرار مدلهای هوش مصنوعی برای استنباط در دستگاههای مختلف، از جمله نه تنها سختافزار کلاس سرور، بلکه مرورگرها، لپتاپها و برنامههای تلفن همراه کاربران است. برای دستیابی به این هدف، ما باید به ویژگی های مختلف تجهیزات محاسباتی و همچنین شرایط استقرار بپردازیم. از جمله چالش های کلیدی عبارتند از:
کمک به چندین مدل CPU و GPU و احتمالاً سایر پردازندهها و شتابدهندههای مشترک.
پیادهسازی در محیط بومی دستگاههای کاربر، که ممکن است پایتون یا سایر وابستگیهای مورد نیاز به راحتی قابل دسترسی نباشد.
مدیریت محدودیت های حافظه با تخصیص و فشرده سازی دقیق پارامترهای مدل.
MLC LLM به توسعهدهندگان و محققین سیستم هوش مصنوعی فرآیندی انعطافپذیر، سیستماتیک و قابل تکرار را ارائه میدهد که کارایی را در اولویت قرار میدهد و رویکرد اول پایتون برای ساخت مدلها و بهینهسازیها را در اولویت قرار میدهد. این تکنیک آزمایش سریع مدلها، ایدهها و پاسهای کامپایلر را امکانپذیر میسازد که منجر به استقرار بومی برای اهداف مناسب میشود. علاوه بر این، ما دائماً شتاب LLM را با گسترش پشتیبانهای TVM بهبود میبخشیم تا شفافیت و کارایی تلفیقی مدل را بهبود ببخشیم.
چگونه MLC استقرار بومی جهانی را فعال می کند؟
در قلب رویکرد ما، گردآوری یادگیری ماشین (MLC) است که از آن برای استقرار مدل های هوش مصنوعی را خودکار کنید. برای انجام این کار، ما به انواع اکوسیستم های منبع باز، از جمله توکن سازهای ارائه شده توسط Hugging Face و Google، و همچنین LLM های منبع باز مانند Llama، Vicuna، Dolly، MOSS و دیگران وابسته هستیم. فرآیند اولیه ما حول Apache TVM Unity می چرخد، یک ابتکار جالب در حال انجام در داخل انجمن Apache TVM.
شکل پویا: ما یک مدل زبان را بهعنوان یک TVM IRModule با پشتیبانی از شکل پویا بومی میسازیم، که نیاز به بالشتک اضافی تا حداکثر طول را حذف میکند و هم مقدار محاسبات و هم استفاده از حافظه را کاهش میدهد.
بهینهسازیهای کامپایل ML قابل ترکیب: بسیاری از بهینهسازیهای استقرار مدل، مانند تبدیل کد کامپایل بهتر، ادغام، برنامهریزی حافظه، بارگیری کتابخانه و بهینهسازی کد دستی، میتوانند به راحتی به عنوان تبدیلهای IRModule TVM در معرض نمایش قرار گیرند. APIهای پایتون.
کوانتیزهسازی: برای فشردهسازی وزنهای مدل، از کوانتیزهسازی کم بیت استفاده میکنیم و از TensorIR سطح حلقه TVM استفاده میکنیم تا به راحتی مولدهای کد را برای استراتژیهای فشردهسازی چندگانه سفارشی کنیم.
زمان اجرا: کتابخانههای ایجاد شده نهایی در محیط اصلی کار میکنند، با یک زمان اجرا TVM که وابستگیهای کمی دارد و از چندین API درایور GPU و همچنین پیوندهای زبان مادری (C، جاوا اسکریپت و غیره) پشتیبانی میکند. ).
علاوه بر این، یک برنامه CLI نمونه سبک مبتنی بر C++ را شامل میشویم که نحوه جمعبندی موارد کامپایلشده و پردازش مناسب قبل/پس از آن را نشان میدهد، که باید به سادهسازی گردش کار برای جاسازی آنها در برنامههای بومی کمک کند.
MLC LLM سایهبانهای GPU را برای CUDA، Vulkan و Metal به عنوان نقطه شروع ایجاد میکند. پشتیبانی بیشتر مانند OpenCL، sycl و webgpu-native را می توان با بهبود کامپایلر TVM و زمان اجرا اضافه کرد. MLC همچنین از انواع هدف های CPU، از جمله ARM و x86، از طریق LLVM پشتیبانی می کند.
ما به شدت به اکوسیستم منبع باز، به ویژه هدف TVM Unity، یک توسعه جدید و هیجانانگیز در پروژه TVM که تجربههای توسعه تعاملی MLC LLM اولین پایتون را قادر میسازد، به ما امکان میدهد به راحتی بهینهسازیهای جدید را همه در پایتون بسازیم و بهصورت تدریجی خود را بیاوریم. برنامه به محیط مورد علاقه ما همچنین از بهینهسازیهایی از جمله هستههای کوانتیزاسیون ذوب شده، پشتیبانی از شکل پویا درجه یک و انواع پشتیبانهای GPU استفاده کردیم.
برای نصب MLC LLM، یک برنامه CLI (واسط خط فرمان) برای چت کردن با ربات موجود در ترمینال شما ارائه می کنیم. قبل از نصب برنامه CLI، ابتدا باید برخی از وابستگی ها را نصب کنیم.
ما از Conda برای مدیریت برنامه خود استفاده می کنیم، بنابراین باید نسخه ای از conda را نصب کنیم. ما میتوانیم Miniconda یا مینی فورج.
در ویندوز و لینوکس، برنامه chatbot بر روی GPU از طریق پلتفرم Vulkan اجرا می شود. برای کاربران Windows و Linux، لطفاً آخرین درایور Vulkan را نصب کنید. برای کاربران NVIDIA GPU، لطفاً مطمئن شوید که درایور Vulkan را نصب کنید، زیرا ممکن است درایور CUDA خوب نباشد.
پس از نصب همه وابستگیها، فقط دستورالعملهای زیر را برای نصب برنامه CLI دنبال کنید:
1. ترمینال یا خط فرمان خود را باز کنید.
2. دستور زیر را برای ایجاد یک محیط جدید conda با نام “mlc-chat” تایپ کنید:
conda create -n mlc-chat
3. پس از ایجاد محیط، آن را با تایپ کردن:
فعال کنید
کاندا فعال کردن mlc-chat
4. سپس Git و Git-LFS را با استفاده از دستور زیر نصب کنید:
conda نصب git git-lfs
5. اکنون برنامه چت CLI را از Conda با استفاده از این دستور نصب کنید:
8. در نهایت، برای شروع چت با رباتی که به صورت بومی روی دستگاه شما اجرا می شود، دستور زیر را وارد کنید:
mlc_chat_cli
اکنون باید بتوانید از گپ زدن با ربات لذت ببرید!
این مقاله به شما کمک می کند تا نحوه نصب MLC LLM را در ویندوز، لینوکس و مک یاد بگیرید. ما اطمینان داریم که برای شما مفید بوده است. لطفا نظرات و انتقادات خود را در بخش نظرات زیر به اشتراک بگذارید.