기술동향

이렇게 코딩하십시오 Human..... AlphaCode의 등장

RuBPCase 2022. 2. 3. 18:42
728x90

(기사 원문): https://deepmind.com/blog/article/Competitive-programming-with-AlphaCode
(CodeForces의 게시물): https://codeforces.com/blog/entry/99566

결국 구글딥마인드가 한 건 해냈다.

우려했던 그 상황이 와버린 것인데, 이른 바 코딩 문제를 풀어주는 인공지능이 공개된 것이다.
그 이름도 무려 AlphaCode(알파코드).....
개발자의 입장에선 그리 반갑지 않은 소식이기도 하다.

(관련 깃허브 링크): https://github.com/deepmind/code_contests

알파코드는 사람이 문제를 풀 듯, 문제를 읽고 그에 맞는 프로그램을 작성한다.
이때, 우리가 효율을 따지는 것처럼 알파코드도 그에 맞는 알고리즘을 써서 코드를 작성한다고 나와있다.
모델 학습 시, 깃허브에 있는 경진대회 데이터로 모델을 학습시켰다고 한다.
기존의 머신러닝이나 딥러닝 과정을 생각하면 큰 틀은 이해될 것이다.

학습된 알파코드한테 임의의 문제가 들어오면, 알파코드는 일단 그에 맞는 다양한 solution을 생성한다.
이후 생성된 솔루션을 적절히 간추려서 몇몇 후보 코드를 만들어 낸다고 한다.
최종적으로 실행 및 제출을 하는 형태로 평가 과정이 진행되었다고 한다.
이때, 언어는 C++하고 Python(이런 내 주력언어가)을 활용했다고 한다.

엄청나게 뛰어난 성능을 보이는 수준은 아니다.
기사를 읽어보면 알겠지만, 전체 문제 중 약 34% 정도밖에 해결하지 못하는 수준이다.
그러나 Codeforces 주관하에 참가한 10개의 경진대회에서 전체 참여자 수준에서 중간 정도만큼의 실력을 지님을 검증했다고 한다.
이른바 반은 먹고 들어간다는 소리이다.

알파코드가 코드를 작성하는 과정도 시각화하여 별도의 홈페이지로 제공하고 있다.

(알파코드 시각화 사이트): https://alphacode.deepmind.com/

들어가서 'play'버튼을 눌러 구경해보면 알겠지만, 단시간에 빠르게 문제를 푸는 모습을 확인할 수 있다.
(물론 목록 중에서 못 푼 문제도 아직 많았다.)

마치 과거 알파고가 이세돌과 바둑을 겨뤘듯, 언젠가 알파코드가 세계 상위 랭커의 프로그래머들과 코딩을 하는 날도 머지 않아 올 것이라 본다.
게다가 만일 인공지능이 이기기라도 한다면... 성능 좋은 알고리즘이나 코드를 짜는 것은 사람이 아닌 인공지능이 담당하게 될 것이다.
따라서 기존처럼 수동적으로 문제를 푸는 방식이 머지 않아 먹히지 않을 수도 있다.
단순 코더로는 살아남을 수 없는 시대가 도래할 것이다.

그러면 앞으로 어떻게 대처해야 할까?
물론 저런 상황이 안 올 수 있다는 케이스도 있지만, 과거 사례로 봐서는 조만간 올 것 같아 보인다.
따라서 이제 프로그래머는 단순히 프로그램을 효율적으로 짜는 역량을 넘어서 예술을 창조하는 형태로 나아가야 할 것이다.
역으로, 인공지능이 짠 코드를 이해하고 해석하는 과정을 도맡게 될 수도 있다.

하지만, 인공지능이 '효율'이라는 측면에선 강해도, '효과'라는 측면에선 약할 수 있다.
효율은 정량화가 가능하지만, 효과는 상황 자체가 바뀌는 비정량적인 경우이다.
현실에서 해결해야 할 문제는 효율이 아닌 효과를 중시하는 경우도 많다.
기존에 없던 아이디어를 창조하고, 개선하고, 새로운 인사이트를 발굴해서 해결책을 세우는 과정 말이다.
이른바 문제찾기가 앞으로 사람이 해야 할 주 과제가 될 것이다.

결국, 학창시절에 배웠던 통념과는 달리 문제를 일으키고 만드는 사람이 인공지능의 시대에서 살아남게 될 것이라고 본다.

728x90

'기술동향' 카테고리의 다른 글

인공지능은 과연 생각보다 똑똑할까?  (0) 2022.01.29