TransCoder가 C ++, Java 및 Python 3 간의 함수를 성공적으로 번역할 수 있음을 입증... 코드 마이그레이션을 보다 쉽고 효율적으로 수행할 수 있도록 설계된 완전히 자체 감독되는 신경 트랜스 컴파일러 시스템

이미지:본지
이미지:본지

페이스북이 구식 코드베이스를 현대 언어로 번역하기 위한 '트랜스코더(TransCoder)'라고 하는 오픈 소스 도구를 개발하고 최근 공개했다. 이 플랫폼은 코드 마이그레이션을 보다 쉽고 효율적으로 수행할 수 있도록 설계된 완전히 자체 감독되는 신경 트랜스 컴파일러 시스템(Self-Supervised Neural Transcompiler System)이다.

이것은 훈련을 위해 병렬 데이터를 요구하지 않고 하나의 프로그래밍 언어에서 다른 프로그래밍 언어로 코드를 번역할 수 있는 최초의 인공지능(AI) 시스템인 것이다. 

페이스북 AI 연구팀은 "우리는 TransCoder가 C ++, Java 및 Python 3 간의 함수를 성공적으로 번역할 수 있음을 입증했습니다."라며, "TransCoder는 오픈 소스 및 상용 규칙 기반 번역 프로그램을 능가합니다. 평가에서 이 모델은 Java 함수의 90 % 이상을 C ++로, C ++ 함수의 74.8 %를 Java로, 함수의 68.7 %를 Java에서 Python으로 올바르게 변환했습니다. 비교해 보면 상용 도구는 함수의 61.0 % 만 C ++에서 Java로 올바르게 변환하고 오픈 소스 번역기는 38 개만 정확합니다"라고 말했다.

위 그림에서 트랜스코더가 감독되지 않은 기계 번역의 세 가지 원칙을 어떻게 활용하는지 보여준다.(출처:페이스북)
위 그림에서 트랜스코더가 감독되지 않은 기계 번역의 세 가지 원칙을 어떻게 활용하는지 보여준다.(출처:페이스북)

일명, '트랜스 파일러' 및 '소스-소스 컴파일러'는 유사한 추상화 수준에서 작동하는 프로그래밍 언어 사이를 변환하는 번역기로 트랜스 컴파일러는 소스 코드를 상위 레벨에서 하위 레벨 프로그래밍 언어(예: 어셈블리 언어)로 변환하여 실행 파일을 생성하는 기존 컴파일러와 다르다.

처음에는 서로 다른 플랫폼간에 소스 코드를 이식하기 위해 트랜스 컴파일러가 개발(예: Intel 8080 프로세서용으로 설계된 소스 코드를 Intel 8086과 호환되도록 변환)되었으며, 최근에는 새로운 언어가 개발(예 : CoffeeScript, TypeScript, Dart, Haxe)되었다. 더 이상 사용되지 않는 언어 (예 : COBOL, Python 2)를 최신 언어로 변경하거나 다른 언어로 작성된 코드를 기존 코드베이스에 통합한다.

연구팀은 전통적인 지도 학습 방식은 학습을 위해 대규모 병렬 데이터 세트에 의존하지만 이러한 데이터 세트는 단순히 COBOL을 위해 존재하지 않기 때문에 프로그래밍 언어 간 번역에 있어 자기 감독 학습이 특히 중요하다고 말했다.

예를 들어, C ++ 또는 C ++에서 Python으로 TransCoder 도구는 하나의 프로그래밍 언어로 작성된 소스 코드에만 의존하며 소스 및 대상 언어로 된 동일한 코드의 예제가 필요하지 않다. 또한 사용자가 번역과 관련된 프로그래밍 언어에 대한 전문 지식을 보유할 필요가 없다. 공개된 페이스붓 AI의 트랜스코더(TransCoder)는 깃허브(다운)를 통해 사용할 수 있다. 

 

관련기사

저작권자 © 인공지능신문 무단전재 및 재배포 금지