본문으로 건너뛰기
Margin

가능성과 오차 사이

최근 노트

갈래

언어와 데이터

언어 모델은 어떻게 다음 단어를 고르나

요즘 화제가 되는 언어 기술의 바탕에는 뜻밖에도 단순한 일이 깔려 있다. 앞에 놓인 말들을 보고 다음에 올 말을 가늠하는 일이다. 빈칸 채우기 놀이와 다르지 않다. 그런데 이 단순한 일을 아주 잘하게 되면, 묻는 말에 답하고 글을 잇고 번역을 하는 일까지 해낸다. 이 글은 언어 모델이 다음 단어를 어떻게 고르는지, 그 속을 들여다본다.

다음 말을 가늠한다는 것

먼저 그림을 그려보자. 비가 오니 우산을 이라는 말 다음에 무엇이 올까. 챙겼다, 썼다 같은 말이 자연스럽다. 먹었다나 날아갔다는 어색하다. 우리는 앞말의 흐름만 보고도 다음에 올 만한 말을 좁힐 수 있다. 언어 모델이 하는 일이 바로 이것이다. 앞에 놓인 말들을 단서 삼아 다음 자리를 채울 말을 가늠한다.

언어 모델이란 이렇게 말의 흐름에서 다음을 가늠하는 장치를 가리킨다. 사람의 말을 다루는 여러 기술의 한복판에 이 장치가 있다. 그 정의와 쓰임은 위키백과의 언어 모델 항목에 정리되어 있다. 기계가 사람의 말을 통째로 다루는 큰 그림은 기계의 읽기에서 먼저 살폈다.

예전엔 몇 칸만 보았다

다음 말을 가늠하는 일은 새롭지 않다. 오래전에도 기계는 이 일을 했다. 다만 방식이 단순했다. 바로 앞의 몇 단어만 보고 다음을 가늠한 것이다. 앞 두세 단어를 보고 그다음에 무엇이 자주 왔는지를 세어 가장 흔한 말을 골랐다. 짧은 창으로 앞을 살핀 셈이다.

이 방식은 가까운 흐름은 그럭저럭 다뤘지만 한참 앞의 단서는 놓쳤다. 문장이 길어지면 금세 길을 잃었다. 또 앞 단어를 길게 보려 할수록 셈해야 할 경우의 수가 걷잡을 수 없이 불어났다. 앞을 넓게 보면서도 셈이 감당할 만한 방법을 찾는 것이 오랜 숙제였다.

하나의 답이 아니라 가능성의 분포

여기서 가장 중요한 점이 있다. 언어 모델은 다음에 올 단 하나의 정답을 떠올리는 것이 아니다. 다음 자리에 올 수 있는 수많은 후보를 두고, 각각이 얼마나 그럴듯한지를 수로 매긴다. 어떤 말은 매우 그럴듯하고, 어떤 말은 가능은 하지만 어색하며, 어떤 말은 거의 나오지 않는다. 이 그럴듯함의 크기가 곧 확률이다.

그래서 언어 모델은 다음 말에 대한 가능성의 분포를 내놓는다고 말한다. 가능한 말들 위에 그럴듯함이 어떻게 퍼져 있는지를 그린 것이다. 이 분포에서 어떤 말을 실제로 고를지는 그다음 문제다. 핵심은 모델이 다루는 것이 확정된 답이 아니라 가능성의 지형이라는 사실이다. 언어를 다루는 일이 어떻게 확률과 만나는지는 언어와 확률에서 본격적으로 다룬다.

이 차이는 생각보다 중요하다. 다음에 올 말을 하나로 못 박지 않고 여러 갈래의 가능성으로 다루기에, 모델은 사람 말의 다채로움을 담아낼 수 있다. 같은 첫머리라도 이어질 수 있는 말은 여럿이고, 모델은 그 여럿을 그럴듯함의 크기와 함께 품는다. 정답 하나를 찾는 장치가 아니라 가능성의 지형을 그리는 장치인 것이다.

어떻게 익히는가

그렇다면 모델은 어떤 말이 더 그럴듯한지를 어떻게 알게 될까. 답은 방대한 글로 빈칸 채우기를 끝없이 연습하는 것이다. 사람들이 쓴 헤아릴 수 없이 많은 문장에서 한 부분을 가리고 그 자리에 올 말을 맞혀보게 한다. 맞히면 그대로 두고, 빗나가면 다음엔 더 잘 맞히도록 모델의 셈을 조금씩 고친다. 이 과정을 어마어마하게 되풀이한다.

이렇게 연습을 쌓다 보면, 모델은 어떤 흐름 뒤에 어떤 말이 자주 오는지에 대한 방대한 감각을 갖추게 된다. 규칙을 외운 것이 아니라 사례를 통해 익힌 것이다. 그래서 언어 모델의 솜씨는 얼마나 많은, 그리고 얼마나 좋은 글로 연습했는지에 크게 기댄다. 재료가 부실하면 솜씨도 부실하다.

가까운 말과 먼 말

