Hugging Face의 Training Agents 2 라이브 튜토리얼입니다. 영상의 표면 주제는 model distillation입니다. 큰 teacher model의 출력이나 분포를 이용해 작은 student model을 특정 과제에 맞게 훈련하는 방법을 TRL 실험으로 보여줍니다.
내가 이 영상을 읽는 핵심 질문은 조금 다릅니다. 에이전트를 훈련한다는 것은 결국 하네스의 행동 기록, 도구 사용 경계, 평가 루프를 학습 가능한 신호로 바꾸는 일입니다. 좋은 agent distillation은 모델 압축만이 아니라, 운영 절차를 모델 안으로 이식하는 작업에 가깝습니다.
1. 에이전트 훈련은 일반 훈련과 무엇이 다른가
“training an agent”
해석
도입부의 질문은 단순합니다. 모델 훈련은 익숙한 말이 되었지만, 에이전트 훈련은 무엇이 다른가. 영상은 이 질문을 distillation으로 풀어갑니다. 모델이 답변만 잘하는 것이 아니라, 과제 수행 중 어떤 도구를 쓰고, 어떤 중간 산출물을 만들고, 어떤 경로로 실패를 복구하는지까지 배워야 하기 때문입니다.
여기서 에이전트 훈련의 단위는 텍스트 한 문장이 아니라 trajectory입니다. 입력, 생각, 도구 호출, 관찰, 재시도, 최종 답변이 하나의 흐름으로 묶입니다. 그래서 우리 블로그의 harness 관점에서는 transcript보다 더 중요한 재료가 trace입니다. 잘 설계된 trace는 모델이 흉내 낼 수 있는 운영 절차가 됩니다.
2. Distillation의 목적: 작은 모델을 특정 업무에 맞춘다
“smaller model”
해석
영상은 distillation을 작은 모델을 위한 실용적 방법으로 설명합니다. 더 크거나 더 특화된 teacher model의 행동을 이용해, 더 싸고 빠르며 로컬에서 돌릴 수 있는 student model을 특정 과제에 맞게 개선하는 방식입니다.
이때 중요한 것은 “큰 모델을 복제한다”가 아닙니다. 전체 능력을 옮기는 것이 아니라, 특정 업무에서 필요한 판단과 형식을 옮깁니다. 예를 들어 우리 작업에서는 블로그 글 작성 전체가 아니라 “자막 근거와 내 해석을 분리한다”, “배포 전 build와 public URL을 확인한다”, “관련 없는 dirty file은 건드리지 않는다” 같은 운영 습관을 작은 agent에게 심는 것이 더 현실적입니다.
3. 네 축으로 보면 용어가 정리된다
“four axes”
해석
이 영상의 좋은 점은 distillation 용어를 네 축으로 나눈다는 데 있습니다. text를 배울 것인가 logits를 배울 것인가, teacher가 만든 데이터를 배울 것인가 student가 만든 데이터를 teacher가 평가할 것인가, teacher가 훈련 루프 안에 있는가 밖에 있는가, teacher와 student가 같은 모델인가 다른 모델인가.
이 분류는 agent workflow에도 그대로 들어옵니다. 이미 생성된 좋은 trace를 SFT로 따라 하게 만들면 offline, off-policy 쪽입니다. student가 직접 시도한 행동을 teacher가 루프 안에서 평가하면 online, on-policy 쪽입니다. 같은 모델의 더 나은 샘플을 다시 학습하면 self-distillation입니다. 용어가 어려워 보여도, 실제 질문은 “누가 행동했고, 누가 평가했고, 그 평가가 언제 들어왔는가”입니다.
4. Hard label과 soft label: 토큰을 베낄 것인가, 분포를 배울 것인가
“logits”
해석
Hard label 방식은 teacher가 실제로 낸 토큰을 따라 하게 합니다. SFT가 여기에 가깝습니다. Soft label 방식은 teacher의 logits, 즉 다음 토큰 후보들에 대한 확률 분포를 학습 신호로 씁니다. 정답 하나만 보는 것이 아니라, teacher가 어떤 선택지를 얼마나 그럴듯하게 봤는지를 함께 배우는 셈입니다.
에이전트 관점에서는 이 차이가 중요합니다. 도구 호출 trace만 복사하면 “무엇을 했는가”는 배울 수 있지만, “왜 그 선택지가 더 낫다고 봤는가”는 약하게 남습니다. 반대로 teacher의 평가 분포나 preference를 가까이 가져오면, 같은 상황에서 어떤 행동 경로가 더 안정적인지까지 학습할 여지가 생깁니다. 하네스는 그래서 실행 기록뿐 아니라 실패 기록과 평가 점수까지 남겨야 합니다.
5. TRL의 GKD trainer: lambda와 beta가 운영 모드를 바꾼다
“lambda and beta”
해석
실험 파트는 TRL의 generalized knowledge distillation trainer를 중심으로 진행됩니다. 영상은 같은 trainer 안에서도 lambda와 beta 같은 값을 조절해 off-policy와 on-policy 설정을 바꿀 수 있다고 설명합니다. 세부 수식보다 중요한 것은, 훈련 모드가 코드의 작은 파라미터로 고정된다는 점입니다.
이건 agent engineering에서도 좋은 감각을 줍니다. “좋은 에이전트”는 추상적 목표지만, 실제 운영에서는 mode flag가 필요합니다. 기존 trace를 따라 하게 할지, 현재 agent의 출력을 teacher가 채점하게 할지, KL 방향을 어떻게 둘지, 어떤 dashboard로 비교할지 같은 결정이 실험 설정으로 남아야 합니다. 하네스가 없다면 이 결정은 채팅 기억 속에 흩어지고, 재현 가능한 학습이 되지 않습니다.
6. On-policy와 self-distillation: 모델이 직접 시도하게 만들기
“lambda to one”
해석
On-policy distillation은 student가 실제로 낸 출력 위에서 teacher의 평가를 받는 쪽에 가깝습니다. 이미 만들어 둔 teacher output을 그대로 따라 하는 것보다 비용과 복잡도는 커지지만, student가 실제로 저지르는 오류에 더 가까운 신호를 받을 수 있습니다.
우리 작업으로 옮기면, 이것은 에이전트에게 “완성된 좋은 예시만 보여주기”보다 “직접 초안을 만들게 하고, 검증 스크립트와 사람의 리뷰로 고치게 하기”에 가깝습니다. 결국 agent가 강해지는 지점은 정답을 본 순간이 아니라, 자기 출력이 실제 하네스에서 부딪히고 수정되는 순간입니다.
7. Closed model teacher의 한계: 얻을 수 있는 신호와 없는 신호
“closed model”
해석
마지막 Q&A에서 닫힌 모델을 teacher로 쓸 수 있는지 묻습니다. 영상의 답은 경계가 분명합니다. closed model의 출력 문자열은 받을 수 있지만, on-policy 계열에 필요한 logits 같은 내부 신호는 받을 수 없습니다. 그래서 closed model을 teacher로 쓸 때는 주로 offline 데이터 생성이나 grading, synthetic data pipeline 쪽으로 접근하게 됩니다.
이 대목은 practical합니다. API 모델을 teacher로 삼는 것은 가능하지만, 무엇을 얻을 수 있고 무엇을 얻을 수 없는지 명확히 해야 합니다. 블로그 자동화나 코딩 에이전트 운영에서도 마찬가지입니다. 모델의 내부 확신을 직접 얻을 수 없다면, 대신 외부 검증 하네스를 촘촘히 만들어야 합니다. 빌드, 테스트, lint, diff, public URL 확인, 사람의 판단이 그 빈자리를 채웁니다.
내 생각
이 영상은 “distillation을 어떻게 구현할 것인가”보다 “에이전트 훈련에서 무엇을 학습 신호로 볼 것인가”를 묻게 만듭니다. 내게 남는 결론은 세 가지입니다.
첫째, 에이전트의 지식은 답변보다 절차에 있다. 좋은 agent는 최종 문장을 잘 쓰는 모델이 아니라, 어떤 입력에서 어떤 도구를 쓰고, 어디서 멈추고, 어떤 검증을 통과해야 하는지 아는 모델입니다. 그러려면 하네스가 먼저 있어야 합니다. 하네스가 없으면 distillation할 행동도 없습니다.
둘째, trace는 미래의 training data다. 내가 Codex에게 시키는 블로그 배포, YouTube transcript 수집, ReadMaster routing 수정, public URL 검증은 모두 작업 기록입니다. 지금은 운영 로그이지만, 구조화하면 나중에는 더 작은 agent에게 넘길 teacher data가 됩니다.
셋째, closed model 시대의 핵심은 외부 평가 루프입니다. 내부 logits를 볼 수 없는 모델은 많아질 것입니다. 그렇다면 우리는 모델 내부를 상상하기보다 외부에서 볼 수 있는 산출물, 테스트, 사용자 승인, 반복 실패 패턴을 더 잘 기록해야 합니다. 하네스와 eval은 보조 장치가 아니라 학습 신호의 대체재입니다.
그래서 이 영상은 Hugging Face의 TRL 튜토리얼이면서, 내 작업 환경에는 “블로그 운영을 그냥 자동화하지 말고, 나중에 distill 가능한 하네스로 남겨라”는 메모로 남습니다. 좋은 자동화는 한 번 일을 끝내는 것이고, 좋은 하네스는 그 일을 다음 agent가 배울 수 있게 남기는 것입니다.
우리 하네스에 바로 적용할 점
/youtube는 transcript, metadata, iframe, quote fragment, interpretation을 분리해 trace를 남긴다./blog와/k-blog는 배포 전 build, intended file staging, public URL check를 명시적 평가 루프로 기록한다.- agent 실험은 “완성 답변”만 저장하지 말고 tool call, failure, retry, reviewer note를 함께 남긴다.
- closed model을 teacher로 쓸 때는 내부 신호를 가정하지 않고, 외부 검증 가능한 산출물만 teacher evidence로 삼는다.
- self-distillation은 “좋았던 결과만 재사용”이 아니라, 왜 좋았는지의 하네스 기준과 함께 재사용해야 한다.
출처
- 원본 영상: Training Agents 2: Live tutorial on model distillation for training custom agents.
- 채널: Hugging Face
- 관련 저장소: burtenshaw/training-agents
- 메타데이터와 자막 수집:
yt-dlp, 2026-07-09 확인
댓글
GitHub 계정으로 의견을 남길 수 있습니다. 댓글은 GitHub Discussions에 저장됩니다.