3Blue1Brown 한국어님의 영상이 LLM의 작동원리에 대해 가장 이해하기 쉬운편이여서 해당 영상을 통해 요약한 내용을 정리하였습니다.
내용은 videotoblog를 통해서 변환하였고, 필요한 이미지를 캡쳐하였습니다.
짧은 영화 대본의 한 장면을 상상해 보세요. 사람과 인공지능이 대화를 나누고 있지만, 대본의 절반이 찢어져서 사람의 질문만 남아 있고 AI가 어떤 대답을 했는지는 알 수 없는 상태입니다. 이런 상황에서 놀라운 기계가 등장합니다. 이 기계는 어떤 문장이든 입력으로 넣으면 그 다음에 올 단어를 가장 그럴듯하게 예측해 줍니다.
이 기계가 있다면, 대본의 절반을 기계에 넣고 이어질 첫 번째 단어를 예측한 뒤, 그 단어를 대본에 덧붙이고 다시 다음 단어를 예측하는 일을 반복해 대본을 완성할 수 있겠죠. 실제로 ChatGPT 같은 AI와의 대화는 이런 방식으로 이루어집니다.
대규모 언어 모델(Large Language Model, LLM)은 주어진 텍스트에서 다음에 올 단어를 예측하는 매우 정교한 수학적 함수입니다. 조금 더 정확히 말하면, 딱 하나의 단어를 확정적으로 예측하는 것이 아니라, 다음에 올 단어들에 대한 확률 분포를 계산하는 함수죠.
예를 들어, ChatGPT 같은 모델을 만들 때는 가상의 사용자와 AI 어시스턴트 사이의 대화 텍스트를 만들고, 여기에 사용자의 질문을 덧붙여 AI가 어떤 식으로 반응할지 한 단어씩 예측하도록 합니다. 이때 가장 확률이 높은 단어만 고르는 것이 아니라, 가끔은 확률이 조금 낮은 단어도 랜덤하게 선택하여 좀 더 자연스럽고 사람 같은 답변을 만들어냅니다.
실제로 언어 모델은 결정론적(디터미니스틱) 모델이지만, 이렇게 하면 같은 입력이라도 매번 다른 답변이 나올 수 있습니다.
언어 모델은 인터넷에서 수집한 엄청난 양의 텍스트 데이터로 학습됩니다. 예를 들어 GPT-3가 학습한 텍스트 양은 사람이 하루 24시간 쉬지 않고 읽어도 2,600년 이상 걸릴 만큼 방대합니다. 최신 모델들은 이보다 훨씬 더 많은 양의 데이터로 훈련되죠.
이 모델들은 수백억 개에서 수천억 개까지 이르는 파라미터(가중치)를 가지고 있습니다. 이 파라미터들은 모델이 다음 단어를 예측하는 방식을 결정하는 값들입니다. 처음에는 모두 랜덤하게 설정되어 있지만, 반복 훈련을 통해 점점 더 그럴듯한 예측을 할 수 있도록 조정됩니다.
훈련 과정에서는 짧게는 몇 단어, 길게는 수천 단어로 이루어진 텍스트 데이터를 사용합니다. 기본적으로 텍스트에서 마지막 단어를 뺀 나머지를 모델에 입력하고, 모델이 마지막 단어를 어떻게 예측하는지 확인하죠. 그리고 예측이 정답에 가까워지도록 파라미터를 조금씩 조정합니다.
이때 '역전파(backpropagation)'라는 알고리즘을 사용해 모델이 점점 더 정확한 예측을 하도록 만듭니다. 이런 과정을 수없이 반복하면, 모델은 학습 데이터에만 잘 맞는 것이 아니라 처음 보는 문장에도 그럴듯한 예측을 할 수 있게 됩니다.
언어 모델을 훈련시키기 위해서는 상상을 초월하는 연산량이 필요합니다. 1초에 10억 번의 덧셈 연산이 가능한 기계가 있다고 가정해도, GPT-3 같은 모델을 훈련하는 데는 1억 년이 걸릴 정도입니다. 물론 실제로는 훨씬 더 빠른 특수 컴퓨터 칩(GPU)와 병렬 처리 기술을 사용합니다.
하지만 2017년 이전까지는 대부분의 모델이 단어를 하나씩 순차적으로 처리했기 때문에 병렬 처리에 적합하지 않았습니다. 그러다 구글 연구팀이 발표한 '트랜스포머(Transformer)'라는 새로운 모델이 많은 변화를 가져왔습니다.
트랜스포머는 텍스트를 처음부터 끝까지 순차적으로 읽는 대신, 전체 문장을 한꺼번에 병렬 처리합니다. 문장 내 각 단어는 AI가 이해할 수 있는 숫자 벡터로 변환되는데, 이 숫자 벡터는 단어의 의미와 맥락을 담고 있습니다.
트랜스포머의 핵심은 '어텐션(attention)'이라는 연산 알고리즘입니다. 어텐션은 이 숫자 벡터들이 서로 정보를 주고받으며 주변 맥락에 따라 각 단어의 의미를 적절히 조정할 수 있게 합니다.
예를 들어, '눈'이라는 단어가 '내린다'라는 단어와 함께 있으면 하늘에서 내리는 눈을 의미하는 벡터가 됩니다. 반대로 '보는 눈'이라고 하면 사람의 눈을 뜻하는 벡터로 변합니다. 이렇게 주변 단어에 따라 의미가 달라지는 것을 어텐션이 반영하는 거죠.
트랜스포머 안에는 '피드포워드 네트워크'라는 연산도 포함되어 있습니다. 이 연산은 모델이 더 많은 언어 패턴을 저장할 수 있도록 돕습니다. 어텐션과 피드포워드 연산을 여러 층(레이어)에 걸쳐 반복하면, 각 단어 벡터는 점점 더 문맥을 잘 반영하게 됩니다.
마지막 단계에서는 전체 문맥을 반영한 벡터를 가지고 다음에 올 단어의 확률 분포를 예측합니다. 앞뒤 단어들에 따라 달라지는 문맥이 반영되어 다음 단어를 예측하는 거죠.
언어 모델의 구조는 연구자들이 설계하지만, 실제 어떤 출력을 내는지는 훈련을 통해 자동으로 조정된 수십억 개의 파라미터에 의해 결정됩니다. 그렇기 때문에 이 모델이 왜 특정 단어를 다음 단어로 예측했는지 설명하기는 매우 어렵습니다.
하지만 이렇게 만들어진 모델이 생성하는 텍스트는 매우 자연스럽고, 때로는 신기할 정도로 유용합니다. 저도 매일같이 사용하고 있습니다.
Your explanation of language model mechanics is really helpful. It’s interesting how machine learning is used in various sectors, even in estimating Packers And Movers Charges From Bangalore To Chennai To Chennai with better accuracy!
Visit Here :- https://www.rehousingpackers.in/Bangalore/to-Chennai-movers.php
Large-scale language models process massive datasets using neural networks to understand, generate, and predict human language with remarkable accuracy and context. https://gb-apps.com.pk/
A very awesome blog post. We are really grateful for your blog post. You will find a lot of approaches after visiting your post. 강남바카라
I wanted to thank you for this great read!! I definitely enjoying every little bit of it I have you bookmarked to check out new stuff you post. แทงไก่ชนออนไลน์
잘읽었습니다.