다음 말을 잘 가늠하려면 앞말을 잘 살펴야 하는데, 여기에 묘한 어려움이 있다. 바로 앞의 한두 단어만 보아서는 부족할 때가 많다는 것이다. 문장이 길어지면 한참 앞에 나온 말이 다음 자리를 좌우하기도 한다. 누가 무엇을 했는지 한참 전에 밝혀두고, 뒤에 가서 그 사람을 다시 가리키는 경우가 그렇다.

그래서 좋은 언어 모델은 앞말을 살필 때 가까운 말과 먼 말을 함께 본다. 어떤 자리를 채울 때 앞의 어느 말에 더 무게를 두어야 하는지를 가려, 멀리 있어도 중요한 단서면 끌어와 참고한다. 사람이 글을 읽을 때 핵심이 되는 앞 대목을 머릿속에 붙들고 있는 것과 비슷하다. 단어를 좌표로 다루는 일과 이 문맥 읽기가 어떻게 맞물리는지는 의미의 기하학에서 살폈다.

얼마나 멀리까지 보나

모델이 한 번에 살필 수 있는 앞말의 길이에는 한계가 있다. 이 길이를 흔히 문맥 창이라 부른다. 창이 좁으면 가까운 흐름만 보고, 창이 넓으면 한참 앞의 단서까지 끌어와 참고한다. 긴 글의 앞뒤를 꿰는 대화나 글에서는 이 창의 너비가 솜씨를 크게 좌우한다.

창을 넓히면 더 멀리 보지만 그만큼 살펴야 할 말이 늘어 셈이 무거워진다. 그래서 얼마나 넓은 창을 둘지도 한쪽으로 키운다고 능사가 아니라 균형의 문제다. 창 안에 담기지 않은 한참 앞의 내용은, 아무리 중요해도 모델의 시야 밖으로 밀려난다.

한 칸씩 쌓아 올리다

모델이 긴 글을 지어내는 방식도 단순하다. 다음 한 단어를 고른 뒤, 그 단어를 앞말에 보태고 다시 그다음 단어를 고른다. 이 일을 한 칸씩 되풀이하며 글을 늘려간다. 한 번에 문장을 통째로 떠올리는 것이 아니라, 단어를 차례차례 이어 붙이는 것이다.

이 방식에는 묘한 성질이 있다. 한 번 고른 단어는 그다음 선택의 발판이 된다. 그래서 앞에서 살짝 어긋난 말이 나오면, 그것을 발판 삼은 뒷말이 점점 더 엉뚱한 길로 빠지기도 한다. 한 칸의 작은 어긋남이 긴 글에서 큰 탈선으로 불어날 수 있는 것이다. 매끄럽게 시작한 글이 끝에 가서 길을 잃는 일이 생기는 까닭이다.

늘 가장 그럴듯한 말만 고르지는 않는다

모델이 가능성의 분포를 내놓으면, 거기서 말을 고르는 방식에도 선택이 있다. 늘 가장 그럴듯한 말만 고를 수도 있지만, 그러면 글이 단조롭고 뻔해지기 쉽다. 그래서 때로는 그럴듯함에 비례해 조금씩 다른 말도 섞어 고른다. 가장 높은 후보만이 아니라 그에 버금가는 후보들에도 기회를 주는 것이다.

이렇게 약간의 무작위를 섞으면 글이 한결 자연스럽고 다채로워진다. 같은 첫머리를 주어도 매번 조금씩 다른 글이 나오는 까닭이 여기에 있다. 다만 무작위를 너무 키우면 엉뚱하고 두서없는 말이 튀어나오고, 너무 줄이면 밋밋해진다. 다양함과 그럴듯함 사이의 줄다리기인 셈이다.

얼마나 잘 맞히는지 재기

모델이 다음 말을 얼마나 잘 가늠하는지는 어떻게 잴까. 한 가지 방법이 모델에게 새 글을 주고, 그 글의 단어들을 모델이 얼마나 그럴듯하게 여겼는지를 보는 것이다. 실제로 나온 단어에 높은 그럴듯함을 매겼다면 잘 맞힌 것이고, 낮게 매겼다면 헛다리를 짚은 것이다. 모델이 글을 보고 얼마나 덜 놀라는지를 재는 셈이다.

덜 놀란다는 것은 그만큼 그 글의 흐름에 익숙하다는 뜻이다. 잘 익은 모델은 자연스러운 글 앞에서 별로 놀라지 않고, 어설픈 모델은 매 단어마다 당황한다. 다만 이 잣대는 모델이 연습한 글과 비슷한 글에서만 미덥다. 영 다른 종류의 글에서는 잘 맞히던 모델도 헤매기 쉽다.

연습한 글과 실제 글의 틈

모델의 솜씨에는 보이지 않는 한계가 하나 있다. 모델은 연습한 글을 닮는다. 연습 재료가 한쪽으로 치우쳐 있으면 모델의 말도 그쪽으로 기운다. 특정한 말투, 특정한 관점, 특정한 시기의 표현이 도드라지게 묻어난다. 모델이 중립적이고 고른 언어를 쓰리라는 보장은 없다.

