1장 AI는 데이터를 어떻게 이해할까: 특징량화의 원리
이전에 설명한 BPE는 출현빈도를 기반으로 한 탐욕법(greedy method)으로 텍스트를 토큰 시퀀스로 분할하는 방법이었습니다.
여기서 한 발 더 나가, "빈도개발 언어 모델" 방식 중 하나인 유니그램 언어 모델을 서브워드 분할에 적용한 논문을 봅시다. 다음은 원 논문을 읽으면서 정리해 봅니다.
서브워드에 대한 유니그램 언어 모델은 다음과 같은 가정을 둡니다.
"각 서브워드의 출현 확률은, 그 서브워드의 출현 빈도에만 의존하는 확률로 정해진다"
이 가정 아래에서 서브워드 시퀀스 t=(t1,…,tM)의 생성확률은 다음과 같이 씁니다.
여기서 각 서브워드의 출현확률은 어휘 V에 대해 다음과 같이 정규화되어 있다고 가정합니다.
유니그램 언어 모델이란, 다른 토큰에 의존하지 않고 각 토큰의 출현 확률이 독립적으로 결정되는 모델입니다. 예를 들어, "물리학"이라는 단어를 서브워드로 분할한다고 생각해 봅시다. 이때 그 앞에 어떤 서브워드가 나왔지와 관계없이, 항상 같은 방식으로 분할한다는 뜻입니다.
왜 유니그램 언어 모델을 쓰는지에 대해서는 원 논문에서 명확히 적어두지는 않았지만,
구조가 단순하고,
계산 비용이 낮고,
BPE처럼 빈도기반이라는 공통점이 있어서
BPE와의 차이를 비교적 쉽다는 점 떄문에 채택한 것으로 보입니다.
주어진 텍스트를 가장 높은 확률로 생성하는 서브워드 분할은 다음과 같이 정의됩니다.
여기서 S(X)는 입력문장 X로부터 구성가능한 서브워드 분할의 후보집합입니다. 어휘 V가 주어져 있다면, p(ti)를 잠재변수(latent variable)로 보고 EM알고리즘으로 추정할 수 있습니다. 하지만 이 논몬의 목적은 처음부터 어휘(사전)를 만들고, 동시에 각 서브워드의 출현 확률을 좋은 값으로 맞추는 것이기 때문에, 어휘가 고정되어 있다는 전체를 요구하는 EM알고리즘을 그대로 쓸 수는 없습니다.
원 논문에서는 일단 충분히 큰 어휘 V를 히유리스틱하게 준비한 다음 우리가 원하는 최종 사전 크기가 될 때까지 아래 프로세스를 반복해서
서브워드 사전 구성
각 서브워드의 출현 확률 최적화
를 동시에 수행합니다.
1. 현대 어휘를 고정한 상태에서, 각 서브워드 ti에 대한 최적의 p(ti)를 EM알고리즘으로 구합니다.
E 단계(Expectation step): 입력 문장 X에 대해 가능한 서브워드 분할 후보들의 사후 확률 p(t | X)를 계산합니다. 이를 이용해 각 서브워드 ti의 기대출현횟수(기대갓ㅂ)를 구합니다.
M 단계(Maximization step): 기대 출현 횟수를 정규화하여 새로운 p(ti)로 업데이트합니다.
2. 각 서브워드 ti에 대해 "그 서브워드를 어휘에서 제거하면 전체 우도(likelihood)가 얼마나 떨어지는지"를 나타내는 손실 li를 계산합니다.
3. li가 작은(=제거해도 덜 아쉬운) 서브워드로부터 잘라내고, 손실이 큰 상위 p%만 남기는 방식으로 어휘를 업데이트합니다. 단, 길이 1인 서브워드(문자)는 항상 남깁니다. 이는 여러 글자로 된 서브워드로는 분해가 안되는 경우에도 최소한 문자단위로는 언제나 분할이 가능하도록 보장하기 위함입니다.
처음에 "충분히 큰 어휘"를 어떻게 준비하느냐가 히유리스틱이 필요한 부분입니다. 원 논문에는 그 세부절차가 직접적으로 적혀 있지는 않지만, 다음 장에서 설명할 것이지만, 실제로는 출현 빈도가 높은 서브워드들을 모아 초기 어휘를 만듭니다.
이 일련의 학습을 통해,
사용할 서브워드의 어휘 집합과
각 서브워드의 생성 확률
을 함께 구성할 수 있게 됩니다. 이제 이를 활용해 주어진 텍스트에 대해 서브워드 분할을 수행할 수 있습니다.
BPE는 "출현 빈도"만을 보고 탐욕적으로 서브워드를 병합/분할하는 반면, 유니그램 언어 모델은 (역시 빈도 기반이라는 공통점은 있지만) 확률 모델로 서브워드 분할을 정의하기 때문에 더 유연하게 활용할 수 있습니다.
예를 들어, 주어진 문장을 서브워드로 분할할 때,
BPE는 "그때그떄 가장 좋은 쌍을 고르는 탐욕법"이라 하나의 결과만 나온다면,
유니그램 모델을ㄴ 확률 분포 위에서 정의되어 있으므로 빔서치(beam search)등을 사용해
탐욕법이 도달하지 못하는 분할도 탐색할 수 있습니다.
연습문제10: 탐욕법으로 분할했을 때보다, 빔 서치로 여러 후보를 보면서 분할하는 편이 "더 자연스럽다"ㄹ고 느껴지는 예시를 하나 직접 만들어 봅시다.
("더 좋다"의 기준은 스스로의 언어감각에 따라 판단해도 됩니다)
확률 모델이라는 점을 살려 원 논문에서 제안하는 것이 바로 서브워드 정규화(Subword Regularization)입니다. 이는 모델을 학습할 때, 서브워드 분할을 확률적으로 샘플링해서 적용하는 방법입니다. 즉, 한 문장에 대해 하나의 분할만 쓰는게 아니라, 여러 가능한 분할 중 일부를 확률적으로 골라가며 학습시킴으로써,
"가장 확률이 높은 분할에만 과도하게 특화(overfitting)되는 것을 막는다"
는 의도를 가진 기법입니다.
구체적으로는, 어떤 서브워드 분할 ti를 아래와 같이 다항 분포에 따라 샘플링합니다.
여기서,
n: "확률이 높은 순으로 상위 n개의 서브워드 분할 후보"를 뽑고, 그 집합 위에서만 샘플링을 수행한다는 의미입니다.
α: 확률 분포의 날카로움(sharpness)을 조절하는 파라미터로 α가 커질수록 확률이 높은 분할에 더 큰 가중치를 두어 그쪽으로 샘플링이 집중됩니다.
항상 최적(가장 확률이 높은) 분할만 사용해 학습하면 기계번역 모델이 그 분할 방법에 과적합될 위험이 있습니다. 이 기법은 분할의 다양성을 의도적으로 주입해 모델을 더 견고(robust)하게 만드는 "일종의 노이즈 주입 방법"으로 해석할 수 있다고 논문에서 설명합니다.
또한 이 방법은
기계번역 모델의 아키텍처에 의존하지 않고,
번역 입력 언어에도 출력언어에도 모두 적용할 수 있다는 점에서
높은 유연성과 효과를 동시에 보여줍니다.
원 논문에서도 다음과 같이 말하고 있습니다.
it is possible to harness the segmentation ambiguity as a noise to improve the robustness of NMT
(분할의 애매함을 노이즈로 활용함으로써 뉴럴 기계번역(NMT)의 견고성을 향상시키는 것이 가능하다)
즉, 서브워드 분할 방식이 하나로 고정되어야 할 이유는 전혀 없으며,
그 애매함(ambiguous segmentation)을 확률 모델로 표현하면서,
동시에 모델 성능을 끌어올리데 활용하는 것이
이 논문의 핵심 포인트입니다.
BPE와 서브워드 유니그램 언어 모델은
전자는 탐욕적(greedy)이고
후자는 확률적(probabilistic)이라는 차이는 있지만,
둘다 '문자열 출현 빈도'라는 매우 단순한 정보를 기반으로 합니다.
그리고 인간이 설계한 복잡한 언어 지식 없이, 데이터만으로 학습할 수 있는 방식들입니다. 생성형 AI에서 사용하는 서브워드 분할은 사람이 보기 쉬운 해석 가능성보다는
"데이터로부터 학습 가능하고,"
"여러 언어를 다루기 쉬우며,"
"모델이 수행하는 태스크의 성능을 최대한 끌어낼 수 있는 것"
이 더 중요하게 여겨집니다.
알고리즘 자체는 언어 비의존적이지만, "실제로 쓸만한 품질"이 될지는 결국 구체적인 구현에 달려 있습니다. 다음에 실제 구현을 다루는 다른 논문을 읽으며 자세히 설명하겠습니다.
©2024-2025 MDRULES.dev, Hand-crafted & made with Jaewoo Kim.
AI 에이전트 개발, 컨텍스트 엔지니어링 교육 컨설팅, 바이브코딩 강의 문의: https://bit.ly/4kjk5OB