콘텐츠 생성을 위해 단일 LLM 호출 대신 단계별 체인을 도입한 이유와 그 효과
We stopped using a single LLM call for content generation and split it into staged chains, here's why it made a massive difference
핵심 요약
단일 대형 프롬프트 대신 4단계 파이프라인(청킹, 점수화, 생성, 포맷팅)을 구축하여 품질과 비용 효율성을 대폭 개선한 사례.
- 단계별 파이프라인 — 단일 LLM 호출의 한계를 극복하기 위해 작업을 4단계로 분리하여 품질을 높임.
- 데이터 필터링 — Scoring 단계를 통해 가치가 낮은 청크를 미리 제거하여 비용을 절감하고 결과물 품질을 개선함.
- 디버깅 용이성 — 각 단계마다 독립적인 로그와 입출력을 가짐으로써 문제 발생 시 원인 파악이 훨씬 쉬워짐.
- 소프트웨어 설계 원칙 — AI 워크플로우에도 명확한 역할 분담과 인터페이스 정의라는 전통적인 설계 원칙이 유효함을 입증함.
생산용 AI 파이프라인을 한동안 구축해 오면서 한 가지 패턴이 계속 나타나고 있습니다. 출력 품질이 정말 중요할 때 단일 대형 LLM 호출은 확장이 잘 되지 않습니다.
하나의 체인을 여러 단계로 나누었을 때 큰 차이를 만들었던 사례를 소개합니다.
문제점
우리는 60분에서 90분 정도의 긴 오디오 트랜스크립트를 다루고 있었고, 하나의 체인에 모든 것을 요청했습니다:
전체 문맥 이해
가장 가치 있는 순간 찾기
다양한 플랫폼용 포스트 생성
출력을 위한 모든 포맷팅
결과는 일관되지 않았습니다. 때로는 훌륭했지만, 때로는 매우 평범했습니다. 문제가 발생했을 때 어느 부분이 실패했는지 알 수 없어서 디버깅하기가 어려웠습니다.
변경 사항
프로세스를 4단계로 나누었습니다.
1단계: Chunking (청킹)
토큰 길이로 나누는 대신, 트랜스크립트를 의미 있는 세그먼트로 나누었습니다. 세그먼트에 완전한 아이디어가 포함되어 있는지 확인하기 위해 간단한 프롬프트를 사용했습니다. 덕분에 훨씬 깔끔한 청크를 얻을 수 있었습니다.
2단계: Scoring (점수화)
각 청크를 개별적으로 평가하여 소셜 콘텐츠로서 얼마나 가치가 있을지 점수를 매기는 집중 프롬프트를 사용했습니다. 점수가 낮은 청크는 조기에 필터링하여 비용도 줄였습니다.
3단계: Generation (생성)
높은 점수를 받은 청크만 다음 단계로 넘어갔습니다. 각 청크에는 플랫폼별 프롬프트가 제공되었습니다. LinkedIn, Twitter, Instagram은 각각 고유한 스타일을 가졌습니다. 동일한 청크라도 프롬프트에 따라 매우 다른 결과물을 만들어냈습니다.
4단계: Formatting (포맷팅)
구조를 표준화하고, 길이를 확인하며, 게시 전 사람의 검토가 필요한 항목을 표시하는 마지막 단계입니다.
결과
출력물은 예측 불가능한 상태에서 일관되게 좋아졌습니다. 각 단계마다 자체 로그가 있어 디버깅이 쉬워졌습니다. 저품질 세그먼트에서 콘텐츠 생성을 중단했기 때문에 비용이 감소했습니다.
더 큰 교훈
하나의 체인이 너무 많은 일을 하게 하려고 할 때마다 실패했습니다. 각 단계에 깔끔한 입력과 출력을 갖춘 명확한 역할을 부여하는 것이 훨씬 더 효과적이었습니다. 이는 기본적으로 AI 워크플로우에 적용된 좋은 소프트웨어 설계입니다.
아직 탐구 중인 한 가지
단계 간의 메모리를 처리하는 방법입니다. 현재 각 단계는 우리가 전달하는 내용만 알고 있습니다. 대부분의 경우 잘 작동하지만, 더 긴 워크플로우를 위해 토큰 사용량을 너무 늘리지 않으면서 문맥을 전달하는 더 나은 방법을 테스트하고 있습니다.
다른 분들도 단일 체인에서 단계별 파이프라인으로 이동하셨는지 궁금합니다. 어떤 방식이 효과적이었나요?


