본문 바로가기

인공지능

오픈소스로 공개된 SkillOpt, 에이전트 스킬을 학습시키는 새로운 전략 프레임워크

728x90
반응형
728x170

이 글은 SkillOpt라는 오픈소스 프로젝트를 중심으로, 대규모 언어 모델(LLM)을 사용하는 에이전트의 스킬(skill)을 어떻게 체계적으로 학습하고 개선할 수 있는지 설명합니다. 기존처럼 모델의 가중치를 직접 파인튜닝하지 않고도, 신경망을 학습하듯 스킬을 훈련하고 검증하는 접근 방식이 무엇인지, 그리고 실제로 어떻게 사용되는지까지 정리합니다.

반응형

SkillOpt란 무엇인가

SkillOpt는 Self-Evolving Agent Skills를 목표로 한 실행 전략 프레임워크입니다. 핵심 아이디어는 단순합니다.

에이전트의 스킬을 신경망처럼 훈련하자.

여기서 말하는 스킬은 에이전트가 문제를 해결하는 행동 전략과 추론 절차를 문서화한 지식 단위입니다. SkillOpt는 이 스킬을 다음과 같은 방식으로 다룹니다.

  • 에폭(epoch), 배치 크기(batch size), 러닝 레이트(learning rate)
  • 검증 세트(validation gate)
  • 학습 히스토리와 베스트 스킬 선택

이 모든 과정을 모델 가중치 변경 없이 수행합니다. 즉, LLM 자체는 그대로 두고, 에이전트가 사용하는 스킬 문서만 점진적으로 개선해 나갑니다.


왜 SkillOpt가 주목받는가

기존 에이전트 개선 방식에는 분명한 한계가 있었습니다.

  • 파인튜닝은 비용이 크고 반복이 어렵다
  • 모델이 바뀌면 이전 학습 결과를 재사용하기 힘들다
  • “왜 성능이 좋아졌는지” 설명하기 어렵다

SkillOpt는 이 문제를 다음 방식으로 해결합니다.

  • 스킬을 문서 형태(md)로 관리해 가시성이 높음
  • 학습 과정이 모두 기록되어 재현 가능
  • 동일한 스킬을 서로 다른 모델에 적용 가능

이 접근은 에이전트를 하나의 블랙박스가 아니라, 학습 가능한 시스템으로 다루게 만듭니다.


SkillOpt의 핵심 개념 정리

1. 모델이 아니라 스킬을 학습한다

SkillOpt는 LLM의 파라미터를 업데이트하지 않습니다. 대신 에이전트가 사용하는 스킬 문서를 반복적으로 수정하고 평가합니다.
이로 인해 다음과 같은 장점이 생깁니다.

  • 모델 교체 비용 감소
  • 학습 결과의 설명 가능성 증가
  • 운영 환경에서 빠른 실험 가능

2. 학습 파이프라인은 딥러닝과 유사하다

SkillOpt는 전통적인 딥러닝 학습 구조를 차용합니다.

  • train / val / test 데이터 분리
  • 스텝 단위 학습 기록
  • 베스트 스킬 자동 선택

하지만 결과물은 모델 체크포인트가 아니라 스킬 문서입니다.


지원하는 벤치마크

SkillOpt는 다양한 태스크 유형을 지원합니다.

  • SearchQA: 질의응답
  • ALFWorld: 환경 기반 에이전트
  • DocVQA: 문서 질의응답
  • LiveMathematicianBench: 수학 문제 해결
  • SpreadsheetBench: 코드 생성
  • OfficeQA: 툴 연계 QA

각 벤치마크는 YAML 설정 파일로 관리되며, 데이터 포맷만 맞추면 확장도 가능합니다.


설치 및 실행 흐름

1. 설치

git clone https://github.com/microsoft/SkillOpt.git
cd SkillOpt
pip install -e .

필요 조건은 Python 3.10 이상입니다.


2. API 환경 설정

.env 파일을 통해 LLM API를 설정합니다.
Azure OpenAI, OpenAI, Anthropic Claude, 로컬 Qwen(vLLM)까지 지원합니다.

특히 Azure OpenAI 사용 시 AZURE_OPENAI_ENDPOINT는 필수입니다.


3. 데이터 준비

SkillOpt는 다음과 같은 디렉터리 구조를 요구합니다.

data/my_split/
├── train/items.json
├── val/items.json
└── test/items.json

각 JSON 파일에는 태스크 단위의 데이터가 배열 형태로 들어갑니다.
정확한 필드는 사용하는 벤치마크에 따라 달라집니다.


간단한 학습 예제

SearchQA 기준 최소 학습 명령은 다음과 같습니다.

python scripts/train.py \
  --config configs/searchqa/default.yaml \
  --split_dir /path/to/your/searchqa_split \
  --azure_openai_endpoint https://your-resource.openai.azure.com/ \
  --optimizer_model gpt-5.5 \
  --target_model gpt-5.5

이 명령을 실행하면 학습 결과는 outputs/<run_name>/ 디렉터리에 구조적으로 저장됩니다.
재실행 시 이전 스텝부터 자동으로 이어서 학습합니다.


학습 결과는 어떻게 관리되는가

각 실행 결과는 다음 정보를 포함합니다.

  • 전체 설정(config.json)
  • 학습 히스토리(history.json)
  • 검증을 통과한 베스트 스킬(best_skill.md)
  • 스텝별 스킬 스냅샷
  • 에폭 단위 로그

즉, 에이전트 스킬의 진화 과정 자체가 자산으로 남습니다.


728x90

SkillOpt는 에이전트 개발 방식을 한 단계 바꿉니다.

  • 모델 중심에서 스킬 중심으로
  • 블랙박스에서 설명 가능한 학습으로
  • 일회성 튜닝에서 지속적 개선으로

무엇보다 이 모든 접근이 오픈소스로 공개되었다는 점은 의미가 큽니다.
에이전트 품질을 어떻게 체계적으로 관리하고 개선할 것인지 고민하고 있다면, SkillOpt는 충분히 살펴볼 가치가 있는 프레임워크입니다.

300x250

https://github.com/microsoft/SkillOpt/tree/main

 

GitHub - microsoft/SkillOpt: SkillOpt is a text-space optimizer that trains reusable natural-language skills for frozen LLM agen

SkillOpt is a text-space optimizer that trains reusable natural-language skills for frozen LLM agents through trajectory-driven edits, validation-gated updates, and deployable best_skill.md artifac...

github.com

728x90
반응형
그리드형