TinyZero 따라하기 (4) - PPO
PPO 란?
TinyZero에서 핵심인 **PPO (Proximal Policy Optimization)**는 강화학습(RL)에서 아주 자주 쓰이는 정책 최적화 알고리즘. 쉽게 말하면, “AI가 보상을 최대화하는 방향으로 조금씩 행동을 업데이트하는 방법” 중 하나.
📌 PPO (Proximal Policy Optimization) 요약
🤖 무엇을 하는가?
모델(정책)을 학습시키면서, **보상(reward)**이 높은 행동을 하도록 만듦
기존 정책과 너무 다르게 바뀌지 않도록 안정적으로 업데이트
✅ 왜 쓰는가?
기존 문제점:
강화학습에서 policy gradient 방식은 보상이 좋다고 파라미터를 크게 바꾸면 불안정해져.
PPO는?
"너무 많이 바꾸지 말고, 적당히 근처에서(policy 주변에서) 최적화하자"
이를 위해 **클리핑(clipping)**을 도입해서 업데이트 폭 제한
안정성 + 성능 사이 밸런스를 잘 맞춰줌
🔁 PPO 학습 흐름 (간단 설명)
질문을 던짐
모델이 응답을 생성
응답에 대해 reward model이 점수를 줌 (좋은 답 = 높은 보상)
PPO로 정책(policy)를 업데이트
좋은 응답은 더 자주 생성되도록
나쁜 응답은 덜 생성되도록
다시 반복
🤝 TinyZero에서의 PPO
TinyZero는 다음 과정을 따름:
📚 비유로 설명
👉 넷플릭스가 너의 시청 패턴을 바탕으로 "이런 거 좋아하겠네!" 하며 추천을 조정하는데, 갑자기 전혀 다른 장르로 바꾸면 너도 당황하잖아?
**PPO는 "천천히, 네가 좋아할 만한 비슷한 장르 안에서 추천을 개선"**하는 방식.
✅ TinyZero에서 PPO가 적용되는 위치
PPO 관련 핵심 로직은 ppo_trainer.py 파일에 집중돼 있음음.
🔍 PPO 흐름 구조 요약
🧠 핵심 코드 분석: PPOTrainer.update() 내부
🧩 구성 요소 설명
🧠 전체 흐름 그림 (시각화 느낌)
✅ Colab Pro용 TinyZero PPO 실행 노트북 예제
💡 설정 설명
configs/pretrain_config.yaml: 사전학습 설정 파일
configs/ppo_config.yaml: PPO 설정 (보상 모델, 배치 크기, 학습률 등 포함)
📁 실행 순서 요약
GPT 언어모델을 사전학습 (train.py)
사용자 질문에 대해 답변 생성
보상 모델이 평가 (좋은 답 = 높은 점수)
PPO로 정책 업데이트 (train_ppo.py)
반복 → 스스로 더 나은 답변 생성
Comments
Post a Comment