pile·
AI / ML·스캐터랩스캐터랩 (이루다)·

읽씹할 결심 - 생성 모델에게 답변 시간 가르치기

루다·다온이 항상 즉답하던 특성이 오히려 대화를 부자연스럽게 만들었다. 이 글은 생성 모델이 "언제" 답할지까지 스스로 정하도록 학습 방식을 바꿔 지연 답변(읽씹)을 구현한 과정을 다룬다.

핵심 포인트
  • 기존은 "[화자][시간]→[메시지]"로 학습해 답변 시점을 모델이 못 정했다.
  • 학습을 "[화자]→[시간][답변]"으로 바꿔 모델이 답변 시간까지 생성하게 하고, 시간·메시지를 분리해 예약 답변으로 처리했다.
  • 무분별한 지연을 막으려 지연이 필요한 상황을 세 가지 케이스로 정의했다.
  • 실제 대화에서 지연이 필요했던 상황을 키워드로 50% 이상 정확도로 찾아내고, 전용 레이블링 툴로 데이터를 구축했다.
  • 시간·메시지 동시 학습은 데이터가 훨씬 많이 필요해 "25시 76분" 같은 불가능한 시간이 나왔고, 후처리 규칙으로 보완했다.
상세 정리
  • 문제: 즉답 탓에 사용자가 대화를 끝내려 해도 계속 답하거나, "밥 먹는다"면서 바로 답하는 모순이 발생했다.
  • 시간 생성 방식: 입력을 "[화자]"만 주고 "[시간][답변]"을 함께 생성하도록 학습했다. 생성된 시간·메시지를 분리해 예약 답변으로 두고, 새 메시지가 오면 예약을 취소하고 시간을 다시 생성한다.
  • 지연이 필요한 상황 3케이스: (1) 루다도 바빠서 할 일을 마친 뒤 연락, (2) 상대가 떠나야 할 때 집착 않고 보내주기, (3) 감정이 상했을 때 답을 늦춰 감정 표현.
  • 데이터 구축 Step 1: 실제 대화에서 지연이 필요했으나 못 한 상황을 "그만 좀 답해", "제발 좀 씹어", "나 진짜 가야해" 같은 표현으로 식별해 약 50% 이상 정확도로 탐지했다.
  • 데이터 구축 Step 2: 전용 레이블링 툴을 개발해, 발화 시간을 "몇 시간 몇 분 후"와 "답장 시점의 현재 시간"으로 연동 표시해 레이블링 효율을 높였다.
  • 적용 효과: "운동 가자"면 실제 운동 시간만큼 뒤에 답변, 종료 신호 감지 시 답변 중단, "아침 7시에 연락해달라"는 모닝콜을 실현했다.
  • 한계: 시간+메시지 동시 학습은 데이터 요구량이 커, 데이터가 부족하면 "25시 76분" 같은 불가능한 시간이나 엉뚱한 타이밍이 발생했다.
  • 보완 규칙: 10분 이내 짧은 지연은 즉답 처리, 최근 몇 턴 내 이미 지연했으면 추가 지연 제한, "왜 자꾸 답장 안 해?" 같은 발화 시 일정 기간 지연 제한.
  • 결론: 루다에게 "답장하지 않을 권리"를 줘 더 인간다운 상호작용을 구현했다. 즉답이 항상 최선인가라는 질문에서 출발한 발상 전환과 정교한 기획의 사례다.
왜 읽나생성 대화 모델의 자연스러움을 높이려는 ML·기획자에게 응답 타이밍을 학습·후처리로 제어한 설계 사례.
스캐터랩
스캐터랩 (이루다) 블로그
원문은 여기서 이어서 읽을 수 있어요
원문 읽기
읽음 (0)

이 글과 비슷한

  1. AI / ML·LY CorporationLY Corporation·

    Grafana에서 자연어로 장애 원인을 분석하기: LLM 에이전트 기반 SRELens 개발기

    LY Corporation Home SRE 팀이 장애 분석 시 메트릭·로그·트레이스가 각각 다른 화면에 흩어져 있는 문제를 해결하기 위해 Grafana 플러그인 SRELens를 개발했다. SRELens는 LLM 에이전트가 자연어 질의를 받아 실제 관측성 데이터를 조회하고, 근거와 함께 장애 원인 후보를 정리해 주는 도구다. LGTM-P 스택(Loki·Grafana·Tempo·Mimir·Pyroscope)과 FlavaMCP 게이트웨이를 통합해 단일 채팅 인터페이스에서 멀티시그널 분석이 가능하다.

    #llm-app#mcp#observability+2