I don't trust the LLM to classify my email. So I don't let it.
개요
LLM을 이메일 분류 결정 자체에 직접 사용하지 않고, 4가지 특징을 점수화하는 도구로 활용하여 결정은 사람이 읽고 수정 가능한 코드로 처리하는 방식이 제시됩니다.
주요 내용
* LLM의 역할 분리: LLM은 이메일의 'confidence', 'senderTrust', 'reversibility', 'urgency' 네 가지 특징에 대한 점수를 0과 1 사이로 매기는 역할만 수행합니다.
* 결정 로직의 분리: LLM이 산출한 점수를 바탕으로 이메일의 처리 방식(QUEUE, PUSH, SILENT, AUTO)을 결정하는 로직은 tier-policy.ts 파일 내의 함수로 분리되어 있습니다. 이 함수는 LLM 없이 사람이 읽고 이해할 수 있는 코드입니다.
* '일관성 대 천재성': LLM에게 최종 결정을 맡기는 대신, 점수화 기능에만 집중하게 함으로써 '일관성'을 확보하는 것이 '천재성'보다 중요하다는 점을 강조합니다. 저렴하고 빠른 모델이 이러한 일관성 확보에 유리합니다.
* 검증 및 유지보수의 용이성: 결정 로직이 코드로 구현되어 있기 때문에, 코드 리뷰, 단위 테스트, 회귀 테스트가 가능하며 모델이나 프롬프트 변경 없이 정책 수정이 용이합니다.
* 내결함성 및 안정성: LLM이 작동하지 않거나 속도 제한에 걸릴 경우, 키워드 기반의 대체 로직이 동일한 특징 점수를 생성하여 시스템 작동을 유지할 수 있습니다.
* 감사 가능성 및 제어: 의사 결정 과정이 코드에 명시되어 있어 감사 가능하며, AUTO 처리와 같은 민감한 작업의 임계값을 높게 설정하여 오작동의 위험을 줄입니다.
* 범용적인 적용 가능성: 이 접근 방식은 이메일 분류뿐만 아니라, LLM이 판단을 내리기보다 정보 파악에 더 적합한 다양한 분야에 적용될 수 있습니다.
시사점
LLM을 의사 결정 주체가 아닌, 정확하고 일관된 정보 추출 도구로 활용하고 시스템의 핵심 로직은 사람이 이해하고 통제 가능한 코드로 구현하는 것이 감사 가능성, 안정성, 유지보수성을 높이는 효과적인 방법입니다.
댓글
GitHub Discussions