Google Vizier سیستم عملی برای بهینهسازی جعبه سیاه بر روی توابع هدف و فراپارامترها در سراسر Google است که برخی از بزرگترین تلاشهای تحقیقاتی Google را انجام داده و طیف گستردهای از محصولات را بهینه کرده است (مانند جستجو، تبلیغات، YouTube). برای تحقیق، نه تنها تأخیر مدل زبان را برای کاربران کاهش داده است، معماریهای کامپیوتری طراحی کرده، سختافزار را تسریع میکند، به کشف پروتئین کمک میکند و روباتیک را بهبود میبخشد، بلکه یک رابط پشتیبان قابل اعتماد برای جستجوی معماریهای عصبی و تکامل الگوریتمهای یادگیری تقویتی برای کاربران فراهم میکند. Google Vizier برای عملکرد در مقیاس بهینهسازی سیستمهای حیاتی هزاران کاربر و تنظیم میلیونها مدل یادگیری ماشین، چالشهای کلیدی طراحی را در پشتیبانی از موارد استفاده و جریانهای کاری متنوع حل کرد، در حالی که به شدت در برابر خطا مقاوم بود.
امروز ما مشتاقیم که Vizier منبع باز (OSS) را معرفی کنیم (همراه با کاغذ سفید سیستم های منتشر شده در کنفرانس AutoML 2022)، یک بسته پایتون مستقل مبتنی بر Google Vizier. OSS Vizier برای دو هدف اصلی طراحی شده است: (1) مدیریت و بهینه سازی آزمایش ها در مقیاس به روشی قابل اعتماد و توزیع شده برای کاربران، و (2) توسعه و الگوریتم های معیار برای محققان یادگیری ماشین خودکار (AutoML).
طراحی سیستم
OSS Vizier با داشتن یک سرور ارائه خدمات، یعنی بهینه سازی اهداف یا توابع جعبه سیاه از چندین مشتری، کار می کند. در گردش کار اصلی، یک کلاینت یک فراخوان رویه از راه دور (RPC) می فرستد و یک پیشنهاد می خواهد (یعنی یک ورودی پیشنهادی برای تابع جعبه سیاه مشتری)، که از آن سرویس شروع به ایجاد یک کارگر برای راه اندازی یک الگوریتم می کند (یعنی یک سیاست پیتی) برای محاسبه پیشنهادات زیر. سپس پیشنهادات توسط مشتریان ارزیابی میشوند تا مقادیر و اندازهگیریهای هدف مربوطه خود را تشکیل دهند که به سرویس ارسال میشوند. این خط لوله چندین بار تکرار می شود تا یک مسیر تنظیم کامل را تشکیل دهد.
استفاده از کتابخانه همه جا حاضر gRPC، که با اکثر زبان های برنامه نویسی مانند C++ و Rust سازگار است، حداکثر انعطاف پذیری و سفارشی سازی را می دهد، جایی که کاربر می تواند کلاینت های سفارشی و حتی الگوریتم های خود را خارج از رابط پیش فرض پایتون بنویسد. از آنجایی که کل فرآیند در یک دیتا استور SQL ذخیره میشود، پس از خرابی، بازیابی روان تضمین میشود و الگوهای استفاده را میتوان بهعنوان مجموعه دادههای ارزشمند برای تحقیق در مورد روشهای فرا یادگیری و انتقال چند وظیفهای مانند OptFormer و HyperBO ذخیره کرد.
![]() |
در خط لوله توزیع شده، چندین مشتری هر کدام یک درخواست “پیشنهاد” را به سرویس API ارسال می کنند، که پیشنهاداتی را برای مشتریان با استفاده از Pythia تولید می کند. مشتریان این پیشنهادات و اندازه گیری های بازگشتی را ارزیابی می کنند. همه تراکنش ها ذخیره می شوند تا امکان تحمل خطا فراهم شود. |
استفاده
به دلیل تاکید OSS وزیر به عنوان یک سرویس، که در آن مشتریان می توانند در هر نقطه از زمان درخواست ها را به سرور ارسال کنند، بنابراین برای طیف گسترده ای از سناریوها طراحی شده است – بودجه ارزیابی ها، یا آزمایش های، می تواند از ده ها تا میلیون ها متغیر باشد و تأخیر ارزیابی می تواند از ثانیه تا هفته متغیر باشد. ارزیابی ها را می توان به صورت ناهمزمان (به عنوان مثال، تنظیم یک مدل ML) یا در دسته های همزمان (به عنوان مثال، تنظیمات آزمایشگاهی مرطوب شامل چندین آزمایش به طور همزمان) انجام داد. علاوه بر این، ارزیابی ها ممکن است به دلیل خطاهای گذرا شکست بخورند و دوباره امتحان شوند، یا ممکن است به دلیل خطاهای مداوم شکست بخورند (مثلاً ارزیابی غیرممکن است) و نباید دوباره امتحان شوند.
این به طور گسترده از انواع برنامههای کاربردی پشتیبانی میکند، که شامل تنظیم فراپارامتر مدلهای یادگیری عمیق یا بهینهسازی اهداف غیر محاسباتی است، که میتواند به عنوان مثال، فیزیکی، شیمیایی، بیولوژیکی، مکانیکی یا حتی ارزیابیشده توسط انسان باشد، مانند دستور العملهای کوکی.
![]() |
OSS Vizier API به توسعهدهندگان اجازه میدهد تا (1) بستههای دیگر را با PyGlove و Vertex Vizier ادغام کنند، و (2) کاربران آزمایشهای خود را بهینه کنند، مانند خطوط لوله یادگیری ماشین و دستور العملهای کوکی. |
ادغام ها، الگوریتم ها و معیارها
از آنجایی که Google Vizier به شدت با بسیاری از فریمورکها و محصولات داخلی Google ادغام شده است، OSS Vizier طبیعتاً به شدت با بسیاری از چارچوبهای منبع باز و خارجی Google ادغام میشود. مهمتر از همه، OSS Vizier به عنوان یک پشتیبان توزیعشده برای PyGlove عمل میکند تا امکان جستجوهای تکاملی در مقیاس بزرگ را بر روی عناصر اولیه ترکیبی مانند معماریهای عصبی و الگوریتمهای یادگیری تقویتی فراهم کند. علاوه بر این، OSS Vizier یک API مبتنی بر کلاینت را با Vertex Vizier به اشتراک میگذارد و به کاربران اجازه میدهد تا به سرعت بین سرویسهای منبع باز و با کیفیت تولید مبادله کنند.
برای محققان AutoML، OSS Vizier همچنین با مجموعه مفیدی از الگوریتمها و معیارها (یعنی توابع هدف) که تحت APIهای رایج برای ارزیابی نقاط قوت و ضعف روشهای پیشنهادی متحد شدهاند، مجهز شده است. مهمتر از همه، از طریق TensorFlow Probability، محققان اکنون میتوانند از الگوریتم Gaussian Process Bandit مبتنی بر JAX، بر اساس الگوریتم پیشفرض در Google Vizier که اهداف کاربران داخلی را تنظیم میکند، استفاده کنند.
منابع و جهت گیری آینده
ما پیوندهایی به پایگاه کد، اسناد و کاغذ سفید سیستم ها ارائه می دهیم. ما قصد داریم به کاربران اجازه مشارکت، به ویژه در قالب الگوریتم ها و معیارها را بدهیم، و بیشتر با اکوسیستم منبع باز AutoML ادغام شود. در ادامه، امیدواریم OSS Vizier را به عنوان ابزاری اصلی برای گسترش تحقیق و توسعه بر روی بهینه سازی جعبه سیاه و تنظیم هایپرپارامتر ببینیم.
سپاسگزاریها
OSS Vizier توسط اعضای تیم Google Vizier با همکاری تیم TensorFlow Probability: ستاره آریافر، لیور بلنکی، امیلی فرتیگ، دانیل گولووین، تزو-کو هوانگ، گرگ کوچانسکی، چانسو لی، ساگی پرل، آدریان ریس، زینگیو ( ریچارد) سونگ و ریچارد ژانگ.
علاوه بر این، از Srinivas Vasudevan، Jacob Burnim، Brian Patton، Ben Lee، Christopher Suter و Rif A. Saurous برای ادغام های بیشتر TensorFlow Probability، Daiyi Peng و Yifeng Lu برای ادغام PyGlove، Hao Li برای ادغام Vertex/Cloud، Yingjie Mia تشکر می کنیم. برای ادغام AutoRL، Tom Hennigan، Varun Godbole، Pavel Sountsov، Alexey Volkov، Mihir Paradkar، Richard Belleville، Bu Su Kim، Vytenis Sakenas، Yujin Tang، Yingtao Tian و Yutian Chen برای کمک منبع باز و زیرساخت، و جورج دال، الکساندرا فاوست، کلر کوی و زوبین قهرمانی برای گفتگو.
در نهایت از تام اسمال برای طراحی انیمیشن این پست تشکر می کنیم.