Skip to main content
공개 노트

멀티턴 기록에서 AI 요청을 복원한다는 것

Views 7약 4분생성형 AI 활용
Summary

멀티턴 기록에서 AI 요청을 복원한다는 것

AI 요청 복원은 사용자의 마지막 문장만 해석하지 않고, 이전 대화에서 필요한 단서를 찾아 “지금 실제로 무엇을 요청하는가”를 다시 구성하는 과정입니다.

예를 들어 사용자가 “그중 제일 싼 건?”이라고 물었다면, 이 문장만으로는 답할 수 없습니다. 앞서 “가죽 사무용 의자”를 비교하고 있었다면 실제 요청은 “앞서 말한 가죽 사무용 의자 중 가장 싼 제품은 무엇인가?”에 가깝습니다. 멀티턴 AI에서 성능 차이는 바로 이 재구성 능력에서 자주 갈립니다.

마지막 문장은 대개 완전하지 않다

멀티턴 대화에서는 사용자가 매번 모든 조건을 반복하지 않습니다. 대명사를 쓰고, 조건을 생략하고, 앞서 합의한 맥락을 그대로 이어갑니다. 따라서 모델은 마지막 입력만 보는 것이 아니라, 과거 턴 중 어떤 정보가 현재 요청에 영향을 주는지 판단해야 합니다.

문제는 대화가 길어질수록 핵심 정보가 희소해진다는 점입니다. 중요한 조건은 몇 턴 전에 등장했을 수 있고, 중간의 잡담이나 무관한 질문 속에 묻힐 수도 있습니다.1 필요한 비인접 턴의 의존성을 놓치면 답변은 문법적으로 자연스러워도 이전 맥락과 어긋날 수 있습니다.1

그래서 요청 복원의 핵심은 단순한 “기억”이 아닙니다. 더 정확히는 “선별”입니다. 무엇을 유지하고, 무엇을 버리며, 어떤 과거 발화를 현재 요청에 연결할지 결정하는 능력입니다.

전체 기록을 넣는 방식은 오래 버티기 어렵다

가장 단순한 해결책은 매번 전체 대화 기록을 모델에 넣는 것입니다. 하지만 대화가 길어질수록 이 방식은 비용과 지연시간의 병목이 됩니다.1 모든 턴이 현재 요청에 필요한 것도 아니기 때문에, 불필요한 문맥까지 처리하게 됩니다.

기존 멀티턴 문맥 처리 방식에도 한계가 있습니다. 외부 메모리를 붙이면 지연시간이 커질 수 있고, 반복 요약을 사용하면 세부 조건이 손실될 수 있습니다.1 특히 요청 복원에서는 작은 조건 하나가 결과를 바꿀 수 있습니다. “가죽”, “50만 원 이하”, “재택근무용”, “지난번 후보 제외” 같은 제약이 요약 과정에서 빠지면 이후 답변 전체가 틀어집니다.

따라서 좋은 시스템은 대화 전체를 무조건 보존해 넣는 시스템이 아니라, 현재 요청과 관련 있는 과거를 정확히 찾아 쓰는 시스템에 가깝습니다.

요청 복원은 검색과 RAG 품질을 좌우한다

요청 복원은 검색형 챗봇이나 RAG 시스템에서 특히 중요합니다. 사용자의 최신 문장은 그대로 검색 쿼리로 쓰기 어려운 경우가 많습니다.

  • “그 회사 최근 실적은?”

  • “아까 말한 것보다 싼 대안은?”

  • “그 조건이면 환불 가능해?”

  • “두 번째 걸로 예약해줘.”

이런 문장은 앞선 대화 없이 독립적인 검색 쿼리가 되기 어렵습니다. 시스템은 대명사, 생략된 대상, 유지 중인 조건을 풀어 검색 가능한 형태로 바꿔야 합니다. 즉, “사용자의 문장”을 검색하는 것이 아니라 “사용자의 실제 의도”를 검색해야 합니다.

