23.06.15
DEVOTEE를 활성화 시키면
지금 작성한 커뮤니티 글에 대해 1개의 댓글을 달아줍니다.
버튼을 누르면 글 수정 시 ChatGPT가 작성한 댓글이 수정됩니다.
| 컨텐츠 유형 | 제목 | 저장일 | 삭제 |
|---|
본인인증 로그인에 실패하였습니다.
회원이 아니시거나 본인인증 등록이
완료되지 않은 사용자입니다.
안녕하세요. SK텔레콤에서 통화요약을 기획하고 있는 류시진입니다.
한줄요약은 SKT의 독자적 LLM 모델인 A.X를 활용한 통화요약 서비스의 task 중 하나로
수많은 통화 중 내가 원하는 "그 통화"를 찾을 수 있게 도와 주는 에이닷 AI 통화요약의 핵심 기능입니다.
한줄요약은 때로는 빠른 통화 탐색을 도와주기도 하고,
때로는 유쾌한 제목으로 추억을 만들어 주기도 하는데요.
이렇게 유용한 한줄요약에도 아쉬운 점이 없지는 않았습니다...
통화 내용이 너무 짧거나, 다양한 주제로 통화를 하는 경우 추상적인 제목이 생성되는 경우가 있습니다.
예를 들면, "남자친구와의 즐거운 통화", "퇴근 길에 나눈 이야기" 등이 있는데요.
틀린 제목은 아니지만 수많은 통화 중 원하는 통화를 찾기에는 어려움이 있겠죠?
(아래 예시 이미지는 샘플로, 실제 AI 생성 결과가 아닙니다.)
한줄요약 LLM에는 유쾌한 제목을 생성해주는 재미요약 기능이 함께 탑재되어 있습니다.
재미요약 덕분에 일상적 통화에서 미소를 짓기도 하고, 소중한 추억도 쌓을 수 있지만
적절하지 않은 주제나 분위기에서 재미요약이 생성된다면 불편한 마음이 들 수도 있을 거예요.
(아래 예시 이미지는 샘플로, 실제 AI 생성 결과가 아닙니다.)
한줄요약은 내부 평가 시 몇 가지 성능을 측정하는 지표가 있습니다.
대표적인 지표는 사실성 / 유창성 / 핵심성 / 구체성 인데요.
초기 한줄요약은 할루시네이션을 방지하고, 가독성이 좋은 제목을 만들기 위해
"사실성"과 "유창성"에 중점을 둔 학습을 진행했습니다.
결과물을 심플하게 만든 덕분에 거짓을 포함할 확률이 낮아지고 간결하게 읽기 좋은 제목이 되었지만,
구체적인 정보를 확인하고 핵심 키워드를 담기 어려워지는 현상도 함께 발생했습니다.
위와 같은 이유로 한줄요약은 추상적 제목이 생성되는 경향성이 발생하게 되었습니다.
상용 서비스에서 내용 파악이 어려운 제목들이 많이 생성되면 서비스 품질 이슈가 있기 때문에
학습 데이터 중 추상적 제목이 생성된 통화들은 대신 유쾌한 제목으로 대체하여 학습 데이터를 구성했고 (재미요약),
이를 통해 한줄요약 LLM 품질을 관리해오고 있었습니다.
먼저 유저 입장에서 통화제목이 제공하는 핵심 가치가 무엇인지 생각해볼 필요가 있습니다.
포스팅 서문에 나왔던 것과 같이
수많은 통화 중 내가 원하는 "그 통화"를 찾을 수 있게 해주는 제목
즉 통화의 핵심 내용을 지니면서, 다른 통화와의 구분이 가능한 구체성을 지닌 제목이 좋은 제목이 되겠죠.
서비스 품질 관리를 위해서 여전히 "사실성"과 "유창성"은 중요한 지표입니다.
다만 핵심 가치에 집중하기 위해 "핵심성"과 "구체성"지표의 우선순위를 좀 더 올릴 필요가 있어 보였습니다.
기존에도 핵심성과 구체성을 높이려는 시도가 없었던 건 아니었습니다.
밸런스를 맞추면서도 성능을 향상시키기 위해서는 GT(Ground Truth)를 생성하는 모델이 기존보다 좀 더 똑똑할 필요가 있었기에,
우선적으로 GT 생성 모델을 고성능 모델로 교체하는 것으로 학습데이터 생성을 준비했습니다.
그리고 이어지는 Prompt Engineering.
우리의 목표는 1%였습니다.
내부 기준에 의하면 기존 GT 중 20% 수준이 "추상적 제목"으로 분류되고 있었지만
이 수준을 1%까지 낮출 수 있도록 핵심성, 구체성을 높이고자 했습니다.
원하는 지표 성능을 올리면서도, Trade-off 관계에 있는 다른 지표들의 성능에 영향을 적게 주는 궁극(?)의 Prompt를 찾기 위해
수많은 반복(Iterative) 과정을 진행했고, 결국 1%를 맞출 수 있었습니다.
기존 Prompt가 2줄짜리 심플한 가이드였던 반면
새롭게 결정된 Prompt는 10줄짜리 가이드가 상세하게 적힌 모습으로 변경되었습니다.
이렇게 완성된 학습데이터로 LLM개발팀과 함께 한줄요약 New 모델을 만들어 보았습니다. 그리고...
New 모델과 기존 상용 모델을 비교하는 전문가 평가를 진행했습니다.
기대했던 대로 원하던 지표의 성능은 월등하게 향상되었습니다.
구체성 + 29.5%p
핵심성 + 10.9%p
한줄요약의 새로운 모델은 기존 모델 대비하여 구체성과 핵심성에 있어 매우 높은 퍼포먼스를 보여 주었습니다.
이제 비슷한 통화를 두고 하나씩 들어가 보지 않아도, 제목만으로 판단하기 쉬워졌습니다.
하지만 다른 지표들의 성능 하락 수준이 심하다면 좋은 변화라고 보기 어렵겠죠.
그런데, 밸런스도 찾았습니다!
사실성 - 2%p
유창성 - 2%p
주요 지표의 성능 향성 정도 대비, Trade-off 관계에 있는 지표의 하락 정도가 매우 낮아
우리가 원하던 결과를 달성하게 되었습니다.

