개요
지능시스템 캡스톤 디자인 프로젝트에서는 RelGAN이라는 생성모델과 KoBERT라는 자연어 처리 모델, TTS 기술을 사용하여, 문장에 감정을 담아 실감나게 읽어주는 TTS 서비스를 제작하고자 진행하고 있습니다. 조금 더 자세히 설명드리자면 KoBERT 모델을 사용하여 텍스트 문장에서 감정을 추출하고, TTS를 통해 해당 텍스트를 Speech로 변환합니다. 마지막으로 변환한 Speech에 RelGAN을 사용하여 KoBERT에서 추출한 감정을 입혀 실감나는 TTS 서비스를 제작하고자 합니다. 이 중 저는 RelGAN을 통해 음성에 감정을 입히는 부분을 도맡아 하고 있습니다.
프로젝트 이슈
RelGAN 논문을 자세히 읽어보던 중 충격적인 사실을 발견했다... 바로 GTX 1080Ti GPU애서 RelGAN을 학습시키늗네 총 60시간이 걸렸다는 이야기였다. 우리가 결제해서 사용하는 코랩은 유휴시간이 24시간이다. 즉 나는 코랩에서 현실적으로 불가능한 모델을 왜 안되는지 화내면서 돌리고 있었던 것...이다
그래서 어떻게든 학교에서 대여한 GPU 노트북을 통해 실행시키고자 데이터 양을 줄여보았다. 우선 내 학교 노트북의 스펙은 다음과 같다.
CPU : Intel i7-850
GPU : Nvidia GeForce GTX 1070
우선, angry embarrassed middle pleasure sad 총 다섯개의 감정 레이블 당 2000개의 음성파일을 numpy로 변환하여 .npy 데이터로 사용하였다. 이 때 CUDA out of memory가 생겼는데, 모델이 GPU에 올라가는 것은 문제가 없지만 학습을 위해 데이터를 GPU에 올릴 경우 1번 epoch 돌고 그 뒤에 오류가 생성되었다. 즉, 데이터 양이 너무 많아 생성된 out of memory라고 판단하였다.
그래서 두 번째는 과감하게 5개의 레이블당 1000개의 음성파일만을 사용하였다. 어제 최종발표 끝난 후 최종 시연 영상 제출에 2주 정도 시간을 주셔서 조금이라도 더 좋은 결과를 내고 싶은 마음에 로컬 컴퓨터에서 실행을 시킨 거였다.(+ 공학경진 대회도 나갈 겸..) 아니 근데 프로젝트 기간 내내 안되다가 끝나니까 갑자기 되는건 뭔데.. 기분은 좋으면서도 찝찝한 느낌... 그래도 어쨌든 실행이 되서 실행시켜놓고 꿀잠을 잤는데 아침에 확인해보니 cache 쪽에서 outof memory가 생겼다는 알림이 떠 있었다. 1000개도 아슬아슬 약간 버거웠나보다.
그래서 이번에는 각 레이블당 데이터를 700개씩만 넣어 총 데이터 3500개로 줄여보았다.
우선은 실행이 잘 되고 있다.
그러나, Epoch 9999까지 가면 weight파일을 저장하는 과정에서 out of memory 오류가 발생하였다.... 저장하는 부분을 상대 경로로 설정했는데, 혹시 모른다는 마음에 절대 경로로 설정 후 코드를 다시 실행시켰다.
돌아가길래 후기 형식으로 올리려고 화면 캡처 어플을 실행시키니까 죽은 내 vscode... 내가 잘못했어....
덕분에 하루종일 돌려서 15000까지 돌렸던 나의 실행과정이 모두 날아갔다.... 이왕 이렇게 된 거 노트북 꺼서 조금 식힌 후 다시 실행시켜야겠다...
오늘의 교훈
욕심은 금물, 서두르지말고 vscode를 잘 어르고 달래야 한다...
'지능시스템 졸업 프로젝트' 카테고리의 다른 글
[지능시스템 캡스톤 디자인] 음성 합성 프로젝트 일지 ⑧ (0) | 2023.05.30 |
---|---|
[지능시스템 졸업프로젝트] 음성 합성 프로젝트 일지 ⑦ (0) | 2023.05.26 |
[지능시스템 졸업 프로젝트] 음성 합성 프로젝트 일지 ⑥ (0) | 2023.05.22 |
[지능시스템 졸업 프로젝트] 음성 합성 프로젝트 개요 ⑤ (0) | 2023.05.22 |
[지능시스템 캡스톤 디자인] 음성 합성 프로젝트 일지 ④ (0) | 2023.05.22 |