언어 모델 기본

N-그램N-gram

앞의 몇 마디만 세어 다음 말을 맞히던 방식

핵심 정리
  • N-그램은 이어 붙은 말 n개 묶음이에요. 두 개면 바이그램, 세 개면 트라이그램이라고 불러요.
  • 옛날 언어 모델은 앞의 한두 마디만 보고, 그 뒤에 무슨 말이 몇 번 왔는지 세어서 다음 말을 골랐어요.
  • 보는 범위를 넓히면 세어야 할 조합이 감당할 수 없이 불어나요. 그래서 창을 넓힐 수 없었어요.
  • 한 번도 못 본 조합은 확률이 0이 돼요. 이 구멍을 메우는 보정이 늘 필요했어요.
  • 지금 방식은 앞을 통째로 보고, 세는 대신 뜻이 비슷한 말끼리 이어서 다뤄요.
목차

1비유로 이해하기

퍼즐 조각 천 개를 바닥에 쏟아 놓고 완성 그림은 상자째 덮어 둔 채 맞춘다고 해 보세요. 할 수 있는 일은 지금 손에 든 조각의 옆면 홈 모양을 보고 거기에 물릴 조각을 찾는 것뿐이에요.

이 방법도 꽤 굴러가요. 두세 조각씩은 척척 이어져요. 홈이 맞으면 색도 대체로 이어지니까요. 그런데 스무 조각쯤 이어 붙이고 물러나서 보면 이상한 일이 벌어져 있어요. 이음매는 모두 멀쩡한데 전체는 하늘도 바다도 아닌 얼룩이 돼 있어요.

옆면만 보는 방식에는 한계가 있어요. 홈 두 칸을 보는 대신 다섯 칸을 한꺼번에 보려 하면 따져야 할 경우의 수가 순식간에 손을 벗어나요.

2자세히 알아보기

앞의 몇 마디를 세었어요

언어 모델이 한 일은 단순해요. 엄청난 양의 글을 훑으면서 어떤 말 뒤에 어떤 말이 몇 번 나왔는지 세어 표를 만드는 것이었어요. "밥을" 뒤에는 "먹었다"가 수만 번, "던졌다"가 몇 번 나왔다는 식으로요.

다음 말을 고를 때는 그 표를 찾아봐요. 앞 두 마디가 "오늘 날씨가"였다면 그 뒤에 왔던 말들의 횟수를 보고 가장 많이 온 것을 고르거나, 횟수에 비례해 뽑아요. 배우는 과정도 세는 것이 전부라 학습이 아주 빨랐어요.

보는 범위 n이 이름이 됐어요. 앞 한 마디만 보면 바이그램, 두 마디를 보면 트라이그램이에요. 범위가 넓을수록 문장이 자연스러워졌어요.

창을 넓히면 곧 벽에 부딪혀요

그렇다면 범위를 열 마디로 늘리면 되지 않을까요. 여기서 이 방식은 무너져요. 다룰 말이 5만 가지일 때 두 마디 조합은 25억 가지, 세 마디 조합은 그 5만 배예요. 표를 만들 수도 저장할 수도 없어요.

숫자가 커지는 것만 문제가 아니에요. 조합이 많아질수록 대부분의 칸이 0으로 비어요. 아무리 많은 글을 모아도 세상의 모든 열 마디 조합을 볼 수는 없으니까요.

그래서 실제로 쓸 수 있는 범위는 서너 마디에서 멈췄어요. 이음매는 자연스러운데 문단 전체는 앞뒤가 안 맞는 글이 나오는 이유가 여기 있어요.

못 본 조합은 0이 돼요

표에 없는 조합을 만나면 확률이 0이 돼요. 처음 보는 이름이 들어간 문장은 아예 다룰 수 없다는 뜻이에요. 실제 글에서는 이런 일이 늘 생기니까 그냥 둘 수 없었어요.

그래서 빈칸을 메우는 방법들이 쓰였어요. 모든 조합에 아주 작은 값을 미리 얹어 두거나, 세 마디 조합이 없으면 두 마디 조합으로, 그것도 없으면 한 마디로 한 칸씩 물러나서 찾는 식이었어요.