신규 모델의 핵심성, 구체성 향상으로 인해 기존 재미요약의 대상이던 "추상적인 제목"이 전부 사라졌습니다.
우리는 통화 중 타겟 비율만큼의 유쾌한 통화 제목이 생성되길 바라기 때문에, 새로운 대상을 찾아야 했습니다.
유저 불편을 최소화하기 위해서는 적절한 통화를 유쾌한 제목으로 바꾸는 것이 중요합니다.
이를 위해 학습 데이터 중 가벼운 분위기의 input들을 분류할 수 있는 Prompting을 적용했고,
이에 해당하는 비율이 타겟 비율이 될 때까지 반복(Iterative)를 다시 진행했습니다.
타겟 비율을 달성한 Prompt로 프리징한 후, 해당 시점에 가벼운 분위기로 분류된 학습 데이터들은
GT로 일반적인 한줄요약을 대체할 "재미요약"을 적용하여 모델 학습을 진행했습니다.
(단조로운 유머를 피하기 위해 "식상한 키워드"로 필터링 된 재미요약들은 GT 생성을 retry하기도 했답니다.)
분위기가 가볍다고 판단하더라도, 주제 자체가 민감하다면 유쾌하게 표현하기 조심스럽죠.
재미요약 대상이 된 새로운 학습 데이터 그룹에 재미요약 GT를 생성할 때 Safety를 한 번 더 적용했습니다.
"민감한 주제"에 해당되는지 Prompting하여 해당되는 통화는 다시 GT를 일반적인 한줄요약으로 대체한 것입니다.
뿐만 아니라, 최종 GT에 비속어가 포함되어 있는지 한번 더 필터링하여
총 3겹의 Safety Layer가 만들어질 수 있도록 학습데이터 생성 프로세스를 설계했습니다.
이러한 프로세스를 통해 만들어진 학습데이터로 학습한 New 모델은...
동일한 전문가 평가 결과, 원하던 Safety 구현에 성공했습니다.
상용 모델의 불편한 재미요약 비중 : 1%
New 모델의 불편한 재미요약 비중 : 0%
관련 이슈 발생 수준도 현저히 감소했고,
통화와 그 제목의 분위기가 일관성을 가진 "느낌 좋은" 한줄요약이 되었습니다.
사실 이번 과제를 시작하기 전까지는 기획자로서 LLM task를 어떻게 더 개선할 수 있을지 고민이 많았습니다.
고지능의 GT 생성 모델을 채택하거나, 더 좋은 Foundation 모델이 개발되는 등
기술적 개선들은 누가 봐도 직관적이고 선명하게 task의 성능을 향상시켜 주는데...
이런 걱정이 없다고 할 수 없었죠.
과연 정책적인 해결책으로도 가시적인 성능 향상을 만들 수 있을까?
이번 과제에서 원하던 결과를 만들고 나니
서비스는 역시 집요한 기획과 개발이 함께 하면 올라갈 곳이 더 있다는 사실을 또 한 번 느낍니다.
유저들의 사용성을 고민하고 서비스가 제공하는 가치의 본질이 무엇이었는지 반추하는 과정을 통해,
앞으로도 통화요약이 조금씩 진화할 수 있으리라는 자신감을 가지는 계기가 되었습니다.
DEVOTEE를 활성화 시키면
지금 작성한 댓글에 AI가 댓글을 달아줍니다.