
문서를 편집하지 않고 입력을 편집한다 - Document Model이라는 방식
요약
LLM을 활용한 문서 작성 시 대화 문맥과 문서 내용이 섞이는 문제를 해결하기 위해 'Document Model' 방식을 제안합니다. 입력을 구조화된 필드 집합으로 관리하고, 대화용 LLM과 문서 생성용 렌더러 LLM의 역할을 분리하여 문맥을 격리하는 것이 핵심입니다.
핵심 포인트
- 문서를 직접 편집하는 대신 구조화된 입력을 통해 문서를 생성하는 방식 제안
- 대화 담당 LLM과 문서 렌더러 LLM의 역할을 분리하여 문맥 혼선 방지
- 입력 데이터와 작성 규칙을 분리하여 출력의 일관성 확보 시도
- AI 특유의 말투와 논리적 비약(미제시 정보 참조) 등 생성 품질 문제 언급
LLM에게 문서를 쓰게 할 때, 대화를 나누면서 문서를 작성해 나가는 방식은 흔히 사용된다. 하지만 의도한 결과물을 쓰게 하는 것은 생각만큼 쉽지 않다. 어려움 중 하나는 대화의 문맥과 결과물의 문맥이 같은 곳에 섞여 버린다는 점에 있다. 지금 문서의 내용을 결정하고 있는 것이 대화의 흐름인지, 아니면 확정된 정보인지가 모호해진다.
문서는 입력의 파생물이다
그래서 Document Model이라는 것을 생각했다. 대화 속에서 문서 자체를 만들어 나가는 것을 그만두고, LLM에게는 구조화된 입력을 제공하며, 문서는 거기서부터 생성하게 한다. 입력은 산문이 아니다. 필드(Field)의 집합이다.
{
"language": "ja",
"documentType": "기술 기사 (Zenn)",
...
글을 쓰는 것은 여전히 LLM이다. 바뀌는 것은 인간 쪽이며, 손을 대는 대상이 문서에서 입력으로 옮겨간다. 문서는 편집 대상이 아니라, 입력으로부터 얻어지는 파생물이 된다.
Document = DocumentModel(Input)
입력이 출력을 결정한다.
LLM을 두 가지 역할로 나누어 사용하기
핵심은 LLM을 두 가지 역할로 나누어 사용하는 데 있다. 한쪽은 대화 상대가 되는 LLM으로, 인간의 말을 듣고 인식의 차이를 메워가며 입력을 구성한다. 이 LLM은 문서를 쓰지 않는다. 다른 한쪽은 렌더러(Renderer)로, 입력만을 받아서 문서를 쓴다. 이 LLM은 대화를 보지 않는다.
렌더러가 받는 것은 입력뿐만이 아니다. 문서의 작성 방식을 정한 규칙도 함께 전달한다. 무엇을 어떤 순서로 쓸지, 어떤 톤으로 할지, 무엇을 써서는 안 되는지가 그곳에 적혀 있다. 역할마다 문맥을 분리해 버리면 서로 섞일 일이 없다.
문법은 맞지만, AI가 썼다는 것을 알 수 있다
구조적으로 혼선은 사라졌지만, 기사로 완성하는 단계에서는 다른 곳에서 애를 먹었다. LLM의 문장은 유창하고, 문법도 정확하며, 의미도 통한다. 그럼에도 독자가 AI의 문장임을 알아채는 이유는, 의미는 통하지만 실제로는 사용되지 않는 말투가 섞여 있기 때문이다.
더 까다로운 것은 독자가 내용을 따라가지 못하게 만드는 작성 방식이다. 렌더러는 입력을 전부 알고 있다. 독자는 그때까지 쓰인 내용만을 알고 있다. 이 차이가 렌더러에게는 보이지 않는다. 그래서 아직 설명하지 않은 것을 가리키며 쓰거나, 아직 제시하지 않은 대비를 전제로 삼기도 한다. 쓰는 입장에서는 논리가 맞다고 보이지만, 읽는 입장에서는 이야기가 끊겨 있다.
증상이 나타날 때마다 규칙에 규정을 추가하면 고쳐진다. 대신 규정은 늘어나고 서로 간섭하게 된다. 출력을 다른 LLM에게 리뷰하게 하는 루프(Loop)도 돌려보았지만, 리뷰가 보는 것은 결락(누락)뿐이다. 무엇이 부족한지는 말해주지만, 무엇이 필요 없는지는 말해주지 않는다. 루프는 더하는 방향으로만 움직인다.
조금 더 시행착오를 거쳐 볼 생각이다.
Discussion

AI 자동 생성 콘텐츠
본 콘텐츠는 Zenn AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기