KR102653266B1 - 인공지능 기반의 챗봇 대화 상담 시스템 및 그 방법 - Google Patents

인공지능 기반의 챗봇 대화 상담 시스템 및 그 방법 Download PDF

Info

Publication number
KR102653266B1
KR102653266B1 KR1020230088207A KR20230088207A KR102653266B1 KR 102653266 B1 KR102653266 B1 KR 102653266B1 KR 1020230088207 A KR1020230088207 A KR 1020230088207A KR 20230088207 A KR20230088207 A KR 20230088207A KR 102653266 B1 KR102653266 B1 KR 102653266B1
Authority
KR
South Korea
Prior art keywords
customer
conversation
chatbot
index list
embedding
Prior art date
Application number
KR1020230088207A
Other languages
English (en)
Inventor
박동민
Original Assignee
주식회사 비씨티원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 비씨티원 filed Critical 주식회사 비씨티원
Priority to KR1020230088207A priority Critical patent/KR102653266B1/ko
Application granted granted Critical
Publication of KR102653266B1 publication Critical patent/KR102653266B1/ko

Links

Classifications

    • G06Q50/50
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3329Natural language query formulation or dialogue systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • G06F40/35Discourse or dialogue representation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0281Customer communication at a business location, e.g. providing product or service information, consulting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/02User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail using automatic reactions or user delegation, e.g. automatic replies or chatbot-generated messages

Abstract

본 발명은 인공지능 기반의 챗봇 대화 상담 시스템에 관한 것으로서, 타겟 도메인의 지식을 수집하여 임베딩용 지식 데이터와 파인 튜닝용 지식 데이터로 구분하여 전처리를 수행하는 데이터 전처리부, 상기 전처리된 임베딩용 지식 데이터와 파인 튜닝용 지식 데이터를 데이터베이스(DB)에 업로드하는 데이터 업로드부, 상기 업로드된 임베딩용 지식 데이터를 임베딩(Embedding) 처리하고 임베딩된 데이터를 색인화하여 인덱스 리스트를 생성한 후 데이터베이스에 저장하는 임베딩 처리부, 상기 업로드된 파인 튜닝용 지식 데이터를 입력 받아 인공지능 언어모델을 파인 튜닝(Fine-Tuning)하여 타겟 도메인에 맞는 커스텀 인공지능 모델을 생성하는 트레이닝부 및 상기 인덱스 리스트와 커스텀 인공지능 모델을 탑재하고 타겟 도메인에 설치되어 고객의 질문에 대응하는 답변을 커스텀 인공지능 모델을 이용하여 인덱스 리스트에서 검색하여 제공하거나, 인덱스 리스트에서 검색되지 않는 질문에 대해서는 생성형 방식으로 답변을 제공하는 챗봇엔진을 장착한 챗봇을 포함하여 구성된다.
본 발명에 따르면 타겟 도메인의 지식을 임베딩하고, 초거대 인공지능 언어모델을 파인 튜닝하여 시나리오 대화 방식과 생성형 대화 방식을 혼합하여 사용함으로써 스마트한 대화가 가능하여 고객과 대화 품질을 향상시킬 수 있고, 고객의 서비스 만족도를 향상시킬 수 있다.

Description

