[논문 리뷰] From Context to Skills: Can Language Models Learn from Context Skillfully?
TL;DR
대규모 언어 모델(LLM)은 방대한 사전 지식을 갖추고 있지만, 처음 보는 규칙이나 절차를 즉석에서 학습하고 적용하는 데 한계가 있습니다. 이 논문은 Ctx2Skill이라는 자가 진화(self-evolving) 프레임워크를 제안하여 이 문제를 해결합니다. Ctx2Skill은 LLM이 주어진 문맥(context)에서 스스로 '스킬'을 명시적으로 추출하고, 다중 에이전트 시스템을 통해 스킬을 지속적으로 정제하고 발전시킵니다. 이 과정에서 Cross-Time Replay 메커니즘을 도입하여 과거의 좋은 스킬을 잊어버리는 '적대적 붕괴' 현상을 방지합니다. 실험 결과, Ctx2Skill은 GPT-4, Claude 2 등 다양한 LLM의 문맥 학습 능력을 큰 폭으로 향상시켰으며, 특히 절차적, 시뮬레이션 과제에서 뛰어난 성능을 보였습니다.
연구 배경 및 동기
LLM은 인-컨텍스트 학습(In-Context Learning, ICL)을 통해 새로운 과제에 적응할 수 있지만, 이는 몇 가지 한계를 가집니다. ICL은 프롬프트에 포함된 예시에 민감하며, 복잡하고 여러 단계로 구성된 규칙이나 절차를 내재적으로 학습하고 일관성 있게 적용하는 데 어려움을 겪습니다. 예를 들어, 새로운 게임의 규칙이나 복잡한 API 문서를 제공했을 때, LLM은 종종 규칙을 잘못 해석하거나 일부를 누락하는 실수를 범합니다.
기존 연구들은 파인튜닝이나 검색 증강 생성(RAG)으로 이 문제를 해결하려 했지만, 이는 추가적인 데이터나 외부 시스템을 필요로 합니다. Ctx2Skill은 이러한 외부 의존성 없이, LLM 스스로 주어진 문맥 내에서 명시적인 '스킬 라이브러리'를 구축하고 진화시켜 문제를 해결하는 새로운 접근법을 제시합니다.
관련 연구
LLM의 추론 및 문제 해결 능력을 향상시키기 위한 연구는 활발히 진행 중입니다.
- CoT (Chain-of-Thought): 단계별 추론 과정을 통해 복잡한 문제 해결 능력을 향상시킵니다.
- Self-Refine / Reflexion: LLM이 자신의 결과물을 스스로 평가하고 수정하는 자기 반성(self-reflection) 메커니즘을 도입합니다.
- 에이전트 기반 프레임워크: 여러 LLM 에이전트가 협력하거나 경쟁하며 문제를 해결하는 방식으로, 복잡한 작업을 분해하고 처리하는 데 효과적입니다.
Ctx2Skill은 이러한 아이디어들을 결합하고 확장합니다. 자기 반성 메커니즘을 다중 에이전트 시스템으로 구현하고, 여기서 생성된 결과물(스킬)을 재사용 가능한 라이브러리로 만들어 장기적인 학습과 진화를 가능하게 한다는 점에서 차별화됩니다.
핵심 기여
- 자가 진화 프레임워크 제안: LLM이 외부 데이터나 레이블 없이, 주어진 문맥만으로 스스로 '스킬'을 발견하고 점진적으로 개선하는 새로운 패러다임을 제시합니다.
- 다중 에이전트 기반 스킬 진화: Challenger, Reasoner, Judge라는 세 에이전트가 상호작용하며 스킬 라이브러리를 동적으로 발전시킵니다. 이는 마치 소크라테스식 문답법처럼 지속적인 질문과 답변, 평가를 통해 지식을 정교화하는 과정과 유사합니다.
- Cross-Time Replay 메커니즘: 스킬 진화 과정에서 발생하는 성능 저하 문제인 '적대적 붕괴(Adversarial Collapse)'를 방지합니다. 과거의 우수한 스킬 셋을 보존하고 현재 스킬 셋과 비교하여 가장 일반화 성능이 높은 버전을 선택합니다.
- 범용적 성능 향상: GPT-4, Claude 2, Mixtral 등 다양한 LLM에 적용했을 때 일관된 성능 향상을 보이며 프레임워크의 범용성을 입증했습니다.
제안 방법론
Ctx2Skill의 핵심은 **스킬 발견(Skill Discovery) → 스킬 정제(Skill Refinement) → 스킬 선택(Skill Selection)**의 3단계 자가 진화 루프입니다. 이 과정은 다중 에이전트 시스템을 통해 자동화됩니다.
다중 에이전트 기반 스킬 진화
세 가지 역할을 가진 에이전트가 협력하여 스킬 라이브러리를 개선합니다.
- Reasoner (추론가): 현재 보유한 스킬 라이브러리를 사용하여 주어진 과제를 해결합니다.
- Challenger (도전자): Reasoner가 해결하지 못한 과제를 분석하여, 현재 스킬 셋의 약점을 공략하는 새롭고 어려운 과제를 생성합니다.
- Judge (심판): Reasoner의 해결 과정과 결과를 평가합니다. 실패 원인을 분석하고, 문맥을 다시 참조하여 기존 스킬을 어떻게 개선해야 할지에 대한 구체적인 피드백과 제안을 생성합니다. 이 피드백을 바탕으로 스킬 라이브러리가 업데이트됩니다.
예시: 가상 API 문서 학습
- 문맥 (Context):
# UserAuth API 문서 1. 사용자 인증: `auth.login(user_id, token)` 함수 사용. 성공 시 `True` 반환. 2. 데이터 조회: `db.query(user_id, 'profile')` 함수 사용. 로그인 상태여야 함. 3. 데이터 수정: `db.update(user_id, 'profile', new_data)` 함수 사용. - 초기 스킬 (v1): "데이터를 조회하려면
db.query를 사용한다." - 과제 1: "user1의 프로필을 조회하세요."
- Reasoner (v1 스킬 사용):
db.query('user1', 'profile')-> 실패 (이유: 로그인 절차 누락) - Judge: "실패 원인은 인증 누락.
auth.login을 먼저 호출해야 함." -> 스킬 개선 제안 - 정제된 스킬 (v2): "1.
auth.login으로 로그인한다. 2.db.query로 데이터를 조회한다." - Challenger: v2 스킬의 허점을 찾기 위해 "로그인 실패 시 어떻게 처리해야 하는가?"와 같은 더 어려운 과제를 생성할 수 있습니다.
이러한 순환 과정을 통해 스킬은 점점 더 정교해지고 예외 상황에 대한 처리 능력이 향상됩니다.
Cross-Time Replay 메커니즘
에이전트 시스템이 어려운 문제에만 집중하다 보면, 이전에 잘 해결했던 쉬운 문제들을 풀지 못하게 되는 적대적 붕괴(Adversarial Collapse) 또는 치명적 망각(Catastrophic Forgetting) 현상이 발생할 수 있습니다.
이를 방지하기 위해 Ctx2Skill은 Cross-Time Replay를 도입합니다. 이는 스킬 라이브러리를 업데이트할 때마다 이전 버전의 스킬 셋과 현재 스킬 셋을 모두 평가하는 메커니즘입니다. 과거에 출제되었던 문제들을 포함한 종합적인 평가 데이터셋을 사용하여, 두 버전 중 더 높은 일반화 성능을 보이는 스킬 셋을 최종적으로 선택합니다. 이는 마치 소프트웨어 개발에서 새로운 기능 추가 후 기존 기능이 잘 작동하는지 확인하는 '회귀 테스트(Regression Test)'와 유사합니다.
실험 설정
- 데이터셋: CL-bench를 사용하여 실험을 진행했습니다. CL-bench는 알고리즘, 게임 시뮬레이션, 절차적 작업 등 다양한 유형의 문맥 학습 능력을 평가하기 위해 설계된 벤치마크입니다.
- 백본 모델: GPT-4, Claude 2, Mixtral-8x7B 등 다양한 크기와 종류의 LLM을 사용하여 Ctx2Skill의 범용성을 평가했습니다.
- 평가 지표: 각 과제에 대한 **해결률(Solve Rate)**을 주요 지표로 사용하여 Ctx2Skill 적용 전후의 성능을 비교했습니다.
실험 결과 분석
실험 결과, Ctx2Skill은 모든 백본 모델에서 일관되게 성능을 향상시켰습니다.
| 모델 | 기본 성능 (Solve Rate) | Ctx2Skill 적용 후 | 향상률 |
|---|---|---|---|
| GPT-4 | 11.1% | 16.5% | +48.6% |
| Claude 2 | 21.2% | 25.8% | +21.7% |
| Mixtral-8x7B | 10.3% | 14.2% | +37.9% |
특히, 명확한 절차나 규칙을 따라야 하는 **절차적 과제(Procedural tasks)**와 **시뮬레이션 과제(Simulation tasks)**에서 가장 큰 성능 향상을 보였습니다. 이는 Ctx2Skill이 문맥에서 구조화된 지식(규칙, 순서)을 명시적인 스킬로 추출하고 적용하는 데 매우 효과적임을 시사합니다.
비판적 평가
Ctx2Skill은 LLM의 문맥 학습 능력을 한 단계 끌어올린 인상적인 프레임워크이지만, 몇 가지 고려할 점이 있습니다.
- 계산 비용: 스킬을 반복적으로 정제하고 Cross-Time Replay를 수행하는 과정은 상당한 양의 LLM 호출을 필요로 합니다. 이는 실시간 응용이나 대규모 적용 시 비용 문제를 야기할 수 있습니다.
- 스킬의 일반화: 한 문맥에서 생성된 스킬이 다른 유사한 문맥에서도 효과적으로 적용될 수 있는지에 대한 일반화 가능성은 추가적인 검증이 필요합니다.
- Judge의 성능 의존성: 스킬 개선의 핵심은 Judge 에이전트의 피드백 품질에 크게 의존합니다. Judge의 성능이 낮을 경우, 스킬이 잘못된 방향으로 진화할 위험이 있습니다.
향후 연구 방향
- 비용 효율화: 스킬 진화 과정의 계산 비용을 줄이기 위한 연구가 필요합니다. 예를 들어, 스킬 업데이트가 필요 없는 경우를 조기에 판단하거나, 더 작은 모델을 Judge로 활용하는 방안을 모색할 수 있습니다.
- 외부 도구 통합: 스킬에 코드 실행기나 API 호출과 같은 외부 도구를 통합하여, 단순 텍스트 추론을 넘어 실제적인 액션을 수행하는 능력을 갖추도록 확장할 수 있습니다.
- 다중 문맥 학습: 여러 관련 문맥에서 공통 스킬을 추출하고 통합하여, 더 범용적이고 추상적인 스킬 라이브러리를 구축하는 연구도 흥미로운 방향이 될 것입니다.
실무 적용 가이드
Ctx2Skill을 실무에 도입할 때는 다음 사항을 고려하는 것이 좋습니다.
- 적용 분야 선정: 법률 문서, 기술 매뉴얼, 게임 규칙, 사내 규정 등 복잡하고 구조화된 규칙이 존재하는 도메인에 적용할 때 가장 큰 효과를 기대할 수 있습니다.
- 비용 관리: 초기 스킬 라이브러리를 사람이 직접 작성하거나, 진화 루프의 반복 횟수를 제한하여 비용을 통제하는 전략이 필요합니다.
- 명확한 평가 기준: Judge 에이전트가 스킬의 성공/실패를 명확히 판단할 수 있도록, 과제에 대한 구체적인 평가 기준(Evaluation criteria)을 정의하는 것이 중요합니다.
결론
Ctx2Skill은 LLM이 단순히 주어진 문맥을 참조하는 것을 넘어, 문맥으로부터 재사용 가능한 지식(스킬)을 능동적으로 학습하고 진화할 수 있다는 새로운 가능성을 제시합니다. 다중 에이전트 시스템과 Cross-Time Replay를 통해 자동화되고 안정적인 스킬 개선을 이뤄냈다는 점에서 의미가 큽니다. 이 프레임워크는 앞으로 LLM이 더욱 복잡하고 동적인 환경에 적응하는 데 중요한 기반 기술이 될 잠재력을 가지고 있습니다.
참고 자료
- 논문 링크: arXiv:2404.17660
- 코드 저장소 (가상): GitHub Repository
- 관련 자료 (가상): CL-bench Dataset

![[논문 리뷰] From Context to Skills: Can Language Models Learn from Context Skillfully?](/assets/images/blog/20260507-paper-2604-27660-from-context-to-skills-can-lan.jpg)