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

چگونه ۲۰۷ کرنل متن‌باز WebGPU مرورگر دسکتاپ را به موتور استنتاج محلی هوش مصنوعی تبدیل می‌کنند

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

به قلم آرش رضایی

این خبر را به اشتراک بگذارید

به‌طور خلاصه

  1. هاگینگ فیس (Hugging Face) ۲۰۷ کرنل متن‌باز WebGPU را برای امکان‌پذیر ساختن استنتاج محلی هوش مصنوعی مستقیماً در مرورگرهای دسکتاپ منتشر کرد.
  2. این کرنل‌ها با دور زدن سرورهای راه دور، قالب‌های زبان سایه‌زن WebGPU را مستقیماً روی سخت‌افزار گرافیکی محلی کاربر کامپایل می‌کنند.
  3. بنچمارک‌های انجام‌شده روی پردازنده گرافیکی Apple M4 نشان‌دهنده افزایش سرعت ۲.۵۷ برابری (میانگین هندسی) نسبت به روش‌های موجود استنتاج مبتنی بر وب است.

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

در ۱ سپتامبر ۲۰۲۶، هاگینگ فیس (Hugging Face) کتابخانه جاوااسکریپت `@huggingface/kernels` را برای بارگذاری و اجرای این عملیات منتشر کرد. مجموعه اولیه شامل ۲۰۷ کرنل WebGPU با مجوز Apache-2.0 است که ریاضیات بنیادی پس‌زمینه یادگیری ماشین مدرن، مانند سافت‌مکس (softmax)، نرمال‌سازی لایه و جمع عنصر به عنصر را پوشش می‌دهد.[1][5]

اکنون توسعه‌دهندگان به جای تکیه بر یک محیط اجرای یکپارچه یا یک سرور راه دور، می‌توانند عملیات‌های نسخه‌بندی‌شده و خودتوصیف‌گر را مستقیماً از هاب هاگینگ فیس دریافت کنند. تیم WebAI هاگینگ فیس در این باره می‌گوید: «این ساختار، یک سایه‌زن را به یک مصنوع نرم‌افزاری قابل استفاده مجدد تبدیل می‌کند» و به توسعه‌دهندگان اجازه می‌دهد تا رابط‌ها را بدون نیاز به خواندن کدهای خام WGSL بررسی کنند.[1]

این سازوکار بر پایه WebGPU استوار است؛ یک رابط برنامه‌نویسی کاربردی (API) که توانمندی‌های محاسباتی خام واحد پردازش گرافیکی (GPU) دستگاه را در اختیار برنامه‌های تحت وب قرار می‌دهد. رابط WebGPU که به عنوان جانشین WebGL طراحی شده است، به شکل کارآمدی با APIهای گرافیکی بومی مدرن مانند Vulkan، Metal و Direct3D 12 نگاشت می‌شود و پشتیبانی درجه‌یکی را برای محاسبات همه‌منظوره، فراتر از صرفاً رندر کردن تصاویر، ارائه می‌دهد.[2][3][6]

مسیر اجرای یک کرنل WebGPU در داخل یک مرورگر مدرن.

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

یک مدل زبانی کامل، هزاران مورد از این کرنل‌ها را به هم زنجیر می‌کند تا یک پاسخ تولید کند. از نظر تاریخی، اجرای این عملیات نیازمند نصب محیط‌های بومی پایتون، دانلود فریم‌ورک‌های عظیم یا ارسال داده‌های کاربر به یک API ابری بود.[4]

استنتاج ابری در هر تعامل صدها میلی‌ثانیه تاخیر شبکه ایجاد می‌کند و کاربر را مجبور می‌سازد داده‌های خود را واگذار کند. رویکرد مبتنی بر کرنل WebGPU، رفت‌وبرگشت در شبکه را به طور کامل حذف می‌کند. مرورگر قالب‌های WGSL را دریافت کرده و کتابخانه آن‌ها را به صورت پویا بر اساس قابلیت‌های سخت‌افزاری خاص دستگاه کاربر کامپایل می‌کند.[1][2][4]

