본문 바로가기
성장하기

[E-15] 트랜스포머로 만드는 대화형 챗봇

by 예시카의 일상 블로그 2021. 3. 1.

트랜스포머 챗봇

 

Opening


  • 트랜스포메이션이 어떤 점에서 이득을 가져왔을 까요?
    • [예시 답안]
    • RNN 혹은 CNN을 사용하지 않고 attention만 사용해서 연산량이 매우 줄였다. 그럼에도 불구하고 성능도 매우 높게 나오는 모델이라는 점
    • 트랜스포머는 여러 테스크에서 좋은 성능을 보이면서도 더 발전할 가능성이 보이는 모델입니다.
    • 가장 먼저 두각을 나타낸 자연어 처리에서의 트랜스포머의 구현을 노드를 따라가면서 공부해봅시다!

 

 

 

Check-up 항목


 

Slack

 

aiffel.slack.com

print("살짝 오래 걸릴 수 있어요. 스트레칭 한 번 해볼까요? 👐") 
# 질문과 답변 데이터셋에 대해서 Vocabulary 생성. 
# tokenizer = tfds.deprecated.text.SubwordTextEncoder.build_from_corpus(questions + answers, target_vocab_size=2**13) 
tokenizer = tfds.features.text.SubwordTextEncoder.build_from_corpus(questions + answers, target_vocab_size=2**13) 
print("슝=3 ")

 

  • tfds.deprecated 모듈을 그대로 사용하여 진행할 수도 있습니다.
    • features와 deprecated의 차이가 무엇인지 찾아봅시다.
  • 여러분들은 a[-1:] 과 a[-1]의 차이를 알고 계셨나요?
    • 둘 다 리스트이 마지막 원소를 가져오는 것이지만 출력의 형태가 다르답니다.
    • a[-1:] 은 list 타입이고 a[-1]은 원소의 타입을 따릅니다.
    • 예를 들면 a = [1,2,3,4] 에서 a[-1:] 은 [4]를 a[-1]은 4를 반환합니다. 

 

Closing


  • 여러분이 프로젝트로 만든 챗봇의 성능을 평가하기 위한 방법에는 어떤 것들이 있을까요?
    • [예시 답안]
    • Comprehension capabilities : 사용자의 대화 의도 파악 및 이해 능력
    • User Engagement : 사용자와 상호작용하는 능력
    • Speed : 응답속도
    • Functionality : 사용자를 환영하고, 관심을 끌고, 탐색 도구를 제공하는 등 다양한 기능을 통해서 사용자가 계속 관심을 갖게 해야 함
    • Interoperability : 다양한 채널로 배포되어 사용자가 다양한 채널에서 일관된 경험을 갖도록 해야 함
    • Scalability : 여러 사용자가 사용하고, 추가 모듈 등 확장 가능하도록 설계되어야 함

 

참고자료


 

Transformer: Attention is all you need

An Ed edition

reniew.github.io

 

 

댓글