روبات هوشمند گوگل میتواند خودش را برنامهریزی کند
در مورد برنامهنویسی خودکارِ روبات هوشمند، همه ما آن سکانس معروف فیلم ترمیناتور را دیدهایم، که روبات هوشمند و معروف تی۸۰۰ زمانی که زیر حملات حریف گردنش خرد میشود و پردازشگر و حافظهاش از کار میافتد، پس از مدتی سیستمش دوباره شروع بهکار و خود را بازنویسی میکند، در حقیقت این روبات هوشمند دوباره از اول کدهای خود را برنامهنویسی میکند. آنچه در این سکانس اتفاق میافتاد را تا قبلازاین شما تنها در سینمای علمی-تخیلی میتوانستید ببینید، ولی حالا ابرشرکت گوگل روبات هوشمندی ساختهاست که میتواند خودش را برنامهنویسی کند.
برنامهنویسی روباتیک میتواند یک چالشِ سخت باشد. حتی زبانهای نسبتاً آسانی مانند HTML نیز برای آنکه درست نوشتهشوند به یک برنامهنویس حرفهای نیاز دارند، روبات هوشمند که دیگر جای خودش را دارد. کدنویسی برای برنامهنویسی روباتیک بسیار سختتر است و بسیار بیشتر به یک برنامهنویس روباتیک حرفهای نیاز دارد؛ برنامهنویسی روباتیک اغلب مراحل متعددی دارد: یک مجموعه کد برای تشخیص اشیا، یک مجموعه کد برای فعالکردنِ محرکهای اندامهای روباتیک، یک مجموعه کد برای تعیین زمانِ تکمیل مأموریت و غیره. اگر زبان برنامهنویسی روباتیک را ندانید، حتی نمیتوانید به روبات هوشمند بفهمانید که بهجای سوژه زرد، سوژه قرمز را بردارد.
حال پژوهشگران برنامهنویسی روباتیک در شرکت گوگل، راهی را بررسی میکنند که این مشکل را حلکند. آنها روبات هوشمندی ساختهاند که میتواند برنامهنویسی روباتیک خود را بر اساس دستورالعملهای زبانِ طبیعی انجامدهد. مثلاً بهجای یکعالمه برنامهنویسی سخت، میتوانید فقط تایپ کنید «بلوک زرد را بردارید» و روبات هوشمند خودش بقیه کارها را انجام دهد.
در حقیقت کاری که پژوهشگران گوگل انجام دادهاند ایناست که روشی طراحی کردهاند که میتواند زبان طبیعی و دستوری انسان را به کدهای برنامهنویسی روباتیک تبدیل کند. کد بهعنوان سیاستها که به اختصار بهآن CaP میگویند، یک مدل از زبانِ ویژه کدنویسی است که از مدل زبانِ مسیرهای Google (PaLM) برای تفسیر دستورالعملهای زبان طبیعی و تبدیل آنها به کدهای برنامهنویسی روباتیک استفادهمیکند.
پژوهشگران گوگل با ارائه نمونه دستورالعملهایی که «بهعنوان نظرات کدنویسیشده قالببندی شدهاند و توضیحمیدهد هر دستوری چه میکند» آن کد مربوطه را با مدل خاص خود آموزشدادند.
مهندسان گوگل در پست وبلاگ پژوهشهای گوگل که اینهفته منتشرشد، توضیحدادهاند که ازآنپس، روبات هوشمند گوگل توانسته دستورالعملهای جدیدی بگیرد و بهطور خودکار کد جدیدی تولید کند که فراخوانهای API را دوباره ترکیب، توابع جدید را ترکیب و حلقههای بازخورد را برای جمعآوری رفتارهای جدید در زمان اجرا بیان میکند. بهعبارتدیگر، باتوجه بهیک اعلانِ نظر، روبات هوشمند میتواند برنامهنویسی روباتیک احتمالی را ارائهدهد.
نمونهای از کارکرد برنامهنویسی روباتیک هوشمند:
برای واداشتن Cap بهنوشتن برنامهنویسی روباتیک جدید برای کارهای خاص، تیم بهآن نکات جدیدی مانند آنچه APIها یا ابزارهای در دسترس و چند نمونه کدِ دستوری اضافهکردهاست؛ از آن پس، بود که روبات هوشمند گوگل توانست کد جدیدی را برای دستورالعمل های جدید بنویسد.
این روبات هوشمند اینکار را با استفاده از «تولید کد سلسله مراتبی» انجام میدهد و از آن میخواهد تا بهصورت بازگشتی توابع جدید را تعریفکند؛ پایگاه دادههای خود را در طولِ زمان انباشتهکند و یک پایگاهِ کد پویا را خود طراحی کند.
این بهاینمعنی است که با یک مجموعه از دستورالعملها، میتواند کدی ایجادکند که بعداً برای دستورالعملهای مشابه، دوبارهاستفادهشوند.
هماکنون CaP هنوز در کارهایی که انجام میدهد، بسیار محدود است. این زبان بر مدلِ زبانی که مبتنی بر آن است، تکیه میکند تا زمینه دستورالعملهای خود را ارائهدهد. اگر آنها منطقی نباشند یا از پارامترهایی استفادهکنند که پشتیبانی نمیشود، روبات هوشمند هم نمیتواند برنامهنویسی روباتیک آن را انجامدهد. بهطور مشابه، ظاهراً فقط میتواند تعداد معدودی از پارامترها را در یک اعلان مدیریتکند. توالی پیچیدهتری از اقدامات که به دهها پارامتر نیاز دارند، ممکن نیست. نگرانیهای ایمنی نیز وجود دارند: برنامهنویسی روباتیک برای نوشتن کدهای روبات هوشمند، کمی شبیه Skynet در فیلم ترمیناتور است. شاید روبات هوشمند، فکر کند بهترین راه برای رسیدن به هدفش قتلعام انسانها باشد، آنوقت ممکناست اینکار را انجامدهد.