미로 설계사가 알려주는 AI 코딩 훈련의 비밀
미로를 만드는 사람이 있다고 해보세요. 책상 위에는 누구나 금방 출구를 찾는 쉬운 미로가 잔뜩 쌓여 있어요. 어느 날 이 사람은 새 미로를 그리는 대신, 기존 미로를 살짝 고쳐서 더 까다롭게 만들어 봅니다. 지름길처럼 보이지만 다시 원점으로 돌아오는 갈림길을 넣고, 출구랑 똑같이 생긴 막다른 길도 심어 놓죠. 겉보기엔 비슷한데, 풀려면 훨씬 날카로운 판단이 필요해집니다.
코드를 쓰는 AI도 비슷한 상황이었어요. 엄청난 양의 프로그래밍 글을 읽고 간단한 문제는 잘 풀었지만, 쉬운 문제만 계속 주면 실력이 더 늘지 않았거든요. 쉬운 미로만 수천 개 풀어봐야 실력이 제자리인 것과 같아요. 부족한 건 연습량이 아니라 난이도였습니다. 한 팀이 처음으로, 기존 코딩 문제를 단계적으로 어렵게 바꿔 가며 AI를 훈련시켜 보기로 했어요.
미로를 고치는 요령이 코딩 문제에도 그대로 적용됐어요. 조건을 하나 더 붙이는 건, 미로에서 왼쪽으로 꺾을 수 있는 횟수를 제한하는 것과 같고요. 익숙한 요구를 낯선 것으로 바꾸는 건, 넓은 복도를 좁은 틈으로 교체하는 거예요. 판단해야 할 갈림길을 늘리거나, 살짝 틀린 예시 답을 일부러 섞어 넣기도 했어요. 출구처럼 보이는 막다른 길을 심는 것과 같은 원리죠.
팀은 약 2만 개 기본 문제에서 출발해 이 진화 과정을 여러 차례 반복했어요. 매 라운드마다 쉬운 버전부터 어려운 버전까지 전부 합쳐서 AI를 훈련시키고, 한 번도 본 적 없는 별도 문제로 실력을 확인했죠. 세 번째 라운드까지는 실력이 올랐는데, 네 번째부터는 오히려 떨어졌어요. 미로가 너무 복잡해지면 길 찾기 훈련이 아니라 그냥 소음이 되는 것처럼요. 그래서 거기서 멈췄습니다.
가장 놀라운 건 이 비교예요. 쉬운 문제 2만 개로 훈련한 AI와, 비슷한 수의 어려운 문제로 훈련한 AI를 나란히 테스트했거든요. 연습량은 같은데, 어려운 문제로 배운 쪽이 널리 쓰이는 코딩 시험에서 열 퍼센트 포인트 이상 높은 점수를 받았어요. 양이 아니라 난이도가 핵심이었던 거예요. 쉬운 미로 천 개보다 까다로운 미로 몇 개가 실력을 더 키워 주는 셈이죠.
혹시 어렵게 바꾼 문제가 시험 문제와 우연히 비슷해진 건 아닐까 하는 걱정도 있었어요. 확인해 보니, 라운드를 거듭할수록 훈련 문제와 시험 문제 사이의 유사도는 오히려 살짝 낮아졌어요. AI가 답을 외운 게 아니라, 처음 보는 코드 앞에서도 스스로 생각하는 능력이 진짜로 나아진 거였습니다.
이렇게 탄생한 AI는 당시 공개된 코드 생성 시스템 중 가장 높은 성적을 거뒀고, 작은 버전도 대형 기술 회사의 유명 시스템을 앞질렀어요. 새 데이터를 대량으로 모은 게 아니라, 있던 문제를 더 어렵게 다듬은 것뿐인데요. 바뀐 건 학생도, 교실도 아니었어요. 숙제의 질이 달라진 겁니다.