또 모델은 연습할 때 보지 못한 새로운 일 앞에서 약하다. 자주 나온 흐름은 매끄럽게 잇지만, 드문 상황이나 처음 보는 짜임에서는 엉뚱한 말을 내놓기 쉽다. 익힌 것을 새 경우에 잘 펴는 능력, 곧 일반화가 어디까지 미치는지가 모델의 진짜 실력을 가른다.

그럴듯한 것과 사실인 것

여기서 꼭 짚어야 할 것이 있다. 언어 모델이 고르는 것은 그럴듯한 말이지 사실인 말이 아니라는 점이다. 모델은 어떤 말이 어떤 말과 어울려 자주 나타나는지를 익혔을 뿐, 그 말이 참인지 거짓인지를 따로 아는 것이 아니다. 그래서 매끄럽고 그럴듯하지만 사실과 어긋난 말을 천연덕스럽게 내놓을 수 있다.

이것이 흔히 말하는 환각이다. 모델은 빈칸을 그럴듯하게 채울 뿐인데, 그 그럴듯함이 사실의 보증은 아니다. 특히 흔치 않은 일이나 정확한 숫자, 출처가 걸린 내용에서 이런 어긋남이 잘 생긴다. 모델의 말을 받아들일 때 그것이 그럴듯할 뿐인지 정말 맞는지를 따로 따져야 하는 까닭이다. 데이터에서 진짜와 가짜를 가리는 더 일반적인 이야기는 신호와 잡음에서 다룬다.

규칙이 아니라 통계다

거듭 짚을 것은, 모델이 문법 규칙을 외워 말을 만드는 것이 아니라는 점이다. 주어 다음에 동사가 온다는 식의 규칙을 따로 넣은 것이 아니다. 그저 수많은 글에서 어떤 말 뒤에 어떤 말이 자주 왔는지를 통계로 익혔을 뿐이다. 문법에 맞는 말이 나오는 것은 그런 말이 글에 흔했기 때문이지, 규칙을 지켜서가 아니다.

이 점은 모델의 강점이자 약점을 함께 설명한다. 규칙으로는 담기 어려운 말의 미묘한 결까지 통계로 흡수하는 것이 강점이라면, 통계에 없던 낯선 짜임 앞에서 흔들리는 것이 약점이다. 사람이 적어 넣은 규칙이 아니라 데이터에서 길어 올린 경향이 모델을 움직인다.

날것을 길들이기

방대한 글로 빈칸 채우기만 익힌 모델은 그럴듯한 말을 잘 만들지만, 늘 사람이 바라는 대로 답하지는 않는다. 엉뚱한 방향으로 흐르거나, 묻지 않은 말을 늘어놓기도 한다. 그래서 그 뒤에 사람의 피드백으로 모델을 다듬는 과정을 더한다. 어떤 답이 더 쓸모 있고 적절한지를 사람이 알려주어, 모델이 그쪽으로 기울도록 손보는 것이다.

이 길들이기 덕분에 모델은 한결 다루기 쉬워지지만, 그렇다고 그럴듯함과 사실의 틈이 사라지는 것은 아니다. 사람의 손길이 닿은 모델도 여전히 매끄러운 거짓을 내놓을 수 있다. 길들이기는 모델을 더 쓸모 있게 만들 뿐, 모델이 다루는 것이 가능성이지 진실이 아니라는 근본을 바꾸지는 못한다.

믿음을 고치는 일과의 닮음

다음 말을 가늠하는 일은 새로운 정보로 믿음을 고치는 일과도 닮았다. 모델은 앞말이 하나씩 주어질 때마다 다음에 올 말에 대한 가늠을 고쳐나간다. 비가 다음에 오니는 어느 정도 그럴듯해지고, 비가 오니 우산을 다음에 챙겼다는 더욱 그럴듯해진다. 새 단서가 들어올 때마다 가능성의 지형이 다시 그려진다.

이렇게 증거에 따라 가능성을 고쳐가는 사고는 확률을 다루는 일의 바탕에 깔려 있다. 그 셈을 또렷한 규칙으로 다듬은 것이 베이즈의 생각인데, 그 이야기는 베이즈의 생각에서 풀어낸다. 다음 말을 가늠하는 일과 믿음을 갱신하는 일은 결국 같은 결의 사고다.

언어 모델은 다음 말의 가능성을 그리고 거기서 하나를 고른다. 그것이 그럴듯한 말일 뿐 사실인 말은 아니라는 점을 잊지 않는 것이 이 기술을 대하는 첫 태도다. 모르는 말이 나오면 용어와 자료를 참고하면 된다.

다음 단어를 고른다는 단순한 일이, 가능성을 셈하고 문맥을 읽고 다양함을 조절하는 정교한 과정을 품고 있다. 그리고 그 모든 과정의 끝에서 나오는 것은 확정된 진실이 아니라 그럴듯한 한 갈래의 말이다. 이 사실을 또렷이 새겨두면, 언어 모델이 내놓는 매끄러운 글 앞에서도 한 걸음 물러서 그 그럴듯함의 정체를 차분히 따져볼 수 있다.