본문 바로가기

프로그래밍/챗봇

SK 에이브릴 왓슨 챗봇 엔티티 리턴값이 엉망 그자체

왓슨 본사의 WA 서울 진출로 인해 NLP 사업 철수중인 SK에이브릴.

챗봇 프로젝트를 거듭할수록 관리가 엉망이라는걸 느낄 수 있었다.

2019년 여름, 수시로 왓슨 서비스가 죽어서 개발도 운영도 진행할 수 없는 상태였다.

난 고객에게 챗봇 오류 발생원인과 재발방지 대책을 설명해야하는 입장인데, SK 에이브릴 측에 문의하면 1주일 넘어서 답변이 오고, 재현이 불가해서 답변할 수 없다는 말만 반복이었다. 이런식으로 운영하면 나와 같은 중간 업체는 어떻게 믿고 서비스를 사용할 수 있을까? 이런 나의 상황설명과 함께 책임감을 갖고 답장달라는 식으로 문의를 했더니 이번에는 조금 더 빠르게 윗사람의 답변을 받을 수 있었다. 그러나 우리 회사의 솔루션이 어떻게 동작하는지 상세히 기술하라는 양식의 문서였다. 우리 회사 솔루션뿐만 아니라 그시점에 모든 왓슨 서비스가 동작하지 않았는데 왜 우리회사의 내부 기술 보안사항을 기재해서 리턴해야하는건지 응대방식이 이해되지 않는다.

 

결국 그 기간 동안의 잦은 서비스 오류에 대한 설명은 공지사항으로도 없었고 잠잠해지는가 싶더니 그이후로도 조금씩 NLP의 리턴 값이 상이했다. 예를들어 인텐트 데이터로 '안녕'만 트레이닝한 상태였는데 '안녕?'을 발화하면 히트되었었는데, SK 에이브릴에서 내부적으로 로직을 조금씩 수정한건지 모르겠지만 '?' 하나 차이로 인텐트가 히트되지 않는 문제가 발생했다. 이것 외에도 다양한 히트 로직이 달라져 애를 먹었다.

 

SK 에이브릴이 서비스 철수를 선언한 후 어제, 2020년 4월 28일.

엔티티가 완전히 잘못 히트되어 에러가 발생했다.

 

Invalid regular expression ㅇㅇㅇㅇㅇ Unterminated character class

 

내가 만든 정규식 패턴이 잘못됐나? 싶었는데 엔티티 히트가 잘못됨으로 인한 문제였다.

 

-{
    "entity": "ex       ",
    -"location": [
        73,
        75
    ],
    "value": "반품",
    "confidence": 1,
    "literal": "] "   ◀ 동의어에 ']' 저장안되어 있는 상태인데 히트됨
},
-{
    "entity": "ca       ",
    -"location": [
        93,
        95
    ],
    "value": "주문",
    "confidence": 1,
    "literal": "신 "    ◀ 동의어에 '신' 저장안되어 있는 상태인데 히트됨
},
-{
    "entity": "rm       ",
    -"location": [
        93,
        95
    ],
    "value": "상품",
    "confidence": 1,
    "literal": "신 "
},
{
    "entity": "cs    ",
    -"location": [
        105,
        107
    ],
    "value": "환불",
    "confidence": 1,
    "literal": "히 " ◀ 동의어에 '히' 저장안되어 있는 상태인데 히트됨
},
-{
    "entity": "ca      ",
    -"location": [
        118,
        120
    ],
    "value": "주문",
    "confidence": 1,
    "literal": "  " ◀ 공백이 히트되면 뭐 답이 없네...
},
-{
    "entity": "rm      ",
    -"location": [
        118,
        120
    ],
    "value": "상품",
    "confidence": 1,
    "literal": "  "
},
-{
    "entity": "br   ",
    -"location": [
        125,
        127
    ],
    "value": "포랩",
    "confidence": 1,
    "literal": ": "
},
-{
    "entity": "at       ",
    -"location": [
        142,
        145
    ],
    "value": "주니어",
    "confidence": 1,
    "literal": "지날 "
},
{
    "entity": "cs     ",
    -"location": [
        274,
        276
    ],
    "value": "반품",
    "confidence": 1,
    "literal": "에 "  ◀ 한국어 챗봇에서 조사를 히트하면 어떻게 서비스를 이용해야하는건지...
}, 

 

 

 

 

에러가 발생한 발화와 동일하게 재테스트하면 현재는 재현되지 않는다.

재현되지 않기 때문에 원인 파악을 할 수 없다는 답변은 더이상 원하지 않기에 문의도 하지 않으려고 한다.

하지만 분명한건 트리거가 있으니 발생했다는 사실이다.

그 트리거가 무엇인지는 모르겠지만 특정 시간에 오류가 발생할수도 있고 담당자가 설정 값을 변경했을수도 있고, 환경설정이 변경됐을수도 있고 가능성은 풍부하다.

분명 로그를 남기고 있을텐데 왜 파악을 할 수 없다고 하는걸까? 내부의 이슈라서?

향후 외부 서비스를 이용해야할 때 SK의 기술이라면 재고하고 싶을 정도로 실망했다.