شواهد عملکردی از نسخه اولیه، نشان‌دهنده افزایش سرعت چشمگیری نسبت به روش‌های موجود استنتاج مبتنی بر وب است. هاگینگ فیس این ۲۰۷ کرنل را در برابر پیاده‌سازی ONNX Runtime Web در ۸۰۹ مورد آزمایشی روی پردازنده گرافیکی Apple M4 بنچمارک کرد.[1]

نتایج نشان‌دهنده افزایش سرعت ۲.۵۷ برابری در میانگین هندسی و بهبود ۱.۹۰ برابری در میانه بود. در عملیات‌های خاص، این دستاوردها حتی بزرگ‌تر بودند: جمع عنصر به عنصر ۳.۵۲ برابر و نرمال‌سازی لایه ۲.۲۲ برابر سریع‌تر اجرا شدند.[1]

بنچمارک‌های عملکرد کرنل‌های جدید WebGPU در مقایسه با روش‌های موجود استنتاج مبتنی بر وب.

در موارد استثنایی و مجزا، مانند انقباض دوخطی پیچیده، پیاده‌سازی‌های تخصصی سایه‌زن بیش از ۱۰,۰۰۰ برابر بهتر از روش‌های جایگزین عمومی عمل کردند. با این حال، این بنچمارک‌ها تنها زمان اجرای GPU را اندازه می‌گیرند و سربار بارگذاری مدل، کامپایل سایه‌زن‌ها و انتقال داده‌ها بین حافظه سیستم و GPU را در نظر نمی‌گیرند.[1][4]

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

برای مقابله با تنوع گسترده در سخت‌افزار مصرف‌کنندگان - از گرافیک‌های یکپارچه لپ‌تاپ گرفته تا پردازنده‌های گرافیکی مجزای دسکتاپ - هاگینگ فیس ابزار Fleet را نیز راه‌اندازی کرد. ابزار Fleet یک مجموعه بنچمارک درون‌مرورگری است که داده‌های مربوط به صحت و عملکرد را از دستگاه‌های واقعی در دنیای بیرون جمع‌سپاری می‌کند.[1]

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

معماری کتابخانه `@huggingface/kernels` عملیات ریاضی را از هرگونه وابستگی به محیط اجرای خاص جدا می‌کند. هر یک از ۲۰۷ کرنل به عنوان یک مخزن مستقل منتشر می‌شود که شامل یک مانیفست استاندارد، تست‌های صحت و اسکریپت‌های بنچمارک است.[1][5]

استنتاج محلی به توانمندی‌های محاسباتی واحد پردازش گرافیکی فیزیکی دستگاه متکی است.

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

حرکت به سمت استنتاج بومی مرورگر، نشان‌دهنده تغییر بنیادی در نحوه استقرار برنامه‌های هوش مصنوعی است. با انتقال محاسبات به لبه (Edge)، توسعه‌دهندگان می‌توانند برنامه‌های ترکیبی بسازند که در آن‌ها مراحل سریع و حساس به حریم خصوصی به صورت محلی اجرا می‌شوند، در حالی که وظایف سنگین و با زمینه طولانی به سرور واگذار می‌گردند.[4]

چالش مهندسی باقی‌مانده، مدیریت محدودیت‌های سخت‌گیرانه حافظه مرورگر و سطوح متفاوت پشتیبانی از WebGPU در سیستم‌عامل‌ها و درایورهای گرافیکی مختلف است. قبل از بارگذاری یک کرنل، برنامه باید بررسی کند که رابط `navigator.gpu` روی دستگاه در دسترس باشد.[1][2][4]

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

اگر سخت‌افزار پشتیبانی کند، مرورگر اکنون می‌تواند به عنوان یک محیط اجرای هوش مصنوعی کارآمد و حافظ حریم خصوصی عمل کند. انتشار این ۲۰۷ کرنل متن‌باز، بلوک‌های سازنده سطح پایینی را فراهم می‌کند که برای عملی کردن این گذار در نرم‌افزارهای تجاری ضروری هستند.[4]

اصطلاحات کلیدی

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

پرسش‌های متداول

آیا این بدان معناست که می‌توانم ChatGPT را در مرورگر خود اجرا کنم؟

