딥러닝은 갑자기 나타난 다른 세계가 아니다
처음 머신러닝을 배울 때 우리는 이런 흐름을 반복해서 보았다.
데이터를 준비한다. 특징을 만든다. 모델이 예측한다. 실제값과 비교한다. 오차를 줄인다. 그리고 새로운 데이터에 적용한다.
이 문장만 제대로 붙잡고 있어도 딥러닝으로 넘어갈 준비는 이미 절반 이상 끝난 셈이다. 딥러닝은 이 흐름을 버리고 새로 출발한 기술이 아니다. 오히려 같은 흐름을 훨씬 더 큰 데이터, 더 복잡한 모델, 더 강력한 계산 자원 위에서 확장한 방식에 가깝다.
전통적인 머신러닝에서는 사람이 특징을 많이 만들어 주었다. 집값 예측을 할 때는 면적, 방 개수, 역세권 여부, 건축 연도 같은 특징을 준비했다. 스팸 메일 분류기에서는 특정 단어의 등장 횟수, 링크 개수, 발신자 정보 같은 특징을 만들었다. 고객 이탈 예측에서는 최근 접속일, 결제 이력, 사용량 변화 같은 행동 특징을 뽑았다.
딥러닝에서도 데이터가 들어가고 예측이 나오며 손실을 줄인다. 달라진 점은 모델이 더 많은 층을 지나며 중간 표현을 스스로 만들어 낸다는 데 있다. 사람이 모든 특징을 직접 설계하지 않아도, 모델이 원본 데이터에서 필요한 단서를 여러 단계로 추출하려고 시도한다.
그래서 딥러닝을 처음 만날 때 가장 중요한 태도는 두려움이 아니라 연결이다. "이건 완전히 새로운 수학 괴물이다"라고 생각하기보다, "아, 내가 배운 머신러닝의 기본 흐름이 더 깊고 크게 확장된 것이구나"라고 보면 된다.

