본문 바로가기
  • think normal
스크랩 북

구글, 드디어 자연어 명령으로 로봇 프로그래밍이 가능한 CaP 출시

by 청춘만화 2022. 11. 7.


지난 2일, 구글은 연구 블로그를 통해 드디어 자연어 명령으로 로봇 프로그래밍이 가능한 CaP 출시를 소개했다.

그동안 로봇을 제어하는데 사용되었던 접근 방식은
1) 물체를 감지하는 코드로 로봇을 프로그래밍하고,
2) 액츄에이터를 움직이는 명령을 시퀀싱하고,
3) 로봇이 작업을 수행하는 방법을 지정하는 피드백 루프를 사용하는 것이었다. 이러한 프로그래밍 방식은 사람이 직접 관여하기 때문에 풍부한 표현이 가능하다.

하지만 스마트팩토리화 되어가는 작금의 시대에 현장에서는 한계가 있을 수 밖에 없다. 저마다의 환경에서 각각의 새로운 작업에 대한 정책을 다시 프로그래밍하려면 해당 도메인의 전문 지식을 보유한 전문인력이 필요하고 그들이 현장에 배치된 후 다시 새로운 환경에 적용할 새로운 프로그래밍이 필요하기 때문이다.
이런 상황에 대해 구글이 내놓은 가설(제안)은 '사람의 지시를 받으면 로봇이 스스로 코드를 작성하여 세상과 상호작용할 수 있다면 어떨까?' 였다.

복잡한 추론이 가능하며 수백만 줄의 코드로 훈련된 것으로 알려진 PaLM과 같은 최신 세대의 언어 모델을 활용해서 자연어 명령이 주어지면 현재 언어 모델은 일반 코드뿐만 아니라 로봇 동작도 제어할 수 있는 매우 능숙한 코드를 작성할 수 있도록 했다. 그 과정은 다음과 같다.
1) 컨텍스트 내 학습을 통해
2) 해당 코드와 쌍을 이루는 여러 예제 지침(주석 형식)이 제공되면
3) 언어 모델은 새로운 지침을 받아들이고 API 호출을 재구성하고 새 기능을 합성하고 피드백 루프를 표현
하는 형태로 새로운 코드를 '자율적'으로 생성할 수 있도록 했다.
4) 뿐만아니라, 런타임에서 각각의 새로운 동작을 '조합'할 수 있도록 함으로써 이전 보다 효율적인 확장성까지 갖추었다. 이를 통해
(i)1~3의 절차를 모듈화함으로써 프로그래밍의 '일반화'와
(ii) 로봇이 기계 학습 과정에서 인터넷을 통해 풍부한 오픈 소스 코드와 데이터까지 활용할 수 있도록 하는 대안적 접근 방식을 제안할 수 있게 되었다.

이러한 가능성을 탐색하기 위해 구글은 물리적 시스템에서 실행되는 언어 모델 생성 프로그램의 로봇 중심 공식인 정책으로서의 코드(developed Code as Policies, CaP)를 개발했고 이를 통해 단일 시스템에서 작업별 교육 없이도 복잡하고 다양한 로봇 작업을 수행하는 방안을 제안할 수 있게 되었다.



물론 이전에도 소스 코드를 자동으로 생성해주는 AI 도구는 있었다. 가장 대표적인 것이 아마도 기업의 Copilot이 아닐까 한다.
https://github.com/features/copilot/

GitHub Copilot · Your AI pair programmer

GitHub Copilot works alongside you directly in your editor, suggesting whole lines or entire functions for you.

github.com

다만 과거 깃헙(IBM)과 비교했을 때 주석 형태를 기반으로 프로그래밍 가이드를 구성하고 처리하는 방식의 아이디어는 같지만 구글은 프로그래밍 자동화를 넘어서 이를 1)정책적인 부분으로 구체화(로봇 프로그래밍 레벨에서의 표준화 지침)했다는 점과 2)모듈 형태를 통해 '일반적(보편적 확장성)' 프로그래밍 모델로 구성했다는 점에서 기업의 그것과 비교할 수 없을 정도로 시장( 실무, 현장) 친화적인 것 같다.



.. 일부 의역과 개인적인 의견이 포함되어있는 만큼, 원문 확인 권장

Robots That Write Their Own Code - https://ai.googleblog.com/2022/11/robots-that-write-their-own-code.html?m=1

Robots That Write Their Own Code

Posted by Jacky Liang, Research Intern, and Andy Zeng, Research Scientist, Robotics at Google --> --> A common approach used to control robots is to program them with code to detect objects, sequencing commands to move actuators, and feedback loops to spec

ai.googleblog.com



댓글