긴 맥락 속 규칙·절차를 자연어 '스킬'로 뽑되, 사람 감독 없이 모델끼리 문제를 내고 풀며 스킬을 진화시키는 Ctx2Skill.
한 줄 요약
긴 매뉴얼·기술문서 같은 맥락을 줬을 때, 모델이 그 안의 규칙·절차를 자연어 '스킬'로 추출해 더 잘 풀게 하되, 그 스킬을 사람 감독·외부 정답 없이 모델끼리 자가 진화시키는 방법 — Ctx2Skill 프레임워크다.
무슨 문제를 짚나
현실 작업은 모델의 파라미터 지식만으론 못 푼다. 매번 긴 매뉴얼, 사내 규정, 전문 문서를 같이 줘야 한다. 그런데 기존 in-context learning 이나 RAG 는 맥락이 길고 / 노이즈가 많고 / 여러 단계 추론이 필요할 때금세 흔들린다.
직관적인 해법은 맥락 속 규칙을 짧은 자연어 "스킬"로 뽑아두고 (예: "청구 코드가 30번대면 자동승인, 그 외는 사람 검토") 추론 때 그 스킬만 활용하게 하는 것이다. 그런데 두 가지 비용이 막는다:
(1) 사람이 일일이 스킬을 달려면 annotation 비용이 막대하다 — 긴/기술적 문서일수록 더 그렇다
(2) 자동으로 만들었을 때 잘 만들었는지 알려줄 외부 정답이 없다 — 채점기가 없는 셈
그림 1. 맥락에서 스킬을 뽑아두면, 모델은 매번 긴 문서를 다시 헤집지 않고 짧은 규칙으로 추론할 수 있다
핵심 — 정답 없이도 스킬을 키우는 자가 대국
Ctx2Skill 의 메인 아이디어는 정답 데이터 없이 모델끼리 문제를 내고 푸는 self-play 다. 세 역할이 한 루프를 돌며 스킬을 진화시킨다.
그림 2. Challenger 가 문제를 내고, Reasoner 가 풀고, Judge 가 채점, Proposer/Generator 가 실패에서 스킬 업데이트를 합성하는 자가 진화 루프
왜 양쪽이 같이 진화해야 하나
포인트는 Challenger 와 Reasoner 둘 다 같은 스킬 풀에서 자란다는 것. Challenger 가 더 똑똑해지면 문제가 까다로워지고, Reasoner 가 그걸 풀면서 스킬이 더 풍부해진다. Proposer/Generator 는 실패 사례를 보고 "이런 케이스를 놓쳤네 → Challenger 는 이런 패턴을 더 내라, Reasoner 는 이런 스킬을 추가해라" 식으로 양쪽 업데이트를 동시에 만든다.
함정 — Adversarial Collapse
이런 자가 대국엔 흔한 병이 있다. Challenger 가 갈수록 극단적·niche 한 문제만 내고, Reasoner 가 거기 과적합 — 그래서 정작 진짜 다양한 케이스를 못 풀게 된다. 학습이 안쪽으로 말려 들어가는 셈.
그림 3. Cross-time Replay 는 시간을 가로지르며 "대표 사례 전반을 가장 잘 푸는" 스킬셋을 선택해 붕괴를 막는다
결과
이렇게 길러낸 스킬은 아무 백본 모델에나 꽂아 넣을 수 있고, CL-bench 네 가지 과제에서 여러 모델의 정답률을 일관되게 끌어올렸다. 정답 데이터 없이 모델끼리만 진화한 스킬셋이라는 점이 핵심.
우리한테 어떤 의미인가
kuma-lesson 자가학습 루프와 결이 비슷하다 — "실패에서 자연어 lesson 을 뽑아 다음에 재활용" 같은 패턴. Ctx2Skill 이 보여주는 건 정답을 매 turn 사람이 줄 필요 없이도 모델 두 개가 적대적으로 돌면 스킬이 자란다는 것, 그리고 그걸 망치지 않으려면 "과거 사례 전반"을 복기시키는 게 필요하다는 것.