중간정리에서는 감정 분석 일기장은 텍스트 데이터를 입력받아 해당 텍스트의 감정을 예측하는 데 사용되는데, 이를 위해 BERT(Bidirectional Encoder Representations from Transformers) 모델을 활용하여 감정 분석을 수행하는 방법을 사용하였습니다.
최종으로는 해당 분석 결과를 모델링하여 tut6-model.pt 형태로 저장하여 프론트엔드와 백엔드 서버에 연동을 하는것을 주력으로 시간을 최대한 줄이는데 많은 노력을 진행하였다.
프로젝트에 대한 이야기를 드리겠습니다.
프로젝트 개요
→ 사용자가 입력하는 일기의 내용을 토대로 감정 분석을 진행, 사용자는 작성한 일기만을 통해 자신의 감정을 되돌아봅니다.
주요 기능
감정 분석 일기장은 텍스트 데이터를 입력받아 해당 텍스트의 감정을 예측하는 데 사용되는데, 이를 위해 BERT(Bidirectional Encoder Representations from Transformers) 모델을 활용하여 감정 분석을 수행하는 방법을 사용하였습니다.
- 프론트측에서 일기데이터 받아오기
- 작성한 일기를 통해 감정분석 진행
- 분석한 감정을 백엔드 쪽으로 넘기기
postman 을 이용해서 서버 통신을 진행하였습니다. (이 과정이 너무나도 많은 시간이 들었다) - 기존에는 백엔드 쪽에서 회원가입이 진행되었을때 코드를 실행하여 모델학습부터 순차적으로 진행하였지만, 이 과정에서 시간이 너무나도 많이 소모되는 것 같아 기존 모델을 별도로 저장하여 분석 결과만 바로 출력되도록 코드를 수정하였습니다.
사용된 라이브러리
- torch==2.1.0
- torchtext==0.6.0
- transformers==4.37.2
- pandas
- numpy
- requests
- flask
어려웠던 점
- 프론트 값을 잘 받아왔는지
- 모델 학습이 잘 이루어졌는지
- 해당 분석 결과가 원활하게 전달 되었는지
프로젝트 진행하면서 아무래도 다른 포지션과 협업을 진행하는데 있어서 두명 다 경험이 없었어서 찾아보고 공부하는데 있어 많은 시간과 노력이 필요했습니다.
보완하면 좋을 점
모델 학습에 있어서 epoch를 10개 이상으로 두고싶었지만 local 로 돌리게 되면 epoch 하나당 200분 이상이 소요되어서, 최종 모델에 있어서 epoch를 1개로 두어 소요시간은 많이 감소되었지만 정확도면에 있어서 성능이 많이 저하되어 아쉬움이 존재하였다.
gpu를 쓰면 epoch 학습 시간이 많이 개선되는것을 확인하였지만, vscode에서 gpu를 사용하는 방법을 아직 학습하지 못하여서 해당 내용을 학습하고 나면 반드시 개선해보면 좋을 것 같다.
마무리
이번 프로젝트를 진행하면서 감정분석 알고리즘에 대해서 많은공부를 해보았던것 같다.프로젝트 진행중 가장 어려웠던 부분은 모델선정도, 모델 학습 부분도 아닌 다른 포지션과의 연동과정이었던 것 같다.
모델의 경우에는 4주전에는 완성이 되었지만, 백엔드 쪽과 연결하는 과정에 있어서 많은 어려움이 있었다.
결론: 앞으로는 흐름도를 작성하고, 백엔드나 프론트 서버 공부도 필요할 것 같다.