
RASA
- Tensorflow, Python으로 만들어진 오픈소스 AI 챗봇
- 텍스트 및 음성 기반 대화를 위한 오픈 소스 머신러닝 프레임워크
- 메시지 이해, 메시징 채널 및 API를 연결
- NLU : intent와 example이 NLU 모델의 training set으로 사용됨
- Response : user의 메시지를 이해하고 user에게 다시 보내는 response
- Stories : user가 한 말에 assistant가 올바르게 응답하도록 학습시킬 데이터
- Rules : 특정 intent에 대해 특정 action으로 반응하기 원할 때 mapping한 것
- rasa version1.3.9까지 한글을 지원한다는 것 같음
- rasa compatibility
- Rasa Open Source : 1.3.9
- Rasa X : 0.21.5
- Rasa SDK : 1.3.3
CDD Conversation-Driven Development
- user가 assistant에게 원하는 것을 자신의 말로 알려주는 것이 핵심 아이디어
- user와 대화를 하고, 그 대화를 이용해서 assitant의 개선에 도움이 되도록 함
- 대화를 한 데이터를 최대한 활용해서 모델의 training data로 사용
CDD 6단계
- Share : assistant를 team 외 외부 user에게 가능한 빠르게 공유 (Rasa X server mode)
- Review : metrics를 사용하지 않고 user와의 대화를 읽음
- out-of-scope intent(정의하지 않은 intent)를 찾기
-> missclassified인지 확인하기
- fallback 찾기
-> potential new skill 을 찾을 수도 있음
- user가 bot에서 사람으로 바꿔달라고 요청하는 부분을 찾기
- Annotate : user가 assitant에게 보낸 말을 변환 (intent나 entity와 함께)
- overfitting 되지 않도록 항상 유의하기
- 이미 training data에 있는 대화는 추가하지 않고, 잘못 predict한 것이나 confidence가 낮은 것을 추가하기
- 다양한 어터런스를 적응할 수 있도록 하기
- Test : 수정 사항이 있을 때마다 테스트 수행
- Track : 잘 작동하는지 여러 메트릭스를 통해 확인
- Proxy Metrics : 대화의 모든 문장을 확인하는 방법
- 챗봇 개선만을 위한 measure를 하지 않고 외부 메트릭스도 확인 external metrics
(콜센터의 콜봇이라면 콜센터 수요 완화의 목적도 있을 것이니 콜센터의 트래픽 감소 확인)
- Fix : 분석한 것을 바탕으로 failure를 줄이기
위 단계를 계속 반복하면서 assistant를 개선해나가기