Abstract
전통적인 맞춤법 교정 시스템은 규칙 기반이 사용되었으나, ChatGPT와 같은 대규모 언어 모델의 등장으로 이러한 시스템들의 성능이 크게 향상되었다. 본 논문에서는 한국어 맞춤법 교정을 위해 대규모 언어 모델을 사용하고, 모델의 성능 최적화를 위해 다양한 강화 학습 방법을 적용하여 성능을 평가하고 비교하였다. 주요 모델로는 Polyglot-ko와 Llama3가 사용되었으며, 이 모델들은 다른 외부 시스템과 비교하는 실험을 진행했다. 미세 조정된 모델의 beam 후보 문장 분석을 통해 다수의 정답이 포함된 후보 문장의 존재를 확인하였으며, 모델의 잠재적 성능을 최대화하기 위해 강화 학습을 적용하였다. Polyglot-ko 모델에서는 RRHF 방법을 적용했을 때 SFT 모델 대비 문장 정확도가 20% 이상 향상되어 최고 73.79%를 기록했으며, CPO 적용 시 최고 61.95%의 성능을 보였다. Llama3 모델의 경우, SFT 모델의 성능은 78.34% 였으며, CPO와 RRHF 적용 후 각각 최고 773.32%와 80.19%의 성능을 보여 약 2%의 향상을 나타냈다. 본 연구 결과는 대규모 언어 모델이 한국어 맞춤법 교정에 효과적임을 입증하며, RRHF 방법이 맞춤법 교정 작업에 특히 효과적임을 시사한다. 또한, 성능 최적화를 위해 다양한 데이터로 구성하여 학습을 진행하였다. 모델이 자체 생성한 beam 후보 문장을 이용한 학습과 외부 시스템을 사용하여 생성된 데이터로 학습한 결과를 비교하였을 때 성능 차이가 미미하였다. 이는 내부 자원을 활용하는 것이 비용 측면에서 합리적이며, 기존 모델에 이미 최적화된 자체 생성 데이터를 활용하는 것이 더 효과적일 수 있음을 보여준다. 이처럼, 모델의 성능을 최적화하기 위해 다양한 강화 학습 방법과 데이터 구성 방식으로 효율적인 학습 방법을 제시한다.
연구 배경
자연어처리(Natural Language Processing, NLP)는 인공지능 분야 중 하나로, 컴퓨터가 인간의 자연어를 이해하고 처리할 수 있도록 하는 연구 분야이다. 이는 기계가 인간과 자연스러운 의사소통을 가능하게 하는 중요한 기술이다. 자연어는 인간의 지식과 생각을 표현하고 전달하는 주요 수단이며, 인공지능 시스템이 이를 해석하고 이해하는 능력은 다양한 영역에서 인간과 상호작용하는 데 필수적이다. 자연어처리 기술은 이미 우리 일상생활 곳곳에서 활용되고 있다. 대표적인 예로 기계 번역 시스템인 네이버의 파파고, 구글의 구글 번역, DeepL 등의 시스템은 한 언어를 다른 언어로 자동 번역한다. 또한, 긴 텍스트를 짧은 글로 요약하는 자동 요약 시스템, 사용자의 질문에 답변하는 챗봇 등 다양한 자연어처리 서비스가 상용화되어 있다.
최근 몇 년간 자연어처리 분야에서 가장 주목할 만한 발전은 대규모 언어 모델(Large Language Model, LLM)의 등장이다. 대규모 언어 모델은 거대한 모델 크기와 많은 양의 텍스트 데이터를 학습하여 뛰어난 언어 이해 및 생성 능력을 갖추게 되었다. 대표적인 대규모 언어 모델로는 OpenAI의 ChatGPT, Meta의 Llama, 네이버의 HyperCLOVA X 등이 있다. 이들 모델은 기존에는 불가능했던 수준의 자연어 처리 성능을 보여주며, 기계 번역, 텍스트 요약, 질의응답, 창작 등 다양한 과제에서 인상적인 결과를 내고 있다.
특히, 강화 학습(Reinforcement Learning)이 이러한 대규모 언어 모델 발전에 중요한 역할을 했다. 강화 학습은 모델이 환경과 상호작용을 하며 시행착오를 거치면서 스스로 학습하는 기법이다. 이를 통해 대규모 언어 모델은 단순한 언어 모델링을 넘어 실제 태스크 수행 능력을 향상시킬 수 있었다. 대표적으로 ChatGPT는 강화 학습으로 사전 학습된 모델을 추가 미세 조정하여 높은 수준의 자연어 이해와 생성 성능을 달성했다.
본 논문에서는 대규모 언어 모델을 사용하여 맞춤법 교정 작업을 진행한다. 맞춤법 교정은 텍스트에 포함된 잘못된 철자나 문법 오류를 자동으로 찾아내고 수정하는 자연어처리 기술로, 문서 작성, 이메일 작성 등 다양한 분야에서 사용자의 생산성을 높이고 오류를 최소화하는 데 기여한다. 기존 시스템은 주로 통계 기반과 규칙 기반 방법을 사용했으나, 이는 전체적인 문맥을 고려하지 못하는 단점이 있다. 대규모 언어 모델은 방대한 양의 텍스트 데이터를 학습하면서 자연어의 통계적 패턴을 내재화하여 오탈자나 오류를 효과적으로 탐지하고 수정할 수 있다.
이에 추가하여, 본 논문에서는 모델의 미세 조정 후 성능을 측정하였고, 강화 학습을 통해 모델의 성능을 더욱 향상시켰다. 강화 학습은 모델이 구체적인 피드백과 보상을 통해 태스크에 최적화된 행동 전략을 학습할 수 있게 해주며, 이 과정에서 맞춤법 교정 작업의 성능 향상을 살펴본다.
RRHF(Rank Responses to Align Language Models with Human Feedback without tears)
InstructGPT에서 사용한 RLHF 방법은 인간 피드백을 모델 학습에 활용하여 모델의 행동을 최적화하는 효과적인 접근법이지만, 모델의 복잡성 증가와 높은 검수 비용이라는 문제점을 안고 있다. 이를 개선하기 위해 Yuan 등은 RRHF(Rank Responses to Align Language Models with Human Feedback without tears) 방법[5]을 제안하였다. RRHF는 답변 후보들에 대한 점수를 사전에 계산함으로써, 더 간단하고 안정적인 학습을 가능하게 한다.
RRHF의 학습 과정은 다음과 같다. 먼저, 다양한 출처(현재 사용 중인 모델, 외부 모델, 사람이 작성 등)에서 수집된 답변 후보들에 대한 점수를 계산한다. 이 점수는 모델을 이용하거나 인간이 직접 평가하여 부여할 수 있다. 이어서, SFT 모델을 사용하여 각 답변의 점수를 계산하며 이에 기반하여 순위가 매겨진다. 모델이 예측한 답변의 순위와 실제 정답 답변의 순위 사이의 차이를 분석하여, 이 차이를 최소화하기 위한 RRHF 손실 함수를 계산한다. 또한, 정답 답변 중에서 가장 높은 점수를 받은 답변을 사용하여 그 답변과 유사해질 수 있도록 SFT 손실을 계산한다. 최종적으로, RRHF 손실과 SFT 손실을 결합하여 모델의 학습을 진행한다.
RRHF는 기존의 언어 모델 학습 방식에 비해 인간의 직접적인 개입을 줄이면서도 효율적으로 모델의 성능을 향상시킬 수 있는 방법을 제공함으로써, 언어 모델의 학습 과정에서의 비용과 시간을 줄이는 데 기여한다.
CPO(Contrastive Preference Optimization)
CPO(Contrastive Preference Optimization)[6]는 기존의 DPO(Direct Preference Optimization)[7] 방식을 변형하여 참조 모델을 사용하지 않고도 번역 작업에서 효과적인 학습을 가능하게 하는 강화 학습 기법이다. DPO 방법은 사용자가 제공하는 선호도 데이터를 직접적으로 학습에 활용하여, 복잡한 보상 모델의 구축이 필요 없다는 장점이 있다. 특히, 주관적이거나 명확하지 않은 보상이 필요한 시나리오에서 유용하다. DPO는 Bradley-Terry 모델을 활용하여 선택지 간의 상대적 선호도를 기반으로 손실을 계산하며, 이를 통해 알고리즘을 최적화한다. DPO의 손실 계산은 수식 1과 같다.
이 방식은 학습 중 참조 모델과 대상 모델을 모두 유지해야 하므로 메모리와 처리 속도 측면에서 비효율적일 수 있다. 이러한 단점을 개선하기 위해, Xu 등은 CPO를 제안했다. CPO는 참조 모델을 사용하지 않으면서도, 번역의 질을 최적화하고 참조 데이터의 품질 문제를 피할 수 있도록 디자인되었다. 이 접근법은 특히 작은 크기의 대규모 언어 모델에서도 큰 성능 향상을 이루는 데 기여하였다. 다음 수식은 CPO 손실 계산을 나타내고 학습 과정은 그림 4와 같다.
여기서 는 선호도를 기반으로 하는 손실 함수이며, 은 모델의 출력이 데이터에 얼마나 잘 맞는지를 측정하는 자연로그 손실(Negative Log Likelihood)을 추가하여 최종 손실을 구성한다. CPO는 이러한 방식으로 모델을 학습시켜, 번역의 정확성과 자연스러움을 동시에 높이는 것을 목표로 한다.
QLoRA(Quantized Low Rank Adapters)
대규모 언어 모델을 단일 GPU에서 학습시키는 것은 한계가 있어 QLoRA(Quantized Low Rank Adapters)[8]를 이용하여 모델을 학습한다. QLoRA는 대규모 언어 모델을 효율적으로 미세 조정하고 경량화하는 데 사용하는 기술이다. QLoRA는 양자화(Quantization)와 LoRA(Low-Rank Adaptation) 기법[9]을 결합한 방법이다.
양자화는 모델의 가중치를 낮은 비트 표현(예: 8비트 또는 4비트)으로 압축하여 메모리 사용량을 줄이고 계산 효율을 높인다. 이를 통해 모델의 크기를 축소하면서도 필요한 성능을 유지할 수 있게 한다. QLoRA는 모델의 크기를 줄이기 위해 4비트 양자화를 사용한다. 일반적으로 32비트 부동 소수점 값을 사용하는 대규모 언어 모델과 달리, QLoRA는 훨씬 적은 비트 수를 사용하여 모델의 매개변수를 표현한다. 이는 모델의 메모리 사용량을 크게 줄이고 처리 속도를 향상시킨다.
LoRA 기술은 모델의 사전 학습된 매개변수를 작은 저랭크 업데이트로 조정하여 모델의 복잡성을 크게 증가시키지 않고도 새로운 작업에 대한 성능을 향상시킬 수 있다. 이를 PEFT(Parameter Effecient Fine-Tuning) 기법이라 하고 모델의 모든 매개변수를 학습하는 것이 아닌 일부만 학습함으로써 적은 자원으로도 성능을 유지하는 방법이다. QLoRA는 LoRA 기술을 사용하여 모델의 성능을 유지한다.
또한 학습 중 VRAM을 초과하여 OOM(Out-Of-Memotry) 에러가 발생하는 것을 해결하기 위해 Paged optimization 기법을 사용한다. 이는 GPU의 제한된 VRAM을 CPU의 RAM과 함께 활용하는 기술이다. 모델의 일부 가중치 텐서를 VRAM 대신 CPU RAM에 페이징(paging)하여 저장함으로써 VRAM 사용량을 줄일 수 있다. 이 기법을 통해 GPU의 제약을 완화하고 보다 큰 모델을 학습할 수 있다.
QLoRA는 양자화와 LoRA 이 두 기술을 결합함으로써, 기존 방법보다 훨씬 적은 양의 데이터와 계산량으로 대규모 언어 모델을 미세 조정할 수 있다. 이는 대규모 언어 모델을 다양한 작업에 적용하는 데 필요한 비용과 시간을 크게 줄일 수 있다.
본 논문에서는 QLoRA를 사용하여 메모리 효율적으로 학습을 진행한다.
맞춤법 교정 데이터셋
본 논문에서 사용하는 맞춤법 교정 데이터셋은 AI-Hub에서 제공하는 ‘인터페이스(자판/음성)별 고빈도 오류 교정 데이터[12]’를 기반으로 한다. 해당 데이터는 컴퓨터 키보드, 스마트폰 자판의 쿼티 및 천지인 레이아웃 그리고 음성 인식을 통해 수집된 다양한 맞춤법 오류와 띄어쓰기 오류 등을 포함하고 있다.
데이터셋은 디지털 기기 사용자의 입력 실수 오류와 음성 인식 오류로부터 발생하는 맞춤법 오류를 다양하게 포함하여, 실제 환경에서의 오류 패턴을 포괄적으로 반영한다. 표 1은 데이터의 통계를 나타낸다. 데이터는 초등학생부터 40대 이상의 다양한 연령층 사용자로부터 수집되었다. 구체적으로 데이터셋은 다음과 같은 세부 카테고리로 구분된다.
오탈자: PC 및 모바일 입력 장치(쿼티 및 천지인 레이아웃)를 사용하는 과정에서 발생한 키 입력 오류로 인한 데이터
맞춤법 오류: SNS, 질의응답 게시판, 자유 게시판에서 수집된 맞춤법 오류가 포함된 문장 데이터
음성 인식기 오류: 다양한 음성 인식 엔진을 사용하여 뉴스, 강의, 기타 영상에서 한국어 음성을 텍스트로 변환하는 과정에서 발생한 오류 문장
자동 생성 오류: 수집된 오류 유형을 바탕으로 오류 생성 알고리즘을 통해 인위적으로 생성된 데이터
띄어쓰기/문장부호 오류: 맞춤법 오류 데이터 중 띄어쓰기와 문장부호 관련 오류만을 포함한 데이터
자주 발생하는 맞춤법 오류: 통계적 분석을 통해 도출된 자주 발생하는 맞춤법 오류를 기반으로 제작
이렇게 다양한 출처와 방법을 통해 수집된 데이터를 사용하여 맞춤법 교정 모델을 학습하고 평가한다. 본 논문에서는 모든 유형의 데이터를 혼합하고 해당 데이터의 일부분을 사용하여 표 2와 같이 데이터를 구분한다.
먼저, SFT의 학습과 평가에 사용하는 데이터는 각각 96,366문장, 24,092문장으로 구성했고, RRHF의 학습과 평가에는 SFT의 절반인 47,183문장, 12,046문장이 포함되어 있다. 그리고 최종적으로 성능을 평가할 테스트 데이터는 2,434문장으로 구성되어 있다.
이를 통해 실제 환경에서 발생할 수 있는 다양한 유형의 맞춤법 오류에 대한 모델의 일반화 성능을 평가할 수 있다.
Beam 후보 문장을 통한 모델 성능 최적화 전략
Zhou 등에 의하면[17], 대부분의 언어 모델 능력은 사전 학습 동안 습득되며, 특정 작업에 모델을 맞추기 위한 미세 조정은 제한적으로만 필요하다고 주장했다. 여기서 언어 모델의 지식이 사전 학습 때 습득되었다는 것에 착안하여 다음과 같은 실험을 진행하였다. 대규모 언어 모델을 미세 조정한 후 beam width를 5로 설정하여 문장을 생성한다. 여기서 예측 문장(Prediction)은 beam 후보 문장 중 가장 확률이 높은 첫 번째 문장을 의미하고 후보 문장(Beam Hypothesis)은 모든 beam 후보 문장을 포함한다. 후보 문장 중에 정답이 포함되면 정답으로 간주한다. 평가 메트릭은 모델의 예측과 정답이 정확히 일치하는 문장 정확도를 기준으로 측정하였다. 모델은 Polyglot-ko, Llama3를 사용하고 데이터는 3.1장의 SFT 데이터와 평가를 위한 test 데이터를 사용하였다.
표 3은 모델별 예측 문장과 후보 문장의 문장 정확도를 보여준다. 위 표의 결과에서 보듯이, beam 후보 문장의 정확도가 예측 문장보다 최소 약 10% 이상 높은 것을 볼 수 있다. 이 결과는 모델이 올바른 답을 인식하고 있음에도 불구하고 선택 확률의 영향으로 인해 전체 성능이 저하되는 현상을 나타낸다. 이러한 문제를 해결하기 위해 본 논문에서는 강화 학습을 통해 모델의 잠재적 성능을 향상시키는 접근을 시도했다.
맞춤법 교정의 경우 정답이 명확히 정해진 작업이므로, beam 후보 문장 중 가장 확률이 높은 첫 번째 문장을 예측으로 간주한다. 이 연구에서는 beam 후보 문장들을 사용하여 강화 학습의 데이터로 활용한다. beam 후보 문장을 이용하는 방법은 인간의 개입 없이 데이터를 생성할 수 있어 비용 절감의 효과가 있으며, 외부 시스템에 의존하지 않고 독립적으로 모델 내에서 데이터 생성이 가능하다는 이점을 가진다.
beam 후보 문장을 사용한 강화 학습이 얼마나 효과적인지를 평가하기 위해 두 가지 실험을 수행한다. 첫 번째는 beam 후보 문장을 이용하여 학습한 모델이고, 두 번째는 외부 시스템을 사용하여 생성된 문장으로 학습한 모델이다. 이 두 모델의 성능을 비교함으로써 강화 학습을 통한 성능 향상의 유효성을 입증한다.
실험 결과 및 분석
표 10은 한국어 맞춤법 교정에 대한 최종 실험 결과를 나타내며, Polyglot-ko와 Llama3 모델을 기반으로 한 SFT, CPO, RRHF 학습 방식의 성능을 비교 분석하였다. 강화 학습은 자체 생성 문장과 외부 데이터를 활용하여 수행되었으며, 이와 함께 다양한 딥러닝 및 규칙 기반 시스템의 성능도 평가되었다. 이 중 딥러닝 시스템으로는 ChatGPT4, Claude3 그리고 Gemini가 포함되었고, 규칙 기반 시스템으로는 부산대 맞춤법 검사기와 네이버 맞춤법 검사기가 사용되었다. 모델 성능은 문장 정확도, GLEU, Precision, Recall 지표를 통해 측정되었다.
실험의 주요 목적은 대규모 언어 모델을 활용하여 교정 작업의 성능을 최적화하고, 다양한 학습 방법을 통해 이들 모델의 효율성을 검증하는 것이다. 특히 Polyglot-ko와 Llama3 모델을 중심으로 각 모델의 성능 차이와 특정 학습 방식이 우수한 결과를 가져오는 이유를 분석했다.
Llama3 모델은 Polyglot-ko보다 우수한 성능을 보여주었는데, 이는 Llama3가 더 다양하고 방대한 데이터로 학습되었기 때문이다. 이로 인해 Llama3는 보다 넓은 문맥 이해와 복잡한 문법 구조를 더 잘 파악할 수 있으며, 이는 특히 문맥적 맞춤법 오류와 자연스럽지 않은 표현을 교정하는 데 효과적이었다.
이러한 결과를 바탕으로, 두 가지 학습 방식 RRHF와 CPO의 효과를 분석했다. RRHF 방식이 더 우수한 성능을 보인 것은 RRHF는 답변의 점수를 절대적인 값으로 학습하지만 CPO는 상대적인 비교를 통해 학습한다. 맞춤법 교정과 같은 답이 정해진 작업에서는 상대적인 비교보다는 답변의 절대적인 수치를 통해 학습을 하는 것이 효과적이라는 것을 알 수 있다.
강화 학습의 적용은 Polyglot-ko 모델에서 특히 두드러진 성능 향상을 보이며 최대 20% 이상의 개선을 이끌어냈다. 이는 실험 3.4절에서 분석된 바와 같이 Polyglot-ko의 후보 문장간에 정답 비율이 크게 나타난 결과로 보인다. 이러한 차이는 모델 내에 잠재된 능력이 강화 학습을 통해 더욱 효과적으로 발휘될 수 있음을 시사한다. 강화 학습이 이끌어낸 이러한 성능 향상은 모델이 보다 정확한 예측을 할 수 있도록 돕고, 특히 복잡하고 어려운 맞춤법 오류에 대해 더 적절하게 대응할 수 있게 만든다.
또한, 자체 생성한 문장으로 학습한 모델과 외부 데이터를 활용한 모델 간의 성능 차이는 크지 않았다. 외부 데이터 사용 시 발생하는 비용과 데이터 정제 과정을 고려할 때, 내부 자원을 효율적으로 활용하는 것이 더 효율적일 수 있다.
마지막으로, 외부 시스템 중에서는 ChatGPT4가 가장 높은 성능을 보고, 그다음으로는 규칙 기반 시스템인 부산대 맞춤법 검사기가 그 뒤를 이었다. 전체적인 결과를 통해, 딥러닝 기반 시스템이 규칙 기반 시스템보다 다양한 오류 유형에 더 강건할 수 있음을 보여준다. 기존의 규칙 기반 시스템은 맞춤법 오류에 최적화되어 있어, 본 실험에서 다뤄진 인터페이스 입력 오류, 음성 인식 오류 등 다양한 오류 유형에 대해서는 한계를 가지는 모습을 볼 수 있다.