본문 바로가기

AI

Chatbot - 검색 기반 모델? 생성 모델?

반응형

검색 기반 모델

미리 정해진 응답들의 데이터를 사용해서 input과 문맥에 기반하여 적절한 응답을 경험적인 방법으로 선택합니다. 룰 기반 매칭 만큼 단순하고 고정된 집합에서 응답을 선택합니다

  • 장점과 단점
    • 문법적 오류가 없지만 적절한 응답이 존재하지 않는 경우에는 처리할 수 없습니다.

생성모델

미리 정해둔 응답에 의존하지 않고 전형적으로 기계 번역 기술에 기반을 둡니다.

  • 장점과 단점
    • 문법적 오류가 있을 수 있지만 자연스럽고 사람 같이 문장을 생성합니다. 하지만 데이터 셋의 양이 많이 필요하고 비용과 시간이 많이 소요됩니다.

도전 과제

  • 문맥 병합
  • 인격의 일관성

챗봇

챗봇의 목적은 사람과 대화를 하는 것이 목적인 모델입니다. 보통은 Sequence to Sequence의 구조로 되어 있습니다.

Encoder는 Source의 문장을 읽고 이해한 내용을 추상적인 고차원 문맥 벡터로 압축합니다. Decoder는 Encoder가 만든 문맥 벡터를 바탕으로 Target 문장을 생성합니다. 이는 Source 언어의 Embedding 공간 속의 문장을 Target 언어의 Embedding 공간으로 매핑시킨다고 할 수 있습니다.

1. 200ms

  • 답변의 공백 마지노선이 0.2초라고 합니다

2. 시공간을 담은 질문

  • 질문이 고유한 답변을 가진다면 챗봇이 학습하기 좋지만 매번 답변이 변하는 것은 학습하기 어렵습니다. 그래서 특정 시공간에 의해 결정되는 질문은 단순한 학습으로 답변할 수 없습니다. 그래서 보통 질문 의도를 파악하고 나서 다른 모듈과 연결해서 예외 처리를 합니다.

3. 페르소나

  • 인격의 일관성을 이야기 합니다.

좋은 챗봇

  • 상대방이 답변하기 좋아야 한다
  • 새로운 정보를 담고 있다
  • 일관성이 있는 말을 각각 보상으로 정의하여 이를 최대화 하는 방향으로 학습을 진행한다.

대표적인 챗봇

Meena

구글이 만든 챗봇으로 GPT-1보다 2배 가량 큰 모델을 9배 더 많은 데이터로 학습한 모델입니다. 모델 구조는 Evolved Transformaer를 사용했다. 무엇보다 평가 지표는 SSA를 제안합니다.

SSA는 sensibleness and Specificity Average라는 공개 도메인 챗봇에 대해 제안하는 새로운 인간 평가 측정 항목을 통해 반영됩니다. 기존의 인간 평가 지표는 복잡하고 일관된 동의를 얻지 못하기 때문에 제안하게 되었다고 합니다.

SSA는 대화는 일관되도록 Hi로 시작하고 “그게 말이 되는 건가요”와 “구체적입니까” 라는 두가지 질문에 대답한 것을 가지고 평가 합니다.

Meena눈 주어진 대화 상황에서 현명하게 반응하는 법을 배우는 종단간 신경망 대화 모델입니다. 훈련 목표는 토큰을 예측하는 불확실성인 Perplexity를 최소화하는 것입니다.

Evolved Transformer 인코더 블록과 13개의 Evolved Transformer 디코더 블록을 가지고 있습니다. 이미 말한 내용을 이해하도록 대화 context를 처리합니다. 그런 다음 디코더는 해당 정보를 사용해서 실제 응답을 공식화합니다.

각각의 대화 훈련 예제를 트리 스레드를 통한 하나의 경로로 7차례 콘텍스트로 추출했고, 충분한 context와 메모리 제약 조건 내에서 적합한 모델이 갖는 것 사이의 균형으로 7을 선정했다고 합니다.

Blender

페이스북 AI에서 발표한 오픈 도메인 챗봇 모델입니다. 대화에 적절히 개입하고 페르소나를 나타내면서 멀티턴 대화에서 일관적인 성격을 유지하는 것에 초점을 맞춥니다.

사람을 평가해보았을 때 멀티턴 대화 시스템에서 호응도와 사람다움에서 다른 모델을 능가했습니다.

자체적인 평가 지표 ACUTE-Eval을 제안합니다. 이는 생성된 두개의 긴 대화를 보고 평가자는 어떤 대화가 더 사람 같은지와 어떤 챗봇과 대화하고 싶은지를 평가합니다

  • 블렌딩 스킬
    • BST 셋업으로 훈련
    • BST는 훈련 데이터와 초기 대화 컨텍스트 (페르소나&주제)를 통해 학습시키고자 하는 특성에 초점을 맞추게 하는 학습법인데 작은 모델로도 좋은 성능을 낼 수 있고 적합한 특성을 학습시킬 수 있다고 합니다.
  • 생성 전략
    • NLG에서 디코딩 알고리즘은 크리티컬한 부분 중 하나입니다. 같은 Perplexity를 가지더라도 디코딩 전략을 달리하면 그 결과는 아주 다를 수 있다고 합니다. 이 모델에서는 Search 파라미터 최소 Beam level을 조절해서 답변의 단순함과 흥미러운 정도를 했다고 합니다.
  • 모델 아키텍처
    • Retrieval
    • 대화 이력을 input으로 받아 다음 대화 발화문을 선택하는 아키텍처이며 가장 높은 점수의 발화를 리턴합니다. 훈련데이터에 있는 모든 답변을 후보 답변 집합으로 사용합니다.
    • Generative
    • 일반적인 Seq2Seq 트랜스포머를 사용하는 모델입니다.
    • Retrieve and refine
    • 생성 이전에 무언가를 받고 답변을 생성합니다. 일반적인 생성 모델은 외부 지식에 직접 접근하지 못하는데, 모델에 내포되어 있는 정보는 부족하기 때문입니다. 그래서 이 두 가지를 고려한 아키텍처입니다

Reference

https://littlefoxdiary.tistory.com/39

반응형