AI 기술: DecompRL: Solving Harder Problems by Learning Modular Code Generation
못 푸는 문제를 푸는 새로운 방법, 레고 블록처럼!
아주 어려운 수수께끼가 있다고 상상해 보세요. 너무 어려워서 아무리 머리를 굴려도 답이 안 나옵니다. 인공지능(AI)도 똑같아요. 어떤 코딩 문제는 AI가 아무리 노력해도 풀지 못합니다. 오늘은 이런 문제를 푸는 세 가지 방법을 비교해 볼게요. 그리고 그중 가장 똑똑한 방법인 DecompRL(디컴프알엘)을 소개합니다.
방법 1: 복권을 잔뜩 사기 (여러 번 도전하기)
첫 번째 방법은 간단해요. AI에게 같은 문제를 수백 번, 수천 번 풀게 하는 거예요. 그중 하나라도 맞으면 성공! 복권을 많이 사면 당첨될 확률이 올라가는 것과 같죠.
그런데 문제가 있어요. 복권을 살 때마다 돈이 들듯이, AI가 한 번 도전할 때마다 비싼 컴퓨터(GPU) 비용이 들어요. 천 번 도전하면 비용도 천 배! 게다가 당첨 확률이 거의 0인 복권이라면? 아무리 많이 사도 당첨되지 않아요.
방법 2: 혼자 열심히 연습하기 (강화학습)
두 번째 방법은 AI를 훈련시키는 거예요. 문제를 맞히면 칭찬(보상)을 주고, 틀리면 주지 않아요. 이걸 강화학습이라고 해요. 강아지가 "앉아!"를 배우는 것과 비슷하죠.
이 방법을 쓰면 AI가 한 번에 맞힐 확률은 올라가요. 하지만 이상한 부작용이 생겨요. AI가 자기가 잘하는 한 가지 방식만 고집하게 되는 거예요. 여러 가지 다양한 시도를 하지 않게 되죠. 그리고 결정적으로, 원래 실력으로 거의 풀 수 없는 문제는 연습을 해도 여전히 못 풀어요. 시작점이 없으니까요.
방법 3: 레고처럼 조각내서 조립하기 (DecompRL)
DecompRL은 완전히 다르게 생각해요. "더 열심히 도전하지 말고, 문제 자체를 쉽게 만들자!"
거대한 성을 한 덩어리로 만들라고 하면 엄청 어렵죠? 하지만 레고라면 이야기가 달라요. 문, 창문, 지붕, 벽을 각각 따로 만들고 나중에 합치면 되니까요. DecompRL은 어려운 코딩 문제를 작은 조각(모듈)으로 나눈 다음, 각 조각을 따로따로 풀고, 마지막에 조립해요.
여기서 마법 같은 일이 일어나요. 조각이 3개 있고, 각 조각마다 답을 10개씩 만들었다고 해 볼게요. 이것들을 서로 바꿔 끼우며 조립하면 몇 가지 조합이 나올까요? 10 × 10 × 10 = 1,000가지! 조각은 30개만 만들었는데, 완성품 후보는 1,000개가 생기는 거예요.
왜 돈도 아낄 수 있을까요?
여기 재미있는 비밀이 하나 더 있어요. AI가 답을 새로 쓰는 일은 아주 비싼 컴퓨터(GPU)가 필요해요. 하지만 이미 만들어진 조각을 조립해서 테스트하는 일은 값싼 컴퓨터(CPU)로도 충분해요.
비유하자면 이래요. 유명한 요리사에게 요리 1,000개를 처음부터 만들어 달라고 하면 엄청나게 비싸요. 하지만 요리사에게는 재료 몇 가지만 준비하게 하고, 조합은 우리가 직접 하면? 훨씬 싸죠! 실제로 DecompRL은 이 방법으로 비싼 GPU 비용을 약 50분의 1로 줄였어요.
그런데 왜 훈련이 필요할까요?
"그럼 그냥 AI에게 조각내서 풀라고 하면 되잖아?"라고 생각할 수 있어요. 하지만 보통의 AI는 문제를 잘게 나누는 연습을 해 본 적이 없어요. 통째로 답을 쓰는 것만 배웠거든요.
그래서 DecompRL은 강화학습을 새로운 목표에 사용해요. "정답을 맞혀라"가 아니라 "문제를 잘 나누고, 각 조각을 잘 만들어라"를 가르치는 거죠. 방법 2의 훈련 기술을 가져오되, 가르치는 내용을 완전히 바꾼 거예요.
세 가지 방법, 한눈에 비교!
| 방법 | 비유 | 약점 | 아주 어려운 문제는? |
|---|---|---|---|
| 여러 번 도전 | 복권 잔뜩 사기 | 비용이 계속 늘어남 | 거의 못 풂 |
| 강화학습 | 혼자 반복 연습 | 한 가지 방식만 고집 | 거의 못 풂 |
| DecompRL | 레고 조립 | 나누는 법을 배워야 함 | 풀 수 있음! |
실제로 효과가 있었을까요?
연구팀은 진짜 코딩 시험 문제(LiveCodeBench, CodeContests)로 실험했어요. 그 결과, 다른 방법들이 아무리 많은 시도를 해도 못 풀던 문제를 DecompRL은 풀어냈어요. 특히 문제가 어려워질수록 차이가 크게 벌어졌답니다.
오늘의 핵심 정리
- 너무 어려운 문제는 더 많이 도전해도, 더 연습해도 풀리지 않을 수 있어요.
- DecompRL은 발상을 바꿔서 문제를 작은 조각으로 나눠 풀어요.
- 조각들을 서로 바꿔 끼우면 적은 노력으로 엄청나게 많은 답 후보가 생겨요.
- 덕분에 비싼 컴퓨터 비용을 크게 줄이면서도, 전에는 못 풀던 문제를 풀 수 있게 됐어요.
어려운 숙제를 만났을 때 여러분도 한번 써 보세요. 통째로 끙끙대지 말고, 작은 조각으로 나눠서 하나씩 해결하기. AI도 이렇게 배우니까 훨씬 똑똑해졌답니다!
출처
리깅 파이프라인 자동화 도구
반복 작업은 스크립트에게. 현업에서 쓰는 리깅 툴 모음.
리깅 도구 보기