인공지능 기반의 챗봇 대화 상담 시스템 및 그 방법{AN ARTIFICIAL INTELLIGENCE-BASED CHATBOT CONVERSATION CONSULTATION SYSTEM AND METHOD THEREOF}
본 발명은 초거대 인공지능 언어모델을 파인 튜닝(Fine-Tuning)하여 타겟 도메인에 최적화된 인공지능 챗봇을 제공하는 인공지능 기반의 챗봇 대화 상담 시스템 및 그 방법에 관한 것이다.
챗봇은 텍스트 또는 음성 상호 작용을 통해 사람의 대화를 시뮬레이션 하도록 설계된 소프트웨어 또는 컴퓨터 프로그램이다. 사용자에게 자동 응답 및 지원을 제공하는 대화형 에이전트 역할을 하며, 고객 서비스를 개선하고 참여를 강화하며 일상적인 작업을 자동화하여 궁극적으로 효율성을 높이고 비용을 절감할 수 있는 능력으로 인해 중요성이 커지고 있다.
인공지능 기반 챗봇에 대한 수요는 고객 서비스, 전자 상거래, 의료 및 은행과 같은 산업 전반에서 꾸준히 증가하고 있다. 기업은 챗봇을 활용하여 연중무휴 고객 지원을 제공하고, 자주 묻는 질문을 처리하고, 약속 일정을 자동화하고, 개인화된 추천을 촉진할 수 있다.
이와 같이 광범위한 사용에도 불구하고 기존 인공지능 기반 챗봇은 다음과 같은 몇 가지 제한 사항으로 인해 한계에 직면해 있다.
가. 상황에 맞는 이해: 기존 챗봇은 종종 상황을 이해하고 일관된 대화를 유지하는 데 어려움을 겪는다. 사용자 입력을 잘못 해석하거나 모호한 쿼리의 의미를 파악하지 못할 수 있다.
나. 제한된 도메인 전문성: 기존의 챗봇은 미리 정의된 특정 작업을 처리하거나 자주 묻는 질문에 답변하는 데 탁월하다. 그러나 훈련된 영역을 벗어나는 복잡하거나 익숙하지 않은 쿼리에 직면하면 어려움을 겪을 수 있다.
다. 자연어 이해: NLP 기술이 개선되었지만 챗봇은 여전히 사용자 의도와 감정을 정확하게 해석하는 데 어려움을 겪고 있다.
라. 인간과 같은 대화 부족: 챗봇과 진정으로 인간과 같은 대화를 달성하는 것은 여전히 어려운 일이다. 보다 상황에 맞는 응답을 생성하는 데 발전이 있었지만 고객의 상황에 맞는 역동적이고 정서적으로 지능적인 상호 작용을 만드는 데는 어려움이 있다.
마. 유지 관리 및 업데이트: 챗봇은 관련성과 효율성을 유지하기 위해 지속적인 유지 관리 및 업데이트가 필요하다. 언어, 사용자 선호도 및 기술의 급속한 발전으로 인해 고객과 대화 시 정확한 최신 정보를 제공하기 위한 정기적인 관리가 필요하다.
기존의 인공지능 기반 챗봇은 대화를 자동화하고 고객 경험을 향상시키는 데 많은 진전을 이루었으나, 상황에 맞는 이해, 제한된 도메인 전문 지식, 자연어 이해, 인간과 같은 대화 달성 및 유지 관리 문제와 같은 해결해야 할 과제가 남아 있다.
이와 같은 종래의 인공지능 기반 챗봇을 개선하여 스마트 기술의 도입을 필요로 하는 다양한 소상공인들에게 향상된 대화 품질을 보증하는 인공지능 챗봇 대화 상담 시스템 도입의 필요성이 커지고 있다.
대한민국 등록특허 제10-2449349호 대한민국 등록특허 제10-2518448호 대한민국 공개특허 제10-2022-0040050호 대한민국 공개특허 제10-2022-0138960호
본 발명은 상기와 같은 문제점을 개선하기 위하여 발명된 것으로, 도메인(특정 분야)에 대한 지식을 입력 받아 초거대 인공지능 언어모델을 파인 튜닝(Fine-Tuning)하여 타겟 도메인에 맞는 커스텀 인공지능 모델을 생성하고, 커스텀 인공지능 모델을 이용하여 고객의 질문이 사전에 임베딩된 인덱스 리스트에서 검색되는 경우 인덱스 리스트에서 검색하여 답변하는 시나리오 방식으로 고객과 대화하고, 고객의 질문이 인덱스 리스트에서 검색되지 않는 경우는 생성형 방식으로 고객과 대화하는 인공지능 기반의 챗봇 대화 상담 시스템 및 그 방법을 제공하기 위한 것이다.
또한 본 발명은 시나리오 대화 방식과 생성형 대화 방식을 동시에 활용하여 챗봇과 대화하는 고객의 여러 질문의 각 단계에 따른 흐름이 일반적이지 않고 정상적인 대화가 이어지지 않고 있다고 판단되는 경우는 고객이 잘 모르는 내용을 이해시키거나 고객의 상황을 이해하려고 노력하는 대화를 수행하여 고객 지향적인 대화가 가능한 인공지능 기반의 챗봇 대화 상담 시스템 및 그 방법을 제공하기 위한 것이다.
상기한 바와 같은 목적을 달성하기 위하여, 본 발명에 따른 인공지능 기반의 챗봇 대화 상담 시스템은 타겟 도메인의 지식을 수집하여 임베딩용 지식 데이터와 파인 튜닝용 지식 데이터로 구분하여 전처리를 수행하는 데이터 전처리부, 상기 전처리된 임베딩용 지식 데이터와 파인 튜닝용 지식 데이터를 데이터베이스(DB)에 업로드하는 데이터 업로드부, 상기 업로드된 임베딩용 지식 데이터를 임베딩(Embedding) 처리하고 임베딩된 데이터를 색인화하여 인덱스 리스트를 생성한 후 데이터베이스에 저장하는 임베딩 처리부, 상기 업로드된 파인 튜닝용 지식 데이터를 입력 받아 인공지능 언어모델을 파인 튜닝(Fine-Tuning)하여 타겟 도메인에 맞는 커스텀 인공지능 모델을 생성하는 트레이닝부 및 상기 인덱스 리스트와 커스텀 인공지능 모델을 탑재하고 타겟 도메인에 설치되어 고객의 질문에 대응하는 답변을 커스텀 인공지능 모델을 이용하여 인덱스 리스트에서 검색하여 제공하거나, 인덱스 리스트에서 검색되지 않는 질문에 대해서는 생성형 방식으로 답변을 제공하는 챗봇엔진을 장착한 챗봇을 포함하여 구성된다.
상기 데이터베이스에 저장된 복수의 타겟 도메인의 지식 데이터 중 챗봇에 탑재할 하나 이상의 타겟 도메인의 인덱스 리스트를 선택하여 설정하는 챗봇 설정부를 더 포함하고, 상기 챗봇엔진은 고객과 대화 시 이전 대화 내용을 이용하여 고객의 관심 주제를 파악하고, 관심 주제에 해당하는 타겟 도메인의 인덱스 리스트에서 고객의 질문에 해당하는 답변을 검색하여 제공하도록 한다.
상기 챗봇은 고객이 챗봇과 대화할 때 고객의 여러 질문의 각 단계에 따른 흐름이 일반적이지 않을 때는 인덱스 리스트에서 검색하여 답변하는 것을 멈추고, 커스텀 인공지능 모델이 생성형 방식으로 고객이 잘 모르는 내용을 이해시키거나 고객의 상황을 이해하려고 노력하는 답변을 제공하도록 하는 실시간 대화상황 조절부를 포함하여 구성한다.
또한 상기 챗봇은 각 타겟 도메인 분야별로 고객과 대화의 각 단계별 흐름을 분석하여 고객과 대화가 일반적인 방식으로 전개되고 있는지, 일반적이지 않은 방식으로 전개되고 있는지 판단하는 대화 이상 감지부를 포함하고, 상기 실시간 대화상황 조절부는 대화 이상 감지부에서 고객과 대화가 일반적이지 않은 방식으로 전개되고 있다고 메시지를 받으면, 인덱스 리스트에서 검색하여 답변하는 것을 멈추고, 커스텀 인공지능 모델이 생성형 방식으로 고객이 잘 모르는 내용을 이해시키거나 고객의 상황을 이해하려고 노력하는 답변을 제공하도록 한다.
또한 상기 실시간 대화상황 조절부는 생성형 방식으로 답변을 제공한 후 고객이 다시 데이터베이스에서 검색 가능한 질문을 하는 경우 데이터베이스의 인덱스 리스트에서 검색하여 답변을 제공하도록 한다.
상기 챗봇은 임베딩 벡터 유사도 판단의 기준에 따라 인덱스 리스트에서 고객의 질문과 유사한 질문을 검색 시 유사한 질문이 검색되지 않는 경우 생성형 방식으로 답변을 제공하며, 상기 임베딩 벡터의 유사도 판단은 질문을 구성하는 0(zero)이 아닌 각 임베딩 벡터의 개수와 검색 시 비교되는 문장 간의 각 임베딩 벡터의 차이값을 고려하여 유사 여부를 결정하되, 질문을 구성하는 0(zero)이 아닌 임베딩 벡터의 개수가 많을수록 각 임베딩 벡터의 차이값에 가중치를 작게 하고, 질문을 구성하는 0(zero)이 아닌 임베딩 벡터의 개수가 적을수록 각 임베딩 벡터의 차이값에 가중치를 크게 하여 비교되는 문장 간의 유사 여부를 결정하도록 할 수 있다.
상기 챗봇은 고객의 질문이 데이터베이스의 인덱스 리스트 중 단일 항목으로는 유사도 높은 것이 검색되지 않았으나, 고객의 질문이 길어서 분할 시 두 개 이상의 인덱스 리스트 항목과 유사한지 판단하고, 분할 시 한 개의 인덱스 리스트 항목과 유사하고 나머지 부분은 비유사한 경우 인덱스 리스트의 항목과 유사한 부분에 대해서는 답변을 하고, 나머지 비유사한 부분에 대해서는 다시 명확하게 질문해 줄 것을 요청하는 대화 분할 정리부를 더 포함하여 구성한다.
한편, 상기한 바와 같은 목적을 달성하기 위하여, 본 발명에 따른 인공지능 기반의 챗봇 대화 상담 방법은 타겟 도메인의 지식을 수집하여 임베딩용 지식 데이터와 파인 튜닝용 지식 데이터로 구분하여 전처리하는 단계, 상기 전처리된 임베딩용 지식 데이터와 파인 튜닝용 지식 데이터를 데이터베이스(DB)에 업로드하는 단계, 상기 업로드된 임베딩용 지식 데이터를 임베딩(Embedding) 처리하고 임베딩된 데이터를 색인화하여 인덱스 리스트를 생성하는 단계, 상기 업로드된 파인 튜닝용 지식 데이터를 입력 받아 인공지능 언어모델을 파인 튜닝(Fine-Tuning)하여 타겟 도메인에 맞는 커스텀 인공지능 모델을 생성하는 트레이닝 단계 및 상기 인덱스 리스트와 커스텀 인공지능 모델을 탑재하고 타겟 도메인에 설치되어 고객의 질문에 대응하는 답변을 커스텀 인공지능 모델을 이용하여 인덱스 리스트에서 검색하여 제공하거나, 인덱스 리스트에서 검색되지 않는 질문에 대해서는 생성형 방식으로 답변을 제공하는 챗봇과 대화하는 단계로 구성된다.
상기 트레이닝 단계 이후, 데이터베이스에 저장된 복수의 타겟 도메인의 지식 데이터 중 챗봇에 탑재할 하나 이상의 타겟 도메인의 인덱스 리스트를 선택하여 챗봇을 설정하는 단계를 더 포함하고,
상기 챗봇과 대화하는 단계는, 고객이 챗봇과 대화할 때 고객의 여러 질문의 각 단계에 따른 흐름이 일반적이지 않을 때는 인덱스 리스트에서 검색하여 답변하는 것을 멈추고, 커스텀 인공지능 모델이 생성형 방식으로 고객이 잘 모르는 내용을 이해시키거나 고객의 상황을 이해하려고 노력하는 답변을 제공하며, 생성형 방식으로 답변을 제공한 후 고객이 다시 데이터베이스에서 검색 가능한 질문을 하는 경우 데이터베이스의 인덱스 리스트에서 검색하여 답변을 제공하도록 한다.
그리고 상기 챗봇과 대화하는 단계는, 고객의 질문이 데이터베이스의 인덱스 리스트 중 단일 항목으로는 유사도 높은 것이 검색되지 않았으나, 고객의 질문이 길어서 분할 시 두 개 이상의 인덱스 리스트 항목과 유사한지 판단하고, 분할 시 한 개의 인덱스 리스트 항목과 유사하고 나머지 부분은 비유사한 경우 인덱스 리스트의 항목과 유사한 부분에 대해서는 답변을 하고, 나머지 비유사한 부분에 대해서는 다시 명확하게 질문해 줄 것을 요청하도록 한다.
본 발명에 따르면 타겟 도메인의 지식을 임베딩하고, 초거대 인공지능 언어모델을 파인 튜닝하여 시나리오 대화 방식과 생성형 대화 방식을 혼합하여 사용함으로써 스마트한 대화가 가능하여 고객과 대화 품질을 향상시킬 수 있고, 고객의 서비스 만족도를 향상시킬 수 있다.
본 발명은 다양한 타겟 도메인의 지식 데이터를 구축함으로써, 고객의 관심 주제에 맞는 고품질의 대화 서비스 제공이 가능하다.
본 발명은 서버 구축형이 아닌 클라우드 방식으로 운영함으로써, 스마트 기술의 도입을 필요로 하는 다양한 계층의 소상공인들에게 품질 좋은 인공지능 챗봇 시스템을 합리적인 가격에 제공할 수 있다.
본 발명은 고객과 대화할 때 고객의 여러 질문의 각 단계에 따른 흐름이 일반적이지 않을 때는 인덱스 리스트에서 검색하여 답변하는 것을 멈추고, 커스텀 인공지능 모델이 생성형 방식으로 고객이 잘 모르는 내용을 이해시키거나 고객의 상황을 이해하려고 노력하는 답변을 제공하도록 함으로써, 고객에게 24시간 동안 전문 분야의 서비스를 제공할 뿐만 아니라 전문 상담원보다 더 친절하게 응대가 가능하다.
도 1은 본 발명에 따른 인공지능 기반의 챗봇 대화 상담 시스템의 구성도,
도 2는 본 발명에 따른 인공지능 기반의 챗봇 대화 상담 시스템의 기능 블록도,
도 3은 본 발명에 따른 인공지능 기반의 챗봇 대화 상담 시스템에서 사용되는 챗봇이 완성되는 단계를 설명한 개념도,
도 4는 노무 Content Type이나 노무 Custom Post Type으로 데이터를 입력 받기 위한 폼의 예시도,
도 5는 도 4의 폼으로 입력된 노무 지식베이스 출력의 예시도,
도 6은 노무 지식베이스를 이용하여 시나리오 방식으로 안내하는 챗봇 화면의 예시도,
도 7은 챗봇 메뉴의 예시도,
도 8은 지식베이스의 예시도,
도 9는 챗봇 설정화면의 예시도,
도 10은 챗봇이 고객의 노무분야 질문에 대응하는 답변을 인덱스 리스트에서 검색하여 제공하는 방법을 설명하는 개념도,
도 11은 본 발명에 따른 인공지능 기반의 챗봇 대화 상담 방법의 순서도.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되는 실시 예를 참조하면 명확해질 것이다.
그러나, 본 발명은 이하에서 개시되는 실시 예로 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이다.
본 명세서에서 본 실시 예는 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이다.
그리고 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
따라서, 몇몇 실시 예에서, 잘 알려진 구성 요소, 잘 알려진 동작 및 잘 알려진 기술들은 본 발명이 모호하게 해석되는 것을 피하기 위하여 구체적으로 설명되지 않는다.
또한, 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭하고, 본 명세서에서 사용된(언급된) 용어들은 실시 예를 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다.
본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함하며, '포함(또는, 구비)한다'로 언급된 구성 요소 및 동작은 하나 이상의 다른 구성요소 및 동작의 존재 또는 추가를 배제하지 않는다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다.
또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 정의되어 있지 않은 한 이상적으로 또는 과도하게 해석되지 않는다.
이하, 첨부된 도면을 참고로 본 발명의 바람직한 실시 예에 대하여 설명한다.
[인공지능 기반의 챗봇 대화 상담 시스템]
도 1 내지 도 10을 참고하면, 본 발명에 따른 인공지능 기반의 챗봇 대화 상담 시스템(1000)은 데이터 전처리부(100), 데이터 업로드부(200), 임베딩 처리부(300), 트레이닝부(400), 챗봇(500), 챗봇 설정부(600) 및 데이터베이스(700)를 포함하여 구성된다.
도 1을 참고하면, 노무 컨설팅 회사(20)는 인공지능 기반의 챗봇 대화 상담 시스템(1000)에서 제공하는 챗봇(500)을 이용하려는 기업 고객이다. 즉 챗봇(500)을 자신의 회사 홈페이지에 탑재하여 고객(10)에게 노무 대화 서비스를 제공하려는 기업 고객이다. 고객(10)은 노무 컨설팅 회사(20)의 노무 챗봇 서비스를 이용하려고 궁금한 사항을 질문하는 고객이나, 이미 노무 챗봇 서비스를 이용중인 고객이 해당한다. 노무 서비스는 예시일 뿐이며, 기업 고객은 세무, 쇼핑몰, 병원, 공공기관, 학원 등 다양하다.
도 2 및 도 3을 참고하면, 데이터 전처리부(100)는 노무, 세무, 쇼핑몰, 병원 등 타겟 도메인의 지식을 수집하여 임베딩용 지식 데이터와 파인 튜닝용 지식 데이터로 구분하여 전처리를 수행한다.
노무분야 Q&A를 노무 Content Type으로 변환하고, 노무 사전을 노무 Custom Post Type으로 변환한다. 노무 Content Type과 노무 Custom Post Type은 임베딩용 지식 데이터에 해당한다.
도 4를 참고하면, 노무 Content Type이나 노무 Custom Post Type은 질문(Question), 대분류(Category1), 중분류(Category2), 답변(Response), 사례(Example), 판례(Judical) 데이터를 입력 받을 수 있는 폼으로 구성된 노무 지식베이스이다.
즉, 노무분야 Q&A를 질문(Question), 대분류(Category1), 중분류(Category2), 답변(Response), 사례(Example), 판례(Judical) 데이터로 구분하여 노무 Content Type으로 업로드하고, 노무 사전을 질문(Question), 대분류(Category1), 중분류(Category2), 답변(Response), 사례(Example), 판례(Judical) 데이터로 구분하여 노무 Content Type으로 업로드한다.
도 5를 참고하면, 노무 지식베이스 출력의 예를 보여주고 있다.
도 6을 참고하면, 위와 같은 방식으로 구성된 노무 지식베이스를 이용하여 챗봇 화면에서 시나리오 방식의 카테고리 안내와 사용자 질문에 대한 적절한 답변에 활용하는 예를 보여주고 있다.
노무분야 Q&A를 JSONL 형태의 파일로 변환한다. JSONL 형태의 파일은 파인 튜닝용 지식 데이터에 해당한다.
데이터 업로드부(200)는 전처리된 임베딩용 지식 데이터와 파인 튜닝용 지식 데이터를 데이터베이스(700)에 업로드한다.
도 10을 참고하면, 임베딩 처리부(300)는 데이터베이스(700)에 업로드된 임베딩용 지식 데이터를 임베딩(Embedding) 처리하고 임베딩된 데이터를 색인화하여 인덱스 리스트(Indexed List)를 생성한 후 데이터베이스(700)에 저장한다.
노무분야 Q&A를 변환한 노무 Content Type과 노무 사전을 변환한 노무 Custom Post Type을 이용하여 문장을 벡터로 표현하는 문장 임베딩(sentence embedding)을 생성한다. 임베딩은 대표적으로 Word2Vec, GloVe, FastText 등의 알고리즘을 사용하여 수행한다.
도 10을 참고하면, 대화 상담 시스템에서 고객의 질문에 대한 응답을 결정할 때 탐색 모델이 이용될 수 있다. 탐색 모델은 쿼리 문장과 응답 문장의 여러 쌍(pair)이 저장된 데이터베이스에서 고객의 입력 문장과 가장 유사한 쿼리 문장을 검색하고, 검색된 쿼리 문장에 대응하는 응답 문장을 입력 문장의 응답으로 출력한다. 이때 대화 상담 시스템은 문장을 벡터로 표현하는 문장 임베딩을 이용한다.
노무 컨설팅 대화에 사용할 후보 쿼리 문장들을 미리 정해 놓고, 문장 임베딩에 기반하여 모든 후보 쿼리들을 벡터 공간 상에 위치시킬 수 있다. 그리고, 고객(10)으로부터 입력된 문장에 문장 임베딩을 적용하여 벡터로 나타낸 뒤, 후보 쿼리 문장들 중에서 벡터 공간 상에서 가장 유사도가 높은 후보 쿼리 문장에 매핑시키고, 해당 후보 쿼리 문장에 대응하는 응답 문장을 출력함으로써 대화를 진행할 수 있다. 이때, 유사도는 코사인 유사도(cosine similarity)에 기반할 수 있으나, 이에 한정되지 않고 다양한 유사도 결정법이 제한 없이 적용될 수 있다.
질문 문장이 인코더에 입력되면 인코더는 질문 문장의 임베딩 벡터를 컨텍스트 정보로 출력하고, 디코더(미도시)는 이러한 컨텍스트 정보를 이용하여 적절한 답변 문장이 출력되도록 사전에 트레이닝될 수 있다.
인덱스 리스트(Indexed List, 510)는 임베딩된 데이터를 효율적으로 저장하고 탐색하기 위한 자료구조다. 임베딩된 데이터를 색인화하여 인덱스를 생성하고, 해당 인덱스를 활용하여 고객(10)이 입력하는 특정 질문이나 문장에 대한 응답을 빠르게 찾아낼 수 있다. 인덱스 리스트(510)를 사용함으로써 검색 속도와 성능을 향상시킬 수 있다.
도 10을 참고하면, 고객으로부터 “대체 휴일과 보상휴가제가 어떻게 달라?”라는 문장이 입력되면 인코더는 입력 문장에 기초하여 입력 임베딩 벡터 [0.32, 0.75, 0.78, 0.54 ……, 0.27]를 생성한다. 인덱스 리스트에서 입력 임베딩 벡터 [0.32, 0.75, 0.78, 0.54 ……, 0.27]와 가장 유사한 쿼리 임베딩 벡터 [0.32, 0.75, 0.78, 0.54 ……, 0.23]이 식별될 수 있다. 그 결과, 식별된 쿼리 임베딩 벡터 [0.32, 0.75, 0.78, 0.54 ……, 0.23]에 대응하는 응답 문장 “근로자는 부당해고 사실이 있은 날부터 3개월 이내에 사업장 관할 노동위원회에 부당해고 구제신청을 제기할 수 있습니다.”가 응답으로 출력될 수 있다.
트레이닝부(400)는 업로드된 파인 튜닝용 지식 데이터를 입력 받아 인공지능 언어모델을 파인 튜닝(Fine-Tuning)하여 타겟 도메인에 맞는 커스텀 인공지능 모델(520)을 생성한다.
업로드된 파인 튜닝용 지식 데이터를 파인 튜닝하여 새로운 인공지능 모델을 만드는 과정은 사전에 학습된 모델에 새로운 데이터를 추가하고 모델을 다시 학습시키는 것을 의미한다.
초기에 학습된 모델은 대규모의 일반적인 데이터로 사전 학습되었을 수 있다. 따라서 실제 적용하고자 하는 특정 도메인이나 작업에 관련된 데이터가 부족하거나 다른 특성을 가질 수밖에 없기 때문에 파인 튜닝을 통해 초기 모델을 특정 도메인이나 작업에 더 적합하도록 조정하고 성능을 개선한다.
본 발명은 GPT-3 이상의 언어모델을 기반으로 파인 튜닝을 진행한다. 사전에 학습된 GPT-3 모델을 사용하여 데이터를 추가로 학습시킴으로써 파인 튜닝한다. 이를 통해 GPT-3 모델을 타겟 도메인(노무, 세무, 병원, 쇼핑몰 등)에 맞게 조정하고 커스텀 인공지능 모델(520)을 생성한다.
파인 튜닝(Fine-Tuning)은 데이터를 준비(format 맞추기)하고, 모델을 생성하고, 모델을 활용하는 단계로 진행된다. 여기서 모델은 아래에서 살펴볼 커스텀 인공지능 모델을 말한다.
파인 튜닝(Fine-Tuning)을 위해 다음과 같이 데이터를 준비한다.
- 노무분야 Q&A 또는 기업 데이터의 JSONL 형태의 데이터
- 파일 안에는 Prompt, Completion의 형태로 구성
- Prompt에는 원하는 프롬프트 구성
- Completion은 원하는 답 형태 구성
챗봇(500)은 인덱스 리스트(510)와 커스텀 인공지능 모델(520)을 탑재하고 타겟 도메인에 설치되어 고객의 질문에 대응하는 답변을 커스텀 인공지능 모델(520)을 이용하여 인덱스 리스트(510)에서 검색하여 제공하거나(도 7 참고), 인덱스 리스트에서 검색되지 않는 질문에 대해서는 생성형 방식으로 답변을 제공하는 챗봇엔진(530)을 장착한다. 생성형 방식은 사전에 학습된 초거대 언어모델을 이용하여 답변하는 것으로 GPT-3 이상의 언어모델을 사용할 수 있다.
인덱스 리스트(510)는 커스텀 인공지능 모델(520)이 고객이 입력한 문장에 대해 적절한 응답을 찾을 수 있도록 도와준다. 커스텀 인공지능 모델(520)이 고객의 입력 문장을 임베딩하고 이를 인덱스를 활용해 검색하면 인덱스 리스트(510)에서 가장 유사한 응답을 찾을 수 있다. 커스텀 인공지능 모델(520)은 이렇게 찾은 응답을 선택하고 출력한다. 그러나 인덱스 리스트(510)에서 검색되지 않는 질문에 대해서는 생성형 방식으로 답변을 제공한다.
본 발명의 챗봇(500)은 인덱스 리스트(510)을 이용한 시나리오 방식과 인공지능 언어모델의 생성형 방식을 연동하여 대화하는 점이 특징이다.
챗봇엔진(530)은 고객(10)의 답변 형태를 분석하여, JSONL 형태의 데이터를 생성한 후 원하는 프롬프트 및 원하는 답 형태를 구성하고, 이를 커스텀 인공지능 모델(520)에 다시 반영할 수 있다.
챗봇 설정부(600)는 데이터베이스(700)에 저장된 복수의 타겟 도메인의 지식 데이터 중 챗봇에 탑재할 하나 이상의 타겟 도메인의 인덱스 리스트를 선택하여 설정한다.
도 7을 참고하면, 챗봇 설정 메뉴에서 데이터베이스(700)에 저장된 복수의 타겟 도메인의 지식 데이터(노무일반, 산업안전, 4대보험, 근로계약, 임금일반, 퇴직연금, 급여세금, 근로조건 등) 중 챗봇(500)에 탑재할 하나 이상의 타겟 도메인의 인덱스 리스트를 설정한다. 병원, 쇼핑몰과 같이 기업을 대상으로 타겟 도메인을 설정할 수도 있고, 각 전문 분야별(노무일반, 산업안전, 4대보험 등)로 타겟 도메인을 설정할 수도 있다.
도 8을 참고하면, '노무일반' 타겟 도메인의 인덱스 리스트에는 질문으로 '실업급여의 조건은 어떻게 되나요?'와 그에 대한 응답이 포함되는 예를 나타낸다. '노무일반' 타겟 도메인의 인덱스 리스트에는 여러 질문과 각각에 대응하는 답변으로 구성되며, 실업급여 조건은 그 중 하나에 해당한다.
'퇴직연금' 타겟 도메인의 인덱스 리스트에는 질문으로 '임금협상이나 단협 타결금을 지급하기로 한 경우 DC 연금에 포함되나요?'와 그에 대한 응답이 포함되는 예를 나타낸다. 이것도 '퇴직연금' 타겟 도메인의 인덱스 리스트를 구성하는 여러 질문과 답변 중 하나에 해당한다.
도 9를 참고하면, 챗봇 설정부(600)는 챗봇의 언어, 스타일, 파라미터, 어조, 문구 설정, 토큰 처리 등을 설정할 수 있다.
챗봇엔진(530)은 고객(10)과 대화 시 이전 대화 내용을 이용하여 고객의 관심 주제를 파악하고, 관심 주제에 해당하는 타겟 도메인의 인덱스 리스트에서 고객의 질문에 해당하는 답변을 검색하여 제공한다.
예를 들어, 고객의 이전 대화 내용이 '4대보험'에 해당하는 경우 '4대보험' 타겟 도메인의 인덱스 리스트에서 고객의 질문에 해당하는 답변을 검색하여 제공한다. 고객의 질문이 구체적인지 않고 대충 질문하는 경우도 흔히 있다. 이런 경우 고객의 질문이 '4대보험' 타겟 도메인에 해당할 수도 있고, '노무일반'에 해당할 수도 있는 불분명한 경우가 발생할 수 있다. 이런 경우 고객의 이전 대화 내용을 이용하여 고객의 관심 타겟 도메인을 파악한 후 해당하는 타겟 도메인에서 고객의 질문에 해당하는 답변을 제공한다.
기업고객(20)으로부터 타겟 도메인의 지식을 수집하여 데이터베이스에 업로드 한 결과 '4대보험'과 '노무일반'은 중복되는 내용이 발생할 수 있기 때문에 위와 같이 처리하도록 한다.
고객의 이전 대화 내용을 이용하여 고객의 관심 타겟 도메인을 파악한 후 해당하는 타겟 도메인에서 고객의 질문에 해당하는 답변을 제공했는데, 고객이 원하는 답변이 아닌 경우 다시 대화를 수행하여 고객의 관심 주제를 명확하게 파악하고 답변을 제공하도록 한다.
챗봇(500)은 실시간 대화상황 조절부(540)를 포함한다.
실시간 대화상황 조절부(540)는 고객(10)이 챗봇(500)과 대화할 때 고객(10)의 여러 질문의 각 단계에 따른 흐름이 일반적이지 않을 때는 인덱스 리스트(510)에서 검색하여 답변하는 것을 멈추고, 커스텀 인공지능 모델(520)이 생성형 방식으로 고객이 잘 모르는 내용을 이해시키거나 고객의 상황을 이해하려고 노력하는 답변을 제공하도록 한다.
타겟 도메인이 쇼핑몰이라고 하면, 고객이 쇼핑몰에 탑재된 챗봇과 대화 시 상품 주문이 제대로 됐는지, 상품이 언제 도착하는지, 상품 품질이 어떤지 등의 내용에 대한 질문과 답변으로 대화가 이루어져야 할 것이다. 그리고 이러한 질문과 답변에는 시작(궁금한 단계), 본론(궁금한 것을 하나씩 풀어가는 단계), 마무리(궁금한 내용 해소 단계)의 단계로 이어져야 하는데, 이러한 단계로 이루어지지 않고 각 단계에 맞지 않는 엉뚱하거나 부적절한 흐름으로 이어질 때에는 인덱스 리스트(510)에서 검색하여 답변하는 것을 멈추고 커스텀 인공지능 모델(520)이 생성형 방식으로 고객이 잘 모르는 내용을 이해시키거나 고객의 상황을 이해하려고 노력하는 답변을 제공하도록 함으로써 고객이 상황에 맞는 답변을 할 수 있도록 정리해준다.
챗봇(500)은 대화 이상 감지부(550)를 포함한다.
대화 이상 감지부(550)는 각 타겟 도메인 분야별로 고객과 대화의 각 단계별 흐름을 분석하여 고객과 대화가 일반적인 방식으로 전개되고 있는지, 일반적이지 않은 방식으로 전개되고 있는지 판단한다.
위에서 고객과 대화의 각 단계별 흐름은 시작(궁금한 단계), 본론(궁금한 것을 하나씩 풀어가는 단계), 마무리(궁금한 내용 해소 단계)의 단계로 이어져야 한다고 했다.
시작, 본론, 마무리로 진행되는 대화가 일반적이지만 모든 타겟 도메인이 시작 대화 내용이 항상 궁금한 내용으로 시작하고, 본론 대화가 궁금한 것을 하나씩 풀어가는 단계로 구성되고, 마무리 대화가 궁금한 내용을 해소하는 단계로 구성되는 것은 아니다.
예를 들어, 고객이 병원에 긴급한 상황을 접수하고 도움을 요청하는 경우는 바로 본론(사고 내용 설명), 마무리(사고 내용 접수 확인)로 전개될 수도 있다.
대화 이상 감지부(550)는 이와 같이 각 타겟 도메인 분야별로 고객과 대화 내용의 키워드를 패턴 매칭 기반 및 자연어 처리 기반으로 분석하여 고객과 대화가 일반적인 방식으로 전개되고 있는지, 일반적이지 않은 방식으로 전개되고 있는지 판단할 수 있다. 즉, 대화 이상 감지부(550)는 타겟 도메인 분야별로 자연어 처리와 패턴 매칭을 이용하여 고객과의 대화를 학습하여 타겟 도메인 분야별 대화 전개 방식의 특징 및 고객과 대화가 어느 단계에 해당하는지 판단이 가능하며, 일반적인 방식으로 전개되고 있는지, 일반적이지 않은 방식으로 전개되고 있는지 판단이 가능하다.
실시간 대화상황 조절부(540)는 대화 이상 감지부(550)에서 고객과 대화가 일반적이지 않은 방식으로 전개되고 있다고 메시지를 받으면, 인덱스 리스트(510)에서 검색하여 답변하는 것을 멈추고, 커스텀 인공지능 모델(520)이 생성형 방식으로 고객이 잘 모르는 내용을 이해시키거나 고객의 상황을 이해하려고 노력하는 답변을 제공하도록 한다.
예를 들어, 고객과 노무분야에 대한 질문과 답변을 진행하는 도중에 현 주제와 관련 없는 세무관련 내용을 이야기하는 경우 인덱스 리스트(510)에서 검색하여 답변하는 것을 멈추고, 커스텀 인공지능 모델(520)이 생성형 방식으로 고객에게 해당 내용은 세무에 관련된 것으로 노무와 연관은 없으며 고객이 혼동하고 있다고 설명하고 추가 설명으로 이해시킬 수 있다. 고객이 이해한 후 다시 노무분야에 대한 질문과 답변으로 넘어갈 수 있다.
실시간 대화상황 조절부(540)는 커스텀 인공지능 모델(520)이 생성형 방식으로 고객이 잘 모르는 내용을 이해시킬 수 있는 질문 및 대화를 유도하도록 하는 메시지를 커스텀 인공지능 모델(520)에 전달하거나, 고객의 상황을 이해하려고 노력하는 질문 및 대화를 유도하도록 하는 메시지를 커스텀 인공지능 모델(520)에 전달하여 고객의 상황에 맞는 대화가 가능하도록 한다.
실시간 대화상황 조절부(540)는 생성형 방식으로 답변을 제공한 후 고객이 다시 데이터베이스(700)에서 검색 가능한 질문을 하는 경우 데이터베이스(700)의 인덱스 리스트(510)에서 검색하여 답변을 제공하도록 한다.
이 때 실시간 대화상황 조절부(540)는 생성형 방식으로 답변을 제공한 후 고객이 다시 인덱스 리스트(510)에서 검색 가능한 질문을 시작하면, 고객에게 잘 모르는 내용에 대해 이해가 됐는지, 또는 다시 위 질문에 관련된 주제에 대해 대화를 이어 나가면 되는지 확인 후 고객의 질문에 대한 답변을 진행한다.
챗봇(500)은 임베딩 벡터 유사도 판단의 기준에 따라 인덱스 리스트(510)에서 고객의 질문과 유사한 질문을 검색 시 유사한 질문이 검색되지 않는 경우 생성형 방식으로 답변을 제공한다.
임베딩 벡터의 유사도 판단은 질문을 구성하는 0(zero)이 아닌 각 임베딩 벡터의 개수와 검색 시 비교되는 문장 간의 각 임베딩 벡터의 차이값을 고려하여 유사 여부를 결정한다.
구체적으로는, 질문을 구성하는 0(zero)이 아닌 임베딩 벡터의 개수가 많을수록 각 임베딩 벡터의 차이값에 가중치를 작게 하고, 질문을 구성하는 0(zero)이 아닌 임베딩 벡터의 개수가 적을수록 각 임베딩 벡터의 차이값에 가중치를 크게 하여 비교되는 문장 간의 유사 여부를 결정하도록 한다.
도 10을 참고하면, 노무분야 인덱스 리스트에서 항목을 구성하는 쿼리 임베딩 벡터와 응답 문장이 세 개로 구성된 예를 보여주고 있으나, 인덱스 리스트의 항목은 이보다 더 많은 개수로 구성될 것이다.
이때 질문을 구성하는 입력 임베딩 벡터에서 0(zero)가 하나도 없고 모두 0보다 크고 1보다 작은 수에 해당한다고 하면 고객이 입력한 입력 임베딩 벡터와 비교되는 인덱스 리스트의 쿼리 임베딩 벡터의 차이값에 가중치를 5로 하여 비교되는 각 임베딩 벡터의 차이값에 5를 곱한 후 모두 더한 값이 1 이상이 되면 비유사로 판단하고, 1 미만이면 유사로 판단하도록 할 수 있다. 여기서 5와 1은 예시로 든 것이다.
질문을 구성하는 입력 임베딩 벡터에서 0(zero)가 두 개가 있다고 하면 고객이 입력한 입력 임베딩 벡터와 비교되는 인덱스 리스트의 쿼리 임베딩 벡터의 차이값에 가중치를 10으로 하여 비교되는 각 임베딩 벡터의 차이값에 10을 곱한 후 모두 더한 값이 1 이상이 되면 비유사로 판단하고, 1 미만이면 유사로 판단하도록 할 수 있다. 여기서 10과 1은 예시로 든 것이다.
위의 예에서 가중치는 입력 임베딩 벡터에서 0(zero)의 개수에 따라 적절히 조절하도록 한다. 참고로, 임베딩 벡터 값의 범위는 일반적으로 -1과 1 사이에 해당한다.
챗봇(500)은 대화 분할 정리부(560)를 포함한다.
대화 분할 정리부(560)는 고객의 질문이 데이터베이스의 인덱스 리스트(510) 중 단일 항목으로는 유사도 높은 것이 검색되지 않았으나, 고객의 질문이 길어서 분할 시 두 개 이상의 인덱스 리스트(510) 항목과 유사한지 판단한다.
분할 시 두 개 이상의 인덱스 리스트(510) 항목과 유사하지는 않지만, 한 개의 인덱스 리스트(510) 항목과 유사하고 나머지 부분은 비유사한 경우 인덱스 리스트(510)의 항목과 유사한 부분에 대해서는 답변을 하고, 나머지 비유사한 부분에 대해서는 다시 명확하게 질문해 줄 것을 요청한다.
대화 분할 정리부(560)는 고객의 질문이 길어서 분할 시 인덱스 리스트(510) 각 항목의 임베딩 벡터 값을 확인하여 유사한 문장으로 확인되는 임베딩 벡터가 검색되는 부분까지를 분할하고, 나머지 부분에 대해서도 임베딩 벡터 값을 확인하여 유사한 문장으로 확인되는 임베딩 벡터가 있는지를 검색하는 방식으로 고객의 질문을 분할한다.
그러나 나머지 부분의 유사도가 일정 수준에 못 미치면 해당하는 부분의 질문에 대해서는 고객에게 다시 명확하게 질문해 줄 것을 요청한다.
여기서 임베딩 벡터 값을 확인하여 유사한 문장으로 확인되는 임베딩 벡터가 검색되는 부분까지 분할할 때 유사 여부의 판단은 상기에서 살펴본 질문을 구성하는 0(zero)이 아닌 임베딩 벡터의 개수가 많을수록 각 임베딩 벡터의 차이값에 가중치를 작게 하고, 질문을 구성하는 0(zero)이 아닌 임베딩 벡터의 개수가 적을수록 각 임베딩 벡터의 차이값에 가중치를 크게 하여 비교되는 문장 간의 유사 여부를 결정하는 방식과 동일하다.
상기에서는 고객(10)이 텍스트로 챗봇(500)과 대화하는 내용을 중심으로 설명하였다. 챗봇(500)은 STT / TTS 변환부(570)를 포함한다.
STT / TTS 변환부(570)는 STT(Speech To Text) 기능을 이용하여 고객의 음성을 텍스트로 변환한다. 텍스트로 변환 후 처리는 상기에서 살펴본 챗봇엔진(530)이 처리하는 방식과 동일하다.
STT / TTS 변환부(570)는 TTS(Text To Speech) 기능을 이용하여 텍스트를 음성으로 변환하여 재생한다. 챗봇엔진(530)이 사용자에게 질문할 때 그리고 사용자의 질문에 대해 답변할 때 텍스트를 음성으로 변환하여 재생하는 것이다.
[인공지능 기반의 챗봇 대화 상담 방법]
도 11을 참고하면, 본 발명에 따른 인공지능 기반의 챗봇 대화 상담 방법은 다음의 단계로 수행된다. 상기에서 설명한 내용과 중복되는 부분에 대해서는 자세한 설명을 생략하였다.
1단계: 타겟 도메인의 지식을 수집하여 임베딩용 지식 데이터와 파인 튜닝용 지식 데이터로 구분하여 전처리한다(S1110).
2단계: 전처리된 임베딩용 지식 데이터와 파인 튜닝용 지식 데이터를 데이터베이스(DB)에 업로드한다(S1120).
3단계: 업로드된 임베딩용 지식 데이터를 임베딩(Embedding) 처리하고 임베딩된 데이터를 색인화하여 인덱스 리스트를 생성한다(S1130).
4단계: 업로드된 파인 튜닝용 지식 데이터를 입력 받아 인공지능 언어모델을 파인 튜닝(Fine-Tuning)하여 타겟 도메인에 맞는 커스텀 인공지능 모델을 생성하는 트레이닝을 수행한다(S1140).
5단계: 챗봇은 인덱스 리스트와 커스텀 인공지능 모델을 탑재하고 타겟 도메인에 설치되어 고객의 질문에 대응하는 답변을 커스텀 인공지능 모델을 이용하여 인덱스 리스트에서 검색하여 제공하거나, 인덱스 리스트에서 검색되지 않는 질문에 대해서는 생성형 방식으로 답변을 제공하여 고객과 대화한다(S1150).
트레이닝 단계(4단계, S1140) 이후,
데이터베이스에 저장된 복수의 타겟 도메인의 지식 데이터 중 챗봇에 탑재할 하나 이상의 타겟 도메인의 인덱스 리스트를 선택하여 챗봇을 설정하는 단계를 더 포함한다.
챗봇과 대화하는 단계(5단계, S1150)는,
고객이 챗봇과 대화할 때 고객의 여러 질문의 각 단계에 따른 흐름이 일반적이지 않을 때는 인덱스 리스트에서 검색하여 답변하는 것을 멈추고, 커스텀 인공지능 모델이 생성형 방식으로 고객이 잘 모르는 내용을 이해시키거나 고객의 상황을 이해하려고 노력하는 답변을 제공한다.
그리고 생성형 방식으로 답변을 제공한 후 고객이 다시 데이터베이스에서 검색 가능한 질문을 하는 경우 데이터베이스의 인덱스 리스트에서 검색하여 답변을 제공하도록 한다.
챗봇과 대화하는 단계(5단계, S1150)는,
고객의 질문이 데이터베이스의 인덱스 리스트 중 단일 항목으로는 유사도 높은 것이 검색되지 않았으나, 고객의 질문이 길어서 분할 시 두 개 이상의 인덱스 리스트 항목과 유사한지 판단하고, 분할 시 한 개의 인덱스 리스트 항목과 유사하고 나머지 부분은 비유사한 경우 인덱스 리스트의 항목과 유사한 부분에 대해서는 답변을 하고, 나머지 비유사한 부분에 대해서는 다시 명확하게 질문해 줄 것을 요청하도록 한다.
본 발명은 챗봇이 시나리오 및 생성형 방식을 혼합하여 고객과 대화가 가능하여 타겟 도메인 분야에 대화 품질이 보장된 서비스가 가능하며, 돌발상황이나 이상상황 또는 고객의 곤란한 상황 등 대화의 흐름이 정상적이지 않은 상황에 대한 감지 및 이를 해소하는 대화 기능을 가지고 있어 고객 친화적인 대화 및 서비스가 가능한 것이 큰 장점이다.
또한, 기관이나 기업의 대량 데이터를 수집하여 트레이닝(파인 튜닝) 시키고, 학습이 완료된 거대 언어 모델을 인공지능 챗봇에 탑재하여 타겟 웹사이트나 병원, 쇼핑몰에서 서비스가 가능하여 타겟 도메인과 상관없이 맞춤형 챗봇 대화 서비스가 가능한 인공지능 기반의 챗봇 대화 상담 시스템 및 그 방법에 관한 것이다.
지금까지 본 발명을 바람직한 실시 예를 참조하여 상세히 설명하였지만, 본 발명이 속하는 기술분야의 당업자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시할 수 있으므로, 이상에서 기술한 실시 예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해해야만 한다.
그리고, 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 특정되는 것이며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
10: 고객 20: 기업
100: 데이터 전처리부 200: 데이터 업로드부
300: 임베딩 처리부 400: 트레이닝부
500: 챗봇
510: 인덱스 리스트
520: 커스텀 인공지능 모델
530: 챗봇 엔진
540: 실시간 대화상황 조절부
550: 대화 이상 감지부
560: 대화 분할 정리부
570: STT / TTS 변환부
600: 챗봇 설정부 700: 데이터베이스
1000: 인공지능 기반의 챗봇 대화 상담 시스템

