원본 없이 사투리를 배운 모델이 원본으로 배운 모델을 어디서 이겼나
한국어 사투리 모델 두 개를 허깅페이스에 공개했습니다. 하나는 실제 방언 데이터로 배웠습니다. 다른 하나는 원본을 한 글자도 쓰지 않고 배웠습니다. 방언 데이터를 다루는데 라이선스 때문에 결과를 공개하지 못해 막힌 적이 있다면 이 글이 도움이 됩니다.
글의 핵심 개념을 형상화했습니다.
결론을 먼저 말씀드립니다. 합성으로 배운 모델은 실데이터 학습 이득의 10점 중 9점 정도를 되찾았습니다. 다만 그 점수는 능력별로 크게 갈립니다. 우리가 직접 쓴 문장에서는 순위까지 뒤집혔습니다.
쉽게 말하면
사투리를 배우는 학생 두 명을 떠올려 주십시오. 한 명은 그 지역에 가서 어르신들 이야기를 직접 듣고 배웠습니다. 다른 한 명은 녹음에서 뽑아낸 단어장만 받았습니다. 그리고 다른 사람이 써 준 문장에 그 단어장을 적용하며 배웠습니다.
앞으로 이 글에서 첫 번째를 현지 학생, 두 번째를 단어장 학생이라고 부르겠습니다. 두 학생을 같은 시험지로 재는 것이 이 실험입니다.
NotebookLM이 소스를 종합해 생성한 인포그래픽입니다.
무엇을 해봤나
방언은 자료가 없는 문제가 아니라 못 쓰는 문제입니다. 한국어 방언은 국립 AI 허브에 5개 권역 대화 자료가 있지만 재배포와 국외반출이 막혀 있습니다. 그래서 그 자료로 만든 모델을 논문과 함께 공개하기가 어렵습니다.
먼저 시험지를 만들었습니다. 강원, 경상, 전라, 충청, 제주 각 200문항씩 모두 1000문항입니다. 여기서 세 가지 능력을 따로 잽니다. 방언을 표준어로 옮기는 이해, 어느 지역 말인지 맞히는 식별, 표준어를 방언으로 바꾸는 생성입니다.
시험지도 라이선스에 걸립니다. 그래서 문항의 본문 대신 문항 번호를 되돌릴 수 없게 바꾼 값과 채점 코드만 공개했습니다. 쓰는 분이 자기 라이선스로 받은 자료에서 같은 1000문항을 다시 맞춰 채점하는 방식입니다.
그다음 같은 바탕 모델에서 출발해 두 학생을 길렀습니다. 현지 학생은 실제 방언 짝문장으로 배웠습니다. 단어장 학생은 우리 모델이 쓴 표준어 문장에 규칙 변환기를 적용한 합성 문장으로만 배웠습니다.

나온 결과
되찾은 정도를 회수율이라고 부르겠습니다. 현지 학생이 올린 점수를 100으로 놓습니다. 단어장 학생이 그중 얼마를 따라왔는지 보는 값입니다.
능력별로 보면 이야기가 완전히 달라집니다. 식별은 91.2퍼센트, 이해는 52.7퍼센트에서 멈췄습니다. 생성은 지표에 따라 갈립니다. 우리가 만든 단어 목록으로 재면 105.6퍼센트로 실데이터를 넘고, 그 목록을 안 쓰는 참조 기준으로 재면 72.4퍼센트로 못 넘습니다.
축별 회수율입니다. 식별 91.2퍼센트, 이해 52.7퍼센트, 생성은 단어장 지표 105.6퍼센트, 참조 지표 72.4퍼센트입니다. 100은 실데이터 모델 기준입니다.
즉, 사람 말로는 이렇습니다. 사투리를 만드는 능력은 단어장으로도 거의 다 옮겨 갔습니다. 반면 알아듣는 능력은 절반밖에 옮겨 가지 않았습니다.
여기서 한 가지를 짚고 넘어가야 합니다. 생성 점수가 100을 넘은 것은 실력이 아니라 자를 잘못 댄 결과였습니다. 채점에 쓴 단어 목록이 사투리를 만들 때 쓴 규칙과 같은 데서 나왔기 때문입니다. 실제로 규칙이 만들어 낼 수 있는 형태를 목록에서 전부 빼 보니 다섯 권역 모두 남는 단어가 하나도 없었습니다. 그 목록을 안 쓰는 참조 기준으로 다시 재니 72.4퍼센트로 내려갔고, 어떤 합성 모델도 실데이터를 넘지 못했습니다.
여기에 더해 합성 데이터는 권역끼리 실제보다 더 다르게 만들어졌습니다. 실제 사투리는 이웃 지역끼리 서로 섞이는데 합성은 그 겹침을 재현하지 못했습니다.
우리가 쓴 문장에서는 순위가 뒤집혔습니다
시험 문항은 현지 학생이 공부한 자료와 같은 데서 나왔습니다. 그러면 현지 학생에게 유리합니다. 그래서 시험지 밖에서 어떻게 되는지 직접 재 봤습니다.
고객 응대와 공공 안내, 관광 설명, 드라마 대사, 게임 대사, 일상 대화까지 여섯 장면의 문장을 직접 썼습니다. 그것을 두 모델에 5개 권역으로 각각 넣었습니다. 원본 자료는 한 글자도 쓰지 않았습니다.
권역을 서로 다르게 만들어 낸 비율은 현지 학생이 10번 중 8번, 단어장 학생이 10번 중 10번에 가까웠습니다. 특히 존댓말 고객 응대 문장에서 현지 학생은 다섯 권역에 똑같은 문장 하나를 내놨습니다. 지역을 지정했는데 그 지시를 통째로 무시한 것입니다.
즉, 사람 말로는 이렇습니다. 시험지 안에서는 현지 학생이 앞섭니다. 시험지 밖 말투에서는 단어장 학생이 덜 무너집니다.
이유는 짐작이 갑니다. 단어장 학생이 연습한 문장은 우리 모델이 쓴 것이라 말투 폭이 넓었습니다. 현지 학생이 들은 것은 어르신들의 편한 대화라 존댓말 안내 문체가 거의 없었습니다.
실제로 나온 문장
같은 문장 “어제 비가 많이 와서 길이 다 젖었더라”를 넣었을 때 단어장 학생이 낸 결과입니다.
| 지역 | 나온 문장 |
|---|---|
| 강원도 | 어재 비가 마이 와가주 길이 다 젖었더라 |
| 경상도 | 어제 비가 마이 와가꼬 길이 다 젖었더라 |
| 전라도 | 어제 비가 많이 와가꼬 길이 다 젖었더라 |
| 제주도 | 어제 비가 하영 와가주 길이 다 젖었더라 |
제주도의 “하영”은 많이라는 뜻의 제주 말입니다. 강원도의 “와가주”와 경상도의 “와가꼬”도 실제로 갈리는 어미입니다. 다만 충청도 요청에도 “와가꼬”가 나왔는데 이것은 경상과 전라 쪽 어미입니다. 나누기는 하되 언제나 맞게 나누지는 않습니다.

