유저와 함께 만드는 LLM 2편 — 제타에 Online Learning 도입하기
두줄요약
비동기 GRPO 인프라와 TIS 보정으로 rollout·학습 간 확률 불일치를 안정화했습니다. 리워드 해킹을 완화해 DPO 대비 이용시간과 리텐션을 개선했습니다.
문제 상황
- 유저 시그널 기반 GRPO online-learning 적용 과정에서 단일 노드 동기 구조의 GPU 유휴 시간·메모리 부족·OOM 위험
- vLLM rollout과 학습 엔진 간 logprob 차이, 비동기 큐의 정책 버전 차이에 따른 학습 불안정
- 리워드 점수 상승에도 띄어쓰기 생략·응답 길이 축소 등 reward hacking과 생성 품질 저하
구조와 흐름
- 학습 노드와 추론 노드 분리, 추론 노드 내 생성 엔진과 리워드 모델 공동 배치 방식의 비동기 GRPO 인프라
- FSDP 파라미터 스트리밍과 NCCL·NVLink·RDMA broadcast 기반의 빠른 가중치 동기화
- rollout 정책 버전 기록과 staleness 허용치 기반의 오래된 샘플 폐기
해결 방법
- PPO clip의 정책 변화 제어와 TIS의 rollout-학습 분포 불일치 보정을 분리
- sequence 단위 importance sampling을 token 단위로 전환해 띄어쓰기 생략 완화
- 리워드 모델·길이 보상의 채널별 분리 정규화와 연속형 길이 보상 적용
성능/운영 포인트
- HTTP 전송 대비 NCCL 기반 가중치 동기화 시간의 수백 초에서 수 초 수준 단축
- DPO 모델 대비 평균 이용시간·리텐션 개선, 대화 맥락·분위기·캐릭터성 추종 강화
- 목표 범위 내 응답 길이 유지와 반복 표현·띄어쓰기 이상 가드레일 안정화

