TECHARTNOMAD | TECHARTFLOWIO.COM

TECH.ART.FLOW.IO

게임 Coder 전용 모델 강화 학습 WIP

jplee 2025. 12. 30. 01:01

한달 정도 전부터 직접 강화학습을 시켜야겠다는 생각이 있었기 때문에 와이프에게 허락을 맡고 집에 학습용 장비를 좀 마련 했습니다.

학습을 위해서는 쌍 데이터 세트가 필요 했는데요.

유니티 풀 소스코드와 언리얼 엔진 풀 소스코드를 모두 데이터 세트로 만들었어요.

기타 프로젝트 소스코드도 데이터 세트로 만들었는데... 

약 20일 정도 걸렸습니다. ㅜㅜ

2025년 12월 29일 부터 학습에 들어가게 되었습니다.

오바 했던게...Qwen3 Coder 30B Instruction Model 을 훈련 시키려고 했던게 근본 문제... 개인이 감당하기에 너무 큰 모델 훈련을 시키면 제 나이 환갑이 될 때 끝날지도 모르겠더군요.

좀 작은 모델로도 충분 해 보여서... models--unsloth--Qwen2.5-Coder-14B-Instruct-bnb-4bit 로 갈아타니까 이제 좀 앞이 보입니다. 여러모로 아직은 Loss 값이 왜 이렇게 높은지... 원... 파라메터 튜닝 좀 해야할거 같습니다.

Instruction 모델은 이미 C++ 이나 프로그래밍 언어 학습이 잘 되어 있는 모델이기 때문에 CF 가 발생하지 않도록 설정을 잘 하고 학습을 시켜야 합니다.

최대치로 예상 6일 정도 걸리네요. ㅜㅜ

일단 이게 끝은 아니고 학습 후 다시 GUFF 모델로 변환 해서 올라마에 띄우고 평가를 해야 합니다.


데이터 셋 제작을 위한 인스트럭션 생성 탭.

 

강화학습 탭

워크플로우를 보자면

게임 개발등에 활용 된 소스코드 또는 렌더파이프라인 저장소로 부터 데이터를 수집하여 "ChatML" 형식(JSONL)으로 인스트럭션 데이터를 만들 수 있습니다. Qwen 모델은 "ChatML" 형식이 가장 Stable 하기 때문에 사용했습니다.

훈련 탭에서 14B 모델을 16bit 그대로 훈련 시킵니다. Ollama 에 업로드 하기 위해서 Guff 형식으로 변환 해 주고 "Q8_0" 설정으로 양자화 해서 등록 해 줍니다. 로컬 컴퓨터 스팩에 따라 16b 는 응답이 매우 느리거든요. 적당한 응답속도 보장을 위해서 "Q8_0" 설정으로 양자화 했습니다.

약 15초 정도 기다리면 등록이 완료 됩니다.

이미 실행 되어 있던 Ollama 를 완전히 종료 후 다시 시작 해 볼까요?

다시 실행 하면 알아서 다시 로딩을 해 줍니다.