23.06.15
DEVOTEE를 활성화 시키면
지금 작성한 커뮤니티 글에 대해 1개의 댓글을 달아줍니다.
버튼을 누르면 글 수정 시 ChatGPT가 작성한 댓글이 수정됩니다.
| 컨텐츠 유형 | 제목 | 저장일 | 삭제 |
|---|
본인인증 로그인에 실패하였습니다.
회원이 아니시거나 본인인증 등록이
완료되지 않은 사용자입니다.
안녕하세요.
저는 LLM Application 팀에서 에이닷 전화의 통화요약 모델 개발을 맡고 있는 권홍석입니다.
이번 기고에서는 에이닷 전화 서비스에 적용된 통화요약 기능의 핵심 기술인 대규모 언어 모델(LLM) 개발 과정을 소개드리고자 합니다.
서비스 배경현대 사회에서는 통화가 다양한 비즈니스, 고객 서비스, 그리고 일상 생활에서 핵심적인 소통 수단으로 사용되고 있습니다.
이러한 통화 기록은 기업과 개인 모두에게 중요한 정보를 포함하고 있지만, 방대한 양으로 축적되는 데이터를 분석하고 필요한 정보를 빠르게 파악하는 데는 많은 시간과 노력이 필요합니다.
에이닷 전화 통화요약 서비스는 통화 내용을 자동으로 분석하여 사용자가 효율적으로 정보들을 활용할 수 있게 도움을 주고자 하며,
특히 단순 요약을 넘어 AI가 사용자의 일정 관리와 중요한 작업을 제안함으로써 실질적인 생산성을 높이는 데 도움을 주고 있습니다.
아래 그림 1은 현재 제공하고 있는 서비스를 도식화한 것이며 6가지 기능을 제공합니다.
한줄요약: 통화 내용을 간단히 한 줄로 요약하여 핵심 정보를 전달
AI제안: 나와 관련된 주요 일정 및 할일을 추출하여 제공
문단요약: 통화의 주요 내용을 주제의 흐름에 따라 상세히 요약
소제목요약: 주제 별로 나눠진 문단요약에 보다 간결한 소제목을 제공
통화분류: 통화의 목적과 성격을 고려하여 5가지 카테고리로 태그 정보를 제공
주제태그: 통화 속 핵심 키워드를 해시태그 형식으로 제공
(그림 1. 에이닷 전화 통화요약 서비스 6 Features)
이 모든 기능은 미세 조정(Fine-tuning)된 LLM에 의해 생성됩니다. 현재 에이닷 통화요약 서비스는 일간 1,000만건 이상의 통화를 처리하고 있으며,
이에 따른 LLM 호출 횟수는 4,000만 회 이상에 달합니다.
이 과정에서 사용되는 토큰 수는 입출력을 합하여 무려 300억 개를 초과하는 대규모 서비스입니다.
다음 내용에서는 통화요약 서비스의 기술적 핵심인 LLM 개발 과정에 대해 소개하겠습니다.
통화요약 서비스 개발 핵심요소먼저, 통화요약 서비스 개발에 필요한 핵심요소에 대해 살펴보겠습니다.
아래 그림 2와 같이 통화요약 특화 LLM 개발은 크게 기획 및 학습데이터 설계, 모델 개발, 정성평가의 세 가지 축으로 이루어져 있습니다.
첫째, 성공적인 통화요약 서비스를 위한 기획이 우선되고, 이를 기반으로 고품질의 학습데이터를 설계하고 구축하는 과정이 필수적입니다.
둘째, 서비스에 특화된 요약 기능을 제공하기 위해 적합한 모델 아키텍쳐를 선정해야 합니다.
이후, 통화요약이라는 특수한 목적에 맞춰, 대규모 사전 학습된 모델을 활용하고, 앞서 설계된 다양한 시나리오와 맞춤형 학습데이터를 통해 미세조정을 수행합니다.
이 과정은 모델이 정확하고 유용한 결과를 생성할 수 있도록 최적화하는 핵심 단계입니다.
마지막으로, 모델이 생성한 요약 품질을 평가하고, 개선해야 할 점을 파악하기 위한 평가 척도를 설계해야 합니다.
평가 과정에서는 언어학 지식이 풍부한 전문가가 결과를 검토하여, 모델의 성능을 점진적으로 향상시키기 위한 분석이 필요합니다.
이 세가지 요소는 서로 긴밀히 연결되어 있으며, 각 단계가 철저히 준비되고 실행되어야 고품질의 통화요약 LLM을 성공적으로 개발할 수 있습니다.
다음으로, 이러한 기술적 접근 방식이 구체적으로 어떻게 구현되었는지, 각 단계별로 자세히 살펴보겠습니다.
(그림 2. 통화요약 LLM 개발을 위한 3가지 핵심 요소)
통화요약 학습데이터 구축첫 번째 단계인 기획 및 학습데이터 생성입니다.
통화요약 서비스를 성공적으로 제공하기 위해서는 체계적인 기획과 이를 기반으로 고품질의 학습데이터를 설계하고 구축하는 과정이 필수적입니다.
AI 모델인 LLM이 정확하고 유의미한 요약 결과를 생성하려면, 해결하고자 하는 문제를 명확히 정의하고 사용자의 요구사항을 반영하여 요약 결과의 형태와 제공 방식을 신중하게 결정해야 합니다.
예를 들어, 요약문의 길이는 통화 내용의 복잡성과 길이에 따라 유연하게 4개 분류로 나누어 설정했습니다.
이를 통해 요약문이 너무 길거나 짧지 않게 핵심 정보를 적절히 전달할 수 있도록 구성했습니다.
또한, 요약문의 문체는 일관성 있게 명료하고 간결한 문체로 불필요한 반복이나 군더더기 표현이 없으면서 명사형 전성어미로 종결되는 문장형식을 갖추도록 했습니다.
서비스 기획이 완료된 이후에는 이를 구현할 수 있는 고품질 학습데이터를 설계해야 합니다.
학습데이터는 AI 모델의 성능을 크게 좌우하므로, 사전에 정의된 기획 의도에 부합하게 만들어져야 합니다.
고품질 학습 데이터는 많으면 많을 수록 좋지만, 이를 모두 사람이 직접 만들기에는 시간과 비용이 과도하게 소요됩니다.
이를 해결하기 위해, 저품질의 데이터를 자동으로 대량 생산했습니다.
대량 구축한 데이터는 사람이 직접 검증하여 품질을 보완하고, 난이도가 높은 일부 기능에 대해서는 수동으로 데이터를 구축하여 최종 학습데이터를 구축했습니다.
데이터 구축 과정을 요약하면 아래와 같습니다.
데이터 생성
먼저 초벌 데이터는 기획된 요약 형식에 맞춰 자동으로 생성되었습니다. 하지만 자동 생성된 초벌의 품질이 낮은 경우가 많아,
이를 사람이 직접 검토하여 저품질 사례의 패턴을 분석하여 개선하는 과정을 거쳤습니다.
데이터 품질 평가는 사전에 정의된 기획 요건을 기준으로 이루어졌으며, 주요 평가 항목으로는 통화의 핵심 정보 포함 여부, 문체의 일관성, 그리고 가독성 등으로 구성되었습니다.
데이터 정제
자동으로 생성된 데이터는 검증 단계를 거쳐 이상점을 탐지하고 이를 수정 및 제거하는 작업이 진행되었습니다.
정해진 기획요건을 충족하지 못하는 데이터는 자동화 검증 및 필터링하였고,
일부 데이터는 샘플링하여 다시 한번 사람이 검수하여 자동화로 찾아내지 못한 결함을 인식하고 수정하여 데이터 품질을 보완했습니다.
고난이도 데이터의 수작업 생성
난이도가 높은 데이터, 특히 AI 제안을 포함한 학습데이터의 경우 사람이 수작업으로 구축했습니다.
AI 제안 데이터는 통화 중 여러 해야 할 일 중에서 명확하고 비일상적인 할 일을 구분해야 하며, 모호하게 표현된 날짜 정보를 일반화하여 처리해야 하는 등 고난도의 작업을 요구합니다.
이를 위해 언어 전문가(Linguist)가 참여하여 다양하고 복잡한 상황을 처리할 수 있는 데이터를 구축하여 품질을 높이는 데 주력했습니다.
통화요약 모델 학습구축된 학습 데이터를 기반으로 한 통화요약 모델의 학습은 크게 PEFT(Parameterized Efficient Fine-Tuning) 기반의 2 단계 학습과 모델 검증을 통한 데이터 정제 및 재학습 사이클로 구성됩니다.
아래 그림 3은 해당 방법론을 도식화한 것이며, 이에 대해서 조금 더 상세히 살펴보도록 하겠습니다.
(그림 3. PEFT 기반의 다단계 통화요약 모델 학습 과정)
기초 모델 및 PEFT 기반 학습 방법론
통화요약 LLM의 기초 모델로는 A.X LLM을 활용하여 통화요약 작업의 기본적인 성능을 확보했습니다.
또한, 통화요약 서비스는 기획된 6가지 주요 기능에 맞춰 목적 지향형(Task-Oriented) 모델로 추가 학습되어 품질을 한층 더 향상시켰습니다.
이 과정에서 실험적으로 LoRA(Low-Rank Adaptation) 방식이 채택되었으며, 이는 여러 PEFT 기법 중 통화요약에서 가장 우수한 품질을 보여줬습니다.
LoRA는 보다 적은 파라미터를 학습하게되어 일반화 성능을 높이는 동시에 추론 속도를 저하시키지 않는 장점이 있습니다.
학습데이터 구성 및 2 단계 학습
모델 학습에 사용된 데이터는 다음 두 가지로 구성됩니다.
첫째는 자동 생성 데이터로 아주 큰 크기를 가지며 요약 서비스를 위한 다양한 지식을 포함하지만, 일부 노이즈가 존재합니다.
둘째로 수동 생성 데이터는 전문가가 구축한 오류 없는 정답 데이터로 높은 품질을 보장합니다.
두 데이터의 장점을 극대화하기 위해 2 단계 학습 방식을 고안했고, 1단계는 대량의 자동 생성 데이터를 학습하여 요약 서비스에 필요한 다양한 지식을 습득합니다.
2단계에서는 자동 생성 데이터와 수동 생성 데이터를 결합하여 사용하되, 수동으로 만들어진 특정 기능 데이터는 자동 데이터에서는 배제되었습니다.
따라서 첫 단계에서 대량 학습된 지식에 기반하여 고품질의 수동 구축 데이터로 추가 미세조정하여 해당 Task의 품질을 더 향상시켰습니다.
6가지 기능에 대한 학습데이터가 존재하는 만큼 학습 과정에서의 배치 내 구성은 균일하게 조정하여 다양성을 보장하고 학습의 안정성을 높였습니다.
모델 검증 및 데이터 정제
모델 학습이 완료된 후에는 개발 데이터셋에 대한 추론 결과를 검토하며 정량적 평가와 정성적 평가를 진행합니다.
정량적 평가로는 BLEU, ROUGE 점수를 활용하여 학습이 잘 진행되었는지 여부를 확인합니다.
정성적 평가로는 생성된 요약 결과를 다방면으로 통계 조사하고 미처 발견하지 못한 불필요한 특정 패턴이나 편향(Skewness)을 제거하여 데이터를 정제합니다.
보완된 데이터로 다시 학습과정을 거치고 이러한 반복적인 사이클을 통해 최종 모델을 구축합니다.
서비스 품질 평가
모델의 최종 평가는 평가 데이터셋을 기반으로 이루어지며, 객관성과 신뢰도를 확보하기 위해 동일한 데이터에 대해 세 명의 전문가가 독립적으로 평가를 수행했습니다.
주요 평가 요소는 통화요약 서비스의 다양한 기능별로 요구되는 기획자 및 개발자의 요건을 반영한 최소 네 가지 이상의 지표를 바탕으로, 5점 만점으로 평가되었습니다.
한가지 예로 문단요약에서는 아래와 같은 평가지표를 활용했습니다.
통일성: 형태가 기획 의도에 따라 일관성을 유지했는가?
사실성: 통화 내용을 왜곡 없이 정확히 반영했는가?
관련성: 가장 중요한 핵심 주제를 잘 담고 있는가?
유창성: 문법적으로 올바르고 자연스러운 표현을 사용했는가?
구체성: 통화의 주요 내용을 충분히 구체적으로 담고 있는가?
아래 그림 4는 통화요약 서비스의 6가지 기능에 대한 정성평가 결과를 종합한 것 입니다.
평가 결과, 자체 개발한 통화요약 LLM은 글로벌 타사 LLM 대비 우수한 품질을 보여주었으며, 서비스 기획 요건을 충족하는 높은 성능을 입증했습니다.
(그림 4. 통화요약 서비스 정성평가 결과)
마무리지금까지 통화요약 서비스를 위한 LLM 개발 과정을 살펴보았습니다. LLM을 활용한 응용 어플리케이션 개발의 핵심은 크게 네 가지로 요약할 수 있습니다.
첫째, 서비스의 성공의 좌우하는 잘 정의된 기획입니다. 목표와 사용자 요구를 명확히 정의하고 이를 모델 개발의 기준으로 설정합니다.
둘째, 기획대로 동작하는 모델을 학습하기 위한 데이터 설계입니다. 데이터는 모델 성능의 근본적인 기반이므로, 양질의 데이터를 설계하고 구축하는 것이 성공의 필수 조건입니다.
셋째, 주어진 자원으로 최대 성능을 발휘할 수 있는 모델 학습 전략입니다. 효과적인 미세조정 방법론과 효율적인 학습 기법은 자원 제약 속에서 높은 성능을 이끌어 낼 수 있습니다.
마지막으로, 모델을 객관적으로 검증 및 평가하여 취약점을 발견하고 개선하여 모델을 발전시키는 것입니다.
이 네 가지 요소는 단순히 통화요약 서비스뿐 아니라, 다양한 AI 기반 서비스 개발에도 적용 가능한 보편적인 과정입니다.
특히, 통화요약 모델 개발 과정에서 도입된 PEFT 기반 학습 전략과 자동 및 수동 데이터를 결합한 2 단계 학습법은 서비스 요구 사항에 맞춘 맞춤형 모델을 성공적으로 개발할 수 있었습니다.
앞으로도 이러한 경험과 노하우를 바탕으로 LLM의 잠재력을 최대한 활용하며, 사용자에게 더 나은 경험과 높은 가치를 제공할 수 있는 혁신적인 서비스를 지속적으로 개발해 나갈 계획입니다.
또한 통화요약 서비스의 확장 및 개선을 위해 지속적으로 노력하겠습니다.
감사합니다.
DEVOTEE를 활성화 시키면
지금 작성한 댓글에 AI가 댓글을 달아줍니다.