Claims (10)

  1. 타겟 도메인의 지식을 수집하여 임베딩용 지식 데이터와 파인 튜닝용 지식 데이터로 구분하여 전처리를 수행하는 데이터 전처리부;
    상기 전처리된 임베딩용 지식 데이터와 파인 튜닝용 지식 데이터를 데이터베이스(DB)에 업로드하는 데이터 업로드부;
    상기 업로드된 임베딩용 지식 데이터를 임베딩(Embedding) 처리하고 임베딩된 데이터를 색인화하여 인덱스 리스트를 생성한 후 데이터베이스에 저장하는 임베딩 처리부;
    상기 업로드된 파인 튜닝용 지식 데이터를 입력 받아 인공지능 언어모델을 파인 튜닝(Fine-Tuning)하여 타겟 도메인에 맞는 커스텀 인공지능 모델을 생성하는 트레이닝부; 및
    상기 인덱스 리스트와 커스텀 인공지능 모델을 탑재하고 타겟 도메인에 설치되어 고객의 질문에 대응하는 답변을 커스텀 인공지능 모델을 이용하여 인덱스 리스트에서 검색하여 제공하거나, 인덱스 리스트에서 검색되지 않는 질문에 대해서는 생성형 방식으로 답변을 제공하는 챗봇엔진을 장착한 챗봇;을 포함하되,
    데이터베이스에 저장된 복수의 타겟 도메인의 지식 데이터 중 챗봇에 탑재할 하나 이상의 타겟 도메인의 인덱스 리스트를 설정하는 챗봇 설정부;를 더 포함하고,
    상기 챗봇엔진은 고객과 대화 시 이전 대화 내용을 이용하여 고객의 관심 주제를 파악하고, 관심 주제에 해당하는 타겟 도메인의 인덱스 리스트에서 고객의 질문에 해당하는 답변을 검색하여 제공하되,
    고객의 질문이 제1 타겟 도메인과 제2 타겟 도메인의 두 개 타겟 도메인에 걸쳐 중복되는 경우 고객의 이전 대화 내용을 이용하여 고객의 관심 타겟 도메인을 파악한 후 해당하는 타겟 도메인에서 고객의 질문에 해당하는 답변을 제공하며, 고객이 원하는 답변이 아닌 경우 다시 대화를 수행하여 고객의 관심 주제를 명확하게 파악하고 답변을 제공하고,
    상기 챗봇 설정부는 챗봇의 언어, 스타일, 파라미터, 어조, 문구 설정을 처리하며,
    상기 챗봇은 임베딩 벡터 유사도 판단의 기준에 따라 인덱스 리스트에서 고객의 질문과 유사한 질문을 검색 시 유사한 질문이 검색되지 않는 경우 생성형 방식으로 답변을 제공하며,
    상기 임베딩 벡터의 유사도 판단은 질문을 구성하는 0(zero)이 아닌 각 임베딩 벡터의 개수와 검색 시 비교되는 문장 간의 각 임베딩 벡터의 차이값을 고려하여 유사 여부를 결정하되,
    질문을 구성하는 0(zero)이 아닌 임베딩 벡터의 개수가 많을수록 각 임베딩 벡터의 차이값에 가중치를 작게 하고, 질문을 구성하는 0(zero)이 아닌 임베딩 벡터의 개수가 적을수록 각 임베딩 벡터의 차이값에 가중치를 크게 하여 비교되는 문장 간의 유사 여부를 결정하고,
    질문을 구성하는 입력 임베딩 벡터에서 0(zero)가 하나도 없고 모두 0보다 크고 1보다 작은 수에 해당한다고 하면 고객이 입력한 입력 임베딩 벡터와 비교되는 인덱스 리스트의 쿼리 임베딩 벡터의 차이값에 가중치를 제1 값으로 하여 비교되는 각 임베딩 벡터의 차이값에 제1 값을 곱한 후 모두 더한 값이 1 이상이 되면 비유사로 판단하고, 1 미만이면 유사로 판단하며,
    질문을 구성하는 입력 임베딩 벡터에서 0(zero)가 두 개가 있다고 하면 고객이 입력한 입력 임베딩 벡터와 비교되는 인덱스 리스트의 쿼리 임베딩 벡터의 차이값에 가중치를 제2 값으로 하여 비교되는 각 임베딩 벡터의 차이값에 제2 값을 곱한 후 모두 더한 값이 1 이상이 되면 비유사로 판단하고, 1 미만이면 유사로 판단하고,
    임베딩 벡터 값의 범위는 -1과 1 사이의 값을 가지며, 가중치는 입력 임베딩 벡터에서 0(zero)의 개수에 따라 조절하고, 상기 제2 값은 제1 값보다 큰 값이며,
    상기 챗봇은,
    고객의 질문이 데이터베이스의 인덱스 리스트 중 단일 항목으로는 유사한 것이 검색되지 않았으나, 고객의 질문을 분할 시 두 개 이상의 인덱스 리스트 항목과 유사한지 판단하고, 분할 시 한 개의 인덱스 리스트 항목과 유사하고 나머지 부분은 비유사한 경우 인덱스 리스트의 항목과 유사한 부분에 대해서는 답변을 하고, 나머지 비유사한 부분에 대해서는 다시 명확하게 질문해 줄 것을 요청하는 대화 분할 정리부;를 더 포함하되,
    대화 분할 정리부는 고객의 질문을 분할 시 인덱스 리스트 각 항목의 임베딩 벡터 값을 확인하여 유사한 문장으로 확인되는 임베딩 벡터가 검색되는 부분까지를 분할하고, 나머지 부분에 대해서도 임베딩 벡터 값을 확인하여 유사한 문장으로 확인되는 임베딩 벡터가 있는지를 검색하는 방식으로 고객의 질문을 분할하고, 나머지 부분의 유사도가 일정 수준에 못 미치면 해당하는 부분의 질문에 대해서는 고객에게 다시 명확하게 질문해 줄 것을 요청하며,
    상기의 임베딩 벡터 값을 확인하여 유사한 문장으로 확인되는 임베딩 벡터가 검색되는 부분까지 분할할 때 유사 여부의 판단은 질문을 구성하는 0(zero)이 아닌 임베딩 벡터의 개수가 많을수록 각 임베딩 벡터의 차이값에 가중치를 작게 하고, 질문을 구성하는 0(zero)이 아닌 임베딩 벡터의 개수가 적을수록 각 임베딩 벡터의 차이값에 가중치를 크게 하여 비교되는 문장 간의 유사 여부를 결정하는 것을 특징으로 하는 인공지능 기반의 챗봇 대화 상담 시스템.
  2. 삭제
  3. 청구항 1에 있어서,
    상기 챗봇은,
    고객이 챗봇과 대화할 때 고객의 여러 질문의 각 단계에 따른 흐름이 시작, 본론, 마무리 또는 본론, 마무리로 전개되고 있지 않는 경우 인덱스 리스트에서 검색하여 답변하는 것을 멈추고, 커스텀 인공지능 모델이 생성형 방식으로 고객이 잘 모르는 내용을 이해시키거나 고객의 상황을 이해하려고 노력하는 답변을 제공하도록 하는 실시간 대화상황 조절부;를 포함하는 것을 특징으로 하는 인공지능 기반의 챗봇 대화 상담 시스템.
  4. 청구항 3에 있어서,
    상기 챗봇은,
    각 타겟 도메인 분야별로 고객과 대화의 각 단계별 흐름을 분석하여 고객과 대화가 시작, 본론, 마무리 또는 본론, 마무리로 전개되고 있는지 여부를 판단하는 대화 이상 감지부;를 포함하고,
    상기 실시간 대화상황 조절부는 대화 이상 감지부에서 고객과 대화가 시작, 본론, 마무리 또는 본론, 마무리로 전개되고 있지 않다는 메시지를 받으면, 인덱스 리스트에서 검색하여 답변하는 것을 멈추고, 커스텀 인공지능 모델이 생성형 방식으로 고객이 잘 모르는 내용을 이해시키거나 고객의 상황을 이해하려고 노력하는 답변을 제공하도록 하는 것을 특징으로 하는 인공지능 기반의 챗봇 대화 상담 시스템.
  5. 청구항 3에 있어서,
    상기 실시간 대화상황 조절부는,
    생성형 방식으로 답변을 제공한 후 고객이 다시 데이터베이스에서 검색 가능한 질문을 하는 경우 데이터베이스의 인덱스 리스트에서 검색하여 답변을 제공하는 것을 특징으로 하는 인공지능 기반의 챗봇 대화 상담 시스템.
  6. 삭제
  7. 삭제
  8. 삭제
  9. 삭제
  10. 삭제