특징은 사라진 것이 아니라 모델 안으로 들어갔다
전통 머신러닝에서 특징은 주로 사람이 만든다. 예를 들어 고양이와 강아지 사진을 구분하는 모델을 만든다고 해 보자. 전통적인 접근에서는 사람이 먼저 어떤 특징이 도움이 될지 고민해야 한다. 귀의 모양, 눈의 위치, 털 색, 코의 크기, 얼굴 윤곽 같은 정보를 숫자로 바꾸려는 시도가 필요하다.
문제는 현실의 이미지가 그렇게 얌전하지 않다는 점이다. 고양이가 옆을 보고 있을 수도 있고, 강아지 얼굴이 반쯤 가려져 있을 수도 있다. 조명이 어둡거나, 배경이 복잡하거나, 사진이 흔들렸을 수도 있다. 사람이 "고양이다움"과 "강아지다움"을 규칙으로 모두 적어 내기는 거의 불가능하다.
딥러닝은 이 어려움을 다른 방식으로 해결하려 한다. 원본 픽셀을 입력받고, 여러 층을 통과하면서 낮은 수준의 패턴부터 높은 수준의 패턴까지 차례로 만들어 간다. 처음에는 선, 모서리, 색의 대비 같은 단순한 단서를 포착하고, 더 깊은 층에서는 눈, 귀, 털의 질감 같은 복합적인 단서를 조합하며, 마지막에는 "이 이미지는 고양이에 가깝다" 또는 "강아지에 가깝다"라는 예측으로 이어진다.
여기서 중요한 말이 표현 학습이다. 표현이란 데이터를 모델이 이해하기 좋은 숫자 형태로 바꾼 것이다. 학습은 그 표현을 더 유용하게 바꾸는 과정이다. 결국 표현 학습은 모델이 예측에 도움이 되는 특징을 스스로 만들어 가는 과정이라고 이해하면 된다.
그러므로 딥러닝에서 특징이 사라진 것은 아니다. 특징은 여전히 중요하다. 다만 사람이 표 형태로 정리해 모델에 넘겨주던 특징의 일부가, 신경망의 내부 층에서 자동으로 만들어지기 시작한 것이다.
라벨과 손실은 여전히 학습의 나침반이다
모델이 아무리 복잡해져도 학습의 기본 질문은 변하지 않는다.
"예측이 얼마나 틀렸는가?"
이 질문에 답하기 위해 우리는 손실을 사용했다. 선형회귀에서는 예측한 집값과 실제 집값의 차이를 손실로 보았다. 로지스틱 회귀에서는 생존 여부나 스팸 여부를 얼마나 그럴듯하게 예측했는지 따졌다. 결정트리, 랜덤포레스트, 그래디언트 부스팅을 다룰 때도 결국 목표는 같았다. 모델이 더 나은 예측을 하도록 손실을 줄이는 것이다.
딥러닝에서도 손실은 모델을 고치는 나침반이다. 이미지 분류 모델이 고양이 사진을 강아지라고 예측하면 손실이 커진다. 음성 인식 모델이 사용자의 말을 엉뚱한 문장으로 받아쓰면 손실이 커진다. 번역 모델이 자연스럽지 않은 번역을 내놓으면 손실이 커진다. 모델은 이 손실을 줄이는 방향으로 내부 숫자들을 조금씩 조정한다.
여기서 내부 숫자는 신경망의 가중치다. 가중치는 입력 신호를 얼마나 강하게 반영할지 결정하는 값이다. 선형회귀에서 기울기와 절편을 조정했던 것처럼, 신경망도 수많은 가중치를 조정한다. 차이는 숫자의 개수와 구조다. 선형회귀에서는 조정할 값이 몇 개 또는 몇십 개일 수 있지만, 딥러닝 모델에서는 수백만 개, 수십억 개, 그 이상이 될 수 있다.
규모는 커졌지만 원리는 낯설지 않다. 예측한다. 비교한다. 손실을 계산한다. 손실이 줄어드는 방향으로 모델을 고친다. 이 흐름이 딥러닝의 심장 박동이다.
최적화는 작은 수정을 아주 많이 반복하는 일이다
머신러닝을 배우며 우리는 학습을 "오차를 줄이는 과정"이라고 보았다. 그렇다면 모델은 어떻게 오차를 줄일까? 한 번에 정답을 깨닫는 것이 아니다. 조금씩 고친다.
딥러닝에서도 마찬가지다. 모델은 처음부터 똑똑하지 않다. 처음에는 거의 아무것도 모르는 상태에서 시작한다. 이미지 속 물체도 모르고, 문장의 의미도 모르고, 어떤 단어 다음에 어떤 단어가 자연스러운지도 모른다. 그러다 데이터를 하나씩, 또는 묶음 단위로 보면서 예측을 해 본다. 틀리면 손실이 생긴다. 그 손실을 줄이는 방향으로 가중치를 아주 조금 바꾼다. 다시 예측한다. 다시 틀린다. 다시 조금 고친다.
이 반복이 최적화다. 최적화라는 말은 어렵게 들리지만, 일상적인 비유로 보면 요리의 간을 맞추는 과정과 닮았다. 국을 끓이고 한 숟가락 맛본다. 싱거우면 소금을 조금 넣는다. 너무 짜면 물을 조금 더한다. 한 번에 완벽한 맛을 맞히기보다, 맛을 보고 수정하고 다시 맛보는 과정을 반복한다.
딥러닝 모델의 학습도 이와 비슷하다. 다만 사람이 혀로 맛을 보는 대신 손실 함수가 예측의 상태를 숫자로 알려 준다. 그리고 사람 손으로 소금을 넣는 대신 최적화 알고리즘이 가중치를 조정한다.
이때 학습률이라는 개념이 중요해진다. 학습률은 한 번에 얼마나 크게 고칠지를 정하는 값이다. 너무 크게 고치면 좋은 방향을 지나쳐 버릴 수 있고, 너무 작게 고치면 학습이 지나치게 느려질 수 있다. 우리는 이미 하이퍼파라미터를 다루며 이런 감각을 익혔다. 모델의 종류만 바뀌었을 뿐, 실험하며 적절한 설정을 찾는 태도는 그대로 이어진다.
임베딩은 딥러닝과 LLM을 잇는 다리다
이 책의 앞부분에서 임베딩을 "의미를 담은 숫자 벡터"로 이해했다. 단어, 사용자, 상품, 문장 같은 대상을 숫자 공간의 한 점으로 표현하면, 서로 비슷한 것들은 가까이 놓일 수 있다. 추천 시스템에서 비슷한 사용자를 찾거나, 비슷한 상품을 찾는 일이 이 감각과 연결된다.
LLM, 즉 대규모 언어 모델을 이해할 때도 임베딩은 핵심 출발점이다. 컴퓨터는 글자를 그대로 이해하지 못한다. 먼저 문장을 작은 단위로 나눈다. 이 단위를 토큰이라고 부른다. 토큰은 단어일 수도 있고, 단어보다 작은 조각일 수도 있다. 모델은 각 토큰을 숫자 벡터로 바꾼다. 이 숫자 벡터가 바로 임베딩이다.
예를 들어 "고양이가 소파 위에서 잔다"라는 문장이 있다고 하자. 모델은 이 문장을 토큰으로 나누고, 각 토큰을 숫자 벡터로 바꾼다. 처음에는 그 숫자들이 별 의미 없는 값에 가까울 수 있다. 하지만 대량의 텍스트를 학습하면서 "고양이"는 "동물", "반려묘", "야옹", "소파", "잠" 같은 맥락과 자주 연결된다는 단서를 얻게 된다. 반대로 "고양이"와 "비행기 엔진 부품"은 일반적인 문맥에서 덜 가깝게 나타날 것이다.
이런 과정을 거치면 임베딩 공간 안에서 단어와 문장은 점점 의미 있는 위치를 갖게 된다. 물론 모델이 사람처럼 경험하고 이해한다는 뜻은 아니다. 하지만 데이터 속에서 반복되는 사용 패턴을 바탕으로, 어떤 표현들이 서로 가까운 맥락에서 쓰이는지 학습한다.
여기서 앞서 배운 비지도학습과도 연결이 생긴다. 정답 라벨이 하나하나 붙어 있지 않더라도, 데이터 자체의 구조에서 패턴을 찾을 수 있다. LLM은 대규모 텍스트에서 단어와 문장 사이의 복잡한 관계를 숫자 공간에 담아 가며 학습한다. 임베딩은 그 관계가 담기는 첫 번째 무대다.
LLM은 무엇을 예측하며 배우는가
LLM을 처음 들으면 마치 거대한 지식 창고처럼 느껴진다. 질문하면 답하고, 글을 요약하고, 코드를 작성하고, 번역도 한다. 하지만 학습의 기본 형태로 내려가면 훨씬 단순한 질문이 나온다.
"다음에 올 토큰은 무엇일까?"
예를 들어 "오늘 날씨가 참"이라는 문장이 있으면 다음에는 "좋다", "춥다", "맑다" 같은 토큰이 올 가능성이 있다. 모델은 앞의 문맥을 보고 다음 토큰의 확률을 예측한다. 실제 텍스트에 나온 토큰과 모델의 예측을 비교하고, 틀린 만큼 손실을 계산한다. 그리고 손실이 줄어들도록 가중치를 조정한다.
이 구조를 보면 머신러닝의 기본 언어가 그대로 살아 있음을 알 수 있다. 입력은 앞 문맥이다. 라벨은 실제로 다음에 나온 토큰이다. 예측은 모델이 계산한 다음 토큰의 확률 분포다. 손실은 예측 분포와 실제 토큰 사이의 차이다. 학습은 그 손실을 줄이는 과정이다.
흥미로운 점은 라벨을 사람이 일일이 붙이지 않아도 된다는 것이다. 텍스트에는 이미 순서가 있다. 문장 안에서 앞부분을 입력으로 삼고 다음 토큰을 정답처럼 사용할 수 있다. 이런 방식을 자기지도학습이라고 부른다. 말은 조금 낯설지만 생각은 간단하다. 데이터 안에 숨어 있는 구조를 이용해 스스로 학습 문제를 만드는 방식이다.
스팸 메일 분류기에서는 사람이 "스팸" 또는 "정상"이라는 라벨을 붙여야 했다. 집값 예측에서는 실제 거래 가격이 라벨이었다. LLM의 사전학습에서는 텍스트의 다음 토큰 자체가 학습 신호가 된다. 그래서 인터넷 문서, 책, 코드, 대화문처럼 엄청난 양의 텍스트를 학습 재료로 사용할 수 있었다.
물론 이것만으로 우리가 원하는 답변 습관이 완성되는 것은 아니다. 이후에는 사람의 선호, 지시 따르기 데이터, 안전성 조정 같은 추가 학습 과정이 붙을 수 있다. 하지만 그 바닥에는 여전히 같은 원리가 있다. 예측하고, 비교하고, 손실을 줄인다.
신경망의 층은 표현을 단계적으로 바꾼다
전통 머신러닝 모델을 떠올려 보자. 선형회귀는 입력 특징에 가중치를 곱해 숫자를 예측했다. 로지스틱 회귀는 선형 계산 결과를 확률처럼 해석해 분류했다. 결정트리는 질문을 순서대로 던지며 데이터를 나눴다. 랜덤포레스트와 그래디언트 부스팅은 여러 트리를 조합해 더 강한 예측기를 만들었다.
신경망은 입력을 여러 층에 통과시키며 표현을 바꾼다. 각 층은 이전 층의 출력을 받아 새로운 숫자 표현을 만든다. 처음 입력이 단순한 숫자 배열이었다면, 층을 지날수록 예측에 더 유용한 형태로 바뀌기를 기대한다.
문장을 예로 들면, 첫 단계에서는 토큰의 임베딩이 있다. 그다음 층들은 토큰 사이의 관계를 반영한다. "은행"이라는 단어가 돈을 맡기는 장소인지, 강가의 둑을 뜻하는지 문맥에 따라 달라질 수 있다. 주변 단어와 문장 구조를 함께 봐야 의미가 정해진다. 딥러닝 모델은 여러 층을 거치며 이런 문맥 정보를 섞고 정리한다.
이미지에서도 비슷하다. 처음에는 픽셀 값이 입력된다. 낮은 층에서는 선과 모서리처럼 단순한 패턴이 중요할 수 있다. 중간 층에서는 눈, 바퀴, 창문 같은 부분 구조가 잡힐 수 있다. 높은 층에서는 고양이, 자동차, 사람 얼굴처럼 더 추상적인 개념과 가까운 표현이 만들어질 수 있다.
결국 깊다는 말은 단순히 층이 많다는 뜻만은 아니다. 데이터를 여러 단계의 표현으로 바꾸며, 단순한 단서에서 복잡한 의미로 올라가려는 구조를 뜻한다.
대규모 데이터와 큰 모델은 왜 필요했을까
전통 머신러닝에서는 비교적 작은 데이터로도 좋은 결과를 얻는 경우가 많다. 표 형태의 업무 데이터, 고객 이탈 데이터, 집값 데이터, 스팸 메일 데이터처럼 문제 범위가 명확하면 선형 모델, 트리 모델, 부스팅 모델이 매우 강력하게 작동한다.
그런데 자연어, 이미지, 음성처럼 복잡한 데이터는 사정이 다르다. 같은 뜻도 수많은 방식으로 표현된다. "배고프다", "뭐 좀 먹고 싶다", "점심 아직이야?", "냉장고에 뭐 있나?"는 서로 다른 문장이지만 상황에 따라 비슷한 의도를 가질 수 있다. 이미지는 더 복잡하다. 같은 고양이라도 품종, 자세, 배경, 조명, 카메라 각도에 따라 픽셀 모습이 크게 달라진다.
이런 복잡한 변화를 견디려면 모델이 많은 사례를 보아야 한다. 그리고 그 사례에서 다양한 패턴을 담아낼 충분한 표현 능력이 필요하다. 그래서 딥러닝에서는 데이터 규모와 모델 규모가 중요해졌다.
하지만 여기서 조심해야 할 점이 있다. 크다고 항상 좋은 것은 아니다. 데이터가 편향되어 있으면 큰 모델도 편향을 배울 수 있다. 학습 데이터에는 잘 맞지만 실제 사용 환경에서는 엉뚱한 답을 할 수도 있다. 계산 비용도 커지고, 실험 관리도 어려워진다. 모델이 커질수록 "학습했다"는 말만으로는 부족하다. 무엇을 학습했는지, 어디서 잘 작동하고 어디서 실패하는지 더 꼼꼼히 확인해야 한다.
이 지점에서 우리가 배운 과적합과 일반화의 개념이 다시 중요해진다. 딥러닝과 LLM에서도 진짜 목표는 학습 데이터를 외우는 것이 아니다. 처음 보는 데이터와 실제 사용 상황에서도 쓸 만한 예측과 생성을 하는 것이다.
전통 머신러닝 프로젝트 경험은 딥러닝의 지도를 읽는 힘이 된다
이 책에서 우리는 집값 예측, 스팸 분류, 고객 이탈 예측, 사용자 군집 분석, 추천 시스템을 살펴보았다. 이 프로젝트들은 딥러닝을 배우기 전에 거치는 가벼운 예행연습처럼 보일 수 있다. 하지만 사실은 딥러닝을 이해하는 데 필요한 핵심 근육을 길러 준다.
집값 예측을 해 본 사람은 입력 특징과 라벨의 관계를 안다. 예측값과 실제값의 차이가 왜 중요한지도 안다. 스팸 분류기를 만들어 본 사람은 정확도만으로 모델을 평가하면 위험하다는 점을 안다. 고객 이탈 예측을 해 본 사람은 임계값에 따라 비즈니스 판단이 달라진다는 것을 안다. 사용자 군집 분석을 해 본 사람은 정답이 없어도 데이터 속 구조를 찾을 수 있다는 감각을 갖게 된다. 추천 시스템을 맛본 사람은 사용자와 상품을 벡터 공간에서 바라보는 관점에 익숙해진다.
이 경험들은 딥러닝에서도 그대로 쓰인다. 딥러닝 프로젝트를 할 때도 데이터 분할은 필요하다. 검증 데이터와 테스트 데이터도 필요하다. 전처리 과정에서 데이터 누수를 조심해야 한다. 모델 선택과 실험 기록도 중요하다. 평가지표를 문제에 맞게 골라야 하며, 높은 점수가 실제 가치로 이어지는지 확인해야 한다.
도구는 바뀐다. 선형회귀 대신 신경망을 쓸 수 있고, 랜덤포레스트 대신 트랜스포머 구조를 사용할 수 있다. 하지만 좋은 모델을 만드는 사고방식은 크게 달라지지 않는다.
무엇을 예측하려는가. 어떤 데이터를 사용할 수 있는가. 학습 시점과 예측 시점에 알 수 있는 정보는 무엇인가. 어떤 손실을 줄일 것인가. 어떤 지표로 평가할 것인가. 새로운 데이터에서도 잘 작동하는가.
이 질문들에 답하는 힘이 머신러닝의 기초 체력이다. 그리고 이 기초 체력이 튼튼할수록 딥러닝과 LLM도 덜 신비롭고 더 이해 가능한 기술로 보인다.
평가와 일반화는 더 어려워지고 더 중요해진다
전통 머신러닝에서 평가는 비교적 명확한 경우가 많았다. 집값 예측은 실제 가격과 얼마나 차이 나는지 볼 수 있다. 스팸 분류는 스팸을 얼마나 잘 잡고 정상 메일을 얼마나 덜 오해하는지 확인할 수 있다. 고객 이탈 예측은 실제로 떠난 고객과 예측 결과를 비교할 수 있다.
생성형 AI와 LLM에서는 평가가 더 까다로워진다. 같은 질문에도 좋은 답이 하나만 있는 것이 아니기 때문이다. "머신러닝을 쉽게 설명해 줘"라는 요청에는 여러 좋은 답변이 가능하다. 어떤 답은 짧고 명확하며, 어떤 답은 길지만 친절하다. 어떤 답은 초보자에게 좋고, 어떤 답은 개발자에게 더 적합하다.
그래서 LLM 평가는 단순한 정답 맞히기에서 더 넓은 기준으로 확장된다. 답변이 사실에 맞는지, 사용자의 의도를 따르는지, 불필요하게 위험한 내용을 만들지 않는지, 문맥을 유지하는지, 편향되거나 부정확한 표현을 줄이는지 살펴봐야 한다.
이때도 머신러닝의 기본 관점은 도움이 된다. 먼저 평가 기준을 정해야 한다. 그 기준에 맞는 데이터를 준비해야 한다. 모델의 출력을 관찰하고, 실패 사례를 모아야 한다. 특정 예시에서 잘한다고 전체적으로 좋은 모델이라고 단정해서는 안 된다. 학습 데이터와 평가 데이터가 섞이지 않도록 조심해야 한다. 실제 사용 환경을 반영하는 테스트가 필요하다.
딥러닝 시대에는 모델이 더 그럴듯하게 말하기 때문에 평가가 오히려 더 중요해진다. 틀린 답을 자신 있게 말할 수 있고, 학습 데이터의 편향을 자연스러운 문장으로 포장할 수도 있다. 그래서 우리는 모델을 마술 상자가 아니라 실험과 검증이 필요한 예측 시스템으로 보아야 한다.
딥러닝을 배울 때 다시 가져가야 할 다섯 가지 질문
딥러닝으로 넘어갈 때 새로운 용어가 쏟아진다. 텐서, 역전파, 활성화 함수, 합성곱, 순환 신경망, 어텐션, 트랜스포머, 파인튜닝, 사전학습 같은 말들이 등장한다. 처음에는 낯설 수밖에 없다. 하지만 용어가 많아질수록 오히려 기본 질문으로 돌아가야 한다.
입력 데이터는 무엇이며, 어떤 형태의 숫자로 바뀌는가?
모델은 무엇을 예측하도록 학습되는가?
실제값 또는 학습 신호는 어디에서 오는가?
손실은 무엇을 기준으로 계산되는가?
모델은 어떤 데이터에서 평가되며, 새로운 상황에서도 일반화되는가?
이 다섯 질문은 딥러닝의 복잡한 구조를 해석하는 손전등과 같다. 새로운 모델을 만났을 때 구조 그림을 모두 이해하지 못해도 괜찮다. 먼저 입력, 예측, 손실, 학습, 평가를 찾으면 된다. 그러면 모델이 무엇을 하려는지 큰 윤곽이 보인다.
예를 들어 이미지 분류 모델을 본다면 입력은 이미지이고, 예측은 클래스 확률이며, 라벨은 이미지의 정답 종류이고, 손실은 예측 확률과 정답 사이의 차이다. 번역 모델을 본다면 입력은 원문 문장이고, 예측은 번역문 토큰들이며, 라벨은 실제 번역문이다. LLM을 본다면 입력은 앞 문맥이고, 예측은 다음 토큰 확률이며, 라벨은 실제 다음 토큰이다.
모델 이름은 달라도 해석의 뼈대는 같다. 이것이 머신러닝을 먼저 배운 사람의 장점이다.
다음 단계의 학습 경로
이 책은 머신러닝의 기초 체력을 만드는 데 초점을 맞췄다. 여기까지 왔다면 이제 딥러닝, 자연어 처리, 생성형 AI로 넘어갈 수 있다. 다만 한꺼번에 모든 것을 잡으려 하면 다시 길을 잃기 쉽다. 다음 순서로 넓혀 가면 훨씬 안정적이다.
먼저 신경망의 기본 구조를 배운다. 입력층, 은닉층, 출력층, 가중치, 활성화 함수, 손실 함수, 역전파가 어떻게 연결되는지 이해한다.
그다음 이미지와 시계열 같은 데이터에서 딥러닝이 특징을 어떻게 학습하는지 살펴본다. 합성곱 신경망이나 순환 구조를 완벽히 외우기보다, 데이터의 구조에 맞게 모델이 설계된다는 감각을 잡는다.
자연어 처리로 넘어가 토큰화, 임베딩, 문맥 표현을 익힌다. 단어를 숫자로 바꾸는 일이 단순한 변환이 아니라 의미 공간을 만드는 출발점임을 이해한다.
어텐션과 트랜스포머를 배운다. 문장 안의 여러 토큰이 서로 어떤 관계를 맺는지 모델이 참고하는 방식이라고 생각하면 출발이 쉽다.
마지막으로 LLM의 사전학습, 파인튜닝, 지시 따르기 학습, 검색 증강 생성 같은 응용 흐름을 배운다. 이때도 데이터, 예측, 손실, 평가의 관점을 놓치지 않는다.
이 경로에서 가장 중요한 것은 조급해하지 않는 것이다. 딥러닝은 용어가 화려하고 모델 규모가 크기 때문에, 처음부터 최신 모델 이름을 따라가다 보면 원리를 놓치기 쉽다. 반대로 기본 흐름을 붙잡고 있으면 새로운 기술이 나와도 "이 모델은 어떤 데이터를 보고, 무엇을 예측하며, 어떤 손실을 줄이고 있지?"라고 물을 수 있다.
그 질문을 던질 수 있다면 이미 제대로 배우고 있는 것이다.
머신러닝의 언어로 LLM을 다시 바라보기
이제 LLM을 한 번 더 머신러닝의 언어로 번역해 보자.
LLM은 대량의 텍스트 데이터를 사용한다. 텍스트는 토큰으로 나뉘고, 토큰은 임베딩이라는 숫자 벡터로 바뀐다. 모델은 앞의 문맥을 바탕으로 다음 토큰을 예측한다. 실제 다음 토큰과 예측을 비교해 손실을 계산한다. 손실을 줄이기 위해 신경망의 가중치를 조정한다. 이 과정을 엄청난 규모로 반복하면, 모델은 언어 데이터 속 패턴을 점점 더 많이 흡수한다.
이 설명에는 신비한 단어가 거의 없다. 데이터, 특징 또는 표현, 예측, 라벨, 손실, 최적화, 일반화가 있을 뿐이다. 우리가 이 책 전체에서 익힌 말들이다.
물론 LLM은 단순하지 않다. 규모가 크고, 학습 비용이 높고, 평가가 어렵고, 사회적 영향도 크다. 하지만 어렵다는 말과 이해 불가능하다는 말은 다르다. 우리는 이미 그 밑바닥의 원리를 알고 있다. 모델은 데이터를 보고 패턴을 배운다. 예측을 해 보고, 틀린 만큼 고친다. 그리고 새로운 상황에서도 쓸 만한 답을 하도록 일반화되기를 기대한다.
이 관점을 갖고 있으면 딥러닝과 생성형 AI를 더 차분하게 볼 수 있다. 놀라운 결과에 감탄할 수는 있지만, 동시에 질문할 수 있다. 어떤 데이터로 배웠을까? 어떤 목표로 학습했을까? 어디에서 틀릴 수 있을까? 이 답변을 어떻게 평가해야 할까? 실제 문제에 적용해도 괜찮을까?
좋은 AI 사용자는 모델의 결과를 무조건 믿는 사람이 아니다. 좋은 AI 개발자는 모델을 마법처럼 다루는 사람이 아니다. 좋은 학습자는 모델을 데이터와 손실과 평가의 관점에서 이해하려는 사람이다.
결국 같은 길 위에 있다
처음 이 책을 시작할 때 머신러닝은 낯선 단어들의 숲처럼 보였을지 모른다. 회귀, 분류, 군집화, 손실, 과적합, 일반화, 검증 데이터, 특성 엔지니어링, 데이터 누수. 하나씩 보면 어렵지만, 모두 같은 질문으로 연결된다.
데이터에서 어떤 패턴을 배울 것인가.
이 질문은 딥러닝에서도, LLM에서도 그대로 이어진다. 신경망은 더 복잡한 패턴을 배우기 위해 등장했다. 임베딩은 단어와 문장과 사용자를 숫자 공간에 놓기 위해 필요했다. 대규모 데이터는 다양한 상황과 표현을 담기 위해 필요했다. 손실과 최적화는 모델을 조금씩 더 나은 방향으로 고치기 위해 필요했다. 평가는 그 모델이 정말 쓸 만한지 확인하기 위해 필요했다.
그러므로 머신러닝에서 딥러닝으로 가는 길은 절벽이 아니라 다리다. 이 다리의 기둥은 이미 세워져 있다. 입력, 특징, 라벨, 예측, 손실, 학습, 평가, 일반화. 이 기둥들을 따라가면 딥러닝이라는 큰 도시도 조금씩 지도가 보인다.
다음에 더 복잡한 모델을 만나더라도 겁먹지 않아도 된다. 먼저 데이터를 찾고, 예측 대상을 찾고, 손실을 찾고, 평가 방법을 찾으면 된다. 그러면 아무리 거대한 모델도 결국 하나의 학습 시스템으로 보이기 시작한다.
그리고 그 순간, AI는 더 이상 멀리 있는 검은 상자가 아니다. 데이터를 보고 스스로 규칙을 배우려는 기계, 우리가 질문하고 실험하며 더 잘 이해할 수 있는 도구가 된다.
이 노트는 보도·비평·교육·연구 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.