컴퓨터공학 QnA 프로젝트 <알려줄개> 아이디어 설계편

oune·2021년 3월 2일
4

시그

목록 보기
1/2
post-thumbnail

🛫시작

2020년 겨울 sig프로젝트를 시작하게 되면서. 아이디어들을 팀원들과 모아 보았는데
뉴스 관련 논문 검색기, 문장 호응 검사기, 전공 관련 학습 QnA 중에서
최종적으로 버트를 활용한 QnA 프로그램을 만들게 되었다.

🌱초기 아이디어


(마스코트 만금이)

초반에 구상한 메인 페이지의 모습
검색창에 전공관련된 질문을 하게 되면 그에 정답을 알려준다.

알려줄 개 라는 이름에 맞는 알려주는 개의 모습이 담긴 메인페이지의 모습.
멍체를 사용하는 컨셉적인 모습도 볼수 있었다.

🔧사용할 기술들


자연어 처리기술중 버트와 같은 딥러닝 기반의 라이브러리와 다른 기술들을 사용하기 용의한 파이썬을 메인 언어로 선정하게 되었다.

시스템 개발에 필요한 데이터를 저장할 데이터 베이스로는 지금까지 익숙하게 써본 mysql로 결정하게 되었고.

웹페이지로 최종 결과물이 나오도록 해야하기 때문에 빠른 속도로 만들 수 있다고 이야기를 들은 장고를 선택하게 되었다.

💦첫 피드백 이후


첫번째 발표 이후 선택한 ui가 챗봇형태로 보이므로, 만약 이러한 ui를 사용했을때 사용자는 연속된 답변을 받는 것을 원할 것 이라는 지적을 받았다.

따라서 실시간 처리에 대한 부담을 줄이기 위해서 게시판 형태의 인터페이스로 방향을 정하게 되었다.

MRC 모델을 만들기 위해 사용하는 KorQuAD 데이터 셋에 대해 정리 하게 되었다.




해당 피피티가 데이터 셋의 성능이 안좋게 보일수 있다는 점을 지적 받았다.

현재 버트 멀티 렝기지 모델로 각각의 데이터셋을 학습할 경우
1.0 보다 2.0이 훨씬 난이도가 높아 낮은 정확도를 보임을 알수 있었다.
따라서 모델의 성능을 높이기 힘든 방학 프로젝트 특성상, 더 간단하게 높은 정확도를 얻을 수 있는 KorQuAD 1.0 을 사용하게 되었다.

🧈버트



QnA 모델을 만들기 위해서 트랜스포머를 활용한 버트 모델을 이용하였습니다.
(버트에 대한 자세한 내용은 다른 포스트에서 설명하겠습니다.)

🌻첫번째 모델



예제 코드를 이용해서 겨우겨우 학습 시킨 결과 정확도 82%의 QnA 모델을 얻을수 있었다.

💫중간 문제점들


입력 값이 특정 길이를 넘어가는경우 문장을 독해 할 수 없는 문제가 있었다.

현재 모델은 질문의 정답을 찾을 문단이 주어져 있는 상황에서만 정답을 알아낼수 있기때문에
그 문단을 찾는 기능이 필요 했었다.

이후 진행 사항은 후편에서 이어짐니다.

📖Reference

https://github.com/kimwoonggon/publicservant_AI/blob/master/05_%EC%BC%80%EB%9D%BC%EC%8A%A4%EB%A1%9C_KorQuAD(%ED%95%9C%EA%B5%AD%EC%96%B4_Q%26A)_%EA%B5%AC%ED%98%84%ED%95%98%EA%B8%B0.ipynb

profile
어느새 신입 개발자

1개의 댓글

comment-user-thumbnail
2021년 6월 22일

와! 누구들이 개발했는지 모르겠지만 정말 멋진 프로젝트네요~^^

답글 달기