멘토링 후기 및 깨달은 점과 문제 해결 과정
개요
학교에서 지원하는 코멘토 멘토링 프로그램에 참여할 수 있는 좋은 기회를 얻어 참여하게 되었습니다.
이런 멘토링 프로그램에 참여하는 것이 처음이라 다소 낯설었지만, 소중한 시간 쪼개서 멘토링을 진행해주시는 것이기 때문에 최선을 다했습니다. 멘토링은 세션과 과제로 이루어져 있고 세션에서 인공지능 챗봇에 대한 기본적인 내용과 과제에 도움이 될만한 얘기들을 해주셨습니다. 세션을 통해서 과제를 진행하고, 피드백을 통해 보완하는 방식으로 진행되었습니다. 특히, 세션의 후반부에는 멘토님이 실무를 진행하면서 느꼈던 점이나 진로를 결정하고 취업을 준비하는 데 있어서 많은 조언을 해주셨습니다. "이게 맞다"가 아닌 멘토님의 생각을 말씀해주셔서 제 생각을 굳힐 수 있게 유도해주셨습니다. 5주가 넘는 기간 동안 많은 것을 배울 수 있는 유익한 시간이었습니다.
깨달은 점
멘토링의 주제는 "콘도를 예약할 수 있는 인공지능 챗봇 설계"였습니다. Dialogflow라는 챗봇 빌더를 활용해서 설계를 했습니다. 이번 멘토링의 가장 큰 특징은 기획부터 설계까지 진행하는 점입니다. 평소 프로젝트를 진행할 때 간단한 계획만 세우고 코딩을 하면서 계속해서 수정해나가는 과정을 거쳤습니다. 그러다 보면 처음 의도한 프로그램과는 다소 거리가 있는 프로그램이 완성이 되었습니다. 작은 프로젝트이기 때문에 큰 문제는 없었지만, 더 큰 프로젝트를 진행하거나 여러 사람들과 진행할 때는 프로젝트의 궁극적인 목적에서 벗어날 수 있을 것이라는 걱정을 항상 갖고 있었습니다. 이번 멘토링을 통해서 기획서를 작성하면서 위와 같은 문제를 해결할 수 있었습니다. 이전 포스팅에서 볼 수 있듯, 처음 기획서와는 수정되는 부분이 분명히 있지만 궁극적인 목적과 꼭 필요한 요소는 벗어나지 않는 것을 확인할 수 있었습니다. 내용의 질이 중요한 것은 당연하고, 눈에 보이는 UI의 중요성도 깨달을 수 있었습니다. 팀원 혹은 동료에게 내용을 정확하게 전달하기 위해 글로 나열하기보다는 표나 그림과 같은 도식을 이용하는 것이 더욱 효율적이라는 것을 직접 확인할 수 있었습니다.
개발을 할 때 가장 중요한 요소는 "협업"이라고 생각합니다. 이번 멘토링을 통해서 잘 짜인 기획서가 협업에 있어서 얼마나 중요한지 몸소 깨닫는 시간이 되었습니다.
문제 해결 과정
과제를 진행할 때 "사용성"이 좋은 챗봇을 설계하는 것을 목표로 진행했습니다. 사용성이 높다는 것은 사용자가 챗봇을 이용할 때 편리하게 이용할 수 있는 것을 의미합니다. 이를 위해서는 보다 높은 정확성이 필요하고, 사용자로 하여금 올바른 입력을 자연스럽게 유도하는 것이 필요했습니다. 정확성을 높이기 위해서 문장 학습을 최대한 많이 실시했고, 날짜 입력에 대해서 포맷을 정해 연, 월, 일에 대한 구분을 정확히 하도록 설계했습니다. 문장 인식에 대한 부분은 챗봇 빌더를 선정할 때, 한글을 지원하고 인식률이 높은 챗봇 빌더인 Dialogflow를 선택했기 때문에 큰 문제는 없었습니다.
과제를 진행하면서 겪은 문제점은 사용자의 올바른 입력을 유도하는 것이었습니다. 초기 과제를 진행할 때 상황에 따라 Intent를 많이 생성해서 사용자와 많은 대화를 시도했습니다. 이 과정에서 Intent가 올바른 순서로 진행되지 않는 문제가 발생했습니다. 문제를 해결하기 위해 콘솔 창을 확인했고 Intent의 트리 순서가 바뀌어 있었습니다. Intent 트리 순서대로 시나리오가 진행된다고 생각했기 때문에 이를 원인이라고 생각했습니다. 챗봇을 새롭게 다시 만들어 보기도 했지만 문제는 해결되지 않았습니다. 문제를 해결할 수 없었던 이유는 "Context"에 대한 개념이 없었기 때문입니다. Context에 Lifespan을 수정하지 않아 챗봇이 대화의 내용을 기억하고 있지 못했고 대화의 순서를 제어할 수 없었습니다. 각 Intent의 Context를 수정하면서 문제를 해결했습니다. Fallback Intent, yes Intent 등 다양한 Intent를 생성해도 Context를 통해 대화의 순서를 제어할 수 있게 되면서 사용자의 입력에 따라 챗봇의 유연한 응답이 가능해졌습니다. 사용자의 올바른 입력을 유도할 수 있고, 보다 사람과 가까운 챗봇을 구현할 수 있었습니다.
수많은 Intent를 생성하면서 제일 위에 있는 Context를 봤음에도 불구하고 크게 신경 쓰지 않은 것이 문제 발생 원인이었습니다. 제가 신경 쓰고 있는 부분에만 집중하고 있다는 점을 깨닫고, 좀 더 넓은 시야를 갖게 되는 경험이었습니다.
최종 기획서
'프로젝트 > 인공지능 챗봇(AI Chatbot)' 카테고리의 다른 글
[인공지능 챗봇] Dialogflow로 콘도 예약 챗봇 구현하기 - (2) (0) | 2021.08.09 |
---|---|
[인공지능 챗봇] Dialogflow로 인공지능 챗봇 구현하기 - (1) (0) | 2021.08.04 |
[인공지능 챗봇] 인공지능 챗봇 시나리오 작성, Decision tree란 (0) | 2021.07.15 |
[인공지능 챗봇] 인공지능 챗봇 기획, 기획서 제안 (0) | 2021.07.14 |
[인공지능 챗봇] 인공지능 챗봇의 정의, 종류, 특징 (0) | 2021.07.13 |