본문 바로가기



AI와 IT 이야기

자동으로 코딩하는 AI가 등장했다는 기사를 보면서

알파고로 유명한 딥마인드에서 이번에는 자동으로 프로그램 코드를 작성하는 "알파코드"라는 것을 발표했다고 합니다.

코딩 대회에서 상위 54%에 들었다고 하네요.. 딱 중간 쯤이군요.

 

알파코드와의 경쟁력 있는 프로그래밍 | 딥마인드 (deepmind.com)

 

Competitive programming with AlphaCode

As part of DeepMind’s mission to solve intelligence, we created a system called AlphaCode that writes computer programs at a competitive level.

deepmind.com

 

알파코드는 최근의 딥러닝 기술과 여러가지 추론 기술들을 이용하여 개발이 되었다고 하는데..

트랜스포머(Transformer)라는 아키텍쳐를 기반으로 하는 자연어 인식, 처리 모델을 이용하여 대규모의 코드들을 생성하고 그 중에서 중요도가 낮거나 불필요하다고 판단되는 코드들을 경쟁을 통해 필터링 해 나가면서 코드를 완성하고 있다고 합니다.

 

알파코드의 공식 사이트에 가보면 주어진 문제에 대하여 다양한 프로그래밍 언어를 이용한 코드 생성 결과를 보여주고 있습니다.

코드는 C++, Python으로 생성되며 검증에 성공한 코드 외에도 실패한 코드도 볼 수 있습니다.

 

AlphaCode (deepmind.com)

 

AlphaCode

Loading problem & solution, please wait... play all none

alphacode.deepmind.com

 

사실 자동 프로그래밍이라는 분야는 꽤 오래 전부터 연구되어왔던 분야입니다.

제가 대학원에 재학 중이던 시절, 지도교수님의 박사학위 논문도 자동 프로그래밍에 대한 것이었으니 상당히 오래되었다고 볼 수 있겠군요.

멀게는.. 1940년대에 프로그래밍을 위하여 천공 테이프의 구멍을 뚫는 수동 작업을 자동화 한 것이 시초라고 알려져 있습니다만.. 사실 요즘 생각하는 자동 프로그래밍의 개념을 기준으로 본다면 이 주장은 우리의 생각과는 괴리가 있습니다.

어찌되었던... 자동 프로그래밍은 상당히 오랜 역사를 가진 연구 분야입니다.

 

그리고 프로그래밍의 경우는 해결하고자 하는 문제에 대한 다양한 패턴과 표준으로 삼을만한 좋은 코드들이 이미 확립되어 있기때문에 이런 정보와 데이터들을 이용한다면.. 한편으로는 쉽게 개발할 수 있지 않을까? 하고 생각할 수 있는데..

 

어려운 점은... 입력된 문제와 답이 무엇을 뜻하는지 이해를 해야 코드를 생성할 수 있다는 것이겠죠.

여기서 자연어 처리 기능이 필요함을 볼 수 있습니다.

(그래서 알파코드도 트랜스포머 아키텍처 기반의 자연어 처리기능이 적용된거겠죠)

특히 미국을 중심으로 한 영어권 지역에서는 알파코드가 아니더라도 GPT-3등의 초거대 AI와 협력하여 자동 프로그래밍 모델을 연구, 개발하는 방법도 생각해 볼 수 있을 것 같습니다.

프로그래밍 코드도 어차피 영어가 기반이기때문에 비영어권 지역보다 영어권지역이 좀 더 유리하겠군요.

그리고 문제와 결과를 이해한 후에도 어떤 코드가 원하는 문제에 적합한 코드일까.. 를 찾아내는 기술이 필요하겠죠.

알파코드는 이런 코드를 찾아내는 방법이 아닌 경쟁모델을 통해 생성하는 방법을 선택했다는 것이 차이점이겠네요.

(실제로 알파코드의 이전 버전은 적절한 코드를 추천하는 방식이었다고 합니다)

 

상세한 부분은 관련 논문이나.. 그런 것들이 나오면 찬찬히 읽어보면 될 것 같습니다.

Pixabay, AlexMile

 

다른 여러 분야와 마찬가지로 개발자의 영역에도 AI가 발을 들이기 시작하였습니다.(이것도 사실 시작은 좀 오래 되었죠)

 

그러나 현실에서는 동일한 문제에 대한 해결을 위해서... 수많은 개발자의 수만큼 다양한 코드가 훌륭하게 동작을 하고 있듯이... AI가 도입되더라도 이런 다양성의 문제(창의성과도 연관이 있겠죠)들로 인해 개발자가 사라진다거나 하는 일은 없을 것으로 보입니다.

대신 그 영역은 좀 줄어들긴 하겠죠.

정형적인 결과를 원하는 업무용 프로그램 등에서는 충분히 발달하고 학습된 AI가 적용된다면 표준적이고 정형화된.. 검증된 좋은 결과를 낼 수도 있을테니까요.

 

결국 AI가 어떤 영역에 도입되면 인간 기술자가 살아남는 방안은 창의성과 다양성에 기대는 방법 외에는 없는것인가.. 라는 생각도 들긴 하지만...(언젠가는 이런 영역까지도 AI가 장악할지도 모르죠)

그래도 당분간은 걱정없이 계속 하던 일을 하고 있으면 되겠다... 인거네요.

 

 

 

반응형