그래서 무엇을 바꾸면 되나
방언 자료가 라이선스로 막혀 있다면, 생성 쪽 일은 합성으로 시작해도 됩니다. 말투를 바꾸는 작업, 지역색 있는 대사를 만드는 작업, 캐릭터 목소리를 나누는 작업이 여기 들어갑니다.
반대로 알아듣는 일은 합성으로 메우기 어렵습니다. 사투리 상담 내용을 표준어로 정리하는 일이라면 실제 자료가 필요합니다. 지금 공개한 두 모델 중 그런 용도에는 실데이터 모델을 쓰셔야 합니다.
그리고 합성 데이터를 만들 계획이라면 한 가지를 미리 아셔야 합니다. 저희는 변환 규칙을 세 번 정교하게 다듬었지만 점수가 움직이지 않았습니다. 문어체 문장을 구어체로 바꾸자 규칙이 걸리는 비율은 두 배로 올랐습니다. 그런데 그 두 배가 실력으로 이어지지는 않았습니다. 우리 단어 목록에 기대지 않는 지표로 재니 세 축 모두 차이가 씨앗을 바꿨을 때 생기는 흔들림 안에 있었습니다.
즉, 사람 말로는 이렇습니다. 규칙이 걸리는 자리를 늘리는 일과 모델이 실제로 잘하게 만드는 일은 다른 문제였습니다.
학습셋을 세 배로 늘렸을 때는 어느 지역 말인지 맞히는 능력만 뚜렷하게 올랐습니다. 알아듣는 능력과 참조 기준 생성 능력은 역시 흔들림 안이었습니다.
두 모델은 아래에서 받으실 수 있습니다.

못 믿을 부분

대화 모델이 아닙니다. 학습이 전부 한 번씩 주고받는 변환과 분류였습니다. 사투리로 대화하는 능력은 배운 적도 잰 적도 없습니다.
학습을 한 번씩만 돌렸습니다. 두 모델의 작은 점수 차이는 아직 학습할 때 생기는 흔들림과 구분되지 않습니다. 같은 조건으로 한 번 더 돌리는 작업이 지금 진행 중입니다.
시험지 밖 실측은 장면 여섯 개짜리입니다. 시연이지 벤치마크가 아닙니다. 이 숫자로 두 모델의 순위를 매기지 말아 주십시오.
방언성 점수는 하한값입니다. 저희가 모은 단어 목록에 걸리는 것만 셉니다. 억양이나 어순처럼 목록 밖에 있는 방언 현상은 아예 보이지 않습니다.
소리를 배우지 않았습니다. 받아쓴 글만 학습했기 때문에 발음 정보는 들어 있지 않습니다.
학습에 쓴 자료의 출처는 AI 허브의 한국어 방언 발화 데이터와 중·노년층 한국어 방언 발화 데이터입니다. 두 저장소 어디에도 원본 자료나 방언과 표준어를 잇는 대응 사전은 넣지 않았고 가중치만 공개했습니다.
NotebookLM이 소스를 종합해 생성한 인포그래픽입니다.