이런 보정은 구멍을 막아 주지만 뜻을 알려 주지는 않아요. "고양이"와 "고양이들"은 이 방식에게 아무 상관 없는 두 개의 다른 말이에요. 하나를 많이 봤다고 다른 하나를 잘 다루게 되지 않아요.

지금 방식은 무엇이 달라졌나

가장 큰 변화는 두 가지예요. 하나는 보는 범위예요. 지금 모델은 앞의 두세 마디가 아니라 수천 조각을 한꺼번에 놓고 봐요. 문단 앞에서 정한 이름이 뒤까지 유지되는 이유예요.

다른 하나는 세는 대신 뜻이 비슷한 말끼리 이어 두는 것이에요. 말마다 숫자 묶음을 붙여 두면 "고양이"에서 배운 것이 "고양이들"과 "냥이"에도 얼마간 옮겨 가요. 한 번도 못 본 조합이 나와도 비슷한 자리에 있던 말들을 근거로 답할 수 있어요.

그래서 표 크기가 조합 수만큼 불어나지 않아요. 말의 가짓수가 늘어도 붙여 두는 숫자 묶음의 크기는 그대로예요. 창을 넓히면서도 감당할 수 있는 이유예요.

아직 남아 있는 자리

옛 방식이라고 사라지지는 않았어요. 세기만 하면 되니 가볍고 빠르고, 왜 그 후보가 나왔는지 표를 열어 확인할 수 있어요.

검색창의 자동완성, 오타 교정 후보, 키보드의 다음 단어 추천처럼 짧은 범위면 충분하고 즉시 답해야 하는 자리에서는 지금도 쓰여요. 글을 비교하거나 표절을 찾을 때 세 글자씩 끊어 겹치는 정도를 재는 데도 쓰이고요.

무엇보다 다음 말을 맞히는 훈련이라는 발상 자체가 그대로 이어졌어요. 지금 모델도 하는 일은 같아요. 보는 범위와 다루는 방식이 달라졌을 뿐이에요.

3조금 더 정확하게

N-그램 모델은 앞의 n에서 하나를 뺀 만큼만 보면 그다음이 정해진다고 가정하고, 학습 자료에서 센 횟수를 나눠 확률표를 만들어요. 이 가정 덕분에 계산이 간단해지지만, 그 범위를 넘어선 관계는 아예 없는 셈 치는 대가를 치러요. 빈칸을 메우는 보정에는 모든 칸에 작은 값을 더하는 방법과 한 칸씩 물러나 찾는 방법이 있어요. 이렇게 만든 모델이 글을 얼마나 잘 맞히는지 재는 자로 혼란도라는 값이 쓰였는데, 이 자는 지금 모델을 평가할 때도 그대로 쓰여요.

비유가 어긋나는 지점도 있어요. 퍼즐 조각의 홈은 맞거나 안 맞거나 둘 중 하나지만, 다음 말은 하나로 정해지지 않아요. 표에는 여러 후보가 저마다의 횟수와 함께 남아 있어요. 또 퍼즐에는 원래 정답 그림이 있지만 글에는 정답이 하나가 아니에요. 그리고 퍼즐은 아무 데서나 시작할 수 있지만 이 방식은 언제나 왼쪽에서 오른쪽으로만 이어 붙여요.

4직접 해보기

5흔한 오해

  • N-그램이 문법을 배운 것이라고 생각하기 쉽지만, 실제로는 어떤 말 뒤에 어떤 말이 몇 번 왔는지 센 표일 뿐이에요.

  • 범위를 늘리면 성능이 계속 좋아진다고 여기기 쉽지만, 실제로는 조합 수가 폭발하고 대부분의 칸이 비어서 오히려 못 쓰게 돼요.

  • 지금 AI도 앞 몇 마디만 보고 다음 말을 고른다고 생각하기 쉽지만, 실제로는 앞의 수천 조각을 한꺼번에 놓고 봐요.

7한 줄 요약

그러니까N-그램은 앞 몇 마디를 세어 다음 말을 맞히던 방식이고, 좁은 창과 못 본 조합이라는 두 벽 때문에 지금 방식으로 넘어왔어요.

잘못된 내용이나 더 좋은 비유가 있나요? 수정 제안 보내기 · 마지막 수정2026-09-02