데이터중심 AI강좌: 데이터세트 구축 및 효율적인 데이터 학습 방법
최근 몇년간, LLM(대규모언어모델, Large Language Model)은 자연어 처리분야에서 큰 돌파구를 가져왔습니다. LLM은 비교적 적은 양의 학습 데이터만으로도 다양한 자연어 처리 과제를 해결할 수 있으며, 알맞은 파인튜닝(fine-tuning)을 통해 특정 주제에 대해 사용자의 의도를 반영한 자연스럽고 유창한 응답을 생성할 수 있다고 알려져 있습니다.
한국을 포함한 전세계의 다양한 기업과 연구기관들이 활발하게 LLM연구 및 개발에 참여하고 있으며, ChatGPT와 같은 LLM기반 애플리케이션들이 우리 사회전반에 빠르게 확산되고 있습니다. 이러한 LLM의 확산에 따라, LLM이 어떻게 특정능력들을 구현하는지 그 내부원리를 이해하는 것이 매우 중요해지고 있습니다. 지금부터는 LLM구축에 사용되는 데이터세트의 구성 및 특성에 대해 설명하고, 이를 통해 LLM기술에 대한 깊이 있는 이해를 목표로 합니다.
일반적으로 LLM구축은 크게 다음 2단계로 구성됩니다. 각 단계에서 요구되는 데이터의 성격과 규모가 다르다는 점에 주목할 필요가 있습니다.
사전학습(Pre-training): LLM이 어휘, 문법, 상식적 지식을 습득하도록 하는 과정
파인튜닝(Fine-tuning): LLM의 응답이 사람의 의도에 더욱 잘 부합하도록 조정하는 과정
이번에는 사전학습(pre-training)에 사용되는 데이터(사전학습 데이터)에 대해 설명하고, 파인튜닝(fine-tuning)을 위한 데이터는 따로 나중에 다룹니다. 전체적인 개요는 아래 그림과 같습니다. 우선 LLM의 핵심기술적인 언어모델의 개념을 설명하고, 다음으로 사전학습 데이터의 특징을 설명합니다. 이후 사전학습 데이터의 수집방법과 수집한 데이터의 정체(cleaning)과정, 그리고 데이터세트의 다국어화(multilingualization)와 같은 심화된 주제도 같이 다루려고 합니다.
LLM(대규모언어모델, Large Language Model)이라는 명칭처럼, LLM은 언어모델의 파라미터수와 학습데이터 양을 대규모로 확장한 형태로 볼 수 있습니다. 언어모델(Langauge Model)이란 주어진 텍스트가 자연어로서 얼마나 자연스러운지를 확률적으로 평가하는 모델입니다. 즉, 길이가 T인 시퀀스(sequence) x1:T = x1, ..., xT의 동시확률 P(x1:T)은 다음과 같은 조건부 확률의 곱으로 계산할 수 있습니다.
앞서 설명했던 뉴럴 네트워크의 성능은 데이터세트 크기와 로그 비례(Scaling law)로 향상된다는 것이 알려져 있으며, 이는 LLM의 사전학습에서도 마찬가지로 적용됩니다. 현재 대부분의 LLM은 Transformer모델을 기반으로 구착되고 있으며, 트랜스포머 모델 역시 스케일링 법칙이 성립한다는 실험적 보고가 있습니다. 따라서 사전학습 데이터의 규모가 클수록 성능이 뛰어난 LLM구축이 가능합니다. 그러나, 데이터의 양뿐 아니라, 데이터의 질 역시 매우 중요합니다. 품질이 낮고 잡음(노이즈)을 다량 포함한 데이터를 그대로 사전학습에 사용할 경우, LLM의 최종성능에 부정적인 영향을 미칠 뿐 아니라, 사전학습이 실패할 위험도 존재합니다. 다음으로 사전학습 데이터의 양과 질 문제에 대해 대응방안을 소개합니다.
LLM의 사전학습에서는 위 수식을 최대화하는 방식으로 학습을 진행하며, 이를 위해 소설, 블로그, 신문, 논문등 다양한 문서로 구성된 대규모 데이터세트을 필요로 합니다. 구축하고자 하는 LLM의 특성에 맞추어 문서의 종류를 선택할 필요가 있습니다. 예를 들어, 학술정보에 특화된 LLM을 구축하려면 논문데이터를 주로 활용하고 프로그래밍 보조도구를 개발하려면 프로그래밍 언어 데이터를 중심으로 수집해야 합니다. 이번에는 ChatGPT와 같은 범용 LLM구축을 목표로 다양한 문서가 포함된 사전학습 데이터를 구성하는 방법을 다룹니다.
이후부터는 사전학습 데이터 크기를 표현할 때 데이터세트에 포함된 총 토큰수를 사용합니다. 여기서 토큰(token)이란 자연어 문서를 처리하기 위한 기본 단위를 의미하며, LLM은 기본적으로 토큰의 열을 입력받아 다시 토큰열을 출력합니다. 텍스트를 토큰으로 나누는 처리를 토큰화(tokenization)라고 하며, 다양한 토큰화 방법이 존재합니다. 예를 들어, "나는 LLM이 좋다"라는 문장을 단어 단위로 나누면 "나, 는, LLM, 이, 좋다"가 되고, 문자 단위로 나누면 "나, 는, L, L, M,이, 좋, 다"가 됩니다. 토큰화 방법에는 단어나 문자 외에도 서브워드(subword), 바이트(byte)단위 등 다양한 방식이 존재하지만, 이번에는 문장은 주로 단어수준으로 나누어진다고 생각하면 충분합니다.
최근 LLM의 규모가 커지면서, 사전학습 데이터의 양도 급격하게 증가하는 추세입니다. OpenAI의 GPT시리즈를 예를 들면, 최초 공개된 GPT에서는 약 10억(1B) 토큰의 데이터를 사용했으나, GPT-2에서는 약 10B토큰, GPT-3에서는 약 500B토큰으로 모델 세대가 발전할수록 데이터규모가 비약적으로 증가했습니다. 최근에는 사전학습 데이터의 크기가 수조(trillions)토큰을 넘기도 합니다. 예를 들어, RefinedWeb은 약 5조토큰을, RedPajama v2는 영어데이터는 약 20조 토큰을 포함하고 있습니다.
이러한 데이터세트의 대규모화 배경에는 Kaplan등이 제안한 스케일링 법칙(Scaling law)이 존재합니다. 스케일링 법칙은 Transformer 모델의 성능이 모델의 파라미터수와 학습데이터의 토큰수에 따라 로그 선형적으로 향상되는 것을 보여줍니다. 이를 통해 학습시키고자 하는 모델의 파라미터 수에 가장 적합한 사전학습 데이터의 토큰수를 예측할 수 있습니다. 예를 들어, 175B 파라미터의 규모의 GPT-3는 약 300B토큰 데이터로 학습되었습니다. 또한, Hoffmann등은 기존 Kaplan등이 제시한 스케일링 법칙보다 더 많은 사전 학습 데이터가 필요하다고 주장했습니다. 친칠라 법칙에 의하면,
LLM의 파라미터 하나당 약 20개의 토큰을 사용하는 것이 최적입니다.
모델의 파라미터수가 증가하면 이에 비례하여 학습데이터 토큰수도 증가해야 합니다.
실제로 Hoffmann등 친칠라 법칙에 따라 70B 파라미터 모델을 1.4조 토큰의 데이터로 학습했고, 기존의 더 큰 파라미터를 가진 모델(GPT-3의 175B파라미터 포함)보다 우수한 성능을 기록했습니다. 다만, 이러한 스케일링 법칙 및 친칠라 법칙을 해석할 때 우수한 성능을 기록했습니다.
첫번째, 친칠라 법칙에 따른 최적의 토큰수로 학습한 LLM의 손실(loss)은 해당 모델이 도달할 수 있는 최소 손실이 아닙니다. 즉, 이 이상으로 데이터를 늘려 추가학습하면 성능이 더 향상될 가능성도 존재합니다.
두번째, 스케일링 법칙과 친칠라 법칙은 학습 시의 계산 효율성을 중심으로 제안된 법칙이며, 실제 서비스 구현 시 추론의 효율성(경량 하드웨어에서의 성능 등)은 별도로 고려해야 합니다. 따라서, 실제 서비스에서는 모델크기를 적절히 제한하여 추론 효율성을 높이는 방안이 필요할 수 있습니다.
이러한 이유로 최근 친칠라 법칙의 권장치를 초과하는 데이터를 사용하여 학습된 LLM사례가 증가하고 있으며, 대표적인 예로는 Meta에서 공개한 Llama시리즈가 있습니다.
뉴럴 네트워크로 수행하는 모델을 뉴럴 언어 모델(Neural Language Model)이라 부르며, 뉴럴 언어모델의 파라미터수를 수십억에서 수조개 수준으로 크게 확장한 것이 바로 LLM입니다. LLM의 사전학습 단계에서는 위 수식으로 표현되는 확률을 최대하는 것을 목표로 합니다. 구체적으로는 사전학습 데이터를 입력으로 하여 다음 단어를 예측하는 방식으로 반복학습을 수행합니다.
최근 LLM 규모가 커지면서 사전학습 데이터의 양도 급격히 증가하고 있습니다. OpenAI의 GPT시리즈의 경우, 초기 GPT는 약 1B토큰, GPT-2는 약 10B토큰, GPT-3는 약 500B 토큰을 사용했습니다.
최근에는 수조(Trillions) 단위의 토큰을 활용한 사례도 많아지고 있습니다. 예를 들어, Llama 2의 경우, 7B, 13B, 70B파라미터 모델 모두 약 2조 토큰을 사용하여 학습되었으며, 친칠라 법칙의 권장값인 70B파라미터모델의 1.4조 토큰을 크게 초과하였습니다. 그러나 실제 학습 결과, 친칠라 법칙을 초과한 데이터에서도 Perplexity가 지속적으로 개선되는 것으로 나타났으며, 이후 공개된 Llama 3은 Llama 2보다 7배 이상인 15조 토큰을 활용하여 성능을 대푝 향상시켰습니다.
이처럼 방대한 사전학습 데이터를 확보하는 주요 전략은 웹에서 데이터를 수집하는 것입니다. 웹데이터 수집의 이점은 다음과 같습니다.
데이터 규모가 방대하다: 무수히 많은 웹페이지가 존재하며 지속적으로 증가함
동적이다: 웹페이지는 최신 정보를 지속적으로 반영하여 업데이트됨
다양한 언어로 구성됨: 영어, 한국어, 일본어, 독일어, 스페인어 등 다양한 언어의 데이터를 확보 가능
다양한 문서 종류를 포함함: 백과사전, 학술논문, 뉴스기사, 블로그, 프로그래밍 코드, 채팅 데이터등 다양한 문서를 포함함
웹에서 수집된 데이터세트의 대표적인 예로는 Common Crawl이 있습니다. Common Crawl은 비영리단체가 전용 크롤러를 통해 수집한 웹페이지 데이터를 정기적으로 공개하고 있으며, 누구나 자유롭게 이용할 수 있습니다. Common Crawl은 다음의 형식으로 데이터를 제공합니다.
WARC: 웹페이지 그대로 아카이브한 데이터 (약 90TB)
WET: WARC에서 본문만 추출한 텍스트 데이터(약 20TB)
WAT: WARC에서 URL등의 메타데이터를 추출한 데이터(약 10TB)
https://commoncrawl.github.io/cc-crawl-statistics/plots/languages
사전학습 데이터 구축시에는 주로 WARC 또는 WET형식을 활용하여 최근 대부분의 LLM은 Common Crawl에서 추출한 데이터를 기반으로 구축된 데이터세트(mC4, OSCAR, RedPajama등)을 활용하고 있습니다.
한편 특정 종류의 데이터를 집중적으로 수집하는 방법도 존재합니다. 대표적으로 Pile 데이터세트의 경우 Common Crawl뿐만 아니라, arXiv 학술논문, OpenSubtitles 영화자막, Smashwords 전자책, GitHub 프로그래밍 코드등 다양한 ㅊ출처에서 데이터를 수집하여 구축되었습니다. 그러나, 이와 같은 별도의 데이터수집은 데이터 규모에 제한이 있으며 Common Crawl과 데이터가 중복될 가능성도 있으므로 중복 문제에 대해서는 별도의 처리가 필요합니다.
웹에서 수집한 데이터는 대부분 HTML형식으로 제공되며, 원본형태로는 LLM 사전학습에 적합하지 않습니다. HTML데이터는 태그(tag)와 메타데이터(metadata)등 본문과 무관한 요소를 많이 포함하고 있어, 이를 본문만 추출한 텍스트 데이터로 변환하는 과정이 필요합니다.
이 과정은 수작업으로 처리하기 어렵기 때문에 자동화된 도구를 사용하는 것이 일반적입니다. 대표적인 자동화 도구로는 BeautifulSoup, jusText, Trafiatura등이 있으며, 그 중 Trafilatura가 본문추출 성능이 가장 우수한 것으로 알려져 있습니다. 실제로 Trafilatura는 Swallow코퍼스나 RefinedWeb과 같은 대규모 데이터세트 구성에도 활용되고 있습니다.
Common Crawl에서는 HTML형식의 원본데이터(WARC)에서 본문만을 추출한 WET형식 데이터를 제공하며, 많은 연구에서 WET형식을 이용하고 있습니다. 그러나 본문 추출 과정에서 내비게이션 메뉴, 광고, 소셜미디어 링크와 같은 노이즈가 포함되는 경우가 많습니다. 이러한 문제를 해결하기 위해 Wenzek등은 단락(paragraph) 단위로 중복을 제겋하는 방식을 제안했습니다. 이 방법은 각 단락의 해시(hash)갑ㅂㅅ을 계산한 뒤 중복된 해시값을 갖는 단락을 제거하는 방식으로 작동하며, 데이터세트를 수 기가바이트 단위의 샤드(shard)로 나누어 처리함으로써 메모리 효율성을 높입니다.
단락 단위의 중복제거는 특정 언어에 의존하지 않고 모든 언어에 적용할 수 있는 장점이 있으나, 자연어로서 의미있는 단락까지 제거될 수 있는 단점이 존재합니다. 그럼에도 불구하고 이 방법을 통한 노이즈 제거가 전반적인 데이터품질을 향상시킨다는 연구결과가 보고되고 있습니다.
지금까지 사전학습 데이터의 양적측면을 다루었지만, 데이터의 질적관리도 매우 중요합니다. 특히 웹에서 수집한 데이터는 다양한 형태의 노이즈(부적절한 콘텐츠, 잘못된 정보 등)를 포함할 수 있으며, 이러한 노이즈는 LLM의 학습결과에 부정적인 영향을 미칠 수 있습니다.
웹기반 문서에 포함된 노이즈의 예시
예를 들어, 폭력적이거나 선정적인 표현이 포함된 데이터를 그대로 사용할 경우, LLM의 출력이 부적절한 내용으로 오염될 가능성이 있습니다. 따라서 사전학습 데이터에서 이러한 노이즈를 효과적으로 제거하는 필터링 처리기법이 필요합니다.
위에서 표시한 노이즈를 제거하기 위해 각각의 노이즈에 특화된 규칙기반 필터를 설계하고 순차적으로 적용하는 방법을 생각할 수 있습니다. 이 방법에서는 위 그림에 나타난 것과 같이 각 문ㅅ서에 필터링을 수행하여 최종적으로 남은 문서를 사전학습 데이터로 채택합니다. 몇가지 규칙의 예시를 소개합니다.
▣ 문서의 길이
가장 단순한 규칙의 예시로 문서의 길이를 이용하여 극단적으로 짧은 문서(예: 100자 이하)를 제거하는 규칙이 있습니다. 이는 너무 짧은 문서는 유용한 정보보다는 메타데이터가 포함되는 경우가 많아, LLM의 학습에 적합하지 않다고 판단하기 때문입니다. 이 규칙은 C4나 SlimPajama등 기존 데이터세트에도 적용되고 있습니다.
▣ 문서출처 URL
웹상의 일부 URL은 LLM의 사전학습 데이터로 부적절한가능성이 있는 문서(예: 성인용 콘텐츠)를 포함하고 있습니다. 이런 문서를 제거하기 위해 URL 블록리스트(blocklist)를 이용하는 규칙이 알려져 있습니다. 이 규칙에서는 문서 출처URL이 블록리스트에 존재하는 경우, 해당 문서를 사전학습 데이터에서 제거합니다. 블록리스트로는 주로 UT1 blocklist이 많이 사용됩니다. UT1은 성인콘텐츠, 피싱사기, 데이팅사이트, 도박등 범주별로 URL이 등록되어 있어 제거하고자 하는 문서의 목적에 맞춰 선택적으로 사용할 수 있습니다.
▣ 민감한 단어의 비율
이 규칙은 민감한 단어(예: 폭력적이거나 성적인 단어)를 다수 포함하는 문서를 제거하는 방법입니다. 우선 민감한 단어목록을 사전으로 구축해 놓습니다. 이후 각 문서에 대해 사전과의 일치율이 높은 문서(즉, 민감한 단어를 많이 포함한 문서)를 제거합니다.
▣ 문자 및 단어 중복 비율
같은 문자나 단어가 반복 사용된 문서는 노이즈일 가능성이 높습니다. 예를 들어, 위 표의 기호열은 단지 백슬래시의 반복이기 때문에 노이즈로 간주해야 할 것입니다. 또한 '유사문장반복'에 대해서도 마찬가지로 구나 동 이름만 바뀌는 문장의 반복으로서 중복이 심해 노이즈로 간주할 수 있습니다. 이러한 노이즈 제거를 위해 문자나 단어의 중복률을 사용한 규칙을 적용할 수 있습니다. 구체적으로는 문서 내 문자 및 단어에 대해 N-gram을 계산한 뒤, 중복되는 N-gram의 비율이 특정 임계치를 초과하는 문서를 제거하는 규칙입니다. 위 표의 '기호열' 예시에서는 대부분의 문자 N-gram이 중복되므로 이 규칙을 통해 제거할 수 있을 것입니다. '유사문장반복'의 경우도 유니크한 단어 N-gram의 비율을 계산함으로써 제거할 수 있을 것으로 기대됩니다.
▣ 품사 비율
이는 문서내 텍스트에 대해 품사태깅을 수행하고, 특정 품사가 지나치게 높은 비율로 포함된 문서를 노이즈로 간주해 제거하는 규칙입니다. 예를 들어, 명사의 비율을 계산하여 위 표의 '명사 나열;을 제거할 수 있을 것으로 예상됩니다.
▣ 특수기호 비율
일부 문서에서는 구두점, 하이픈, 괄호, 일반적으로 사용되지 않는 특수문자등이 문서의 대부분을 처지하는 경우가 있습니다. 이러한 기호가 차지하는 비율에 따라 문서를 제거하는 필터를 생각할 수 있습니다.
▣ 불용어(stopword) 비율
불용어(stopword)란 컴퓨터가 자연어를 처리할 때 미리 처리 대상에서 제외하는 단어 목록입니다. 예를 들어, 영어에서는 'a'나 'the'처럼 자주 사용되지만 개별 맥락에서는 의미가 크지 않은 단어가 불용어로 자주 쓰입니다. 특정 문서가 LLM의 사전학습에 유용한지 판단하는 기준으로, 문서에 포함된 불용어 비율을 사용하는 경우가 있습니다. 구체적으로는 불용어가 지나치게 높은 비율로 포함된 문서는 의미있는 내용을 담고 있지 않다고 판단하여 사전학습 데이터에서 제외합니다.
▣ 노이즈 특유의 표현여부
문서에 등장하는 특정 표현을 노이즈로 간주하여 해당 표현이 포함된 줄을 삭제하거나, 삭제되는 줄이 많은 경우 문서 전체를 제거할 수 있습니다. 이때 어떤 표현을 노이즈로 간주하는지는 연구에 따라 다르지만, 예를 들어, 다음과 같은 표현이 알려져 있습니다.
줄임표(...)로 끝나는 줄
거의 모든 문자가 대문자로 구성된 줄(예: OMG THE LATEST LLM IS SOOOOO GOOD. I CAN'T BELIEVBE THIS IS...")
거의 숫자로만 구성된 줄
"더 읽으려면 로그인하십시오" 또는 "장바구니 안의 아이템"과 같은 웹 특유의 표현이 포함된 짧은 줄
"Javascript"가 포함된 줄
▣ 개인정보
Common Crawl과 같은 웹에서 수집한 데이터는 주소, 전화번호, 이메일주소, IP주소와 같은 개인정보가 포함되어 있습니다. 실제로는 Common Crawl에서 유래한 C4나 OSCAR와 같은 데이터세트에서도 이러한 개인정보가 포함되어 있다는 보고가 있습니다.
이런 데이터를 사용하여 학습된 LLM은 개인정보를 출력할 우려가 있으며, 특정 개인이나 조직에 불이익을 줄 수 있습니다. 이런 문제를 피하기 위해 필터링 과정의 하나로 데이터세트에서 개인정보를 제거할 수 있습니다. 예를 들어, 개인정보를 탐지한 뒤, 해당 부분을 특정 자리표시자(placeholder)로 치환하여 익명화하는 방법등이 있습니다. 개인정보 탐지에는 정규표현식 이외에도 머신러닝 기반의 방법이 존재합니다. 머신러닝 기반 방법이 성능 면에서 우수하지만, 정규표현식보다 많은 계산량을 필요로 하기로 하기에 대규모 사전학습 데이터 전체에 적용하기 어렵다는 이유로 정규표현식이 채택되는 경우도 있습니다.
▣ 평가데이터와의 중복비율
사전학습 데이터 구성 방식에 따라서는 LLM의 평가에 사용하는 데이터(평가 데이터)가 사전학습 데이터에 포함될 수있습니다. 평가 데이터는 일반적으로 알려지지 않은 사례에 대한 모델성능을 측정하는데 사용됩니다. 만약, 사전학습 데이터와 평가 데이터가 중복될 경우, 모델이 평가데이터를 단순히 암기하여 평가 데이터 상에ㅔ서 성능이 부당하게 높게 나타날 우려가 있습니다. 이러한 우려를 방지하기 위해 사전학습 데이터와 평가 데이터간 중복 여부를 N-gram을 통해 계산한 후, 중복된 문서는 사전학습 데이터에서 제외할 수 있습니다.
규칙기반 필터링은 규칙을 적절히 설계하면 목적한 노이즈를 포함한 문서를 효과적으로 제거할 수 있다는 장점이 있습니다. 그러나 이와 같이 몇가지 과제도 존재합니다.
첫번쨰, 필터 설계 비용이 있습니다. 필터내부의 규칙을 적절히 설계하기 위해서는 사전학습 데이터를 사람이 수작업으로 세밀하게 분석하여 노이즈를 특정한 후 이를 제거할 수 있는 방식을 고민할 필요가 있습니다. 이러한 작업에는 막대한 시간이 걸릴 뿐만 아니라, 자연어 처리에 관한 전문지식이 필요한 경우가 있습니다.
두번째, 작성된 필터가 특정 언어에 의존하게 되는 문제가 있습니다. 앞서 설명한 규칙의 대부분은 특정 언어의 특징을 활용합니다. 예를 들어, '문자나 단어의 중복비율'을 사용하는 규칙에서는 적절한 윈도우 크기 N이 언어마다 다릅니다. 또한, '민감한 단어의 비율'을 사용하는 규칙에서는 언어마다 별도의 사전을 준비해야 합니다. 이러한 문제에 대해 ROOTS코퍼스 구축과정에서는 각 언어의 화자가 필터 설계에 참여하고 있으나, 이를 제3자가 그대로 따라하는 것은 쉽지 않습니다.
세번째, 필터를 장기적으로 사용하는 경우 필터 유지보수 비용을 고려해야 합니다. 예를 들어, 새로운 필터 추가나 기존 필터를 업데이트할 때, 각 필터가 정상적으로 동작하고 서로 연계되도록 유지 및 관리하는 것은 무시할 수 없는 부담이 됩니다.
이러한 문제들에 대해서는 사전학습 데이터의 필터링을 위해 설계된 전용도구를 활용하여 인화할 수 있을 가능성이 있습니다. 예를 들어 HojiChar, DataTrove, NeMo-Curator와 같은 기존의 도구를 사용할 수 있으며, 이를 통해 필터설계나 각 필터의 유지보수 비용을 줄이는 것이 기대됩니다. 또한 다른 접근법으로는 머신러닝을 활용하여 특정 언어에 의존하지 않고, 다양한 노이즈에 범용적으로 대응할 수 있는 필터링 기법도 존재하며 이에 대해서는 따로 설명합니다.
언어 의존성이나 설계 및 유지보수 비용과 같은 규칙기반 필터링의 문제를 해결하기 위해, 최근에는 머신러닝을 이용한 필터링 기법이 제안되고 있습니다. 여기에서는 대표적인 3가지를 소개합니다.
▣ 분류기를 이용한 언어 판정 필터링
특정 언어에 특화된 사전학습 데이터를 구축할 때, 대상이 되는 언어 외의 문서는 노이즈로 간주하여 삭제할 필요가 있습니다. 특히, Common Crawl의 경우, 한국어 데이터로 라벨링된 문서중에도 실제로는 한국어 이외의 언어로 작성된 문서가 많이 포함되어 있습니다. Kreutzer논문등에 따르면, Common Crawl에서 추출된 mC4 데이터세트의 약 16% 문서에는 잘못된 언어라벨이 포함되어 있다고 보고되었습니다. 이 문제에 대응하기 위해 문서의 언어를 머신러닝모델로 판정하여 대상언어 외의 문서를 제거하는 필터링 기법이 사용됩니다. 언어판정에는 머신러닝 기반의 분류기가 일반적으로 사용되며, 대표적인 구현으로는 LangID, fastText등이 있습니다.
▣ 언어모델을 이용한 문서품질 필터링
이 필터링 기법은 언어모델은 사용하여 문서의 생성확률을 계산하고 이를 자연어다운 지표로 삼아 문서 품질을 평가합니다. 생성확률이 낮은 문서는 품질이 낮다고 판단하고 삭제함으로써 사전학습 데이터 품질향상을 목적으로 하는 필터링 방법입니다. 예를 들어 위 표에서 나타난 노이즈 대부분은 자연어로서 부적절한 문서가 많습니다. 이상적으로는 이러한 노이즈들에 대해 언어모델이 낮은 확률을 부여함으로써 노이즈를 포함한 문서를 제거할 수 있을 것입니다. 필터링에 사용되는 언어모델로는 N-gram언어모델이 많이 사용됩니다. 이는 대규모 사전학습 데이터 전체에 점수를 부여하기 위해 경량화된 언어모델이 필요하기 때문으로 생각됩니다. 한편, 최근에는 뉴런 언어모델을 필터링에 활용하는 연구도 존재합니다. 특히, Marion등은 124M, 6B, 13B, 52B 파라미터의 언어모델을 필터링에 사용했을 때의 효과를 비교하여, 대규모 언어모델이 더 품질 높은 사전학습 데이터를 구축할 수 있다고 보고하고 있습니다. 따라서, 만약 충분한 계산자원이 있다면 뉴럴 언어모델을 활용한 필터링이 더 바람직할 수 있습니다.
단, 언어모델을 이용한 필터링은 긴 문서나 특정 문서의 품질을 과소평가할 가능성이 있습니다. 이때문에 이 필터를 단순히 적용하면 사전학습 데이터의 내용에 편향이 발생할 우려가 있습니다. 이를 회피하기 위해 극단적으로 낮은 확률을 보이는 문서에 한해 제거하는 등의 조치가 권장됩니다.
▣ 분류기를 이용한 문서품질 필터링
문서 품질을 머신러닝 모델로 직접 추정하려는 시도도 이루어지고 있습니다. 이 기법에서는 먼저 사전학습 데이터를 품질이 높은 데이터(고품질 데이터)와 품질이 낮은 데이터(저품질 데이터)로 분류하여 이 데이터를 이용하여 분류기를 학습시킵니다. 그 후, 사전학습 데이터의 각 문서를 분류기에 입력하여 고품질 데이터 확률을 문서품질 점수로 사용하여 필터링합니다.
그러나 분류기의 학습에 사용할 고품질 데이터와 저품질 데이터를 준비하는 방법은 자명하지 않습니다. 예를 들어, Touvron등은 위키피디아 문서의 각주에 주목하여 거기에 열거된 URL에서 취득한 문서를 고품질 데이터로 간주했습니다. 이는 각주에서 인용되는 문서가 언어모델의 사전학습에 유용하다는 가정에 기반합니다. 한편, 저품질 데이터로는 Common Crawl에서 무작위로 샘플링한 문서를 사용했습니다.
언어모델을 이용한 필터링과 마찬가지로 분류기를 이용한 필터링 역시 사전학습 데이터에 편향을 일으킬 가능성이 있습니다. 이는 분류기가 특정한 성질의 문서를 선호하는 편향성을 가지고 있을 경우, 그렇지 않은 문서가 부당하게 낮은 평가를 받을 수 있기 때문입니다. 이 문제에 대응하기 위해 Brown, Gao논문은 점수가 낮은 문서 일부를 데이터세트에 유지하는 조치를 취하고 있지만, 반면 분류기를 이용한 필터링을 전혀 사용하지 않는 연구도 존재합니다. 예를 들어, Rae등은 방언과 같은 언어표현을 포함한 문서가 잘못된 저품질로 분류될 가능성을 우려하여 분류기를 이용한 필터링을 사용하지 않았습니다.
지금까지 설명한 내용을 정리하면 규칙기반 필터링은 목적한 노이즈를 직접 제거할 수 있지만, 필터의 구축 및 유지보수 비용이 크다는 문제가 있습니다. 이러한 문제에 대해 머신러닝 기반 기법을 활용하면 다양한 노이즈를 범용적으로 제거할 수 있는 필터를 비교적 낮은 비용으로 구축할 가능성이 있습니다. 하지만 머신러닝 모델 자체에 포함된 편향성이 사전학습 데이터의 편향을 초래할 우려가 있습ㅂ니다. 따라서 사전학습 데이터의 필터링에 있어 절대적으로 최선인 방법은 존재하지 않으면, 각 방법의 장단점을 잘 이해한 뒤 먹적에 따라 적절히 선택하는 것이 중요합니다.
©2024-2025 GAEBAL AI, Hand-crafted & made with Damon Jaewoo Kim.
GAEBAL AI 개발사: https://gaebalai.com
AI 강의 및 개발, 컨설팅 문의: https://talk.naver.com/ct/w5umt5