오픈AI(OpenAI)가 고안한 GPT-3 텍스트 생성 프로그램은 인간을 도와 자연어로 인간과 구분하기 어려운 수준의 텍스트를 생성할 수 있으며, 간단한 컴퓨터 코드 작성도 가능하다.

자연어 생성 알고리즘 처럼 자체적으로 코딩을 하는 인공지능(AI) 기계 프로그래밍 알고리즘 MISIM(machine inferred code similarity)성능도 급개선 됐다.

출판전 논문사이트(arxiv)에 공개된 새로운 논문에서 인텔, 조지아공대, 펜실베이니아대 및 MIT 연구원들이 공동 개발한 MISIM은 이미 웹에서 공개적으로 사용할 수 있는 방대한 양의 코드 훈련을 통해 프로그램 기능을 파악할 수 있다. 그런 다음 다른 유사한 프로그램을 찾아서 비교한 후 MISIM은 프로그램을 더 빠르고 효율적으로 만드는 방법을 제공할 수 있다.

권장 사항을 제시하거나 유사성을 비교하는 최초의 머신러닝(machine learning) 알고리즘은 아니지만, MISIM은 여러 가지 방법을 사용하는 작업에서 기존 경쟁 알고리즘 보다 최대 40배 더 정확했다.

단기적으로 AI는 오늘날 프로그래머에게 유용할 수 있다. 또한, 이 분야는 일상 언어로 만들고 싶은 것을 설명, 코드를 쉽게 작성하고 유지 관리하는 머신 프로그래밍 시대를 열 수 있다.

머신 프로그래밍

프로그래밍 자동화의 발전이 있었지만 최근 머신 러닝 발달로 인해 머신 프로그래밍이라는 분야에서 진보가 가속화되고 있다.

2018년 논문에서 인텔(intel)과 MIT 연구진은 “머신 프로그래밍의 일반적인 목표는 인간 프로그래머로부터 정확하고 효율적인 코드를 작성하는 부담을 없애고 대신 기계를 도입하는 것”이라고 썼다.

연구원들은 개인의 의도, 즉 소프트웨어의 일부를 작업 프로그램으로 전환하는 데 필요한 단계를 자동화할 수 있는 시스템을 추구하고 있다. 버그 찾기 및 수정, 프로그램 호환성 유지 또는 하드웨어 업그레이드에 따른 코드 업데이트와 같이 시간이 지남에 따라 소프트웨어 유지 관리를 자동화하는 것을 목표로 하고 있다.

물론 그것은 말이 쉽다. 소프트웨어 작성은 과학만큼이나 예술이다. 인간의 의도를 기계 언어로 번역하려면 많은 경험과 창의성이 필요하다. 그러나 GPT-3에서 알 수 있듯이 언어는 실제로 기계 학습이 빠르게 마스터하는 기술이며 프로그래밍 언어는 영어, 중국어 또는 스와힐리어와 크게 다르지 않다. 이것이 바로 GPT-3 자연어 훈련의 부산물로 몇 가지 코딩 기술을 습득하는 이유다.

GPT-3 등 머신 러닝 알고리즘 발전은 머신 프로그래밍의 성공의 열쇠이지만 훌륭한 훈련 데이터가 없으면 쓸모가 없다.

다행히도 깃허브(GitHub)와 같은 사이트에는 개정 이력과 메모가 풍부한 사이트에 많은 양의 공개 코드가 있다. 스택 오버플로와 같은 사이트의 코드 스니펫과 주석 스레드가 있다. 접근 가능한 웹 페이지와 코드가있는 인터넷조차도 AI가 학습할 수있는 풍부한 학습 자료 소스다.

이론적으로 GPT-3가 글쓰기 방법을 배우기 위해 수백만 건의 기사를 수집하는 것처럼 기계 프로그래밍 AI는 수백만 개의 프로그램을 소비하고 코딩하는 법을 배울 수 있다. 그러나 실제로 이 작업을 수행하는 방법은 여전히 극복 과제다. MISIM이 필요한 부분이다.

MISIM은 코드 스니펫이 수행해야하는 작업을 정확하게 식별할 수 있어 머신 프로그래밍을 한 단계 발전시킨다. 코드가 분류되면 데이터베이스의 수백만 개의 다른 스니펫과 비교해 가장 유사한 코드를 표시하고 다른 예제를 기반으로 코드 스니펫의 개선을 제안한다. MISIM은 코드의 목적을 높은 수준으로 분류하기 때문에 동일한 문제를 해결하지만 다르게 작성된 코드 스니펫을 찾을 수 있다.

동일한 문제를 해결하는 방법은 여러 가지가 있으며 다른 프로그래밍 언어의 스니펫도 있다. 간단히 말해서 이것은 영어 기사를 읽고 주제를 식별한 다음 중국어 등 다른 외국어 기사를 찾는 것과 약간 비슷하다.

높은 수준의 분류 작업에서 얻을 수 있는 또 다른 이점은 프로그램에서 코드를 컴파일할 필요가 없다는 것이다. 즉, 컴퓨터에서 실행하는 기계 코드로 변환할 필요가 없다. MISIM은 컴파일러를 필요로 하지 않기 때문에 코드 스니펫이 작성될 때 이를 분석하고 더 빠르거나 더 효율적인 유사한 코드를 제공할 수 있다. 문장을 완성하는 이메일 자동 완성 기능과 비슷하다.

인텔은 내부 개발자에게 MISIM을 제공, 코드 작성 프로세스를 더 빠르고, 쉽고, 효과적으로 만드는 데 유용한지 테스트할 계획이다.

더 많은 활용 가능성도 있다. 예를 들어 컴퓨터 언어 간 번역도 유용한 응용 프로그램이 될 수 있다. 코더가 구식 언어로 작성된 정부 소프트웨어를 보다 현대적인 것으로 업데이트하는 데 도움이 될 수 있다.

인텔의 기계 프로그래밍 책임자 저스틴 고트슐리치(Justin Gottschlich)는 코딩의 완전한 민주화라는 더 큰 비전을 가지고 있다. MISIM을 자연어 처리(NLP) AI와 결합, 미래 프로그래밍은 자연어로 원하는 것을 간단히 적으면 컴퓨터가 나머지 부분을 구체화하는 것도 가능하다.