KR20230071673A - Method, computer device, and computer program for building open-domain dialogue system using language model - Google Patents
Method, computer device, and computer program for building open-domain dialogue system using language model Download PDFInfo
- Publication number
- KR20230071673A KR20230071673A KR1020210194421A KR20210194421A KR20230071673A KR 20230071673 A KR20230071673 A KR 20230071673A KR 1020210194421 A KR1020210194421 A KR 1020210194421A KR 20210194421 A KR20210194421 A KR 20210194421A KR 20230071673 A KR20230071673 A KR 20230071673A
- Authority
- KR
- South Korea
- Prior art keywords
- chatbot
- conversation
- model
- processor
- language model
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 42
- 238000004590 computer program Methods 0.000 title claims abstract description 10
- 230000004044 response Effects 0.000 claims abstract description 49
- 238000001914 filtration Methods 0.000 claims description 13
- 238000012937 correction Methods 0.000 claims description 9
- 238000013459 approach Methods 0.000 claims description 8
- 238000001514 detection method Methods 0.000 claims description 5
- 238000007476 Maximum Likelihood Methods 0.000 claims description 4
- 238000012986 modification Methods 0.000 claims description 3
- 230000004048 modification Effects 0.000 claims description 3
- 238000004891 communication Methods 0.000 description 12
- 238000012545 processing Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000012549 training Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000013480 data collection Methods 0.000 description 2
- 238000003058 natural language processing Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 241000282412 Homo Species 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000009118 appropriate response Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 230000000116 mitigating effect Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011045 prefiltration Methods 0.000 description 1
- 230000001988 toxicity Effects 0.000 description 1
- 231100000419 toxicity Toxicity 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/22—Procedures used during a speech recognition process, e.g. man-machine dialogue
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/01—Assessment or evaluation of speech recognition systems
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/06—Creation of reference templates; Training of speech recognition systems, e.g. adaptation to the characteristics of the speaker's voice
- G10L15/063—Training
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/08—Speech classification or search
- G10L15/18—Speech classification or search using natural language modelling
- G10L15/1822—Parsing for meaning understanding
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/08—Speech classification or search
- G10L15/18—Speech classification or search using natural language modelling
- G10L15/183—Speech classification or search using natural language modelling using context dependencies, e.g. language models
Landscapes
- Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Artificial Intelligence (AREA)
- Machine Translation (AREA)
Abstract
Description
아래의 설명은 개방형 도메인 대화 모델(open-domain dialogue model)을 구축하는 기술에 관한 것이다.The description below relates to techniques for building an open-domain dialogue model.
QA(question and answer) 시스템이란, 사용자가 질문을 입력하면 적절한 문서를 참조하여 답변을 제공하는 대화 시스템이다.A question and answer (QA) system is a dialog system that provides answers by referring to appropriate documents when a user inputs a question.
최근 언어 모델(language model)이 발전함에 따라 대화 시스템 성능이 빠르게 향상되고 있으며, 자연어뿐만 아니라 이미지나 음성과 같은 멀티모달(multi-modal) 영역까지 확장되고 있는 추세이다.As language models have recently developed, the performance of dialog systems is rapidly improving, and it is a trend that extends not only to natural languages but also to multi-modal domains such as images and voices.
일례로, 한국 공개특허공보 제10-2002-0030545호(공개일 2002년 04월 25일)에는 인공지능 기술과 자연어처리 기술을 이용하여 질문에 대한 답변을 제공하는 기술이 개시되어 있다.For example, Korean Patent Publication No. 10-2002-0030545 (published on April 25, 2002) discloses a technology for providing answers to questions using artificial intelligence technology and natural language processing technology.
사람과 자연스럽게 대화하면서 일관된 역할을 유지할 수 있는 개방형 도메인 대화 모델을 구축할 수 있다.It is possible to build an open domain conversation model that can naturally communicate with people and maintain a consistent role.
언어 모델의 컨텍스트 퓨샷 학습(context few-shot learning)을 통해 역할을 만족시키는 대화 데이터셋을 구축할 수 있다.Context few-shot learning of the language model allows us to build a dialog dataset that satisfies the role.
컴퓨터 장치에서 실행되는 방법에 있어서, 상기 컴퓨터 장치는 메모리에 포함된 컴퓨터 판독가능한 명령들을 실행하도록 구성된 적어도 하나의 프로세서를 포함하고, 상기 방법은, 상기 적어도 하나의 프로세서에 의해, 챗봇의 역할 사양(role specification) 및 상기 챗봇과 사람 간의 대화 예시로 언어 모델의 입력문이 되는 프롬프트(prompt)를 구성하는 단계; 및 상기 적어도 하나의 프로세서에 의해, 상기 프롬프트를 상기 언어 모델에 입력하여 상기 언어 모델을 통해 상기 프롬프트에 포함된 역할과 대화 패턴의 새로운 대화 데이터를 생성하는 단계를 포함하는 방법을 제공한다.A method executed on a computer device, wherein the computer device includes at least one processor configured to execute computer readable instructions contained in a memory, and the method comprises, by the at least one processor, a role specification of a chatbot ( configuring a prompt that is an input sentence of a language model as an example of a role specification and a conversation between the chatbot and a person; and generating, by the at least one processor, new dialogue data of roles and dialogue patterns included in the prompt through the language model by inputting the prompt into the language model.
일 측면에 따르면, 상기 방법은, 상기 적어도 하나의 프로세서에 의해, 상기 대화 데이터에 대한 지도 학습(supervised learning)으로 상기 챗봇을 위한 개방형 도메인 대화 모델(Open-Domain Dialogue Model)을 구축하는 단계를 더 포함할 수 있다.According to one aspect, the method further comprises building, by the at least one processor, an open-domain dialogue model for the chatbot by supervised learning on the conversation data. can include
다른 측면에 따르면, 상기 방법은, 상기 적어도 하나의 프로세서에 의해, 주석(annotation)을 통해 상기 대화 데이터를 필터링하는 단계를 더 포함할 수 있다.According to another aspect, the method may further include filtering, by the at least one processor, the conversation data through annotations.
또 다른 측면에 따르면, 상기 필터링하는 단계는, 상기 대화 데이터에 포함된 상기 챗봇의 발언 중 상기 주석이 지정된 문제 발언을 상기 챗봇을 학습하기 위한 네거티브 예시(negative example)로 분류하는 단계를 포함할 수 있다.According to another aspect, the filtering may include classifying the annotated problem remarks among the speeches of the chatbot included in the conversation data as negative examples for learning the chatbot. there is.
또 다른 측면에 따르면, 상기 방법은, 상기 적어도 하나의 프로세서에 의해, 상기 챗봇과 사람이 직접 대화하는 인터페이스를 통해 상기 챗봇과 사람 간의 대화 데이터를 상기 챗봇의 학습 데이터로 수집하는 단계를 더 포함할 수 있다.According to another aspect, the method further comprises collecting, by the at least one processor, conversation data between the chatbot and a person as learning data of the chatbot through an interface in which the chatbot and a person directly communicate. can
또 다른 측면에 따르면, 상기 수집하는 단계는, 상기 인터페이스를 통해 제공되는 상기 챗봇의 발언 중 일부 발언에 대해 수정 요청이 수신되는 경우 상기 언어 모델을 통해 대체 발언을 생성하여 상기 일부 발언을 수정하는 단계를 포함할 수 있다.According to another aspect, the collecting may include, when a modification request is received for some of the chatbot's remarks provided through the interface, generating an alternative speech through the language model to correct the partial speech. can include
또 다른 측면에 따르면, 상기 수집하는 단계는, 수정 요청한 발언을 상기 챗봇을 학습하기 위한 네거티브 예시로 분류하는 단계; 및 상기 대체 발언으로 수정된 발언을 상기 챗봇을 학습하기 위한 포지티브 예시로 분류하는 단계를 더 포함할 수 있다.According to another aspect, the collecting may include classifying utterances requested for correction as negative examples for learning the chatbot; and classifying the utterance corrected as the substitute utterance as a positive example for learning the chatbot.
또 다른 측면에 따르면, 상기 구축하는 단계는, 상기 역할 사양의 범주를 벗어난 발언을 감지하는 모델(Out-of-Bounds Detection Model), 응답 후보를 찾은 후 리랭킹하는(retrieve-then-rerank) 접근법에서 상기 언어 모델의 PPL(perplexity)을 기초로 상기 응답 후보를 필터링하는 응답 선택 모델(Response Selection Model), 및 최대 우도 추정(Maximum Likelihood Estimation)을 데이터셋의 포지티브 예시에 적용하고 비우도(unlikelihood) 학습을 데이터셋의 네거티브 예시에 적용하는 응답 생성 모델(Response Generation Model) 중 적어도 하나를 이용하여 상기 도메인 대화 모델을 구축할 수 있다.According to another aspect, the constructing may include an Out-of-Bounds Detection Model (Out-of-Bounds Detection Model) and a retrieve-then-rerank approach after finding response candidates. In , a response selection model for filtering the response candidates based on the perplexity (PPL) of the language model, and maximum likelihood estimation are applied to positive examples of the dataset and unlikelihood The domain conversation model may be built using at least one of a Response Generation Model that applies learning to negative examples in a dataset.
상기 방법을 상기 컴퓨터 장치에 실행시키기 위해 컴퓨터 판독가능한 기록 매체에 저장되는 컴퓨터 프로그램을 제공한다.A computer program stored in a computer readable recording medium to execute the method in the computer device is provided.
컴퓨터 장치에 있어서, 메모리에 포함된 컴퓨터 판독가능한 명령들을 실행하도록 구성된 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, 챗봇의 역할 사양 및 상기 챗봇과 사람 간의 대화 예시로 언어 모델의 입력문이 되는 프롬프트를 구성하고, 상기 프롬프트를 상기 언어 모델에 입력하여 상기 언어 모델을 통해 상기 프롬프트에 포함된 역할과 대화 패턴의 새로운 대화 데이터를 생성하는 것을 특징으로 하는 컴퓨터 장치를 제공한다.A computer device comprising at least one processor configured to execute computer readable instructions included in a memory, wherein the at least one processor includes a role specification of a chatbot and an input statement of a language model as an example of a conversation between the chatbot and a person. and generating new dialogue data of roles and dialogue patterns included in the prompt through the language model by inputting the prompt to the language model.
본 발명의 실시예들에 따르면, 사람과 자연스럽게 대화하면서 일관된 역할을 유지할 수 있는 개방형 도메인 대화 모델을 구축함으로써 응답 품질이 향상된 대화 시스템을 제공할 수 있다.According to embodiments of the present invention, it is possible to provide a dialog system with improved response quality by establishing an open domain dialog model capable of maintaining a consistent role while having a natural conversation with a person.
본 발명의 실시예들에 따르면, 언어 모델의 컨텍스트 퓨샷 학습을 활용하는 데이터 수집 프레임워크를 통해 역할을 만족시키는 대화 데이터셋을 빠르고 효율적으로 만들 수 있다.According to embodiments of the present invention, a conversation dataset that satisfies a role can be quickly and efficiently created through a data collection framework that utilizes contextual snapshot learning of a language model.
도 1은 본 발명의 일 실시예에 따른 네트워크 환경의 예를 도시한 도면이다.
도 2는 본 발명의 일실시예에 따른 컴퓨터 장치의 예를 도시한 블록도이다.
도 3은 본 발명의 일 실시예에 있어서 역할 지정 개방형 도메인 대화 모델을 구축하기 위한 프레임워크를 도시한 것이다.
도 4는 본 발명의 일실시예에 따른 컴퓨터 장치가 수행할 수 있는 개방형 도메인 대화 생성 방법의 예를 도시한 흐름도이다.
도 5는 본 발명의 일실시예에 있어서 대화 데이터 생성 과정을 설명하기 위한 예시 도면이다.
도 6은 본 발명의 일실시예에 있어서 대화 데이터에 대한 필터링 예시를 나타내고 있다.
도 7은 본 발명의 일실시예에 있어서 챗봇과 사람 간의 대화 데이터를 수집하는 과정을 설명하기 위한 예시 도면이다.
도 8은 본 발명의 일실시예에 있어서 개방형 도메인 대화 모델의 구조 예시를 도시한 것이다.1 is a diagram illustrating an example of a network environment according to an embodiment of the present invention.
2 is a block diagram illustrating an example of a computer device according to one embodiment of the present invention.
3 illustrates a framework for building a role-specified open domain dialog model in an embodiment of the present invention.
4 is a flowchart illustrating an example of a method for creating an open domain conversation performed by a computer device according to an embodiment of the present invention.
5 is an exemplary diagram for explaining a process of generating conversation data according to an embodiment of the present invention.
6 shows an example of filtering conversation data according to an embodiment of the present invention.
7 is an exemplary diagram for explaining a process of collecting conversation data between a chatbot and a person in one embodiment of the present invention.
8 illustrates an exemplary structure of an open domain dialogue model according to an embodiment of the present invention.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.
본 발명의 실시예들은 개방형 도메인 대화 모델(open-domain dialogue model)을 구축하는 기술에 관한 것이다.Embodiments of the present invention relate to techniques for building an open-domain dialogue model.
본 명세서에서 구체적으로 개시되는 것들을 포함하는 실시예들은 사람과 자연스럽게 대화하면서 일관된 역할을 유지할 수 있는 개방형 도메인 대화 모델을 만들 수 있다.Embodiments including those specifically disclosed in this specification can create an open domain conversation model that can maintain a consistent role while naturally conversing with a person.
본 발명의 실시예들에 따른 개방형 도메인 대화 생성 시스템은 적어도 하나의 컴퓨터 장치에 의해 구현될 수 있으며, 본 발명의 실시예들에 따른 개방형 도메인 대화 생성 방법은 개방형 도메인 대화 생성 시스템에 포함되는 적어도 하나의 컴퓨터 장치를 통해 수행될 수 있다. 이때, 컴퓨터 장치에는 본 발명의 일실시예에 따른 컴퓨터 프로그램이 설치 및 구동될 수 있고, 컴퓨터 장치는 구동된 컴퓨터 프로그램의 제어에 따라 본 발명의 실시예들에 따른 개방형 도메인 대화 생성 방법을 수행할 수 있다. 상술한 컴퓨터 프로그램은 컴퓨터 장치와 결합되어 개방형 도메인 대화 생성 방법을 컴퓨터에 실행시키기 위해 컴퓨터 판독 가능한 기록매체에 저장될 수 있다.The open domain dialogue generating system according to embodiments of the present invention may be implemented by at least one computer device, and the open domain dialogue generating method according to embodiments of the present invention includes at least one of the open domain dialogue generating systems. It can be performed through a computer device of. At this time, a computer program according to an embodiment of the present invention may be installed and driven in the computer device, and the computer device may perform the open domain conversation creation method according to the embodiments of the present invention under the control of the driven computer program. can The above-described computer program may be combined with a computer device and stored in a computer readable recording medium in order to execute an open domain conversation generating method on a computer.
도 1은 본 발명의 일실시예에 따른 네트워크 환경의 예를 도시한 도면이다. 도 1의 네트워크 환경은 복수의 전자 기기들(110, 120, 130, 140), 복수의 서버들(150, 160) 및 네트워크(170)를 포함하는 예를 나타내고 있다. 이러한 도 1은 발명의 설명을 위한 일례로 전자 기기의 수나 서버의 수가 도 1과 같이 한정되는 것은 아니다. 또한, 도 1의 네트워크 환경은 본 실시예들에 적용 가능한 환경들 중 하나의 예를 설명하는 것일 뿐, 본 실시예들에 적용 가능한 환경이 도 1의 네트워크 환경으로 한정되는 것은 아니다.1 is a diagram illustrating an example of a network environment according to an embodiment of the present invention. The network environment of FIG. 1 shows an example including a plurality of
복수의 전자 기기들(110, 120, 130, 140)은 컴퓨터 장치로 구현되는 고정형 단말이거나 이동형 단말일 수 있다. 복수의 전자 기기들(110, 120, 130, 140)의 예를 들면, 스마트폰(smart phone), 휴대폰, 내비게이션, 컴퓨터, 노트북, 디지털방송용 단말, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 태블릿 PC 등이 있다. 일례로 도 1에서는 전자 기기(110)의 예로 스마트폰의 형상을 나타내고 있으나, 본 발명의 실시예들에서 전자 기기(110)는 실질적으로 무선 또는 유선 통신 방식을 이용하여 네트워크(170)를 통해 다른 전자 기기들(120, 130, 140) 및/또는 서버(150, 160)와 통신할 수 있는 다양한 물리적인 컴퓨터 장치들 중 하나를 의미할 수 있다.The plurality of
통신 방식은 제한되지 않으며, 네트워크(170)가 포함할 수 있는 통신망(일례로, 이동통신망, 유선 인터넷, 무선 인터넷, 방송망)을 활용하는 통신 방식뿐만 아니라 기기들간의 근거리 무선 통신 역시 포함될 수 있다. 예를 들어, 네트워크(170)는, PAN(personal area network), LAN(local area network), CAN(campus area network), MAN(metropolitan area network), WAN(wide area network), BBN(broadband network), 인터넷 등의 네트워크 중 하나 이상의 임의의 네트워크를 포함할 수 있다. 또한, 네트워크(170)는 버스 네트워크, 스타 네트워크, 링 네트워크, 메쉬 네트워크, 스타-버스 네트워크, 트리 또는 계층적(hierarchical) 네트워크 등을 포함하는 네트워크 토폴로지 중 임의의 하나 이상을 포함할 수 있으나, 이에 제한되지 않는다.The communication method is not limited, and short-distance wireless communication between devices as well as a communication method utilizing a communication network (eg, a mobile communication network, a wired Internet, a wireless Internet, and a broadcasting network) that the
서버(150, 160) 각각은 복수의 전자 기기들(110, 120, 130, 140)과 네트워크(170)를 통해 통신하여 명령, 코드, 파일, 콘텐츠, 서비스 등을 제공하는 컴퓨터 장치 또는 복수의 컴퓨터 장치들로 구현될 수 있다. 예를 들어, 서버(150)는 네트워크(170)를 통해 접속한 복수의 전자 기기들(110, 120, 130, 140)로 서비스(일례로, 대화 봇 서비스)를 제공하는 시스템일 수 있다.Each of the
도 2는 본 발명의 일실시예에 따른 컴퓨터 장치의 예를 도시한 블록도이다. 앞서 설명한 복수의 전자 기기들(110, 120, 130, 140) 각각이나 서버들(150, 160) 각각은 도 2를 통해 도시된 컴퓨터 장치(200)에 의해 구현될 수 있다. 예를 들어, 본 발명의 실시예들에 따른 개방형 도메인 대화 생성 시스템은 도 1을 통해 도시된 컴퓨터 장치(100)에 의해 구현될 수 있다.2 is a block diagram illustrating an example of a computer device according to one embodiment of the present invention. Each of the plurality of
이러한 컴퓨터 장치(200)는 도 2에 도시된 바와 같이, 메모리(210), 프로세서(220), 통신 인터페이스(230) 그리고 입출력 인터페이스(240)를 포함할 수 있다. 메모리(210)는 컴퓨터에서 판독 가능한 기록매체로서, RAM(random access memory), ROM(read only memory) 및 디스크 드라이브와 같은 비소멸성 대용량 기록장치(permanent mass storage device)를 포함할 수 있다. 여기서 ROM과 디스크 드라이브와 같은 비소멸성 대용량 기록장치는 메모리(210)와는 구분되는 별도의 영구 저장 장치로서 컴퓨터 장치(200)에 포함될 수도 있다. 또한, 메모리(210)에는 운영체제와 적어도 하나의 프로그램 코드가 저장될 수 있다. 이러한 소프트웨어 구성요소들은 메모리(210)와는 별도의 컴퓨터에서 판독 가능한 기록매체로부터 메모리(210)로 로딩될 수 있다. 이러한 별도의 컴퓨터에서 판독 가능한 기록매체는 플로피 드라이브, 디스크, 테이프, DVD/CD-ROM 드라이브, 메모리 카드 등의 컴퓨터에서 판독 가능한 기록매체를 포함할 수 있다. 다른 실시예에서 소프트웨어 구성요소들은 컴퓨터에서 판독 가능한 기록매체가 아닌 통신 인터페이스(230)를 통해 메모리(210)에 로딩될 수도 있다. 예를 들어, 소프트웨어 구성요소들은 네트워크(170)를 통해 수신되는 파일들에 의해 설치되는 컴퓨터 프로그램에 기반하여 컴퓨터 장치(200)의 메모리(210)에 로딩될 수 있다.As shown in FIG. 2 , the
프로세서(220)는 기본적인 산술, 로직 및 입출력 연산을 수행함으로써, 컴퓨터 프로그램의 명령을 처리하도록 구성될 수 있다. 명령은 메모리(210) 또는 통신 인터페이스(230)에 의해 프로세서(220)로 제공될 수 있다. 예를 들어 프로세서(220)는 메모리(210)와 같은 기록 장치에 저장된 프로그램 코드에 따라 수신되는 명령을 실행하도록 구성될 수 있다.The
통신 인터페이스(230)는 네트워크(170)를 통해 컴퓨터 장치(200)가 다른 장치(일례로, 앞서 설명한 저장 장치들)와 서로 통신하기 위한 기능을 제공할 수 있다. 일례로, 컴퓨터 장치(200)의 프로세서(220)가 메모리(210)와 같은 기록 장치에 저장된 프로그램 코드에 따라 생성한 요청이나 명령, 데이터, 파일 등이 통신 인터페이스(230)의 제어에 따라 네트워크(170)를 통해 다른 장치들로 전달될 수 있다. 역으로, 다른 장치로부터의 신호나 명령, 데이터, 파일 등이 네트워크(170)를 거쳐 컴퓨터 장치(200)의 통신 인터페이스(230)를 통해 컴퓨터 장치(200)로 수신될 수 있다. 통신 인터페이스(230)를 통해 수신된 신호나 명령, 데이터 등은 프로세서(220)나 메모리(210)로 전달될 수 있고, 파일 등은 컴퓨터 장치(200)가 더 포함할 수 있는 저장 매체(상술한 영구 저장 장치)로 저장될 수 있다.The
입출력 인터페이스(240)는 입출력 장치(250)와의 인터페이스를 위한 수단일 수 있다. 예를 들어, 입력 장치는 마이크, 키보드 또는 마우스 등의 장치를, 그리고 출력 장치는 디스플레이, 스피커와 같은 장치를 포함할 수 있다. 다른 예로 입출력 인터페이스(240)는 터치스크린과 같이 입력과 출력을 위한 기능이 하나로 통합된 장치와의 인터페이스를 위한 수단일 수도 있다. 입출력 장치(250)는 컴퓨터 장치(200)와 하나의 장치로 구성될 수도 있다.The input/
또한, 다른 실시예들에서 컴퓨터 장치(200)는 도 2의 구성요소들보다 더 적은 혹은 더 많은 구성요소들을 포함할 수도 있다. 그러나, 대부분의 종래기술적 구성요소들을 명확하게 도시할 필요성은 없다. 예를 들어, 컴퓨터 장치(200)는 상술한 입출력 장치(250) 중 적어도 일부를 포함하도록 구현되거나 또는 트랜시버(transceiver), 데이터베이스 등과 같은 다른 구성요소들을 더 포함할 수도 있다.Also, in other embodiments,
이하에서는 언어 모델을 이용하여 개방형 도메인 대화 모델을 구축하는 방법 및 장치의 구체적인 실시예를 설명하기로 한다.Hereinafter, specific embodiments of a method and apparatus for constructing an open domain dialogue model using a language model will be described.
본 발명에서 사용되는 대규모 언어 모델은 방대한 데이터로 학습된 언어 모델로서 퓨샷 샘플(few-shot sample)만 주어지면 해당 태스크를 적절히 수행할 수 있는 자연어 생성 모델을 의미한다.The large-scale language model used in the present invention is a language model learned from massive data and refers to a natural language generation model that can appropriately perform a corresponding task given only a few-shot samples.
다시 말해, 대규모 언어 모델은 오토리그레시브(autoregressive) 모델로서 퓨샷 학습 등과 같은 방식을 이용하여 파인튜닝(fine-tuning) 없이 추론이 가능한 언어 모델을 지칭할 수 있으며, 기존의 일반 언어 모델에 비해 10배 이상 많은 매개 변수(예를 들어, 1000억 개 이상의 매개 변수 등)를 가질 수 있다. 예를 들어, GPT-3(Generative Pre-trained Transformer 3)이나 HyperClova와 같은 대규모 언어 모델은 자연스러운 프롬프트(prompt)를 통해 제어할 수 있는 우수한 퓨샷 학습기로서 프롬프트를 통해 소량의 데이터만으로 패턴을 이해하여 NLP 문제를 해결할 수 있는 능력의 인컨텍스트 학습(in-context learning)이 가능하다.In other words, a large-scale language model is an autoregressive model, which can refer to a language model that can be inferred without fine-tuning using a method such as one-shot learning. You can have more than twice as many parameters (eg, more than 100 billion parameters, etc.). For example, large-scale language models such as Generative Pre-trained Transformer 3 (GPT-3) or HyperClova are good short-shot learners that can be controlled through natural prompts, allowing them to understand patterns with only a small amount of data through NLP. In-context learning of the ability to solve problems is possible.
개방형 도메인 대화를 다루기 위해 대규모의 사전 학습된 언어 모델이 활용되고 있다.Large pretrained language models are being utilized to handle open domain conversations.
주로 대화 행동을 모델링하기 위해 대규모 소셜 댓글 체인 데이터에 대한 모델을 사전 학습한 후 사람 참여와 인간성을 개선하기 위해 다양한 타겟 데이터셋을 파인튜닝한다. 사람 간 대화에서 독성 및 편향을 포함한 모델의 원치 않는 행동을 피하기 위해 사전 정의된 기준에 의한 자동 필터링을 사용하여 학습 데이터의 일부를 제외시킬 수 있다.After pre-training a model on large-scale social comment chain data to primarily model conversational behavior, we fine-tune a variety of target datasets to improve human engagement and humanity. To avoid unwanted behavior of the model including toxicity and bias in human-to-human conversations, automatic filtering by predefined criteria can be used to exclude parts of the training data.
합성 대화 생성 대화 수집 비용을 줄이기 위해 합성 대화를 생성하는 많은 접근 방식이 있으며, 이들은 일반적으로 과제 지향 대화(task-oriented dialogue)에서 특정 시나리오를 시뮬레이션하기 위해 과제 스키마, 규칙 및 템플릿을 정의한다. 그러나, 보이지 않는 타겟 도메인을 이전하려면 소스 도메인의 학습 데이터가 필요하다.Synthetic Dialogue Creation There are many approaches to synthetic dialog creation to reduce the cost of dialog aggregation, and they typically define task schemas, rules, and templates to simulate specific scenarios in task-oriented dialogue. However, to transfer an invisible target domain, training data from the source domain is required.
과제 지향 대화 시스템에서 시스템 측은 특정 도메인의 명시적 지식 기반을 활용하는 기능적 역할을 수행한다. 예를 들어, 에이전트(agent)는 레스토랑이나 호텔과 같은 다양한 도메인에서 예약 도우미 또는 정보 제공자 역할을 한다. 각 대화 에이전트에 명시적 페르소나(persona)를 할당하여 에이전트가 개방형 도메인 대화 환경에서 더 구체적이고 일관된 응답을 하도록 촉진할 수 있다. 그러나, 모든 대화 세션에서 주어진 페르소나를 기반으로 하는 것에 불과하고, 더욱이 몇 개의 자연어 문장에 의해 주어진 페르소나는 실제 시나리오에서 특정한 역할을 나타내기에 충분하지 않다.In a task-oriented dialog system, the system side plays a functional role that utilizes the explicit knowledge base of a particular domain. For example, agents act as reservation helpers or information providers in various domains such as restaurants and hotels. Each conversational agent can be assigned an explicit persona to promote more specific and consistent responses in an open domain conversational environment. However, it is only based on the persona given in every conversation session, and moreover, the persona given by a few natural language sentences is not sufficient to represent a specific role in a real scenario.
챗봇과 같은 대화 시스템은 능동적으로 대화에 참여하는 것 외에 목표나 과제가 명시되어 있지 않더라도 특정 유형의 발언 허용 여부에 대한 시스템 정책을 가질 수 있다.Conversational systems, such as chatbots, may have system policies on whether or not to allow certain types of speech, even if no goals or tasks are specified other than actively participating in the conversation.
본 실시예에서는 역할이 지정된 개방형 도메인 대화 모델을 구축하는 것으로, 시스템이 특정 역할에 일관성을 유지하면서 개방형 도메인 주제에 대해 인간과 자연스럽게 대화할 수 있는 대화 모델을 구축할 수 있다.In this embodiment, by building an open domain dialogue model in which roles are assigned, a dialogue model in which a system can naturally communicate with a human on an open domain topic while maintaining consistency in a specific role can be built.
이를 위해, 페르소나, 스타일, 안전, 시스템 정책의 특정 조건이 충족되어야 하며, 데이터 확장이 가능한 프레임워크를 제공할 수 있다.To this end, certain conditions of persona, style, safety, and system policies must be met, and a framework capable of data extensibility can be provided.
본 실시예에서는 역할을 만족시키는 개방형 도메인 대화를 위해 확장 가능한 감독 데이터셋(supervisory dataset)을 만들기 위한 사람-AI 협업 데이터 구성 방법을 제공할 수 있다. 특히, 컨텍스트 퓨샷 학습 방식으로 사용자와 시스템 간의 전체 대화 세션을 생성하기 위해 대규모 언어 모델을 활용할 수 있다.In this embodiment, it is possible to provide a human-AI collaborative data construction method for creating an extensible supervisory dataset for an open domain conversation that satisfies a role. In particular, a large-scale language model can be leveraged to create an entire conversational session between a user and a system with a contextual snapshot learning approach.
도 3은 본 발명의 일 실시예에 있어서 역할 지정 개방형 도메인 대화 모델을 구축하기 위한 프레임워크를 도시한 것이다.3 illustrates a framework for building a role-specified open domain dialog model in an embodiment of the present invention.
도 3을 참조하면, 역할 지정 개방형 도메인 대화 모델을 구축하기 위한 감독 데이터를 수집하는 프레임워크를 나타내고 있다.Referring to FIG. 3 , a framework for collecting supervision data for constructing a role-specified open domain dialogue model is shown.
도 3을 참조하면, (1) 챗봇 개발자는 원하는 챗봇의 역할 사양과 몇 가지 대화 예시를 제공한다.Referring to FIG. 3 , (1) a chatbot developer provides role specifications of a desired chatbot and several examples of conversations.
(2) 대규모 언어 모델은 전체 대화 데이터셋을 생성하고 챗봇 개발자 내지 크라우드 작업자는 대화에 포함된 발언을 필터링한다.(2) The large-scale language model creates the entire conversation dataset, and chatbot developers or crowd workers filter the utterances included in the conversation.
(3) 챗봇 에이전트에 해당되는 대화 모델은 대화 데이터셋에 대한 지도 학습(supervised learning)으로 학습된다.(3) The conversation model corresponding to the chatbot agent is learned through supervised learning on the conversation dataset.
(4) 챗봇 개발자 내지 크라우드 작업자는 챗봇과 일대일 채팅을 하면서 챗봇의 발언에 대한 추가 피드백을 제공할 수 있다.(4) A chatbot developer or crowd worker can provide additional feedback on the chatbot's remarks while having a one-on-one chat with the chatbot.
프레임워크에 대한 입력은 챗봇 개발자로부터 지정된 역할 사양으로, 시스템에 대한 대화 상호 작용의 제약 조건을 정의한다. 특정 조건과 상호 작용하기 위한 대화 시스템이 없고 공개 대화 데이터가 부족하기 때문에 해당 사양에 대한 사람-봇 대화 데이터셋을 사용하지 못할 수 있다고 가정한다. 개방형 도메인 대화 특성 상 대화의 범위가 매우 광범위하고 다양하기 때문에 모든 대화 사례를 수작업으로 작성하는 것 또한 불가능하다.Inputs to the framework are role specifications specified by chatbot developers, which define the constraints of conversational interactions on the system. We assume that the human-bot conversation dataset for that specification may not be available due to the lack of a conversation system to interact with the specific condition and the lack of public conversation data. Because the range of conversations is very wide and diverse due to the nature of open domain conversations, it is also impossible to write all conversation cases manually.
따라서, 대규모 언어 모델의 컨텍스트 내 퓨샷 학습을 활용하여 최소한의 대화 사례를 사용하여 전체 대화 데이터셋을 구성하는 데 초점을 맞춘다.Therefore, we focus on constructing an entire conversational dataset using minimal conversational examples by leveraging raw shot learning in the context of a large-scale language model.
도 4는 본 발명의 일실시예에 따른 컴퓨터 장치가 수행할 수 있는 개방형 도메인 대화 생성 방법의 예를 도시한 흐름도이다.4 is a flowchart illustrating an example of a method for creating an open domain conversation performed by a computer device according to an embodiment of the present invention.
본 실시예에 따른 개방형 도메인 대화 생성 방법은 앞서 설명한 컴퓨터 장치(100)에 의해 수행될 수 있다. 이 경우, 컴퓨터 장치(100)의 프로세서(120)는 메모리(110)가 포함하는 운영체제의 코드나 적어도 하나의 프로그램의 코드에 따른 제어 명령(instruction)을 실행하도록 구현될 수 있다. 여기서, 프로세서(120)는 컴퓨터 장치(100)에 저장된 코드가 제공하는 제어 명령에 따라 컴퓨터 장치(100)가 도 4의 개방형 도메인 대화 생성 방법이 포함하는 단계들(S410 내지 S430)을 수행하도록 컴퓨터 장치(100)를 제어할 수 있다.The open domain conversation creation method according to the present embodiment may be performed by the computer device 100 described above. In this case, the
도 4를 참조하면, 단계(S410)에서 프로세서(120)는 언어 모델의 입력문이 되는 프롬프트를 이용하여 전체 대화 데이터셋을 생성할 수 있다. 특히, 프로세서(120)는 챗봇 속성에 대한 간략한 설명과 챗봇과 사람이 주고받은 대화 예시가 포함된 프롬프트를 언어 모델에 입력하여 해당 언어 모델을 통해 특정 성격의 대화 데이터를 생성할 수 있다.Referring to FIG. 4 , in step S410, the
프로세서(120)는 언어 모델의 입력문이 되는 프롬프트에 주어진 규격을 만족하는 몇 가지 대화 예시, 및 언어 모델에 입력을 구축하기 위한 적절한 시스템 설명을 첨부할 수 있다.The
도 5는 본 발명의 일실시예에 있어서 데이터 구성 과정을 설명하기 위한 예시 도면이다.5 is an exemplary diagram for explaining a data configuration process according to an embodiment of the present invention.
도 5에서 (a)는 입력 프롬프트(500)의 예시를 나타내고 있다. 프롬프트(500)는 챗봇 속성에 대한 간략한 설명(510)과 챗봇과 사람이 주고받은 대화 예시(520)로 구성될 수 있다.In FIG. 5 (a) shows an example of the
프로세서(120)는 프롬프트(500)를 언어 모델에 입력하여 언어 모델로부터 자연어 형태의 대화 데이터를 생성할 수 있다. 다시 말해, 프로세서(120)는 프롬프트(500) 입력문을 언어 모델에 입력한 후 언어 모델의 생성 내지는 완성 기능을 통한 언어 생성 결과로서 대화 데이터를 얻을 수 있다. 프로세서(120)는 프롬프트(500)를 언어 모델로 입력하여 언어 모델을 통해 프롬프트(500)에 포함된 대화 예시의 자연어 패턴을 분석하여 해당 패턴을 가지는 새로운 대화 데이터를 얻을 수 있다.The
즉, 프로세서(120)는 언어 모델을 통해 프롬프트(500)의 패턴으로부터 지정된 시스템과 사용자 역할의 전체 대화 세션을 모두 제공할 수 있다. 도 5에서 (b)는 언어 모델을 거쳐 (a) 프롬프트의 패턴으로 생성된 신규 대화 예시를 나타내고 있다.That is, the
따라서, 프로세서(120)는 언어 모델을 이용하여 지정된 역할에 일관성을 유지하면서 개방형 도메인 주제에 대해 자연스러운 패턴의 대화 데이터를 생성할 수 있다. 언어 모델을 통해 생성된 대화 데이터는 개방형 도메인 대화 모델의 학습을 위한 데이터로 활용될 수 있다.Accordingly, the
다시 도 4를 참조하면, 단계(S420)에서 프로세서(120)는 챗봇 개발자(또는 크라우드 작업자)의 주석(annotation)을 통해 단계(S410)에서 생성된 대화 데이터를 필터링할 수 있다. 사양에 대한 세부 사항을 모두 프롬프트에 포함시켜 데이터 생성에 반영시키는 것은 어렵다. 따라서, 언어 모델을 통해 생성된 대화 데이터에 대해 사람에 의한 주석을 사용하여 필터링할 수 있다. 프로세서(120)는 챗봇 개발자에 해당되는 주석자를 대상으로 언어 모델을 통해 생성된 각 대화 세션을 제공할 수 있고, 대화 범주를 벗어난 문제 발언에 주석을 이용한 레이블을 지정하도록 요청할 수 있다.Referring back to FIG. 4 , in step S420, the
도 6은 언어 모델에 의해 생성된 대화 데이터에 대한 필터링 예시를 나타내고 있다. 챗봇 개발자는 언어 모델을 통해 생성된 대화 데이터의 챗봇 발언 중 문제 발언으로 평가되는 일부 발언에 대해 주석을 통해 별도의 레이블을 지정할 수 있다. 이때, 프로세서(120)는 개방형 도메인 대화 모델의 학습 데이터에 상기한 필터링 결과를 반영함에 있어, 주석이 지정된 문제 발언을 네거티브 예시(601)로 사용하는 반면, 네거티브 예시(601)에 해당되는 문제 발언을 기준으로 문제 발언 이전의 적어도 하나의 발언을 포지티브 예시(602)로 사용할 수 있다.6 shows an example of filtering conversation data generated by a language model. Chatbot developers can specify separate labels through annotations for some of the chatbot utterances that are evaluated as problem utterances in the conversation data generated through the language model. At this time, the
언어 모델에 의해 생성된 대화 데이터에서 챗봇 개발자에 의해 주석이 지정된 문제 발언 이후의 컨텍스트는 이미 손상된 내용을 포함하고 있을 가능성이 크기 때문에 개방형 도메인 대화 모델의 학습에 사용되지 않도록 제외시킨다(drop).In the dialog data generated by the language model, the context after the problem statement annotated by the chatbot developer is highly likely to contain damaged content, so it is dropped from being used for learning the open domain dialog model.
다시 도 4를 참조하면, 단계(S430)에서 프로세서(120)는 챗봇 개발자(또는 크라우드 작업자)가 챗봇과의 대화에 직접 참여하는 방식으로 챗봇 개발자와 챗봇 간에 주고받는 대화 데이터를 개방형 도메인 대화 모델의 학습 데이터로 수집할 수 있다. 프로세서(120)는 데이터셋을 구축하는 단계에서 개방형 도메인 대화 모델을 사람과의 다중 턴 대화에 참여시킬 수 있다. 챗봇 개발자는 시스템 사용자로서 챗봇과 차례로 대화를 주고받을 수 있으며, 대화를 진행하는 과정에서 챗봇의 응답으로 제공되는 발언 중 적절하지 않은 문제 발언의 경우 수정할 수 있다.Referring back to FIG. 4, in step S430, the
일례로, 프로세서(120)는 챗봇 개발자와 챗봇의 대화 중 챗봇의 문제 발언을 챗봇 개발자가 직접 수정할 수 있는 인터페이스를 제공할 수 있다.For example, the
다른 예로, 프로세서(120)는 챗봇 개발자와 챗봇의 대화 중 챗봇의 문제 발언에 대해 챗봇 개발자의 수정 요청이 수신되는 경우 언어 모델을 호출하여 언어 모델을 통해 문제 발언을 수정할 수 있는 대체 발언을 생성할 수 있다. 프로세서(120)는 챗봇 개발자의 요청에 따라 챗봇의 문제 발언을 대체 발언으로 수정한 후 다음 대화를 진행할 수 있으며, 챗봇 개발자로부터 다시 수정 요청이 수신되는 경우 대체 발언을 다시 생성할 수 있다.As another example, if the
도 7은 본 발명의 일실시예에 있어서 챗봇과 사람 간의 대화 데이터를 수집하는 과정을 설명하기 위한 예시 도면이다.7 is an exemplary diagram for explaining a process of collecting conversation data between a chatbot and a person in one embodiment of the present invention.
도 7은 웹 기반의 대화 수집 인터페이스 화면(700)을 나타내고 있다.7 shows a web-based conversation
도 7에 도시한 바와 같이, 프로세서(120)는 개방형 도메인 대화 모델의 학습 데이터를 수집하기 위해 대화 수집 인터페이스 화면(700)을 제공할 수 있다. 챗봇 개발자는 대화 수집 인터페이스 화면(700)을 통해 챗봇과 차례로 대화를 주고받을 수 있다.As shown in FIG. 7 , the
대화 수집 인터페이스 화면(700)에는 챗봇과의 대화 중 대화 범주를 벗어난 문제 발언에 대해 발언 수정을 요청하기 위한 '수정' 버튼(701)이 포함될 수 있다. 챗봇 개발자는 챗봇의 발언이 챗봇 사양이나 역할과 일치하지 않는 경우 문제 유형을 선택하고 '수정' 버튼(701)을 입력할 수 있다.The conversation
프로세서(120)는 챗봇 개발자가 챗봇의 발언 중 문제 발언에 대해 '수정' 버튼(701)을 선택하는 경우 언어 모델을 호출하여 언어 모델을 통해 문제 발언을 수정할 수 있는 대체 발언을 생성할 수 있다. 챗봇 개발자는 대체 발언이 적절하면 다음 대화를 진행하고 대체 발언이 적절하지 않으면 '수정' 버튼(701)을 통해 발언 수정을 반복해서 요청할 수 있다.When the chatbot developer selects the 'modify'
대화 수집 인터페이스 화면(700)에는 챗봇 개발자와 챗봇 간의 대화 데이터를 저장하기 위한 '대화 저장' 버튼(702)이 더 포함될 수 있다. 챗봇 개발자는 대화 범주를 벗어난 발언이 없거나 모두 수정된 상태로 대화가 종료된 경우 '대화 저장' 버튼(702)을 통해 전체 대화 세션을 저장할 수 있다.The conversation
프로세서(120)는 일부 발언의 수정과 대화가 종료되면 챗봇 개발자와 챗봇 간에 주고받는 전체 대화 세션을 개방형 도메인 대화 모델의 학습 데이터로 사용할 수 있다. 이때, 대화 중 대체 발언으로 수정된 발언은 포지티브 예시로 사용될 수 있고, 수정되기 이전 발언, 즉 '수정' 버튼(701)으로 수정 요청한 문제 발언은 네거티브 예시로 사용할 수 있다.The
더 나아가, 프로세서(120)는 챗봇의 문제 발언을 수정하는 과정을 챗봇에 대한 평가 지표로 활용할 수 있다. '수정' 버튼(701)의 입력은 부적절한 발언이 반환되었음을 의미하는 것이므로 시스템 오류율, 즉 전체 응답 중 수정된 응답 비율에 사용될 수 있다.Furthermore, the
역할이 지정된 개방형 도메인 대화 모델의 아키텍처를 설명하면 다음과 같다.The architecture of the role-assigned open domain dialog model is as follows.
앞서 생성된 대화 데이터셋을 사용하여 역할 사양을 충족하는 대화 시스템을 모델링하기 위해 다양한 아키텍처를 적용할 수 있다.Various architectures can be applied to model a dialog system that satisfies the role specification using the previously created dialog dataset.
본 발명에 따른 개방형 도메인 대화 모델은 범주를 벗어난 발언을 감지하는 모델(Out-of-Bounds Detection Model)을 포함할 수 있다.The open domain conversation model according to the present invention may include an Out-of-Bounds Detection Model.
챗봇의 역할 사양에 따라 발언을 제한하는 가장 간단한 방법은 범주 경계를 벗어난 발언을 감지하고 폐기하는 것이다. 일례로, 대화 데이터셋에서 포지티브 예시와 네거티브 예시를 분류하기 위해 BERT(Bidirectional Encoder Representations form Transformer) 기반 이진 분류기(binary classifier)를 사용할 수 있다. 분류기는 단독으로 대화를 수행할 수 없기 때문에 2단계 모델(two-stage model)을 가정하고, 응답 예측 모델은 분류기에 의해 검열되는 응답을 반환한다. 범주를 벗어난 발언이 감지되면 유사한 다른 주제에 대해 사전 정의된 질문 중 하나를 선택하여 반환할 수 있으며, 이때 언어 모델을 사용하여 PPL(perplexity)이 가장 낮은 질문을 선택할 수 있다.The simplest way to limit utterances based on a chatbot's role specifications is to detect and discard utterances that fall outside of category boundaries. As an example, a BERT (Bidirectional Encoder Representations form Transformer) based binary classifier can be used to classify positive and negative examples in a conversation dataset. Since the classifier cannot carry out a conversation alone, a two-stage model is assumed, and the response prediction model returns a response that is censored by the classifier. When out-of-category utterances are detected, one of the predefined questions on other, similar topics can be selected and returned, using the language model to select the question with the lowest perplexity (PPL).
본 발명에 따른 개방형 도메인 대화 모델은 응답 선택 모델(Response Selection Model)을 포함할 수 있다.An open domain dialog model according to the present invention may include a response selection model.
챗봇의 역할 사양에 따라 발언을 제한하는 방법 중 하나는 응답 선택 모델에 대한 응답 후보를 미리 필터링하는 것이다. 일례로, 응답 선택 모델로 검색 후 리랭킹하는(retrieve-then-rerank) 2단계 접근법을 사용할 수 있다. 폴리-인코더 아키텍처의 검색기(retriever)는 응답 후보에서 상위 k개의 응답을 찾아낸 다음 교차 인코더 아키텍처의 리랭커(reranker)에 의해 상위 k개의 응답 순위를 재조정할 수 있다.One of the ways to restrict speech according to the chatbot's role specification is to pre-filter the response candidates for the response selection model. As an example, we can use a two-step approach to retrieve-then-rerank with a response selection model. The retriever of the poly-encoder architecture finds the top k responses from the response candidates and then reranks the top k responses by the reranker of the cross-encoder architecture.
응답 후보에 대한 필터링은 한계가 있기 때문에 응답 후보와 함께 답변할 수 없는 컨텍스트를 판단하는 것이 중요하다. 대답할 수 없는 컨텍스트를 예측하는 효과적인 방법 중 하나는 모델의 불확실성을 활용하는 것으로, 일례로 임계값을 사용한 유사 접근 방식을 사용할 수 있다. 검색된 모든 응답 점수가 특정 임계값보다 낮으면 응답할 수 없는 컨텍스트로 예측할 수 있다. 다른 예는 언어 모델의 PPL을 이용한 또 다른 접근 방식으로, 대화 컨텍스트와 검색된 응답을 연결하여 언어 모델에 입력하고 응답의 PPL을 측정한 후 임계값을 기준으로 응답을 최종 결정할 수 있다.Since the filtering of response candidates has limitations, it is important to determine the context in which an answer cannot be answered together with the response candidates. One effective way to predict unanswerable contexts is to take advantage of the model's uncertainty, for example a similar approach using thresholds. If all retrieved response scores are lower than a certain threshold, we can predict an unresponsive context. Another example is another approach using the PPL of the language model, which connects the dialog context and the searched response to input into the language model, measures the PPL of the response, and finally determines the response based on a threshold value.
본 발명에 따른 개방형 도메인 대화 모델은 응답 생성 모델(Response Generation Model)을 포함할 수 있다.An open domain dialog model according to the present invention may include a response generation model.
타겟 데이터에 대한 언어 모델 파인튜닝은 태스크의 특성을 학습하는데 효과적이다. 파인튜닝된 언어 모델을 최대 우도 추정(Maximum Likelihood Estimation)을 사용한 응답 생성 모델로 고려할 수 있다. 반면에, 비우도(unlikelihood) 학습은 생성 모델의 바람직하지 않은 특징(예를 들어, 토큰 반복, 논리적 불일치 등)을 완화하는데 효과적이다.Language model fine-tuning for target data is effective in learning the characteristics of tasks. The fine-tuned language model can be considered as a response generation model using Maximum Likelihood Estimation. On the other hand, unlikelihood learning is effective in mitigating undesirable characteristics of generative models (eg token repetitions, logical inconsistencies, etc.).
본 실시예에서는 챗봇이 바람직한 특징의 발언을 생성하도록 최대 우도 추정을 데이터셋의 포지티브 예시에 적용하는 반면, 챗봇이 바람직하지 않은 특징의 발언을 생성하지 않도록 비우도 학습을 네거티브 예시에 적용할 수 있다. 상기한 두 가지 유형의 학습은 동시에 수행될 수 있다.In this embodiment, maximum likelihood estimation is applied to the positive examples in the dataset so that the chatbot generates utterances of desirable characteristics, while non-likelihood learning can be applied to negative examples so that the chatbot does not generate utterances of undesirable characteristics. . The above two types of learning can be performed simultaneously.
본 발명에 따른 개방형 도메인 대화 모델은 검색-실패-생성 모델(Retrieve-fail-Generate Model)을 포함할 수 있다.The open domain dialog model according to the present invention may include a retrieve-fail-generate model.
개방형 도메인 대화 모델을 구축함에 있어 상기한 응답 선택 모델과 응답 생성 모델이 결합된 검색-실패-생성 파이프라인을 구축할 수 있다.In constructing an open domain dialogue model, a search-failure-generation pipeline combining the above-described response selection model and response generation model may be constructed.
도 8은 본 발명의 일실시예에 있어서 검색-실패-생성 모델 구조를 도시한 것이다.8 illustrates a search-failure-generation model structure in one embodiment of the present invention.
도 8을 참조하면, 검색-실패-생성 모델(800)은 검색 후 리랭킹하는(retrieve-then-rerank) 2단계 접근법을 사용하는 응답 선택 모델(810), 및 적절한 발언을 생성하면서 동시에 적절하지 않은 발언을 생성하지 않도록 학습된 응답 생성 모델(820)로 구성될 수 있다.Referring to FIG. 8 , a search-failure-generate
이때, 응답 선택 모델(810)은 적절한 응답을 선택하려고 시도하고, 응답 불가능한 컨텍스트 예측 모델이 선택된 응답을 무시하면 응답 생성 모델(820)은 주어진 컨텍스트에 대한 응답을 반환한다. 응답 후보를 관리하여 응답 선택 모델(810)을 제어하기가 비교적 쉽다. 따라서, 응답 선택 모형(810)은 대부분의 응답을 담당하며, 응답 생성 모델(820)은 응답 선택이 실패할 때만 사용된다.At this time, the
본 실시예들은 언어 모델의 컨텍스트 퓨샷 학습을 활용하는 데이터 수집 프레임워크를 통해 역할을 만족시키는 대화 데이터셋을 만들 수 있고, 주석을 이용한 데이터 필터링과 사람과 챗봇 간의 직접 대화를 통해 대화 데이터셋을 확장해 나갈 수 있다. 이러한 대화 데이터셋을 학습 데이터로 사용하여 역할 사양을 충족하는 대화 시스템을 모델링할 수 있다.The present embodiments can create a conversation dataset that satisfies the role through a data collection framework that utilizes contextual snapshot learning of the language model, and expands the conversation dataset through data filtering using annotations and direct conversation between humans and chatbots. can do it We can use these dialog datasets as training data to model dialog systems that meet role specifications.
이처럼 본 발명의 실시예들에 따르면, 사람과 자연스럽게 대화하면서 일관된 역할을 유지할 수 있는 개방형 도메인 대화 모델을 구축함으로써 응답 품질이 향상된 대화 시스템을 제공할 수 있다.As described above, according to embodiments of the present invention, a dialog system with improved response quality can be provided by establishing an open domain dialog model capable of maintaining a consistent role while having a natural conversation with a person.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 어플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The devices described above may be implemented as hardware components, software components, and/or a combination of hardware components and software components. For example, devices and components described in the embodiments include a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate array (FPGA), and a programmable PLU (programmable logic unit). logic unit), microprocessor, or any other device capable of executing and responding to instructions. The processing device may run an operating system (OS) and one or more software applications running on the operating system. A processing device may also access, store, manipulate, process, and generate data in response to execution of software. For convenience of understanding, there are cases in which one processing device is used, but those skilled in the art will understand that the processing device includes a plurality of processing elements and/or a plurality of types of processing elements. It can be seen that it can include. For example, a processing device may include a plurality of processors or a processor and a controller. Other processing configurations are also possible, such as parallel processors.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 컴퓨터 저장 매체 또는 장치에 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.Software may include a computer program, code, instructions, or a combination of one or more of the foregoing, which configures a processing device to operate as desired or processes independently or collectively. You can command the device. The software and/or data may be embodied in any tangible machine, component, physical device, computer storage medium or device to be interpreted by or to provide instructions or data to a processing device. there is. Software may be distributed on networked computer systems and stored or executed in a distributed manner. Software and data may be stored on one or more computer readable media.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 이때, 매체는 컴퓨터로 실행 가능한 프로그램을 계속 저장하거나, 실행 또는 다운로드를 위해 임시 저장하는 것일 수도 있다. 또한, 매체는 단일 또는 수 개의 하드웨어가 결합된 형태의 다양한 기록수단 또는 저장수단일 수 있는데, 어떤 컴퓨터 시스템에 직접 접속되는 매체에 한정되지 않고, 네트워크 상에 분산 존재하는 것일 수도 있다. 매체의 예시로는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등을 포함하여 프로그램 명령어가 저장되도록 구성된 것이 있을 수 있다. 또한, 다른 매체의 예시로, 어플리케이션을 유통하는 앱 스토어나 기타 다양한 소프트웨어를 공급 내지 유통하는 사이트, 서버 등에서 관리하는 기록매체 내지 저장매체도 들 수 있다.The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded on a computer readable medium. In this case, the medium may continuously store a program executable by a computer or temporarily store the program for execution or download. In addition, the medium may be various recording means or storage means in the form of a single or combined hardware, but is not limited to a medium directly connected to a certain computer system, and may be distributed on a network. Examples of the medium include magnetic media such as hard disks, floppy disks and magnetic tapes, optical recording media such as CD-ROM and DVD, magneto-optical media such as floptical disks, and ROM, RAM, flash memory, etc. configured to store program instructions. In addition, examples of other media include recording media or storage media managed by an app store that distributes applications, a site that supplies or distributes various other software, and a server.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.As described above, although the embodiments have been described with limited examples and drawings, those skilled in the art can make various modifications and variations from the above description. For example, the described techniques may be performed in an order different from the method described, and/or components of the described system, structure, device, circuit, etc. may be combined or combined in a different form than the method described, or other components may be used. Or even if it is replaced or substituted by equivalents, appropriate results can be achieved.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents of the claims are within the scope of the following claims.
Claims (13)
상기 컴퓨터 장치는 메모리에 포함된 컴퓨터 판독가능한 명령들을 실행하도록 구성된 적어도 하나의 프로세서를 포함하고,
상기 방법은,
상기 적어도 하나의 프로세서에 의해, 챗봇의 역할 사양(role specification) 및 상기 챗봇과 사람 간의 대화 예시로 언어 모델의 입력문이 되는 프롬프트(prompt)를 구성하는 단계; 및
상기 적어도 하나의 프로세서에 의해, 상기 프롬프트를 상기 언어 모델에 입력하여 상기 언어 모델을 통해 상기 프롬프트에 포함된 역할과 대화 패턴의 새로운 대화 데이터를 생성하는 단계
를 포함하는 방법.In a method executed on a computer device,
The computer device includes at least one processor configured to execute computer readable instructions contained in a memory;
The method,
configuring, by the at least one processor, a prompt that is an input sentence of a language model with a role specification of the chatbot and an example of a conversation between the chatbot and a person; and
generating, by the at least one processor, new dialogue data of roles and dialogue patterns included in the prompt through the language model by inputting the prompt into the language model;
How to include.
상기 방법은,
상기 적어도 하나의 프로세서에 의해, 상기 대화 데이터에 대한 지도 학습(supervised learning)으로 상기 챗봇을 위한 개방형 도메인 대화 모델(Open-Domain Dialogue Model)을 구축하는 단계
를 더 포함하는 방법.According to claim 1,
The method,
Building, by the at least one processor, an open-domain dialogue model for the chatbot by supervised learning on the dialogue data.
How to include more.
상기 방법은,
상기 적어도 하나의 프로세서에 의해, 주석(annotation)을 통해 상기 대화 데이터를 필터링하는 단계
를 더 포함하는 방법.According to claim 1,
The method,
filtering, by the at least one processor, the dialogue data through annotations;
How to include more.
상기 필터링하는 단계는,
상기 대화 데이터에 포함된 상기 챗봇의 발언 중 상기 주석이 지정된 문제 발언을 상기 챗봇을 학습하기 위한 네거티브 예시(negative example)로 분류하는 단계
를 포함하는 방법.According to claim 3,
The filtering step is
Classifying the annotated problem speech among the speech of the chatbot included in the conversation data as a negative example for learning the chatbot.
How to include.
상기 방법은,
상기 적어도 하나의 프로세서에 의해, 상기 챗봇과 사람이 직접 대화하는 인터페이스를 통해 상기 챗봇과 사람 간의 대화 데이터를 상기 챗봇의 학습 데이터로 수집하는 단계
를 더 포함하는 방법.According to claim 1,
The method,
Collecting, by the at least one processor, conversation data between the chatbot and a person as learning data of the chatbot through an interface in which the chatbot and a person directly communicate.
How to include more.
상기 수집하는 단계는,
상기 인터페이스를 통해 제공되는 상기 챗봇의 발언 중 일부 발언에 대해 수정 요청이 수신되는 경우 상기 언어 모델을 통해 대체 발언을 생성하여 상기 일부 발언을 수정하는 단계
를 포함하는 방법.According to claim 5,
The collecting step is
modifying some of the utterances by generating replacement utterances through the language model when a modification request is received for some of the utterances of the chatbot provided through the interface;
How to include.
상기 수집하는 단계는,
수정 요청한 발언을 상기 챗봇을 학습하기 위한 네거티브 예시로 분류하는 단계; 및
상기 대체 발언으로 수정된 발언을 상기 챗봇을 학습하기 위한 포지티브 예시로 분류하는 단계
를 더 포함하는 방법.According to claim 6,
The collecting step is
Classifying the utterance requested for correction as a negative example for learning the chatbot; and
Classifying the utterance modified as the replacement utterance as a positive example for learning the chatbot.
How to include more.
상기 구축하는 단계는,
상기 역할 사양의 범주를 벗어난 발언을 감지하는 모델(Out-of-Bounds Detection Model), 응답 후보를 찾은 후 리랭킹하는(retrieve-then-rerank) 접근법에서 상기 언어 모델의 PPL(perplexity)을 기초로 상기 응답 후보를 필터링하는 응답 선택 모델(Response Selection Model), 및 최대 우도 추정(Maximum Likelihood Estimation)을 데이터셋의 포지티브 예시에 적용하고 비우도(unlikelihood) 학습을 데이터셋의 네거티브 예시에 적용하는 응답 생성 모델(Response Generation Model) 중 적어도 하나를 이용하여 상기 도메인 대화 모델을 구축하는 것
을 특징으로 하는 방법.According to claim 2,
The building step is
Based on the perplexity (PPL) of the language model in an Out-of-Bounds Detection Model (Out-of-Bounds Detection Model) that detects utterances outside the scope of the role specification and a retrieve-then-rerank approach after finding response candidates A response selection model for filtering the response candidates, and response generation in which maximum likelihood estimation is applied to positive examples in the dataset and unlikelihood learning is applied to negative examples in the dataset. Building the domain conversation model using at least one of the models (Response Generation Model)
A method characterized by.
메모리에 포함된 컴퓨터 판독가능한 명령들을 실행하도록 구성된 적어도 하나의 프로세서
를 포함하고,
상기 적어도 하나의 프로세서는,
챗봇의 역할 사양 및 상기 챗봇과 사람 간의 대화 예시로 언어 모델의 입력문이 되는 프롬프트를 구성하고,
상기 프롬프트를 상기 언어 모델에 입력하여 상기 언어 모델을 통해 상기 프롬프트에 포함된 역할과 대화 패턴의 새로운 대화 데이터를 생성하는 것
을 특징으로 하는 컴퓨터 장치.In a computer device,
at least one processor configured to execute computer readable instructions contained in memory;
including,
The at least one processor,
Construct a prompt that is an input sentence of a language model with a role specification of the chatbot and an example of a conversation between the chatbot and a person,
Inputting the prompt to the language model to generate new conversation data of roles and conversation patterns included in the prompt through the language model.
Characterized by a computer device.
상기 적어도 하나의 프로세서는,
상기 대화 데이터에 대한 지도 학습으로 상기 챗봇을 위한 개방형 도메인 대화 모델을 구축하는 것
을 특징으로 하는 컴퓨터 장치.According to claim 10,
The at least one processor,
Building an open domain conversation model for the chatbot by supervised learning on the conversation data
Characterized by a computer device.
상기 적어도 하나의 프로세서는,
주석을 통해 상기 대화 데이터를 필터링하는 것
을 특징으로 하는 컴퓨터 장치.According to claim 10,
The at least one processor,
filtering the conversation data through annotations;
Characterized by a computer device.
상기 적어도 하나의 프로세서는,
상기 챗봇과 사람이 직접 대화하는 인터페이스를 통해 상기 챗봇과 사람 간의 대화 데이터를 상기 챗봇의 학습 데이터로 수집하는 것
을 특징으로 하는 컴퓨터 장치.According to claim 10,
The at least one processor,
Collecting conversation data between the chatbot and a person as learning data of the chatbot through an interface in which the chatbot and a person directly communicate
Characterized by a computer device.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20210157701 | 2021-11-16 | ||
KR1020210157701 | 2021-11-16 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20230071673A true KR20230071673A (en) | 2023-05-23 |
Family
ID=86544650
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020210194421A KR20230071673A (en) | 2021-11-16 | 2021-12-31 | Method, computer device, and computer program for building open-domain dialogue system using language model |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20230071673A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102613754B1 (en) * | 2023-10-31 | 2023-12-15 | 주식회사 로그프레소 | Method for Automating System Operation Based on Language Model |
-
2021
- 2021-12-31 KR KR1020210194421A patent/KR20230071673A/en unknown
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102613754B1 (en) * | 2023-10-31 | 2023-12-15 | 주식회사 로그프레소 | Method for Automating System Operation Based on Language Model |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11651163B2 (en) | Multi-turn dialogue response generation with persona modeling | |
US11062270B2 (en) | Generating enriched action items | |
US10762892B2 (en) | Rapid deployment of dialogue system | |
Ribeiro et al. | Anchors: High-precision model-agnostic explanations | |
US11769492B2 (en) | Voice conversation analysis method and apparatus using artificial intelligence | |
US11003863B2 (en) | Interactive dialog training and communication system using artificial intelligence | |
Sukthankar et al. | Plan, activity, and intent recognition: Theory and practice | |
CN111738016B (en) | Multi-intention recognition method and related equipment | |
US11961509B2 (en) | Training a user-system dialog in a task-oriented dialog system | |
US9984060B2 (en) | Correlating distinct events using linguistic analysis | |
US10521723B2 (en) | Electronic apparatus, method of providing guide and non-transitory computer readable recording medium | |
TW201933267A (en) | Method and apparatus for transferring from robot customer service to human customer service | |
US11705111B2 (en) | Methods and systems for predicting non-default actions against unstructured utterances | |
JP7488871B2 (en) | Dialogue recommendation method, device, electronic device, storage medium, and computer program | |
JP2020024385A (en) | Analysis of conceptual anaphoric instructions in conversational system using hierarchical laminated neural networks | |
US20190228297A1 (en) | Artificial Intelligence Modelling Engine | |
US20130238333A1 (en) | System and Method for Automatically Generating a Dialog Manager | |
US20200257954A1 (en) | Techniques for generating digital personas | |
US20230113524A1 (en) | Reactive voice device management | |
KR20230071673A (en) | Method, computer device, and computer program for building open-domain dialogue system using language model | |
CN110489730A (en) | Text handling method, device, terminal and storage medium | |
US20230169405A1 (en) | Updating training examples for artificial intelligence | |
CN110059164B (en) | Method and system for presenting a user interface of a dialog system | |
Keizer et al. | User simulation in the development of statistical spoken dialogue systems | |
CN110334244B (en) | Data processing method and device and electronic equipment |