AI-LAB/회의록

[회의록] 사투리번역 진행도1 - 사투리를 영어로 바로 번역해보자

JS LAB 2023. 8. 26. 03:24
728x90
반응형

내가 진행하는 논문 주제는 트랜스포머를 이용한 사투리의 영어 번역

조사해본 바로는 사투리가 번역되려면 사투리 -> 표준어 -> 영어 이런 식으로 두 단계를 거쳐야 하는 걸로 알고 있다.

사투리 -> 영어로 바로 번역을 하는 방법이나 정확도를 높이기 위한 방법에 대해서 팀원과 연구해보고 있었다. 

 


1차진행

데이터셋 : AI허브에서 사투리-표준어(경상도,전라도,강원도,제주도,충청도) 텍스트 자료를 이용하여 

표준어 -> 번역모델( Helsinki-NLP/opus-mt-ko-en ) -> 영어
사투리 -> 번역모델( Helsinki-NLP/opus-mt-ko-en ) -> 영어

를 작업한 뒤 비교..

애매했다

 

 

 

1차 자문

자연어처리 연구실 박사과정 대학원생분께 자문을 구함

 

1. 사투리 -> 영어 바로 번역하는 방법
(사투리, 영어) 쌍의 데이터셋이 존재하면, 트랜스포머의 인코더에는 사투리를, 디코더에는 영어 문장을 넣어 모델을 학습할 수 있다.
한국어, 영어 모두 대응 가능한 트랜스포머 인코더-디코더 기반 모델인 KoBART, mT5나 디코더 기반 KoGPT2를 통해 파인튜닝 가능.

나온지 2~3년 정도 된 모델들이지만 진행하고 있는 연구의 초기 베이스라인 성능 확인하기엔 적합할 것 같다.

아래는 (사투리, 영어) 데이터셋 구축 방법.
AI 허브의 사투리-표준어 데이터를 보유하고 계시기 때문에,

진행하신 [표준어 -> 번역모델 -> 영어]를 통해 영어 문장을 얻어,

(사투리, 표준어, 영어) 쌍의 데이터셋을 구축하실 수 있다.
하나의 표준어에서도 다양한 영어가 번역될 수 있기 때문에 데이터 증강 또한 가능. 

(표준어->영어로 잘 번역되었는지 데이터 검수 과정은 필요합니다.)
품질 좋은 데이터만 충분하다면 사투리 -> 영어 번역 모델을 바로 구축하실 수 있다.


2. 정확도 높이는 방법
자연어 문장 생성(Natural Language Generation) 태스크에서 생성 문장의 성능을 측정하는 지표로는 

BLEU, ROUGE, BERTScore를 많이 사용하고 있어, 

이를 활용하여 생성 문장-정답 문장 간 얼마나 일치하는지 확인할 수 있다.
모델 성능을 높이기 위해서 가장 간단한 방법으로는 

loss가 최소한으로 떨어질 때 까지 학습을 진행하거나 대규모 모델을 사용할 수 있습니다.
T5 모델의 경우에도 small, base, large, 3b, 11b 존재하는데, 

small 보단 base, large로 갈 수록 성능은 훨씬 올라갑니다. 

다만, GPU 자원이 한정적일 경우 base 모델 정도는 사용하시는 것을 권장.
최대한 높은 성능의 모델을 학습하기 위해 hyperparameter tuning도 진행해볼 수 있습니다. (wandb sweep 기능 추천)
위 방법까지 해봤는데도 성능이 만족스럽지 못할 경우, 추가 아키텍처를 고민해봐야할 것 같습니다 !

 

 

 

1차 자문 이후

새로운 방안을 생각해냄, 문제점도 발견

이때까지는 Helsinki-NLP/opus-mt-ko-en 모델을 사용하여

(사투리, 표준어, 영어) 쌍의 데이터셋을 구축

데이터셋 구축 이후에 생각 난 문제점은 

BLEU지표를 사용하려면 완벽한 정답데이터가 있어야 하고, 

그것과 대조를 하면서 점수를 매겨야 하는 것으로 알고 있는데, 

현재 그러한 정답데이터가 없고 우리가 만든 데이터셋이 전부라는 점!


 