KR1020230088207A 2023-07-07 2023-07-07 인공지능 기반의 챗봇 대화 상담 시스템 및 그 방법 KR102653266B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020230088207A KR102653266B1 (ko) 2023-07-07 2023-07-07 인공지능 기반의 챗봇 대화 상담 시스템 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020230088207A KR102653266B1 (ko) 2023-07-07 2023-07-07 인공지능 기반의 챗봇 대화 상담 시스템 및 그 방법

Publications (1)

Publication Number Publication Date
KR102653266B1 true KR102653266B1 (ko) 2024-04-02

Family

ID=90714601

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230088207A KR102653266B1 (ko) 2023-07-07 2023-07-07 인공지능 기반의 챗봇 대화 상담 시스템 및 그 방법

Country Status (1)

Country Link
KR (1) KR102653266B1 (ko)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101945297B1 (ko) * 2017-11-10 2019-02-07 (주)페르소나시스템 메신저 연동형 챗봇의 제작 및 제공 서버
KR20190059074A (ko) * 2017-11-22 2019-05-30 주식회사 이르테크 화행 제어를 이용한 대화 처리 시스템 및 그 동작 방법
KR20200041199A (ko) * 2018-10-11 2020-04-21 삼성생명보험주식회사 챗봇 구동 방법, 장치 및 컴퓨터 판독가능 매체
KR20220022726A (ko) * 2020-08-19 2022-02-28 삼성전자주식회사 임베딩 벡터 생성 모델 트레이닝 방법 및 장치
KR20220040050A (ko) 2020-09-23 2022-03-30 삼성전자주식회사 자연어 처리 모델 트레이닝 방법 및 장치와 컴퓨팅 장치
KR102449349B1 (ko) 2021-07-22 2022-09-30 주식회사 천재교과서 학습 챗봇을 활용한 학습 유도 시스템
KR20220138960A (ko) 2021-04-07 2022-10-14 군산대학교산학협력단 지식 임베딩 모델 기반의 개체명 인식 모델 생성 장치 및 방법
KR102518448B1 (ko) 2021-05-14 2023-04-06 (주)와이즈에이아이 인공지능 챗봇 기반 자동 콜 응대 서비스 시스템
KR20230075052A (ko) * 2021-11-22 2023-05-31 네이버 주식회사 언어 모델을 이용하여 도메인에 특화된 대화를 제공하는 방법, 컴퓨터 장치, 및 컴퓨터 프로그램

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101945297B1 (ko) * 2017-11-10 2019-02-07 (주)페르소나시스템 메신저 연동형 챗봇의 제작 및 제공 서버
KR20190059074A (ko) * 2017-11-22 2019-05-30 주식회사 이르테크 화행 제어를 이용한 대화 처리 시스템 및 그 동작 방법
KR20200041199A (ko) * 2018-10-11 2020-04-21 삼성생명보험주식회사 챗봇 구동 방법, 장치 및 컴퓨터 판독가능 매체
KR20220022726A (ko) * 2020-08-19 2022-02-28 삼성전자주식회사 임베딩 벡터 생성 모델 트레이닝 방법 및 장치
KR20220040050A (ko) 2020-09-23 2022-03-30 삼성전자주식회사 자연어 처리 모델 트레이닝 방법 및 장치와 컴퓨팅 장치
KR20220138960A (ko) 2021-04-07 2022-10-14 군산대학교산학협력단 지식 임베딩 모델 기반의 개체명 인식 모델 생성 장치 및 방법
KR102518448B1 (ko) 2021-05-14 2023-04-06 (주)와이즈에이아이 인공지능 챗봇 기반 자동 콜 응대 서비스 시스템
KR102449349B1 (ko) 2021-07-22 2022-09-30 주식회사 천재교과서 학습 챗봇을 활용한 학습 유도 시스템
KR20230075052A (ko) * 2021-11-22 2023-05-31 네이버 주식회사 언어 모델을 이용하여 도메인에 특화된 대화를 제공하는 방법, 컴퓨터 장치, 및 컴퓨터 프로그램

