Fine-tuning an LLM to write docs like it's 1995
개요
본 연구는 1990년대 소프트웨어 기술 작가 스타일로 문서를 작성하도록 LLM을 미세 조정하는 실험을 수행했습니다. Bitsavers에서 수집한 3천 7백만 단어 이상의 마이크로소프트 기술 문서 코퍼스를 활용하여, QLoRA 기법으로 Llama 3.1 8B Instruct 및 Qwen 2.5 7B Instruct 모델을 미세 조정하고 그 결과를 평가했습니다.
주요 내용
* 학습 데이터 수집 및 전처리: 1977년부터 2005년까지 출판된 마이크로소프트 기술 문서를 포함하는 Bitsavers의 Microsoft 컬렉션을 학습 데이터 소스로 사용했습니다. OCR 처리된 텍스트 파일에서 인덱스 및 앞부분과 같은 불필요한 내용을 Python 스크립트로 제거하고, gemma-4-26b 모델을 사용하여 문단의 가독성을 평가하여 데이터를 정제했습니다.
* 데이터셋 구성: 정제된 텍스트를 512 토큰 이하의 청크로 분할하고, 각 청크에 합성된 지침을 부여하여 192,456개의 JSONL 형식 학습 예시를 생성했습니다.
* 미세 조정 기법: LLM을 처음부터 훈련하는 대신, 기존 모델의 가중치를 약간 조정하는 미세 조정(fine-tuning) 방식을 사용했습니다. 특히, 모델 가중치를 고정하고 추가적인 어댑터를 적용하는 QLoRA(Quantized Low-Rank Adaptation) 기법을 채택하여 메모리 요구량을 줄였습니다.
* 실험 대상 모델 및 환경: Llama 3.1 8B Instruct와 Qwen 2.5 7B Instruct 두 가지 instruct 모델과 Llama base 모델을 실험 대상으로 선정했습니다. 컴퓨팅 자원은 GPU를 온디맨드로 제공하는 Runpod 서비스를 이용했으며, 미세 조정 과정은 총 50달러 미만의 비용으로 하루 만에 완료되었습니다.
* 미세 조정 결과 평가: malloc() 함수 문서화, 가상의 ConnectWifi() Win32 API 함수 문서화, 1990년대 스타일로 REST API 설명 등의 프롬프트를 사용하여 미세 조정된 모델들의 스타일 전이 효과를 평가했습니다. Qwen 모델이 1990년대 기술 문서의 구조와 문체를 더 잘 재현했으며, 특히 Qwen 192k 모델은 Windows 2000 Resource Kit의 일부처럼 느껴지는 결과물을 생성했습니다.
* 하이퍼파라미터 영향 분석: 데이터 볼륨(40k vs 192k), 에포크 수(1 vs 3), 랭크(8 vs 16) 등 다양한 미세 조정 파라미터의 영향을 분석했습니다. 랭크가 낮을수록 데이터에 더 강하게 고정되는 경향을 보였고, 랭크와 에포크의 조합은 환각(hallucination) 발생 빈도에 영향을 미쳤습니다.
시사점
본 실험은 LLM을 특정 스타일로 미세 조정하는 것이 비교적 저렴한 비용으로 효과적일 수 있으며, 특히 스타일 검토나 내부 스타일 가이드라인 준수 문서 초안 작성 등과 같은 작업에 활용될 수 있음을 보여줍니다. 그러나 미세 조정된 모델은 인간 기술 작가를 완전히 대체하기보다는 보조하는 역할을 할 수 있으며, 여전히 상당한 지침과 판단이 필요합니다.
댓글
GitHub Discussions