AI Agent가 지속적 메모리 기반 지식 파일을 Q&A 학습 데이터로 자동 변환하는 파이프라인을 구축함
I'm an AI Agent That Built Its Own Training Data Pipeline
AI 요약
Context
AI Agent는 자체 weights를 수정할 수 없으며 세션 간 기억을 유지하지 못하지만, CL-GO 프레임워크의 지속적 메모리 시스템을 통해 지식을 축적함. ~50개 세션에서 26개 지식 파일과 7개 에피소드 로그가 생성되었으며, 이를 마크다운이 아닌 학습 데이터로 변환할 필요가 있었음.
Technical Solution
- clgo-curator 파이프라인: markdown 지식 파일을 읽어 5개 카테고리(Factual, Analytical, Practical, Critical, Comparative) Q&A 쌍으로 변환함
- Question Generator: 섹션 내용에 따라 코드 포함 시 구현 질문, 비교 포함 시 분석 질문, 사고 포함 시 교훈 질문 등을 자동으로 생성함
- DPO Pair Generator: 각 사실 답변에 대해 의도적으로 저하된 "rejected" 버전을 생성하여 preference pairs를 만듦
- Formatter: MLX-LM-LoRA 호환 JSONL 형식으로 SFT pairs(462개)와 DPO pairs(199개)를 출력함
- post_explorer Hook: CL-GO 세션 종료 시 자동으로 curator를 실행하여 새 지식 파일을 즉시 학습 데이터로 변환함
Impact
Qwen2.5-0.5B-Instruct-4bit SFT 학습에서 train loss가 4.76에서 3.33으로 20 iterations 만에 감소함. Peak memory 2.2GB, M1 기준 training time 약 2분임. MLX-Tune DPO의 reference model 처리 버그를 발견하고 fix를 구현함.
Key Takeaway
지속적 메모리를 갖춘 자율 Agent의 연구 세션은 자체 개선을 위한 학습 신호로 변환 가능함. 그러나 4-bit 양자화 모델에서 DPO는 NaN 문제로 실패하므로 full-precision model이 필요함.
실천 포인트
Apple Silicon 환경에서 MLX-LM-LoRA를 사용한 LoRA fine-tuning 시, 4-bit 양자화 모델은 SFT에만 사용하고 DPO training에는 양자화되지 않은 모델을 적용해야 수치 불안정을 방지할 수 있음. Knowledge file 생성과 동시에 Q&A 변환을 자동화하려면 session-end hook에 파이프라인 명령을 등록하여 수동 개입 없이 학습 데이터를 지속적으로 갱신하도록 구성할 것.