Similar Documents

Publication Publication Date Title
Suhel et al. Conversation to automation in banking through chatbot using artificial machine intelligence language
US11004013B2 (en) Training of chatbots from corpus of human-to-human chats
JP4901738B2 (ja) 機械学習
CN112202978A (zh) 智能外呼系统、方法、计算机系统及存储介质
US20220141335A1 (en) Partial automation of text chat conversations
US11363141B2 (en) Systems and methods relating to asynchronous resolution of customer requests in contact center
CN105229687A (zh) 用于呼叫中心的智能自动代理
US11798539B2 (en) Systems and methods relating to bot authoring by mining intents from conversation data via intent seeding
CN114730357A (zh) 用于对话管理的系统和方法
CN112131358A (zh) 场景流程结构及所应用的智能客服系统
KR20200104544A (ko) 대화 의도 실시간 분석 방법
CN116049360A (zh) 基于客户画像的智能语音对话场景话术干预方法及系统
CA3147634A1 (en) Method and apparatus for analyzing sales conversation based on voice recognition
US11438283B1 (en) Intelligent conversational systems
US11743378B1 (en) Intelligent agent assistant for natural language understanding in a customer service system
KR102653266B1 (ko) 인공지능 기반의 챗봇 대화 상담 시스템 및 그 방법
CN116860938A (zh) 一种基于大语言模型的语音问答构建方法、装置及介质
US20230244968A1 (en) Smart Generation and Display of Conversation Reasons in Dialog Processing
Koch et al. A reference architecture for on-premises chatbots in banks and public institutions
Väänänen Improving Customer Service with Intelligent Virtual Assistants
CN116935839A (zh) 基于人工智能的语音客服服务方法及系统
CN114818740A (zh) 一种基于领域知识图谱的人机协同方法及系统
van Rink Conversation based chat-routing
Sankar An investigation into a natural language interface for Contact Centres
Kaliuta Implementing voice recognition and natural language processing in Salesforce