https://aihub.or.kr/aihubdata/data/view.do?currMenu=115&topMenu=100&aihubDataSe=realm&dataSetSn=126

그래서 AI허브에 있는 
(한국어 -> 영어) 정답 데이터와 Kobart 모델을 이용해서 새롭게 진행해보기로 하였습니다. 
그리고 기존에 있던 (표준어 -> 사투리) 데이터를 

Kobart 모델에 추가 학습시켜 파인튜닝한 모델을 이용하여 
(한국어-> 사투리 -> 영어) 로 번역 후 이 데이터셋과 

(한국어 -> 영어) 정답 데이터를

BLEU 를 이용해 평가하는 것이 어떨까 생각하게 되었습니다.

정리하면

1. (한국어 ->  영어)  :  데이터셋 이미 존재
2. (한국어 -> 사투리 -> 영어)  :  파인튜닝 후 2번의 번역
3.  1,2를 BLEU 평가

 

 

2차 자문

Q1.

1. (한국어 ->  영어)  :  데이터셋 이미 존재
2. (한국어 -> 사투리 -> 영어)  :  파인튜닝 후 2번의 번역
3.  1,2를 BLEU 평가

 

이런 식의 작업을 했을 때 논문 주제를 정제된 데이터셋 구축으로 할지, 

그 구축된 데이터셋을 이용한 또 다른 무언가 작업을 해야할 지 입니다. 
데이터셋 구축하는 것만하는 것도 괜찮은 논문주제라고 생각하시는지?

 

A1.

현재 한국어 [사투리->영어] 데이터셋이 존재하지 않기 때문에, 데이터셋 구축하는 것 만으로도 충분히 논문 주제는 될 수 있습니다.
구축한 데이터셋의 품질이 좋아야하고(사투리에 맞는 영어로 잘 번역되어야 함), 데이터셋 구축 과정을 논리적으로 설계하는 것이 중요합니

Q2.

허깅페이스 같은 사이트에서 적합한 모델을 찾을 때 한국어 관련 모델이라 그런지 정보가 많이 없고

(그래서 Kobart 원본모델을 파인튜닝하는 방법을 생각...), 
원하는 데이터도 많이 없는데 이럴 땐 학부연구생 수준에서는 어쩔 수 없는 건지도 궁금합니다.

 

A2.

이미 공개된 한국어 모델을 바로 활용할 수도 있지만, 

해당 모델이 사투리 데이터셋으로 학습된 적이 없거나, 

혹은 학습 되었어도 소규모 데이터셋만 사용된 경우 성능이 낮기 때문에 

갖고 계신 사투리 데이터셋으로 파인튜닝 할 수록 성능은 더 올라갑니다.
GPU 자원에 따라 파인튜닝 가능한 모델로 선택하시면 됩니다.
한국어 데이터가 많이 없는건 어쩔 수 없는 현실이라 갖고 계신 자원중에 최대한 활용하시는 것이 좋을 것 같습니다 !

Q3.

지금하고 있는 논문 주제가 보시기에 괜찮은지 궁금합니다. 

 

A3.

괜찮아 보입니다.

 


추가 조언
[한국어->영어] 데이터셋을 활용하여 [표준어->사투리->영어] 데이터셋 구축하려면, [표준어->사투리] 모델도 직접 학습 시켜야하고, 

다시 [사투리->영어]로 번역이 잘 되어야 하기 때문에 어려움이 있을 것으로 보입니다.

오히려 직접 [표준어->사투리] 모델을 파인튜닝하는 것 보다,
[사투리->표준어] 데이터셋을 갖고 계신다면 

표준어를 구글 번역기 API나 ChatGPT API를 사용하여, 

표준어로부터 번역본을 먼저 구한 뒤 

[사투리,표준어,영어] 데이터셋을 만드는 것도 하나의 방법이 될 것 같습니다.
ChatGPT의 경우 웹에서 먼저 시도해볼 수 있는데, 

"~~~ 문장 영어로 번역해줘" 와 같은 식으로 질의를 날리면 이에 맞는 답변을 줍니다.

 

 

 

 

 

 

 

 

따라서 현재 googletrans 무료API를 이용하여 번역기 실행 중...

 

728x90
반응형