LLM이란 — 지워진 실험 노트를 이어붙이는 확률 기계
이 토픽을 마치면
ChatGPT·Claude·Gemini가 어떻게 대답을 만들어내는가의 근본 원리를 이해하게 됩니다. 다음 토큰 예측이라는 단순한 규칙이 어떻게 사전 학습·자기회귀 생성·인간 피드백 정렬의 여정을 거쳐 오늘의 인공 조력자로 완성되는지, 왜 가끔 헛소리(환각)를 하는지, 그리고 바이오 연구자의 실무에 어떻게 활용할 수 있는지를 하나의 이야기로 이어붙일 수 있게 됩니다.
본 편은 이 트랙(AI Native)의 첫 편이자 지도(map) 역할입니다. 여기서 등장하는 개념들은 이후 14편에 걸쳐 세부적으로 파고들 예정이니, 지금은 큰 그림을 그리는 데 집중해도 좋습니다.
지워진 실험 노트가 있다고 상상해봅시다
여러분이 대학원생이라고 해봅시다. 방금 유학 간 선배가 남기고 간 오래된 실험 노트를 물려받았습니다. 그런데 노트를 열자마자 실망합니다. 커피를 여러 번 쏟았는지, 각 페이지의 오른쪽 절반이 얼룩과 흐려짐으로 지워져 있습니다. 왼쪽에는 실험 순서·재료·조건이 남아 있고, 오른쪽에 있어야 할 관찰·결과·해석은 알아볼 수 없습니다.
여러분은 이 노트를 복원해야 합니다. 그런데 마침 손에 마법 같은 기계가 하나 있습니다. 어떤 실험 기록이든 앞부분을 이 기계에 입력으로 넣으면, 그다음에 이어질 한 단어를 가장 그럴듯하게 예측해주는 기계입니다. 이 기계가 있으면 무엇을 할 수 있을까요?
간단한 절차입니다. 남아 있는 왼쪽 절반을 통째로 기계에 넣습니다. 기계가 다음에 올 첫 번째 단어를 예측합니다. 그 단어를 노트에 붙입니다. 이제 새로 붙인 문장 전체를 다시 기계에 입력으로 넣습니다. 다음 단어를 또 예측합니다. 이 과정을 반복하다 보면 지워진 오른쪽 절반이 저절로 복원됩니다. 복원된 문장이 원래 선배가 적은 것과 완전히 같지는 않겠지만, 실험 논리 흐름을 자연스럽게 이어붙인 그럴듯한 결과가 나옵니다.
바로 이것이 여러분이 매일 사용하는 ChatGPT·Claude·Gemini의 근본 작동 원리입니다. 우리가 이 기계와 나누는 대화가 실은 이런 식으로 이루어집니다. 사용자의 질문 뒤에 AI가 뭐라고 대답할지를 한 단어(정확히는 한 토큰)씩 예측해 이어붙이는 것뿐입니다.
이 관점은 우리를 인지적 환상에서 구해줍니다. LLM은 "질문을 이해하고 답을 아는 똑똑한 영혼"이 아닙니다. 통계적으로 가장 그럴듯한 다음 단어를 뽑아 이어붙이는 정교한 기계일 뿐입니다. 이 진실을 붙잡고 있으면 앞으로 등장하는 모든 개념이 자연스럽게 연결됩니다.
검색과 뭐가 다른가
여기서 흔한 혼동 하나를 짚고 갑시다. 구글 검색과 ChatGPT는 완전히 다른 물건입니다.
구글 검색은 인터넷 어딘가에 이미 저장된 문서를 찾아서 링크로 알려줍니다. 답 자체는 그 링크 안에 있고, 구글은 잘 찾아주는 역할만 합니다. 데이터베이스에서 조회하는 것에 가깝습니다. 실험 노트 비유로 말하자면, 다른 사람이 남긴 비슷한 실험 노트 원본을 찾아서 통째로 건네주는 것.
LLM은 데이터베이스가 아닙니다. 저장된 문서를 찾는 게 아니라, 답을 매번 새로 만들어냅니다. 같은 질문을 두 번 해도 조금씩 다른 답이 나올 수 있는 이유가 이겁니다. 실험 노트 비유로 말하자면, LLM은 원본을 찾아 건네주는 게 아니라 지워진 부분에 어울릴 법한 문장을 즉석에서 만들어냅니다.
이 차이가 결정적입니다. 검색은 검색어와 문서 사이의 매칭이 전부이지만, LLM은 학습한 텍스트의 패턴을 이용해 처음 보는 조합의 문장도 만들어낼 수 있습니다. 이 성질이 창의성의 원천이자, 동시에 뒤에서 볼 환각의 원천이기도 합니다.
정확한 정의 — 다음 토큰의 확률을 예측하는 함수
이제 좀 더 정밀하게 정의해봅시다.
LLM(대형 언어 모델, Large Language Model) 은 어떤 텍스트가 주어졌을 때 그 뒤에 이어질 단어를 예측하는 매우 정교한 수학적 함수입니다.
여기서 미묘한 지점 하나. 딱 하나의 단어를 확정적으로 예측하는 것이 아니라, 다음에 올 수 있는 모든 단어에 대한 확률을 계산하는 함수입니다.
예를 들어 실험 노트에 "PCR 반응 결과 밴드가" 라는 문장을 LLM에 넣으면 이런 확률 분포가 나옵니다:
"나타났다" 확률: 0.42
"관찰되었다" 확률: 0.18
"없었다" 확률: 0.11
"흐릿하게" 확률: 0.08
"두 개" 확률: 0.05
...
"고양이" 확률: 0.0000001여기서 가장 높은 확률의 단어 하나를 뽑아서 붙입니다. 그다음엔? 새로 붙인 문장 전체를 다시 입력으로 넣고, 또 다음 단어의 확률 분포를 계산합니다. 이 과정을 반복하면서 한 단어씩 문장을 만들어갑니다.
이걸 CS와 통계학 용어로 자기회귀(autoregressive) 모델이라 부릅니다. 자기가 뱉은 것을 다시 자기 입력에 넣는다는 뜻. GPT의 "GT"가 바로 Generative Pre-trained Transformer의 GT, 곧 자기회귀 생성기입니다.
왜 매번 답이 조금씩 다른가
여기 흥미로운 지점이 있습니다. LLM은 결정론적(deterministic) 모델입니다. 즉 같은 파라미터·같은 입력이면 확률 분포는 정확히 똑같이 나옵니다. 그런데도 우리는 같은 질문에 매번 조금씩 다른 답을 받습니다. 왜일까요?
확률이 가장 높은 단어만 뽑지 않고, 가끔은 조금 낮은 확률의 단어도 랜덤하게 선택하도록 만들었기 때문입니다. 이 랜덤 정도를 조절하는 값을 온도(temperature) 라고 부릅니다.
- 온도가 낮으면 가장 확률 높은 단어만 뽑아 답이 항상 비슷하고 안전합니다. 대신 답이 밋밋하고 반복적일 수 있습니다. 온도 0은 완전 결정론적.
- 온도가 높으면 확률 낮은 단어도 자주 뽑혀 창의적이고 다양한 답이 나옵니다. 대신 이상한 답이 나올 위험도 커집니다.
결정론적 모델에 인위적 무작위성을 주입한다 — 이것이 같은 질문에 매번 다른 답이 나오는 진짜 이유입니다. 함수 자체는 항상 같은 확률을 계산하지만, 그 확률에 따라 주사위를 던지는 단계에서 무작위성이 생깁니다.
CS 감각으로 표현하면, 자기회귀 생성 루프는 아래 pseudocode로 요약됩니다:
context = 사용자_프롬프트while 종료_조건_아님: 확률분포 = 모델.다음_토큰_확률(context) 다음_토큰 = 샘플링(확률분포, temperature=1.0) context = context + 다음_토큰 yield 다음_토큰바이오 실무 힌트. 논문 초록 요약이나 실험 계획 브레인스토밍처럼 정확성보다 다양한 관점이 필요할 때는 온도를 조금 높입니다(0.71.0). 정확한 유전자 이름·화학식·수치를 다룰 때는 온도를 낮춥니다(0.00.3). Cursor·Claude Code 같은 도구가 대부분 낮은 온도를 기본값으로 쓰는 이유가 여기 있습니다 — 코드는 무작위성이 곧 버그니까요.
토큰이란 정확히 무엇인가
지금까지 "단어"라고 편하게 말했지만 정확히는 토큰(token) 입니다. 토큰은 단어보다 작은 단위인 경우가 많습니다.
예를 들어 영어 단어 unbelievable은 대개 un, believe, able 세 개의 토큰으로 쪼개져서 처리됩니다. 한국어는 자주 쓰는 어절 단위로 쪼개지지만, 드문 단어는 음절 단위 또는 그보다 작게 쪼개지기도 합니다. 예를 들어 프로스타글란딘은 프로스, 타글, 란딘처럼 여러 조각으로 나뉠 수 있습니다.
왜 굳이 이렇게 쪼갤까요? 사전(vocabulary)에 있는 모든 단어를 담을 수는 없기 때문입니다. 세상 모든 단어를 사전에 넣으면 사전 크기가 폭발합니다. 반면 자주 쓰이는 조각들만 사전에 넣어두면, 드문 단어도 이 조각들의 조합으로 표현할 수 있습니다. 이런 방식을 서브워드 토큰화(subword tokenization) 라고 합니다. BPE(Byte-Pair Encoding), WordPiece, SentencePiece 등의 알고리즘이 이 역할을 합니다.
토큰의 실용적 의미. GPT·Claude·Gemini의 요금은 대개 입력 토큰 수 + 출력 토큰 수로 계산됩니다. 한국어는 영어보다 토큰 수가 대략 1.5~2배 많이 나오는 편입니다. 같은 뜻의 문장이라도 한국어로 쓰면 요금이 더 나올 수 있다는 뜻입니다.
바이오 관점의 특이 사항. DNA·단백질 서열을 LLM에 넣을 때는 토큰화가 특이하게 작동합니다. ATGCTA 같은 서열은 사전에 정확한 조각이 있을 리 없어서 대개 개별 문자 단위로 쪼개집니다. 이는 긴 서열을 처리하려면 토큰 수가 폭발한다는 뜻입니다. 서열 전용 모델(예: ESM, ProGen)은 별도의 토큰화 방식을 씁니다.
어떻게 이렇게 잘 예측하는가 — 사전 학습(Pre-training)의 규모
여기서 진짜 놀라운 부분이 시작됩니다. LLM은 인터넷에서 수집한 엄청난 양의 텍스트 데이터로 학습합니다. 얼마나 많은 양일까요?
GPT-3의 학습 데이터는 대략 4,000억 개 토큰(약 3,000억 개 단어)으로 알려져 있습니다. 이 규모의 감을 잡기 위한 사고 실험 하나. 국내 4년제 대학 도서관에 소장된 도서 100만 권을 모두 읽는다고 가정합시다. 평균 도서를 300페이지·페이지당 300단어로 잡으면 도서관 전체가 약 900억 단어. 그럼 GPT-3 학습 데이터는 이 대학 도서관 3~4개 분량입니다.
여기서 그치지 않습니다. 요즘 나온 GPT-4·Claude·Gemini 같은 최신 프론티어 모델은 이보다 훨씬 더 많은 양으로 훈련되었습니다. 상상해 봅시다. 국내 모든 4년제 대학 도서관의 도서 + 위키피디아 전체 + 오픈 소스 코드 저장소(GitHub)의 활동 리포지토리 + 학술 논문 데이터베이스(arXiv, PubMed 등)의 상당 부분 — 이 정도가 사전 학습 데이터의 실체입니다.
이걸 어떻게 학습할까요? 모델 속에 있는 수많은 다이얼(dial)을 조정하는 방식으로 학습합니다. 이 다이얼들, 즉 파라미터(parameter) 또는 가중치(weight) 라 부르는 값들이 언어 모델의 결과를 결정합니다. 이 다이얼들을 바꾸면 모델이 다음 단어를 어떻게 예측할지도 달라집니다.
대형 언어 모델(Large Language Model) 이라는 이름의 "Large"는 이 파라미터 수를 가리킵니다. 수백억(billion)에서 수천억(hundreds of billion) 개의 파라미터를 가진 신경망들입니다. GPT-3는 약 1,750억 개, 최신 프론티어 모델은 그 훨씬 이상.
이렇게 많은 파라미터 값을 사람이 직접 정할 수는 없습니다. 처음에는 랜덤하게 설정된 파라미터 값들이 훈련을 반복하면서 점점 더 그럴듯한 예측을 할 수 있는 값들로 조정됩니다.
훈련 방식은 다음과 같습니다.
- 학습 데이터에서 짧게는 몇 단어, 길게는 수천 단어로 이루어진 텍스트 조각을 준비합니다.
- 그 텍스트에서 마지막 단어를 뺀 나머지를 모델의 입력으로 넣고, 모델이 마지막 단어를 어떻게 예측하는지 확인합니다.
- 그 예측이 정답에 가까워지도록 모델의 파라미터를 아주 조금 조정합니다.
- 이때 역전파(backpropagation) 라는 알고리즘을 사용해 점점 정답에 가까워지도록 합니다.
이 과정을 수없이 많이 반복하면, 모델은 학습 데이터의 다음 단어만 잘 예측하는 게 아니라 처음 보는 문장에 대해서도 그럴듯한 예측을 할 수 있게 됩니다. 이걸 일반화(generalization) 라고 부릅니다.
얼마나 큰 계산이 필요한가 — 바이오 실험 규모로 감 잡기
이 엄청난 수의 파라미터와 데이터를 처리하려면 상상을 초월하는 연산량이 필요합니다. 바이오 연구자에게 익숙한 규모로 감을 잡아 봅시다.
포유동물 세포의 세포주기는 대략 24시간입니다. 세포 하나가 한 번 분열하는 데 하루가 걸린다는 뜻. GPT-3의 훈련 연산량은 대략 3 × 10^23 FLOPS(부동소수점 연산). 만약 세포 분열 한 번을 연산 한 번으로 비유한다면, GPT-3 훈련에 필요한 연산량은 세포 3 × 10^23번의 분열과 같습니다.
이게 얼마나 큰 수인지 감이 안 옵니다. 성인 몸 안의 세포 수는 약 30조(3 × 10^13) 개. 즉 몸 안의 모든 세포가 동시에 딱 한 번 분열해도 3 × 10^13 회의 연산에 해당합니다. GPT-3 훈련은 이 몸 전체 세포 분열의 100억 배에 해당하는 연산량. 몸 전체가 분열하는 사건이 하루에 한 번씩 100억 일 반복되어야 채워지는 규모입니다. 100억 일 = 약 2,700만 년.
이 계산을 실제로 감당하기 위해 필요한 것이 병렬 처리와 특수한 컴퓨터 칩, 즉 GPU입니다. 오늘날 최상위 모델 훈련에는 수천~수만 개의 GPU가 몇 달간 병렬로 돌아갑니다. NVIDIA H100 같은 최상위 AI 가속기 한 대가 초당 약 4,000조 회 연산(4 × 10^15 FLOPS). 이런 GPU 1만 대를 3개월간 돌리면 대략 3 × 10^25 FLOPS. GPT-4급 훈련에 근접합니다.
이 인프라를 갖춘 회사가 세계에 몇 안 되는 이유가 여기 있습니다 — OpenAI, Anthropic, Google, Meta 등. 훈련 비용만 수천억 원에 이르는 것으로 알려져 있습니다.
사전 학습만으로는 대화가 안 된다 — 미세 조정과 지향성 진화
사전 학습이 끝난 모델은 인터넷 텍스트를 그저 이어붙이는 기계에 가깝습니다. 질문에 답변을 하는 대화 상대가 아직 아닙니다. 예를 들어 "고양이를 키우는 법을 알려줘"라고 물으면, 사전 학습만 된 원시(raw) 모델은 답변 대신 "고양이를 키우는 법을 알려줘. 그리고 강아지도. 그리고 새도." 처럼 질문 문장을 그저 이어붙일 뿐입니다. 대화 상대라기보다 텍스트 자동완성기입니다.
이 원시 모델을 우리가 아는 ChatGPT·Claude 같은 대화형 조력자로 바꾸는 두 단계가 뒤에 옵니다.
1단계 — 미세 조정(Fine-Tuning): 사람이 만든 대화 예시 데이터(질문·답변 쌍)로 모델을 추가 훈련합니다. 이 단계에서 모델은 "질문이 오면 답변으로 이어가야 한다"는 대화 형식을 배웁니다.
2단계 — RLHF(Reinforcement Learning from Human Feedback): 인간 평가자가 모델의 여러 답변을 비교해서 어느 쪽이 더 좋은지 선호도(preference)를 표시합니다. 이 선호도 데이터를 이용해 모델을 강화학습으로 조정합니다. 결과는 사용자들이 더 선호하는 방향으로 다음 단어를 예측하도록 조정된 모델.
이 두 단계를 통칭 정렬(alignment) 이라 부릅니다. 모델을 인간의 기대·안전 기준과 일치(align)시키는 작업.
이 과정을 바이오 실험의 언어로 옮기면 놀랍도록 익숙한 그림이 됩니다. 파지 디스플레이나 항체 라이브러리를 이용한 지향성 진화(directed evolution) 스크리닝을 떠올려 봅시다. 시험관 안에 수많은 변이 항체를 만들어 놓고, 표적 항원에 잘 붙는 놈만 골라 다시 증폭하고, 그중에서 또 조금 더 잘 붙는 놈을 골라 증폭하고... 이 사이클을 반복하면 표적 결합력이 극단적으로 강화된 항체가 남습니다.
정렬(RLHF)이 이 사이클과 개념이 정확히 같습니다.
- 원시 모델 = 초기 항체 라이브러리 (온갖 방향의 확률적 발화)
- 인간 평가자의 선호 선택 = "표적에 잘 붙는 놈만 골라내는 스크리닝"
- 그 방향으로 모델 재훈련 = "선택된 클론을 증폭"
- 이 사이클 반복 = "여러 라운드의 지향성 진화"
결과는 인간의 상식·안전 기준·기대에 정렬된 응답을 확률적으로 우선 발화하는 모델. "학습(pre-training)"과 "정렬(alignment)"은 완전히 분리된 공학적 단계입니다. 모델이 똑똑해지는 과정(=항체가 만들어지는 유전 라이브러리 구축)과 인간에게 안전하게 길들여지는 과정(=지향성 스크리닝)은 다른 단계에서 벌어집니다.
이 구분이 중요합니다. 왜냐하면 아무리 잘 정렬해도, 다차원 파라미터 공간 어딘가에는 스크리닝을 통과하지 못한 채 남아 있는 확률 지대가 있기 때문입니다. 지향성 진화도 몇 라운드 만에 완벽하지 않듯이. 이 남은 지대를 뚫는 시도가 프롬프트 주입(prompt injection) 이나 탈옥(jailbreak) 공격입니다.
트랜스포머 — 병렬 처리를 가능하게 한 아키텍처
여기까지 온 이야기의 밑에는 트랜스포머(Transformer) 라는 신경망 구조가 있습니다.
2017년 이전까지 대부분의 언어 모델은 텍스트를 한 단어씩 순차적으로 처리했습니다. RNN(Recurrent Neural Network)이나 LSTM 같은 구조들. 이 방식은 한 단어 처리가 끝나야 다음 단어로 넘어갈 수 있어서 병렬 처리에 부적합했습니다. 아무리 GPU가 여러 개 있어도 순차적 흐름을 부술 수 없었죠.
2017년 구글의 한 연구팀이 "Attention Is All You Need"라는 논문에서 트랜스포머라는 새로운 구조를 발표했습니다. 이 구조는 텍스트를 처음부터 끝까지 순차적으로 읽지 않고, 전체 문장을 한꺼번에 병렬로 처리합니다. 이 논문 한 편이 이후 8년의 AI 지형을 근본적으로 바꿉니다.
트랜스포머 안에서 각 단어는 먼저 숫자 벡터(vector) 로 변환됩니다. 이 변환을 임베딩(embedding) 이라고 부릅니다. AI 훈련은 연속적인 수치 데이터에서 이루어질 수 있기 때문에, 언어를 숫자로 인코딩(encoding)하는 것.
각각의 숫자 벡터는 해당 단어의 의미와 맥락을 담고 있습니다. 벡터 공간에서 비슷한 의미의 단어들은 비슷한 위치에 놓입니다. 이 관점에서 "세포"와 "미토콘드리아"의 벡터는 가까이 있고, "세포"와 "행렬 곱셈"의 벡터는 멀리 있습니다.
트랜스포머의 진짜 핵심은 어텐션(attention) 이라는 강력한 연산입니다. 어텐션은 벡터들이 서로 정보를 주고받으면서, 주변 맥락에 따라 각 단어의 의미를 적절히 조정할 수 있게 해줍니다.
예를 들어 바이오 문장에서 자주 등장하는 모호한 약어 "PC" 를 봅시다.
- "PC 12 cell을 배양했다" 라는 문장에서 PC는 페오크로모사이토마 세포주(Pheochromocytoma)로 해석됩니다.
- "주성분 분석(PC1, PC2)에서 클러스터가 명확했다" 라는 문장에서 PC는 Principal Component입니다.
- "positive control" 로 쓰이는 경우도 있습니다.
같은 "PC"인데 주변 맥락에 따라 벡터 위치가 이동하는 것입니다. 이것이 어텐션의 힘. 사람도 문맥으로 이해하는 이 능력을 모델이 파라미터로 학습한 것.
트랜스포머에는 어텐션 외에 피드포워드 신경망(feed-forward network) 이라는 연산도 들어 있습니다. 이 부분이 모델의 지식 저장고 역할을 담당한다고 알려져 있습니다. "SARS-CoV-2의 스파이크 단백질은 ACE2 수용체에 결합한다"라는 사실이 어떤 파라미터의 특정 조합으로 압축되어 저장된 곳이 여기.
이렇게 어텐션과 피드포워드 연산을 여러 층(layer) 걸쳐 반복하면, 각 단어 벡터는 점점 더 맥락을 잘 반영하게 됩니다. 다음 단어를 정확하게 예측하는 데 필요한 정보를 압축하고 압축해서 마지막 단계로 전달합니다.
마지막 단계에서는 전체 문맥을 반영한 벡터를 가지고 다음에 올 단어의 확률 분포를 예측합니다. 다음에 올 수 있는 모든 단어들에 대해서 모델이 그 확률을 예측한다고 보시면 됩니다.
모델의 구조는 연구자들이 설계했지만, 실제로 어떤 출력을 내는지는 훈련을 통해 자동으로 조정된 수십억 개의 파라미터가 결정합니다. 그래서 이 모델의 특정 답변이 왜 나왔는지를 사후에 정확히 설명하기가 어렵습니다. 이건 뒤에서 볼 해석 가능성(interpretability) 문제로 이어집니다.
창발성 — 큰 규모에서 갑자기 나타나는 능력
여기 흥미로운 관찰이 있습니다. 파라미터를 100만 개, 1억 개, 10억 개, 100억 개로 늘려가면서 모델을 훈련시켜 봅니다. 대부분의 능력은 규모에 비례해 서서히 향상됩니다.
그런데 어느 규모를 넘어가면 갑자기 새로운 능력이 나타나는 경우가 있습니다. 논리적 추론, 코딩, 몇 단계에 걸친 계산, 지시 따르기, 심지어 다른 언어로 번역 같은 능력이 특정 규모 이상에서 갑자기 통계적으로 유의미하게 나타납니다. 이것이 창발적 능력(emergent abilities) 이라 불리는 현상입니다.
바이오 연구자에게 익숙한 비유가 있습니다. 정족수 감지(quorum sensing). 세균이 개별적으로는 특별한 행동을 하지 않다가, 밀도가 특정 임계값을 넘으면 갑자기 생물막(biofilm) 형성이나 발광 같은 집단 행동을 시작합니다. 개별 세균의 능력은 그대로인데 전체 시스템이 어떤 임계 밀도를 넘는 순간 새로운 상태로 상전이(phase transition)합니다.
LLM의 창발도 이와 개념이 닮았습니다. 파라미터 규모가 어떤 임계를 넘으면 이전에 없던 능력이 나타납니다. 다만 이 마법에 도취되지 말아야 할 진실 하나 — 결국 이 모든 능력의 밑바닥에는 우리가 뒤 편에서 배울 행렬 곱셈과 편향의 더하기가 수조 번 반복되고 있을 뿐입니다. 신비하지 않습니다. 정교하고 방대한 확률 예측 기계일 뿐이고, 다만 그 규모가 이해할 수 있는 범위를 넘어섰기에 결과가 마법처럼 보일 뿐입니다.
그런데 왜 헛소리를 하는가 — 환각(Hallucination)
LLM이 가끔 "정확히 아는 것처럼" 완전히 틀린 답을 하는 경우가 있습니다.
- 없는 논문을 그럴듯한 저자·연도로 인용합니다.
- 존재하지 않는 파이썬 함수나 R 패키지를 만들어냅니다.
- 존재하지 않는 유전자 이름이나 약물명을 지어냅니다.
- 실제 결과와 완전히 다른 실험 프로토콜을 자신 있게 제시합니다.
이걸 환각(hallucination) 이라 부릅니다.
원리를 이해하면 왜 그런지 명확합니다. LLM은 "이게 진짜인지" 확인하는 단계가 없습니다. 그저 학습된 확률로 다음 토큰을 뽑을 뿐입니다. 학습 데이터에 없는 것에 대해서도 확률이 높은 그럴듯한 조합을 만들어 뱉어냅니다.
"모릅니다"라고 답할 확률보다 그럴듯한 헛소리를 뱉을 확률이 더 높을 수 있다 — 이것이 환각의 뿌리입니다.
특히 다음 상황에서 환각이 잦습니다.
- 드문 지식: 학습 데이터에 적게 나온 주제 (예: 특정 소수 종양 아형)
- 최신 정보: 학습 데이터 시점 이후 사건 (학습이 2024년까지라면 2026년 발표된 논문)
- 정밀한 인용: 특정 논문·페이지·수치
- 긴 추론 사슬: 여러 단계를 거치는 논리
- 애매한 질문: 여러 방향으로 해석 가능한 프롬프트
환각을 완전히 없앨 수는 없습니다. LLM의 근본이 확률 예측이라 필연입니다. 하지만 완화하는 여러 방법이 있습니다.
- RAG(Retrieval-Augmented Generation): 답변 전 신뢰 문서를 검색해 컨텍스트로 넣기 → 편 #9
- 낮은 temperature: 확률 낮은 단어 선택 억제
- 명시적 불확실성 요청: 프롬프트에 "모르면 모른다고 답하라" 명시
- 인용 강제: "인용 소스를 반드시 명시하라"
- 팩트 체크 파이프라인: 별도 검증 단계
정렬(RLHF)도 환각 완화에 기여합니다. 지향성 진화 사이클에서 "모릅니다"라고 답한 응답에 인간 평가자가 높은 점수를 주면, 모델이 그 방향으로 조금씩 편향됩니다. 다만 앞서 말했듯 다차원 공간 어딘가에는 스크리닝을 통과하지 못한 확률 지대가 남아 있다는 것이 수학적 필연이라 완벽한 방어는 불가능합니다.
바이오 연구자의 실무 활용 — 3 시나리오
지금까지의 이론이 바이오 연구실에서 어떻게 쓰일까요. 세 가지 실전 시나리오.
시나리오 1 — 논문 요약과 브레인스토밍
PubMed에서 관련 논문 초록 10편을 뽑아 프롬프트에 붙여넣고 물어봅니다.
"내 실험은 CRISPR-Cas9로 특정 종양 억제 유전자를 낙아웃한 세포주에서 대사 변화를 관찰하는 중이야. 위 논문들과 내 실험의 접점 3가지를 정리하고, 후속 실험 아이디어 5가지를 제안해줘."
수십 분에서 몇 시간이 걸릴 조사·정리 작업이 몇 분 안에 끝납니다. 다만 인용은 반드시 원문 재확인 필수. 환각으로 없는 논문을 인용하거나 있는 논문의 결론을 왜곡할 수 있으므로.
이때 온도는 살짝 높이는 게 좋습니다(0.7 정도). 다양한 관점의 브레인스토밍이 목적이니 조금 창의적인 답변이 유용합니다.
시나리오 2 — Biopython 코드 리뷰와 디버깅
FASTA 파일을 파싱해 GC content를 계산하는 스크립트를 짰는데 결과가 항상 0으로 나옵니다. 코드를 통째로 붙여넣고:
"이 코드에서 GC content가 항상 0이 나오는 이유를 찾아줘. 그리고 대용량 파일(수 GB) 처리에서도 메모리 안전한 버전으로 개선해줘."
LLM은 대개 정확한 진단을 냅니다 (예: 대소문자 미처리, count("G") 만 하고 count("C") 누락, 문자열 슬라이싱으로 O(n^2) 되는 것 등). 그리고 개선된 코드를 제안합니다. 테스트 데이터로 검증은 반드시 사용자가 직접.
이때 온도는 낮춥니다(0.2 정도). 코드는 무작위성이 곧 버그니까요.
시나리오 3 — 데이터 정리 자동화
임상 협력 병원에서 받은 엑셀 파일이 셀 병합·색깔 표시·수식 오염·오탈자 뒤범벅. LLM에 몇 행을 보여주고:
"이걸 pandas DataFrame으로 정리하는 파이썬 코드를 짜줘. 병합 셀은 상위 값으로 채우고, 색깔 정보는 별도 컬럼으로 추출하고, 오탈자 자주 나오는 패턴은 정규식으로 정규화해줘."
실무에서 몇 시간 걸릴 작업이 5분에 끝나기도 합니다.
세 시나리오 모두 LLM이 "답을 만들어내는" 특성을 정확히 활용합니다. 검색으로는 못 하는 일들. 이 트랙의 후속 편들에서 각 시나리오를 더 정교하게 뽑아내는 프롬프트 엔지니어링과 도구 워크플로우를 배우게 됩니다.
지향성 진화의 관점으로 다시 보기
앞서 정렬(RLHF)을 지향성 진화 스크리닝에 비유했습니다. 이 관점을 조금 더 넓혀 보면 LLM 훈련의 전 과정이 바이오 연구자에게 매우 익숙한 그림이 됩니다.
사전 학습 = 자연계 유전 다양성 수집. 인터넷에서 방대한 텍스트를 수집하는 과정은 자연계에 존재하는 모든 종의 유전자 서열을 수집해 대규모 데이터베이스로 만드는 것과 구조적으로 닮았습니다. 개별 문장의 특정 유래에는 관심이 없고, 전체 분포의 통계적 패턴을 파악하는 것이 목적입니다.
미세 조정 = 특정 항체 라이브러리로의 좁힘. 사전 학습된 원시 모델을 특정 대화 형식으로 다듬는 미세 조정은, 일반 항체 라이브러리에서 특정 표적 관심 영역만 남겨 좁힌 후속 라이브러리를 만드는 것과 개념이 닮았습니다.
RLHF = 지향성 진화 스크리닝의 여러 라운드. 여러 답변 중 인간이 선호하는 것을 골라 그 방향으로 모델을 강화하는 RLHF는, 시험관 안에서 여러 변이 항체를 만들어 그중 표적 결합력이 강한 것만 선택해 다시 증폭하는 지향성 진화와 개념이 정확히 같습니다.
이 매핑을 이해하면 흥미로운 통찰이 하나 열립니다. 바이오 연구자에게 익숙한 "선택 → 증폭" 사이클이 LLM 훈련의 정렬 단계에도 그대로 작동하고 있습니다. 이 관점은 후속 편들, 특히 편 #4(오차역전파)와 편 #11(정렬과 환각)에서 더 세부화됩니다.
핵심 정리
한 번 정리해봅시다.
- LLM은 다음 토큰의 확률 분포를 예측하는 자기회귀 모델입니다.
- 검색이 아니라 매번 새로 만들어내는 생성기이고, 그래서 창의적이지만 그래서 환각도 생깁니다.
- 사전 학습(대학 도서관 3~4개 분량의 텍스트) 으로 지식 패턴을 압축하고, 미세 조정과 RLHF(지향성 진화) 로 대화 형식과 안전 기준에 정렬합니다.
- 밑에는 트랜스포머 + 어텐션 + 피드포워드의 병렬 처리 구조가 있습니다.
- 어떤 규모를 넘으면 창발적 능력이 갑자기 나타나지만(정족수 감지 비유), 밑바닥은 여전히 확률 예측입니다.
- "이걸 정말로 아는가" 를 판단하는 기능은 없다는 사실을 항상 기억하세요.
다음 개념
이 첫 편은 지도의 역할입니다. 이후 편들에서 하나씩 파고들어갑니다.
Phase 1 — 원리
- 편 #2
neural-network-basics— 신경망이란 무엇인가. 다이얼과 스위치로 이루어진 정적 구조 - 편 #3
how-nn-learns— 어떻게 학습하는가. 자유 에너지 최소화 관점의 경사하강법 - 편 #4
backpropagation-intuition— 오차의 민주적 줄다리기. 역전파 직관 - 편 #5
transformer-and-embedding— 토큰이 의미 공간에 놓이는 순간 - 편 #6
attention-mechanism— "PC"의 여러 의미를 구분하는 방법
Phase 2 — 활용
- 편 #7
prompt-engineering-basics— 확률을 원하는 방향으로 유도하기 - 편 #8
structured-output— JSON Mode로 함수처럼 부리기 - 편 #9
context-window-and-rag— 얼마나 담을 수 있는가와 RAG - 편 #10
embedding-and-vector-db— 벡터로 검색하기 - 편 #11
hallucination-and-alignment— 환각의 수학적 필연과 대책
Phase 3 — 도구·워크플로우
- 편 #12
cursor-and-claude-code— 바이브 코딩 실전 - 편 #13
mcp-and-agent— MCP와 AI Agent - 편 #14
local-llm— Ollama로 개인 모델 서빙
Phase 4 — 바이오 통합
- 편 #15
bio-ai-integration— DevBench 실전으로 이어지는 브릿지
📐 부록 — 전문가를 위한 수학 공식
난이도: 매우 어려움 (Very Hard) 대상: 이미 대학원 수준의 확률·미적분·선형대수를 아는 독자
본문은 직관과 그림 위주로 서술했지만, 여기서는 그 이면의 수학을 엄밀하게 정리합니다. 처음 읽는 분은 건너뛰셔도 됩니다. 이 부록은 나중에 논문을 읽거나 모델을 직접 구현할 때 되돌아오는 참조점입니다.
A.1 자기회귀 확률 분해 (Autoregressive Factorization)
LLM은 텍스트 전체의 결합 확률(joint probability)을 조건부 확률의 곱으로 분해하여 모델링합니다.
P(w_1, w_2, ..., w_n)
= P(w_1) · P(w_2 | w_1) · P(w_3 | w_1, w_2) · ... · P(w_n | w_1, ..., w_{n-1})
= ∏_{t=1}^{n} P(w_t | w_{<t})여기서 w_t는 시점 t의 토큰이고, w_{<t} = (w_1, ..., w_{t-1})은 그 이전까지의 모든 토큰을 뜻합니다. 모델은 이 조건부 확률 P(w_t | w_{<t}; θ)를 파라미터 θ(수백~수천억)로 모수화된 신경망으로 근사합니다.
A.2 Softmax와 온도
모델의 마지막 층 출력은 사전(vocabulary)의 각 토큰에 대한 실수 점수(logit)입니다. 이 점수를 확률 분포로 변환하기 위해 Softmax with temperature를 사용합니다.
P(w_t = i | context) = exp(z_i / T) / Σ_j exp(z_j / T)z_i는 토큰 i에 대한 로짓T는 온도 (temperature)T → 0: 가장 큰 로짓의 확률이 1에 수렴 (argmax와 같음, 결정론적)T → ∞: 균등 분포에 수렴 (완전 무작위)T = 1: 원래 softmax
수치 안정성 팁: 실제 구현에서는 exp(z_i / T - max(z) / T)처럼 최대값을 빼서 오버플로우를 방지합니다.
A.3 교차 엔트로피 손실 (Cross-Entropy Loss) — 사전 학습의 목적 함수
한 스텝에서 정답 토큰이 y ∈ {1, ..., V}(사전 크기 V)일 때, 모델의 예측 분포 p̂ = softmax(z)와의 교차 엔트로피 손실은:
L(θ) = -log p̂_y = -log( exp(z_y) / Σ_j exp(z_j) )이는 정답 토큰의 예측 확률에 로그를 취한 뒤 부호를 바꾼 값입니다. 모델이 정답에 확률 1을 배정하면 손실 0, 확률이 낮을수록 손실이 커집니다.
전체 데이터셋에 대한 손실은 이 값을 모든 시점·모든 문서에 대해 평균한 것:
L_total(θ) = -1/N · Σ_{문서} Σ_{시점 t} log P(w_t | w_{<t}; θ)이 손실을 파라미터 θ에 대해 최소화하는 것이 사전 학습의 수학적 목표입니다. 최적화는 확률적 경사 하강법(SGD) 또는 그 개량(Adam, AdamW 등)으로 이루어집니다.
A.4 정보 이론적 해석 — 퍼플렉시티
교차 엔트로피 손실의 지수(exponent)를 취한 값을 퍼플렉시티(perplexity) 라 합니다.
Perplexity = exp(L_total)이는 "평균적으로 모델이 다음 토큰을 몇 가지 후보로 좁혔는가"의 척도입니다. 퍼플렉시티가 낮을수록 더 확신 있게 예측한다는 뜻. 랜덤 예측기(사전 크기 V에 대해 균등 분포)의 퍼플렉시티는 정확히 V이고, 잘 훈련된 대형 모델은 자연 언어에서 10~30 수준.
A.5 RLHF 선호도 최적화 — Bradley-Terry 모델
RLHF에서 인간 평가자가 두 답변 y_w(선호, winning)와 y_l(비선호, losing)을 비교하면, 우리는 보상 모델 r_φ(x, y)가 다음 확률을 잘 예측하도록 훈련합니다.
P(y_w ≻ y_l | x) = σ( r_φ(x, y_w) - r_φ(x, y_l) )여기서 σ(z) = 1 / (1 + exp(-z))는 시그모이드. 이는 Bradley-Terry 모델의 형태이고, 로그 우도를 최대화하는 것이 선호도 학습의 목표입니다.
L_reward(φ) = -E_{(x, y_w, y_l) ~ D} [ log σ( r_φ(x, y_w) - r_φ(x, y_l) ) ]이후 PPO(Proximal Policy Optimization) 등의 강화학습으로 정책 모델(=LLM)이 보상 모델 r_φ를 최대화하도록 미세 조정합니다. 이때 원래 사전 학습 모델과의 KL 발산을 페널티로 넣어 지나치게 벗어나지 않게 합니다.
J(π_θ) = E_{x~D, y~π_θ(·|x)} [ r_φ(x, y) - β · KL( π_θ(·|x) || π_ref(·|x) ) ]π_θ: 학습 중인 정책 모델π_ref: 기준 모델 (사전 학습 or SFT 모델)β: KL 페널티 계수 (일반적으로 0.01~0.1)
이 항의 균형이 잘못되면 두 실패 모드가 있습니다. β가 너무 크면 모델이 사전 학습 상태에서 못 벗어나 정렬이 안 되고, β가 너무 작으면 보상 해킹(reward hacking)이나 모델 붕괴(model collapse)가 발생합니다.
바이오 비유로 이 딜레마를 다시 보면, β가 너무 크면 초기 라이브러리에서 벗어나지 못해 스크리닝 효과가 없고, β가 너무 작으면 스크리닝 압력이 지나쳐 다양성이 완전히 사라지고 몇 개 클론에만 수렴합니다 — 다양성 붕괴.
A.6 최근 대안 — DPO (Direct Preference Optimization)
2023년 이후 등장한 DPO는 별도의 보상 모델을 두지 않고, 선호도 데이터로부터 정책 모델을 직접 최적화합니다.
L_DPO(θ) = -E_{(x, y_w, y_l) ~ D} [ log σ( β · log(π_θ(y_w|x) / π_ref(y_w|x))
- β · log(π_θ(y_l|x) / π_ref(y_l|x)) ) ]이 형식은 PPO 없이도 안정적이고 계산 효율이 높아 최근 여러 오픈소스 모델에서 채택되고 있습니다.
A.7 트랜스포머 어텐션 공식 (Scaled Dot-Product Attention)
트랜스포머의 셀프 어텐션은 다음 수식으로 정의됩니다.
Attention(Q, K, V) = softmax( Q · K^T / sqrt(d_k) ) · VQ ∈ R^{n×d_k}: 쿼리 행렬 (query)K ∈ R^{n×d_k}: 키 행렬 (key)V ∈ R^{n×d_v}: 값 행렬 (value)d_k: 키·쿼리의 차원 (일반적으로 64 또는 128)sqrt(d_k): 스케일링 상수 (내적의 크기 폭발 방지)
각 위치의 쿼리가 모든 위치의 키와 내적을 계산해 softmax로 정규화한 뒤, 값 행렬의 가중 합을 구합니다. 이 연산은 어떤 위치가 어떤 위치와 얼마나 관련 있는지를 데이터에서 자동 학습합니다.
멀티헤드 어텐션(Multi-Head Attention) 은 이 연산을 여러 쌍의 (Q, K, V) 투영으로 병렬 수행한 뒤 결과를 이어붙입니다.
MultiHead(X) = Concat(head_1, ..., head_h) · W_O
where head_i = Attention(X · W_Q^i, X · W_K^i, X · W_V^i)이 구조가 트랜스포머의 병렬 처리 능력의 핵심이자, 오늘 LLM의 강력함의 원천입니다. 이 부분의 상세한 시각적 직관은 편 #6 attention-mechanism에서 다룹니다.
A.8 참고 — 학습 손실의 규모 감
거대한 사전 학습 데이터셋(예: 수 TB의 웹 텍스트)에서, 모델은 각 배치(batch)에서 수천~수만 개 토큰의 손실을 병렬 계산합니다. 한 스텝의 손실은 이 배치의 평균 교차 엔트로피이고, 이를 수백만 스텝(수개월간) 반복하면 최종적으로 모델이 수렴합니다. 최상급 모델의 사전 학습 총 연산량은 대략 3 × 10^24 ~ 3 × 10^25 FLOPS 수준.
이 값을 앞서 본 "몸 전체 세포 분열의 100억 배" 감각과 대조해보면, 실제 훈련이 얼마나 극단적인 병렬 처리 인프라 위에서 이루어지는지 감을 잡을 수 있습니다.
참고 자료
본 편의 콘텐츠·시나리오·비유·수치는 모두 BioPlayground 자체 개발이며, 아래는 개념 학습에 도움이 되는 외부 참고 자료입니다.
- 트랜스포머 원 논문: Vaswani et al., "Attention Is All You Need" (NeurIPS 2017)
- GPT-3 논문: Brown et al., "Language Models are Few-Shot Learners" (NeurIPS 2020)
- RLHF 원리: Christiano et al., "Deep Reinforcement Learning from Human Preferences" (NeurIPS 2017)
- DPO 논문: Rafailov et al., "Direct Preference Optimization" (NeurIPS 2023)
- 딥러닝 시각화 교육: 3Blue1Brown "Deep Learning" 시리즈 (YouTube) — 페다고지 참고
- 자연어 처리 표준 교재: Jurafsky & Martin, "Speech and Language Processing" (온라인 공개)
이 편은 지도이자 첫 문입니다. 이후 14편에 걸쳐 각 개념을 하나씩 파고들며, 마지막 편에서 다시 이 지도로 돌아옵니다.