NLP/NLU의 선정 실무 조언

JayLee Contact Center, Enterprise AI

–PoC의 필요성

최근 국내에 대표적 디지털금융 선도 기업을 비롯해서, 챗봇과 머신러닝기술을 자사 핵심 비즈니스에 적극적으로 활용하고 있는 기업들이 다양한 복수의 NLP 적용으로 나아가고 있다.

통상 챗봇이나 AI CC 구축과정에서 SOE(Service Orchestration Engine) 혹은 Bot Framework로 불리우는 미들웨어를 공급하는 자사에서는, 표준화된 Intent/Entity API체계를 보유한, 신뢰성과 성능이 검증된 NLP 대부분을 지원하고 있고, 상용화 사례들을 다수 보유하고 있다.

가장 대표적인 IBM Watson의 WA, Google의 DialogFlow, Microsoft의 LUIS와 같은 글로벌 기업들은 물론 Naver Chatbot NLP나 자사의 Cogi NLP 등을 이용해서 사용자/고객의 자연어 발화의도가 무엇인가를 인지하기 위한 용도로 NLP를 사용하고 있다.

당연히 자연어로 발화된 사용자 의도를 파악하고, 이에 따른 적절한 업무흐름을 조직하는 첫 단추를 NLP가 시작하게 되므로 그 중요성은 적지 않다. 이에 도입을 검토하고 있거나 심지어 운용중인 기업들 내에서 이 NLP에 대한 정확도에 대한 지속적 관심과 비교결과에 대한 높은 관심을 기울이게 됨은 물론이다.

이미 수 백만 누적대화 이력을 넘어서 수 천만 건의 고객응대를 담당한 고객 서비스용 챗봇의 데이터셋(Intent-Utterance 그리고 Entity-Value)에서 연간 수 십만 건에 불과한 기업의 업무지원 챗봇용 데이터셋을 가지고, 고객들의 요청 혹은 양해를 얻어 이들 NLP의 적확도/분류적절성 등을 테스트하기 위한 CV(Cross-Validation) Test 를 실행해 보고 있다.

CV Test 가운데 Blind Test는 동일 데이터셋을 이용해, NLP에서 기대했던 Intent를 hit하는 가를 따져보게 되므로, NLP의 한글 인식 정확도(Confident Rate 혹은 number)에 대한 객관적 검증결과를 보여주게 된다. 또한 CV Test 가운데 K-Fold Test의 경우 Intent와 Utterance의 적절한 분류/분포를 살펴보는데 유효한 측정방식이다. 마찬가지로 동일 데이터셋을 이용해서 각각의 NLP별 테스트를 통해 객관적 비교가 가능하다.

상기 언급한 NLP의 객관적 비교데이터들을 자주 접하는 필자의 입장에서, 실제 NLP 선정에 책임을 담당하고 있는 해당 기업의 담당자들로부터 예상외로 잘못된 정보, 선입관에 기초해서, “요사이 XXX NLP가 좋다던데요?”, “XXX사의 NLP는 이제 한 물 갔다고 하던데요?”, “그래도 한글인데 우리나라 데이터를 많이 취급한 회사가 더 좋지 않을까요?”와 같은 언급들을 자주 받게 된다. 그런데 대부분 언급되고, 비교되는 회사들의 정확도/성능은 우리가 객관적으로 가지고 있는 데이터들과 상당한 차이를 보여주는 경우가 많다.

즉 상기 언급된 회사들 가운데 일부 회사들은 해당 회사가 모바일운영체제를 플랫폼으로, 혹은 대형 포탈을 통해 방대한 규모의 한글 자연어 문장을 수집하고 있다는 점, 그리고 실제 일정한 성능/정확도의 개선이 이루어지고 있다는 점에서 신뢰할 만한 서비스임은 분명하다. 하지만 다른 언급된 NLP를 압도하는 수준도 아니고, 각기 가진 장점과 단점이 객관적으로 검증된 상태다. 그런데 어떠한 이유에서인지 이러한 단점과 객관적 비교 데이터 없이 언급되는 주장과 막연한 추측에 의해 구축업무가 시작하게 되고, 결국 도입과정에서 적지 않은 낭패를 보게 된다.

이러한 잘못된 선택과 수행상의 위험의 피하기 위한 가장 바람직한 방법은, 도입하고자 하는 회사에서 챗봇이나 AI CC를 통해 수행하고자 하는 업무에 대한 일정한 수량의 인텐트(최소 30~50개 내외)와 이에 따른 적절한 수량의 Utterance를 준비하고, 이와 함께 테스트셋을 준비하는 것이다.

상기 준비된 내용을 가지고 특정 NLP를 대상으로 트레이닝과 CV결과를 획득하고, 다른 후보군이 되는 NLP를 대상으로 동일한 테스트를 하게 되면 그 차이점이 객관적으로 나타나게 되며, 선정의 첫 번째 criteria 가 채워지는 셈이 된다.

해당 작업은 이미 도입/운용중인 경우라면 며칠 이내면 가능한 아주 단순하고, 간단한 작업이다. 물론 이제 새롭게 구축을 하고자 한다면 위의 데이터셋 준비에 좀 더 많은 시간이 소요될 수 있겠지만, 소문과 레퍼런스 숫자만 가지고, 1시간 내외의 짧은 제안평가를 통해 잘못된 선택을 하고 난 이후 이를 되돌릴 수 없다는 점을 고려하면 반드시 거쳐야 할 단계라는 점을 강조할 수밖에 없다.

물론 각각의 NLP를 공급하는 회사들은 자신들의 NLP의 성능을 높이기 위한 다양한 최적화된 intent/entity의 구성과 추가 혹은 보완적 방식과 기능들을 제공하고 있다. 그러나 그러한 보조적 수단이나 인위적인 데이터셋의 재구성을 통해서 정확도를 높이는 행위는 마찬가지로 결정적 변별력의 차이를 보여주지 못하고 있다. 즉 공통 데이터셋을 이용한 기본적 한글 자연어에 대한 정확도의 차이가 나중의 후처리/재구성 등을 거친 이후에도 별로 달라지지 않는 다는 것이다. 소위 기본실력, 기본 체력의 차이가 여전히 NLP공급사들 사이에서도 존재한다는 것이다.

다만 그 변별력의 기본 차이가 각각의 회사들이 제공하는 공급방식, 서비스의 안정성, 비용 등을 종합적으로 고려했을 때, 모든 것을 압도하느냐 혹은 높은 정확도에도 불구하도 다른 요인에 의해 또 다른 NLP를 선택하느냐는 전적으로 도입하는 기업의 판단과 가중치를 고려한 결정일 수 밖에 없다.

실제로 NLP간의 차이가, 비교하기 힘든 성능의 차이가 있는 것은 아니지만, 차량을 구매하고자 하는 모든 소비자가 F1에 참여하는 고성능 머신의 구매를 고려하거나, 실제 구매하지 않는 것과 동일한 이치다.