레플리
글 수 281


dst_example.png

 

 

 

목적지향 챗봇에서 많이 사용되는 기술로 슬롯 채우기(Slot Filling)가 있습니다. 만약 피자를 주문하는 챗봇이라면 피자종류와 피자개수를 알아야 합니다. 이런 슬롯들이 채워질 때까지 챗봇이 계속 물어봅니다. 예를 들면, 다음과 같습니다.

챗봇 : 안녕하세요, 무엇을 도와드릴까요?
사용자 : 불고기피자 주문할래
챗봇 : 수량을 입력하세요
사용자 : 2판 보내줘
챗봇 : 불고기피자 2판을 주문하셨습니다

또는 슬롯을 한 번에 채울 수도 있습니다.

챗봇 : 안녕하세요, 무엇을 도와드릴까요?
사용자 : 불고기피자 2판 주문할래
챗봇 : 불고기피자 2판을 주문하셨습니다

 

 

 

보통 챗봇빌더는 개체명인식(NER) 같은 방법으로 개체(Entity)를 추출합니다. 그리고 해당 슬롯에 맞는 개체가 나오면 슬롯을 채웁니다. 문제는 단순히 키워드만 비교하고 정확한 의미를 구분하지 않는다는 점입니다. 예를 들어, '불고기피자는 싫어. 딴 거 먹을래'라고 말해도 '불고기피자'가 슬롯에 들어갑니다. 문장의 의미를 이해하지 못하기 때문입니다.

 

이런 단점을 보완하는 방법으로 DST(Dialogue State Tracking)가 있습니다. Slot-Value의 쌍으로 현재 대화 상태를 추적합니다. 사실 슬롯 채우기와 거의 유사합니다. 다만 요즘 DST는 딥러닝으로 Slot-Value의 단어를 직접 생성합니다. 슬롯 채우기와 달리 문장의 의미를 이해하기 때문에 더 정확하게 슬롯의 값을 얻을 수 있습니다. 식당예약을 하는 네이버 AI Call이 DST를 사용했다고 합니다. 최근 발표한 KLUE 벤치마크에서도 DST 데이터셋이 포함되어 있습니다.

 

 

 

< DST 설명글 >
https://gusalsdmlwlq.github.io/%EC%A7%80%EC%8B%9D.../post31/

 

< KLUE-DST >
https://klue-benchmark.com/tasks/73/overview/description

 

< 네이버 SOM-DST 모델 >
https://github.com/clovaai/som-dst

 

List of Articles
제목 글쓴이 날짜 조회 수sort
BERT 톺아보기 깊은바다 2018-12-17 26387
딥러닝을 사용한 챗봇 개발방법 정리 file 깊은바다 2018-02-03 25393
초거대모델의 파인튜닝 방법 - P-tuning과 LoRA file 깊은바다 2022-04-05 11904
글쓰기 보조 서비스 JasperAI, ChatGPT 때문에 어려움 직면 깊은바다 2023-03-01 9692
RAG(Retrieval-Augmented Generation) - LLM의 환각을 줄이는 방법 file 깊은바다 2023-07-04 9278
딥러닝 RNN으로 구현한 챗봇 깊은바다 2017-08-01 8130
문장을 학습하는 딥러닝 RNN의 Seq2Seq 모델 설명 file 깊은바다 2017-09-15 7326
챗봇에 딥러닝 학습을 적용하기 어려운 이유 file 깊은바다 2018-03-23 6635
KoGPT2, KoBERT, KoELECTRA로 만든 심리상담 챗봇 file 깊은바다 2020-08-05 6307
문장을 입력하면 비슷한 짤방을 보여주는 프로젝트 file 깊은바다 2019-01-28 6162
SKT가 공개한 한글 GPT2 - KoGPT2 깊은바다 2020-02-02 5290
챗봇에서 유사한 문장 자동인식 방법 file 깊은바다 2018-04-27 5135
네이버 영화리뷰 감정분석 with Hugging Face BERT file 깊은바다 2019-12-17 4649
사전학습을 통한 구글의 자연어처리 언어 모델 - BERT file 깊은바다 2018-11-03 4294
인라이플의 한글 BERT 대형모델 깊은바다 2020-05-18 4245