I Trained an LLM on 75K of My Own Messages So It Would Stop Writing Like a Chatbot

개요

한 개인이 자신만의 글쓰기 스타일을 모방하도록 LLM을 훈련시키기 위해 75,000개 이상의 개인 메시지를 활용했으며, 이 과정에서 생성된 콘텐츠가 챗봇처럼 들리는 문제를 해결하기 위해 두 단계로 구성된 아키텍처를 개발했다.

주요 내용

* 문제 정의: 기존 LLM은 내용 생성 능력은 뛰어나지만, 특정 개인의 고유한 글쓰기 스타일을 정확하게 모방하는 데 한계가 있으며, 프롬프트 엔지니어링만으로는 스타일 일치를 달성하는 데 상한선이 존재한다.
* 아키텍처 구성:
* Tier 1 (프론티어 모델): Claude Opus, Llama 70B와 같은 최신 LLM이 사용자의 작업 맥락(Git 커밋, 지식 그래프, 캘린더 이벤트 등)을 바탕으로 내용 추론, 구조화, 사실적 기반 마련의 역할을 담당한다.
* Tier 2 (스타일 재작성 모델): Qwen 2.5 3B 모델을 75,329개의 개인 글쓰기 샘플로 미세 조정하여, Tier 1에서 생성된 범용적인 텍스트를 사용자의 고유한 스타일로 재작성하는 역할을 한다. 이 모델은 추론 능력이 아닌 스타일 전이 능력에 집중한다.
* 모델 선택: Qwen 2.5 3B 모델은 소비자용 하드웨어에 적합한 크기(약 2GB), 스타일 전이에 충분한 용량, 음성 신호가 묻히지 않는 작은 파라미터 공간이라는 이점으로 인해 선택되었다.
* 훈련 데이터: 23년간 작성된 iMessage, Google Chat, Plaud 녹음, ChatGPT 프롬프트, Instagram DM, Gmail, Facebook, Claude 프롬프트, SMS, Outlook 이메일 등 총 75,329개의 샘플이 활용되었다.
* 데이터 전처리: 개인 정보 보호를 위해 이름, 주소, 금액 등 민감한 정보는 일반화하고, Tapback, URL/이모티콘만 있는 메시지, 자동 생성 이메일, 인용된 회신 텍스트, 이메일 서명 등 노이즈를 제거하며, 복사/전달된 메시지는 해시를 통해 중복을 제거하는 과정을 거쳤다.
* 훈련 과정: ShareGPT 형식으로 변환된 데이터를 사용하여 unsloth + trl 라이브러리를 이용해 QLoRA 방식으로 훈련되었으며, AMD Radeon 8060S GPU에서 약 17시간이 소요되었다.
* 결과 평가: 미세 조정된 모델과 기본 모델을 블라인드 A/B 테스트한 결과, 미세 조정된 모델은 사용자의 간결하고 직접적인 스타일을 성공적으로 모방하여 챗봇스러운 응답과 차별화되는 모습을 보였다.
* 개선점: 공식적인 글쓰기(이메일, 장문) 데이터 비중을 높이고, 특정 맥락(이메일, 채팅, 포스트)에 따른 스타일 라우팅 프롬프트를 추가하며, 실제 사용 사례인 AI 생성 초안 재작성에 대한 평가를 강화할 필요가 있다.

시사점

개인의 고유한 글쓰기 스타일은 LLM의 추론 능력과 분리하여 학습될 수 있으며, 이를 통해 기존 LLM의 '챗봇스러운' 응답을 넘어선 개인화된 콘텐츠 생성이 가능해진다.

원문 읽기 →
원문을 불러오는 중...

댓글

GitHub Discussions