ارتقاء برنامه‌نویسی هوش مصنوعی با استفاده از Gluon

به منظور دستیابی به نتیجه‌ی مطلوب در سیستم‌های یادگیری هوش مصنوعی، استفاده از پروسه‌ی Fine-Tuning و Knob-Twiddling برای مدت طولانی کاملا ضروری بود و این امر استفاده از این سیستم‌ها را بسیار پیچیده می‌نمود. تلاش مشترک مایکروسافت و سرویس وب آمازون برای تسهیل استفاده از  سیستم‌های یادگیری، تحت عنوان Gluon نام‌گذاری شده است که با اعمال آن بر Frameworkهای Apache MXNet و Microsoft’s Cognitive Toolkit، می‌توان فرایند آموزش شبکه بصورت Deep-Learning را در این سیستم‌ها بهینه‌سازی نمود.

شبکه‌های عصبی مصنوعی یا Neural Networkها همانند سیستم‌های Deep-Learning، کار خود را در 3 مرحله انجام می‌دهند:

  1. Developerهای برنامه، رفتار شبکه را Hard-Code می‌نمایند.
  2. Developerهای برنامه به منظور دستیابی به نتایج مطلوب با تغییر تنظیمات، نحوه‌ی ارزیابی و به کار بردن داده‌ها را تنظیم می‌نمایند.
  3. سپس جهت ارائه پیش‌بینی از شبکه‌ تکمیل شده استفاده می‌گردد.

مشکل مراحل 1 و 2 خسته‌کننده بودن و عدم انعطاف‌پذیری آن‌ها می‌باشد؛ علاوه بر اینکه Hard-Code کردن یک شبکه بسیار آهسته می‌باشد، تغییر آن کدها برای بهبود عملکرد شبکه نیز آهسته خواهد بود. به همین ترتیب یافتن بهترین فضا برای استفاده در یک شبکه‌، نیز باید بصورت خودکار انجام گردد.

Gluon راهکاری برای نوشتن شبکه‌های عصبی در هوش مصنوعی ارائه می‌دهد که بیشتر مشابه Datasetها (و نه کدها) تعریف می‌شوند. یک Developer برنامه می‌تواند با استفاده از الگوهای مشترک مانند زنجیره‌ای از لایه‌های شبکه عصبی، شبکه‌ای را به صورت قطعی معرفی نماید. انتظار می‌رود که کد Gluon، پروسه نوشتن و درک آسانی داشته و از ویژگی‌های Native در زبانِ مورد استفاده (همچون  Context Managers در زبان Python)، بهره‌برداری نماید.

نحوه استفاده‌ی Developer از Gluon

تسهیل تعریف شبکه و اصلاح آن، اصلی‌ترین راهکار Gluon برای کمک به Developer می‌باشد.

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

هم در MXNet و هم در Cognitive Toolkit کدهای نوشته شده در Gluon می‌توانند از GPU تسریع شده‌ با قابلیت‌های بالا و همچنین ویژگی‌های پردازش توزیعی استفاده نمایند، بنابراین عملیات آموزشی می‌توانند در تمامی Nodeهای چندگانه توزیع گردند. بنا به گفته سازندگان Gluon ، این راهکار جدید در مقایسه با رویکردهای قدیمی، قابلیت انجام این عملیات را بدون کوچک‌ترین کم و کاستی دارا می‌باشد.

در حال حاضر Gluon قابلیت کار کردن با MXNet را دارا می‌باشد و زبان برنامه‌نویسیPython  و Front Endهای بعدیِ MXNet از کتابخانه‌هایGluon  پشتیبانی می‌نمایند. همچنین Gluon به منظور تسریع پردازش CPU مرکزی، با نسخه GPU تسریع شده‌ی MXNet  و همچنین افزونه‌های Intel Math Kernel Library کار می‌کند.

مایکروسافت هنوز نسخه Microsoft Cognitive Toolkit که از Gluon پشتیبانی کند را منتشر نکرده است، اما پیش‌بینی می‌شود که در نسخه بعدی Toolkit، پشتیبانی از Gluon را نیز بگنجاند.