fbpx
-10.5 C
София

Google тества нов робот, който може да се програмира сам

Най-четени

Писането на работещ код може да е предизвикателство, особено в някои по-сложни проекти. Писането на код за управление на роботи със сигурност е такъв случай. Процесът често се състои от няколко стъпки: Има код за откриване на обекти, код за задействане на изпълнителните механизми, които движат крайниците на робота, код за определяне на момента на завършване на задачата и т.н. 

Нещо видимо просто като програмирането на робот да вземе жълто блокче вместо червено се оказва сериозен процес.

Но изследователите на Google в областта на роботиката проучват начин да поправят това. Те са разработили робот, който може да пише свой собствен програмен код въз основа на инструкции на естествен език. Вместо да се ровите в конфигурационните файлове на робота, за да промените block_target_color от #FF0000 на #FFFF00, можете просто да напишете „вземи жълтото блокче“ и роботът ще свърши останалото. 

Code as Policies (или накратко CaP) е специфичен за кодирането езиков модел, разработен на базата на Pathways Language Model (PaLM) на Google

Той интерпретира инструкциите на естествен език и ги превръща в код, който може да се изпълнява. Изследователите на Google обучават модела, като му дават примери за инструкции и съответния код. Инструкциите са оформени като коментари на кода, написани от разработчиците, за да обяснят какво прави кодът за всеки, който го преглежда.

Въз основа на това той е в състояние да вземе нови инструкции и автономно да генерира нов код, който прекомпозира API повиквания, синтезира нови функции и цикли, за да сглоби ново поведение по време на изпълнение.

С други думи, при задаване на подкана, подобна на коментар, той може да измисли някакъв вероятен код за задачата.

За да накарат CaP да напише нов код за конкретни задачи, екипът му предоставил „подсказки“ – като например какви API или инструменти са му достъпни, и няколко двойки примери за инструкции към кода. Въз основа на това той е бил в състояние да напише нов код за нови инструкции. 

Той прави това с помощта на „йерархично генериране на код“, което го подтиква „рекурсивно да дефинира нови функции, да натрупва собствени библиотеки с течение на времето и да самоизгражда динамична база от кодове“.

Това означава, че ако веднъж му се даде един набор от инструкции, той може да разработи определен код, който след това да пренасочи за подобни инструкции по-късно.

CaP може също така да използва аритметичните операции и логиката на конкретни езици.

Например, модел, обучен на Python, може да използва съответните if/else и for/while цикли, когато е необходимо, и да използва библиотеки на трети страни за допълнителна функционалност. 

Той може също така да превръща двусмислени описания като „по-бързо“ и „наляво“ в точни числови стойности, необходими за изпълнение на задачата. И тъй като CaP е изграден върху обикновен езиков модел, той има няколко функции, които не са свързани с кода – като разбиране на емоджита и различни човешки езици. 

Засега CaP все още е много ограничен в това, което може да прави. 

Той разчита на езиковия модел, на който е базиран, за да осигури контекст на инструкциите си. Ако те нямат смисъл или използват параметри, които той не поддържа, той не може да напише код. По същия начин той очевидно може да управлява само няколко параметъра в една команда. По-сложни последователности от действия, които изискват десетки параметри, просто не са възможни. Съществуват и проблеми с безопасността. Програмирането на робот, който да пише собствен код, е нещо като Скайнет. Ако роботът смята, че най-добрият начин за изпълнение на задачата е да се върти много бързо с протегната ръка, а наблизо има човек, някой може да пострада. 

Все пак това е изключително вълнуващо изследване. 

При роботите една от най-трудните задачи е да обобщят обученото си поведение. Програмирането на робот да играе пинг-понг не го прави способен да играе други игри като бейзбол или тенис. Въпреки че CaP все още е на километри от такива широки приложения в реалния свят, той позволява на робота да изпълнява широк спектър от сложни роботизирани задачи без обучение за конкретна задача. Това е голяма крачка в посока на това един ден робот, който може да играе една игра, да бъде научен да играе друга – без да се налага всичко да се преработва в нов код, написан от човек.


Коментирайте статията в нашите Форуми. За да научите първи най-важното, харесайте страницата ни във Facebook, и ни последвайте в Telegram и Viber или изтеглете приложението на Kaldata.com за Android, iOS и Huawei!

Абонирай се
Извести ме за
guest

6 Коментара
стари
нови оценка
Отзиви
Всички коментари

Нови ревюта

Подобни новини