COBOL, Fortran, Visual Basic은 오래된 언어이지만 여전히 중요한 시스템에서 사용된다. 문제는 Python이나 JavaScript에 비해 AI가 학습할 수 있는 공개 코드와 문서가 적다는 점이다. 이런 언어를 여기서는 **저자원 프로그래밍 언어(low-resource programming languages)**라고 부른다. 실행에 필요한 컴퓨터 자원이 적다는 뜻이 아니라, 학습 자료가 상대적으로 부족하다는 뜻이다.
OpenAI는 이 언어들에 대한 최신 모델의 성능을 두 가지 방식으로 평가했다. 하나는 새 소프트웨어를 구현하는 능력, 다른 하나는 기존 프로그램의 동작을 유지하며 다른 언어로 옮기는 능력이다.
이 글은 공개된 평가 방식과 결과를 정리한다. 원문은 학습 데이터 확대, 합성 데이터 생성, 파인튜닝 등의 구체적인 훈련 절차를 밝히지 않는다. 따라서 특정 학습 기법이 성능 향상을 만들었다고 단정할 수는 없다.
1. 새 소프트웨어 구현: MultiLangBench
같은 과제를 20개 언어로 수행한다
MultiLangBench는 모델에게 지정된 언어로 SQLite와 호환되는 데이터베이스 엔진을 처음부터 구현하도록 요구한다. 짧은 함수 하나를 작성하는 문제가 아니다. 코드 구조를 잡고, 상태를 관리하고, 오류를 처리하며, 기존 기능을 깨뜨리지 않고 새 기능을 추가해야 한다.
평가의 핵심은 언어마다 코드를 직접 비교하는 대신 데이터베이스 파일을 공통 인터페이스로 삼는 것이다.
- 구현한 프로그램에 초기 데이터베이스와 SQL 쿼리를 입력한다.
- 프로그램이 쿼리를 처리하고 수정된 데이터베이스를 출력한다.
- 기준 SQLite 구현을 이용해 결과 데이터베이스에 예상한 내용이 들어 있는지 확인한다.
- SQLite의 기존 테스트 모음을 이 형식에 맞게 적용해 통과율을 측정한다.
이렇게 하면 COBOL 구현과 Fortran 구현의 문법이나 내부 구조가 달라도 같은 기준으로 기능을 평가할 수 있다. 평가 대상은 코드가 그럴듯해 보이는지가 아니라, 동일한 입력에 요구된 기능을 실제로 수행하는지다.
발표된 결과
최대 추론 강도에서 GPT-6 Astra의 20개 언어 평균 테스트 통과율은 **87.4%**였다. 비교 대상인 GPT-5.6 Sol은 **26.8%**였다.
| 언어 | GPT-5.6 Sol | GPT-6 Astra |
|---|---|---|
| COBOL | 10.9% | 72.1% |
| OCaml | 25.6% | 85.8% |
| Fortran | 21.4% | 83.5% |
| Visual Basic | 27.5% | 89.4% |
GPT-6 Astra는 20개 언어 중 19개에서 83%를 넘겼으며, COBOL은 72.1%로 상대적으로 어려운 언어였다.
비용을 낮춘 GPT-6 Luna는 평균 통과율 **40.3%**를 기록했다. 샘플당 추정 API 비용은 0.77달러로, GPT-5.6 Sol의 3.48달러보다 약 78% 낮았다. 다만 Astra와 같은 성능을 저렴하게 달성했다는 의미는 아니다. 정확도와 비용을 함께 비교해야 한다.
2. 기존 코드 이전: 문법보다 동작을 보존한다
두 번째 평가는 COBOL 프로그램을 C++, Java, Kotlin, Python, Rust 중 다른 언어로 옮기는 작업이다.
여기서 성공은 컴파일되거나 실행되는 것만으로 결정되지 않는다. 숨겨진 테스트에서 관측 가능한 출력이 바이트 단위로 일치해야 하며, 모든 테스트를 통과해야 해당 이전을 성공으로 판정한다.
소수점 처리 하나가 업무 결과를 바꿀 수 있다
원문이 제시하는 사례는 COBOL의 고정소수점 연산이다. 명시적으로 반올림을 요청하지 않으면 초과 소수 자릿수가 버려진다. 이를 다른 언어로 옮기면서 일반적인 반올림을 적용하면 프로그램은 정상 실행되더라도 다른 금융 결과를 낼 수 있다.
다음은 이 차이를 설명하기 위한 단순 예시이며, 실제 벤치마크 문제가 아니다.
- 계산 결과:
12.345 - 소수 둘째 자리까지 버림:
12.34 - 소수 둘째 자리까지 반올림:
12.35
기존 시스템이 첫 번째 규칙으로 동작했다면 새 코드도 그 규칙을 유지해야 한다. 원문은 누락된 레코드를 처리하는 방식 역시 보존해야 할 업무 요구사항의 예로 든다.
즉, 이전 대상은 문법만이 아니다. 코드에 담긴 업무 규칙과 언어 고유의 동작까지 함께 옮겨야 한다.
발표된 결과
- 낮은 추론 강도에서 GPT-6.1 Sol의 정확도는 86.6%, GPT-5.6 Sol은 **5.4%**였다.
- 이 설정에서 GPT-6.1 Sol의 API 비용은 비교 모델의 61%, 즉 39% 낮았다.
- 더 높은 추론 강도에서는 GPT-6.1 Sol의 정확도가 **97.9%**에 도달했다.
여기서 정확도는 앞선 SQLite 평가의 테스트 통과율과 다르다. 모든 숨겨진 테스트를 통과한 이전 작업의 비율이므로 두 평가의 숫자를 같은 지표처럼 해석해서는 안 된다.
3. 이 평가 방식을 실무에 적용한다면
아래는 원문의 동작 보존 원칙을 실무 절차로 풀어 쓴 것이다. OpenAI가 공개한 훈련 방식이나 별도의 검증 결과는 아니다.
- 기존 동작을 기준으로 삼는다. 입력 형식, 출력 형식, 계산 규칙, 오류 처리, 외부 의존성을 확인한다. 문서가 부족하면 기존 프로그램의 실행 결과도 참고한다.
- 대표 입력과 경계 사례를 모은다. 정상 데이터뿐 아니라 누락된 레코드, 소수점 처리 등 결과 차이가 생기기 쉬운 사례를 준비한다.
- 작은 단위로 변환한다. 전체 시스템을 한 번에 바꾸기보다 결과를 비교할 수 있는 단위로 나누어 변경한다.
- 동일한 입력으로 이전 전후를 비교한다. 실행 성공 여부만 확인하지 말고 출력 값과 형식, 필요한 경우 파일 내용까지 대조한다.
- 차이의 원인을 확인하고 회귀 테스트를 남긴다. 의도하지 않은 차이를 수정한 뒤, 같은 문제가 재발하지 않도록 테스트에 포함한다. 운영 적용 전에는 업무 담당자와 전문가의 검토를 거친다.
테스트가 통과해도 검사하지 않은 모든 상황의 동등성이 증명되는 것은 아니다. 실제 시스템에서는 업무 규칙과 의존성에 맞춘 추가 검증이 필요하다.
정리
이번 발표가 보여 주는 것은 자료가 적은 언어에서도 AI가 더 복잡한 구현과 코드 이전을 수행할 수 있게 됐다는 점이다. 이를 평가하는 기준은 같은 기능을 구현하는가, 그리고 기존 시스템의 결과를 보존하는가다.
수치는 OpenAI가 발표한 자체 평가 결과이며, 모든 COBOL·Fortran 프로젝트에서 같은 성능이 나온다는 뜻은 아니다. 공개된 평가 도구와 실제 시스템의 테스트를 함께 살펴보는 것이 중요하다.