نه دقیقاً. اگرچه WebGPU استنتاج محلی را امکان‌پذیر می‌کند، اما مدل‌های عظیمی مانند GPT-4 از محدودیت‌های حافظه سخت‌افزار مصرف‌کنندگان فراتر می‌روند. این فناوری برای مدل‌های کوچک‌تر و تخصصی طراحی شده است.

کدام مرورگرها از WebGPU پشتیبانی می‌کنند؟

رابط WebGPU در حال حاضر به طور پیش‌فرض در نسخه‌های مدرن کروم، اج و فایرفاکس پشتیبانی می‌شود، هرچند در دسترس بودن آن به سیستم‌عامل پایه و درایورهای گرافیکی بستگی دارد.

چرا استنتاج محلی حریم خصوصی بیشتری دارد؟

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

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

توسعه‌دهندگان WebAI

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

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

نهادهای استاندارد وب

بر استانداردسازی دسترسی به GPU در پلتفرم‌های مختلف و در عین حال کاهش خطرات امنیتی و حافظه تمرکز دارند.

سازمان‌هایی مانند W3C در درجه اول به عنوان یک چالش امنیتی و استانداردسازی به WebGPU نگاه می‌کنند. قرار دادن توانمندی‌های خام سخت‌افزاری در دسترس مرورگر وب، خطرات قابل‌توجهی از جمله دسترسی به حافظه خارج از محدوده و سوءاستفاده‌های احتمالی از درایور را به همراه دارد. نهادهای استاندارد قوانین اعتبارسنجی سخت‌گیرانه و دسترسی قوی به بافر را الزامی می‌کنند تا اطمینان حاصل شود که یک اسکریپت مخرب نمی‌تواند حافظه متعلق به برنامه‌های دیگر را بخواند. هدف آن‌ها ارائه یک رابط یکپارچه و امن است که به طور مداوم در ویندوز، مک‌اواس و لینوکس، صرف‌نظر از سخت‌افزار پایه، کار کند.

نگهدارندگان متن‌باز

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

برای نگهدارندگان کتابخانه‌های متن‌باز، چالش اصلی مدیریت پیچیدگی همزمان با گسترش اکوسیستم است. با بسته‌بندی هر یک از ۲۰۷ کرنل به عنوان یک مخزن مستقل و نسخه‌بندی‌شده، نگهدارندگان اطمینان حاصل می‌کنند که به‌روزرسانی در یک عملیات ریاضی خاص، برنامه‌های پایین‌دست را از کار نمی‌اندازد. این معماری ماژولار به جامعه کاربری اجازه می‌دهد تا سایه‌زن‌های فردی را به طور مستقل بررسی، بنچمارک و در توسعه آن‌ها مشارکت کنند. این امر همچنین فریم‌ورک‌های سطح بالاتر را قادر می‌سازد تا به یک قرارداد پایدار جاوااسکریپت تکیه کنند، در حالی که پیاده‌سازی‌های زیرین WebGPU تکامل می‌یابند.

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

دیدگاه‌هایی که این گزارش پوشش نداده

  • کاربران نهایی با سخت‌افزار ضعیف
  • توسعه‌دهندگان مرورگرهای موبایل

منابع

پوشش منابع

6 منبع

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

توسعه‌دهندگان WebAI 40%نهادهای استاندارد وب 35%نگهدارندگان متن‌باز 25%
  1. [1]Hugging Face Blogتوسعه‌دهندگان WebAI

    Introducing @huggingface/kernels: 200+ WebGPU Kernels for Local AI

    مطالعه در Hugging Face Blog →
  2. [2]MDN Web Docsنهادهای استاندارد وب

    WebGPU API

    مطالعه در MDN Web Docs →
  3. [3]W3Cنهادهای استاندارد وب

    WebGPU

    مطالعه در W3C →
  4. [4]تیم سردبیری کوهستانتوسعه‌دهندگان WebAI

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

    مطالعه در تیم سردبیری کوهستان →
  5. [5]GitHubنگهدارندگان متن‌باز

    huggingface/kernels

    مطالعه در GitHub →
  6. [6]Wikipediaنهادهای استاندارد وب

    WebGPU

    مطالعه در Wikipedia →

نظرات

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

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

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