Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
https://www.youtube.com/watch?v=SGUCcjHTmGY

오늘 새벽에 영상을 하나 봤습니다. 자연어로 브라우저에서 돌아가는 단순한 게임을 제작하는 라이브 데모입니다. GPT-3 기반으로 자연어를 인식한 다음 자바스크립트를 학습시킨 모델에 연동시킨 것 같습니다. 자연어로 요구사항을 이야기하면 이걸 자바스크립트 코드로 바꿔주고 브라우저에서 바로 실행할 수 있는 일종의 파이썬 노트북 같은 환경에서 작업합니다. 이미지를 검색해 복사한 다음 이 이미지를 사람이라는 오브젝트로 등록해달라고 해놓고 방향키를 눌러 이 사람을 좌우로 이동하게 해달라든지, 이 사람이 화면 좌우 끝에 도달하면 그 자리에 계속 걸려있게 해달라는 등의 자연서로 요구사항을 이야기하고 이게 바로바로 자바스크립트 코드로 바뀌어 바로 실행됩니다. 이렇게 만들어진 로직 자체는 우리가 알던 게임로직 코드와 굉장히 비슷합니다. 매 틱마다 이 처리를 반복하고 이 처리를 상태로 묶어 제공하면 진짜 게임이 됩니다. 데모에서는 거기까지 가지는 않았지만 돌을 피할 때마다 점수를 얻고 랭킹을 만들고 더 나가면 온라인 점수 서버에 등록할 수 있을 지도 모릅니다.

자연어라고 놀라서 헐레벌떡 달려와 이야기했지만 사실 이들이 구사하는 자연어는 여전히 프로그래머의 언어에 조금 더 가깝습니다. 사람 이미지를 나중에 접근할 수 있는 언어로 등록하는 행동은 여전히 프로그래머들이 변수를 선언하거나 이미지 리소스를 오브젝트로 만들어 핸들을 통해 접근하는 과정을 코드 대신 자연어의 살이 좀 붙은 또 다른 언어로 이야기하는데 더 가깝습니다. 흔히 이런 언어를 멍청한 시리가 알아듣도록 말하기 위해 ‘시리어’로 말해야 하는 그것과 비슷합니다. 하지만 이건 시리어와는 비교할 수 없는 수준의 발전이고 또 엄청난 가능성이 있습니다. 우리들이 디렉터로부터 받는 요구사항을 생각해봅시다. 이 인터페이스를 이쪽에서 저쪽으로 옮겨달라든지 카메라를 좀 더 플레이어캐릭터에 가깝게 해 놓고 플레이해보자라든지 하는 식으로 요구사항 자체는 단순하지만 그 내부에는 상당한 노가다와 변경이 필요한 일들이 많습니다. 그런데 이런 비정형의 값비싼 요구사항들을 자연어에 가깝게 이야기하면 즉시 코드로 바꿔주는 도구로 작업학시 시작하면 제작 파이프라인에서 쓸모없어지는 직군이 생기기 시작할겁니다.

이 영상 끝부분에 마이크로소프트 워드 사례를 들어 이야기하고 있지만 자바스크립트 말고 다른 언어나 API를 학습스킬 수 있습니다. 이 환경이 언리얼 블루프린트를 토해내기 시작하면 무슨 일이 일어날까요. 또 이미 작성되어 있는 서버 프레임워크 위에 비즈니스로직 레이어 코드를 토해내기 시작하면 어떻게 될까요. 개발팀에 우리들이 존재하는 이유는 모호한 요구사항을 실제 리소스와 코드로 바꾸기 위함입니다. 이 과정에서 요구사항을 말하는 사람(애자일 방법론에서 고객)과 우리들이 사용하는 언어가 서로 달라 문제가 생기고 결과물이 나올때까지 시간이 걸리기 때문에 실험 비용을 통제해야만 합니다. 그래서 프로젝트 크기가 커질수록 그저그런 요구사항에 대응할 수밖에 없습니다. 요구사항과 결과물 사이에 이터레이션이 자연어와 그로부터 생성된 코드를 통해 엄청나게 빨라진다고 생각해보세요. 어제 만들어둔 새 조작계 위젯을 다음 빌드에 바로 올려 실기에서 테스트해볼 수 있을 겁니다. 탭으로 만들어놔서 이동시키기 불편한 위젯을 기계에게 자연어로 말해 바로바로 옮길 수 있을 겁니다. 그러면 무슨 일이 벌어질까요. 또 내 통장과 고용보험 재정에는 무슨 일이 일어날까요.

https://www.youtube.com/watch?v=p5U4NgVGAwg

이제는 공개된지 2년이 된 포토리얼리스틱 이미지를 만들어내는 기계학습 결과물이 생각났습니다. 이 데모는 사람이 자연물의 구성을 기계에게 알려주는데 손으로 대강 그린 스케치가 필요했습니다. 사람이 제공할 스케치는 수준이 낮아서 발로 그린 그림이라도 그럴싸한 자연 이미지로 바꿔줄겁니다. 그런데 이 과정에 이 그림 조차 필요없는 환경을 생각해봤습니다. 실무를 떠난지 너무 오래 돼서 요즘 실무를 잘 이해하지도 못해고 그냥 멋진 이야기를 늘어놓 줄만 알며 자신이 말하는 요구사항이 얼마나 비싸고 외 그 말의 결과를 두 달 후에나 볼 수 있는지 이해시키기 위해 빈 속에 위액을 뿜어가며 설명해야 하던 바로 그 사람이 평소 그 사람이 구사하는 바로 그 언어로 대강 이야기하면 바로 완성된 이미지를 얻어 그 이미지에 기반해서 논의를 시작하는 장면을 생각했습니다. 또 이 이미지에 기반해 만든 실제 레벨에 실제 플레이어캐릭터가 바로 상호작용하기 시작하는 모습을 상상해봤습니다.

지금은 두 기술 모두 실제 개발 일선에 도착하지 않았습니다. 엔비디아의 제품은 2년이 지난 지금도 도착하지 않았고 또 위쪽의 데모는 아직 데모이고 제가 상상하는 대로 언리얼엔진과 서버 프레임워크에 붙어 떨어지는 돌을 피하는 게임보다 훨씬 더 복잡한 결과물을 만들어내는데까지는 분명 시간이 걸릴겁니다. 하지만 그 시점은 우리들이 더이상 내연기관 신차를 구입할 수 없는 시점과 크게 다르지 않은 시점이 될지도 모릅니다. 그때는 정말로 내 통장의 안녕와 고용보험의 미래를 걱정해야 할 겁니다. 좀 무섭습니다. 진짜 얼마 안남았습니다. 우리 개발은 아주 크게 바뀔겁니다.