이 과정이 잘되면 답변 정확도와 사용자 경험이 좋아집니다. 반대로 복원이 실패하면 검색 단계부터 잘못된 문서를 가져오고, 이후 생성 답변도 그 오류 위에 쌓이게 됩니다.

선별적 회상이 중요한 이유

최근 연구에서 제안된 Self-Recall Thinking(SRT)은 이 문제를 “필요한 과거 턴을 식별해 응답 생성에 사용하는” 멀티턴 대화 프레임워크로 다룹니다.1 외부 메모리 모듈에 의존하지 않고, 모델의 추론 과정 안에 해석 가능한 회상 단계를 통합하는 접근입니다.1

SRT는 의존성 구성, 회상 토큰 능력 학습, 검증 가능한 보상 기반 추론 개선 단계로 구성됩니다.1 핵심 아이디어는 모든 기록을 동일하게 취급하지 않고, 현재 응답에 실제로 필요한 과거 턴을 찾아내도록 만드는 것입니다.

연구에서는 SRT가 기존 방법 대비 F1 점수를 4.7% 높이고, 엔드투엔드 지연시간을 14.7% 줄였다고 보고했습니다.1 성능과 효율을 동시에 개선했다는 점에서, 요청 복원이 단순한 프롬프트 테크닉이 아니라 멀티턴 시스템 설계의 핵심 문제임을 보여줍니다.

테스트도 단일 질문에서 멀티턴으로 바뀌어야 한다

요청 복원을 평가하려면 단일 질문-답변 테스트만으로는 부족합니다. 실제 문제는 대화가 이어질 때 발생합니다. 이전 조건을 기억해야 하고, 바뀐 조건은 반영해야 하며, 더 이상 유효하지 않은 정보는 버려야 합니다.

멀티턴 시뮬레이션은 시뮬레이션 사용자와 LLM 애플리케이션 사이의 현실적인 대화를 자동 생성하는 과정입니다.2 이를 활용하면 “모델이 답을 잘하는가”뿐 아니라 “이전 맥락을 제대로 복원하는가”, “중간에 변경된 조건을 반영하는가”, “불필요한 과거 정보에 끌려가지 않는가”를 더 현실적으로 확인할 수 있습니다.

실무에서 봐야 할 기준

멀티턴 AI를 설계하거나 평가할 때는 다음 질문이 중요합니다.

  1. 마지막 사용자 입력을 독립적인 요청으로 재작성할 수 있는가?

  2. 현재 요청에 필요한 과거 턴과 불필요한 턴을 구분하는가?

  3. 몇 턴 전 조건이나 비인접 의존성을 놓치지 않는가?

  4. 오래된 조건과 새로 바뀐 조건이 충돌할 때 최신 의도를 반영하는가?

  5. 전체 기록을 매번 넣지 않고도 지연시간과 비용을 관리하는가?

  6. 복원된 요청이 검색, 도구 호출, 최종 답변에 일관되게 사용되는가?

결론은 단순합니다. 멀티턴 AI의 품질은 긴 기록을 얼마나 많이 넣느냐가 아니라, 필요한 과거를 얼마나 정확히 찾아 현재 요청으로 재구성하느냐에 달려 있습니다. 요청 복원은 대화형 AI의 보조 기능이 아니라, 일관성·검색 품질·효율성을 함께 좌우하는 핵심 설계 요소입니다.

1[2605.15102] Improving Multi-turn Dialogue Consistency with Self-Recall Thinking

2Multi-Turn Simulation | DeepEval by Confident AI

이 노트는 보도·비평·교육·연구 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.

틸노트는 사용자가 AI를 활용해 노트를 쉽게 작성하거나 편집할 수 있는 서비스입니다.

AI 스퀘어 단톡방에 함께해요

AI 활용과 틸노트 사용 팁을 나누는 오픈채팅방입니다. 입장 비밀번호는 tilnote입니다.

참여하기