문장을 쓰는 일도 행동의 연속이다
지금까지 우리는 Grid World에서 에이전트가 위, 아래, 왼쪽, 오른쪽 중 하나를 고르는 장면을 보았다. CartPole에서는 막대가 쓰러지지 않도록 왼쪽이나 오른쪽으로 카트를 밀었다. 게임 에이전트는 화면을 보고 버튼을 눌렀다. 모두 형태는 달랐지만 구조는 같았다.
상태를 보고, 행동을 고르고, 결과를 받고, 다음 상태로 이동한다.
이제 같은 눈으로 언어 모델을 바라보자. 언어 모델은 사람처럼 한 번에 완성된 문장을 통째로 꺼내 놓는 것처럼 보인다. 하지만 실제 내부 과정은 훨씬 잘게 쪼개져 있다. 모델은 현재까지의 문맥을 보고 다음에 올 토큰 하나를 선택한다. 그 토큰이 붙으면 문맥이 바뀐다. 바뀐 문맥을 보고 또 다음 토큰을 선택한다. 이 과정을 반복하면 단어가 되고, 문장이 되고, 답변이 된다.
여기서 토큰은 언어 모델이 다루는 작은 텍스트 조각이다. 한국어의 경우 한 글자일 수도 있고, 단어의 일부일 수도 있고, 자주 등장하는 표현의 덩어리일 수도 있다. 예를 들어 "강화학습은 재미있다"라는 문장은 모델 내부에서 여러 토큰으로 나뉘어 처리된다.
겉으로는 "답변 생성"이지만, 강화학습의 눈으로 보면 이것은 순차적 의사결정이다. 언어 모델은 매 순간 다음 토큰이라는 행동을 선택하고 있다.

프롬프트는 출발 상태가 된다
강화학습에서 상태는 에이전트가 결정을 내리기 위해 보는 정보였다. Grid World에서는 현재 위치가 상태였다. CartPole에서는 카트 위치, 속도, 막대 각도 같은 숫자가 상태였다. 그렇다면 언어 모델에서 상태는 무엇일까?
가장 먼저 주어지는 것은 프롬프트다. 사용자가 입력한 질문, 지시문, 대화 기록이 출발 상태가 된다.
예를 들어 사용자가 이렇게 물었다고 해 보자.
"강화학습을 초등학생도 이해할 수 있게 설명해 줘."
이 프롬프트를 받은 순간, 언어 모델의 첫 상태는 이 문맥 전체다. 모델은 이 상태를 보고 다음 토큰을 고른다. 첫 토큰으로 "강"을 고를 수도 있고, "좋"을 고를 수도 있고, "물"을 고를 수도 있다. 실제로는 사람이 읽는 글자 단위와 정확히 같지는 않지만, 직관적으로는 "답변의 첫 조각을 고른다"고 생각하면 된다.
만약 모델이 "좋"에 해당하는 토큰을 골랐다면, 이제 상태는 바뀐다.
"강화학습을 초등학생도 이해할 수 있게 설명해 줘. 좋"
다음에는 이 상태를 보고 또 다음 토큰을 고른다. "아"가 나올 수도 있고, 다른 표현으로 이어질 수도 있다. "좋아"가 만들어지면 상태는 다시 바뀐다. 이런 식으로 지금까지 생성한 모든 토큰이 다음 결정을 위한 문맥이 된다.
언어 모델의 상태는 단순한 위치 하나가 아니다. 프롬프트와 지금까지 생성한 토큰 전체가 상태다. 그래서 문장이 길어질수록 상태도 함께 길어진다. 답변이 진행될수록 모델은 자신이 이미 한 말을 고려해야 한다. 앞에서 "세 가지 이유가 있습니다"라고 말했다면 뒤에서 정말 세 가지를 말해야 자연스럽다. 앞에서 "먼저"라고 시작했다면 뒤에는 "다음으로"나 "마지막으로"가 어울린다.
이 점이 중요하다. 언어 모델은 빈 종이에 아무 말이나 던지는 것이 아니다. 매 순간 누적된 문맥이라는 상태 위에서 다음 행동을 선택한다.
다음 토큰 선택은 행동이다
강화학습에서 행동은 에이전트가 상태를 바꾸기 위해 선택하는 것이다. Grid World에서는 위로 가기, 아래로 가기, 왼쪽으로 가기, 오른쪽으로 가기였다. 언어 모델에서는 다음 토큰을 고르는 것이 행동이다.
상태가 "오늘 날씨가"라면 가능한 다음 행동은 매우 많다.
"좋"에 해당하는 토큰을 선택할 수 있다.
"흐"에 해당하는 토큰을 선택할 수 있다.
"어"에 해당하는 토큰을 선택할 수 있다.
문장을 끝내는 토큰을 선택할 수도 있다.
행동 공간은 어마어마하게 크다. Grid World에서는 행동이 네 개뿐이었다. CartPole에서는 보통 왼쪽과 오른쪽 두 개였다. 하지만 언어 모델은 수만 개 이상의 토큰 후보 중 하나를 골라야 한다. 게다가 어떤 토큰이 좋은지는 상황마다 달라진다. "사과"라는 토큰은 과일 이야기를 할 때는 자연스럽지만, 은행 이체 오류에 대한 답변에서는 "사과드립니다"의 일부로 등장할 수도 있다. 같은 토큰이라도 문맥에 따라 의미와 가치가 달라진다.
언어 모델은 각 토큰 후보에 확률을 부여한다. 지금 상태에서 어떤 토큰이 얼마나 그럴듯한지를 계산하는 것이다. 이 확률 분포를 강화학습의 언어로 보면 정책이라고 부를 수 있다. 정책은 "이 상태에서 어떤 행동을 얼마나 자주 선택할 것인가"를 나타내는 규칙이었다.
언어 모델의 정책은 다음과 같은 질문에 답한다.
"현재 문맥이 이렇다면, 다음 토큰으로 무엇을 선택할 가능성이 높은가?"
가장 확률이 높은 토큰만 고르면 답변이 안정적일 수 있다. 하지만 항상 가장 뻔한 말만 하면 재미없고, 때로는 부자연스러운 반복에 빠질 수 있다. 반대로 낮은 확률의 토큰까지 자주 고르면 창의적일 수 있지만 엉뚱한 답변이 나올 위험도 커진다. 여기에도 우리가 앞에서 배운 탐험과 활용의 그림자가 있다. 언어 모델의 생성 설정에서 온도나 샘플링 방식이 중요해지는 이유도 이와 연결된다.
한 문장은 하나의 에피소드처럼 볼 수 있다
강화학습에서 에피소드는 시작부터 종료까지 이어지는 한 번의 시도였다. Grid World에서는 출발점에서 시작해 목표에 도착하거나 함정에 빠질 때까지가 한 에피소드였다. CartPole에서는 막대가 쓰러질 때까지가 한 에피소드였다.
언어 모델에서는 하나의 답변 생성 과정을 에피소드처럼 볼 수 있다. 프롬프트가 주어지는 순간 에피소드가 시작된다. 모델은 토큰을 하나씩 생성한다. 문장이나 답변을 끝내는 특수한 종료 토큰을 내거나, 정해진 길이 제한에 도달하면 에피소드가 끝난다.
이 과정을 강화학습식으로 쓰면 다음과 같다.
상태: 프롬프트와 지금까지 생성한 토큰
행동: 다음 토큰 선택
다음 상태: 선택한 토큰이 뒤에 붙은 새 문맥
종료: 답변 완료 또는 길이 제한 도달
보상: 생성된 답변에 대한 품질 평가
예를 들어 사용자가 "Python에서 리스트를 정렬하는 방법을 알려 줘"라고 물었다고 하자. 모델은 "파", "이", "썬" 같은 식으로 내부 토큰을 이어 붙이며 답변을 만든다. 최종 답변이 다음과 같다면 꽤 좋은 답변일 수 있다.
"Python에서는
list.sort()를 사용해 원본 리스트를 정렬하거나,sorted()를 사용해 정렬된 새 리스트를 만들 수 있습니다."
이 답변은 질문에 맞고, 핵심 차이를 설명하며, 실용적이다. 반대로 모델이 다음처럼 답했다면 품질이 낮다.
"리스트는 데이터입니다. 정렬은 중요합니다. 감사합니다."
문법적으로는 말이 되지만 사용자가 원하는 정보는 거의 없다. 또 다음처럼 답했다면 더 위험하다.
"Python에서는
list.order()를 사용하면 됩니다."
그럴듯하지만 틀렸다. list.order()는 표준 리스트 메서드가 아니다. 사용자는 이런 답변을 믿고 코드를 작성하다가 오류를 만날 것이다.
언어 모델의 보상은 바로 이런 차이를 반영하려고 한다. 단순히 문장이 자연스러운지뿐 아니라, 질문에 도움이 되는지, 사실과 맞는지, 불필요하게 위험한 조언을 하지 않는지, 사용자의 의도를 제대로 따르는지를 평가 신호로 삼는다.
정답이 하나가 아닐 때 보상이 필요해진다
지도학습에서는 보통 입력과 정답 쌍이 있다. 이미지가 들어오면 "고양이"라는 라벨이 있고, 문장이 들어오면 번역 정답이 있다. 물론 현실의 데이터도 완벽히 단순하지는 않지만, 학습 목표는 대체로 "정답에 가까워지기"다.
언어 모델도 처음에는 대규모 텍스트를 이용해 다음 토큰을 예측하는 방식으로 학습한다. 어떤 문맥 뒤에 실제로 등장한 다음 토큰을 맞히는 훈련이다. 이 과정은 매우 강력하다. 모델은 문법, 상식, 코드 패턴, 설명 방식, 대화의 흐름을 넓게 배운다.
하지만 사용자의 질문에 좋은 답변을 하는 문제는 단순한 다음 토큰 맞히기만으로 끝나지 않는다. 왜냐하면 좋은 답변은 하나가 아니기 때문이다.
사용자가 이렇게 묻는다고 해 보자.
"강화학습을 비유로 설명해 줘."
좋은 답변은 여러 가지가 가능하다. 미로 찾기에 비유할 수도 있고, 강아지 훈련에 비유할 수도 있고, 게임 캐릭터가 점수를 얻는 방식에 비유할 수도 있다. 어떤 답변은 짧고 명쾌해서 좋고, 어떤 답변은 길지만 친절해서 좋다. 사용자의 수준과 상황에 따라 선호되는 답변도 달라진다.
이때 "정답 문장 하나"를 정해 놓고 그대로 맞히라고 하는 방식은 한계가 있다. 모델이 반드시 특정 문장을 출력해야 좋은 것이 아니다. 오히려 같은 의미를 더 쉽게 설명하거나, 사용자의 맥락에 맞게 바꾸는 능력이 중요하다.
그래서 보상이라는 관점이 필요해진다. 보상은 "이 답변이 얼마나 좋은가"를 평가하는 신호다. 하나의 정답 문장을 강요하는 대신, 다양한 답변 후보를 놓고 더 나은 방향을 알려 준다.
예를 들어 같은 질문에 대해 세 답변이 있다고 하자.
A: "강화학습은 보상을 최대화하는 학습입니다."
B: "강화학습은 게임 캐릭터가 점수를 얻어 가며 더 좋은 플레이 방법을 배우는 과정과 비슷합니다."
C: "강화학습은 데이터베이스를 정규화하는 방법입니다."
A는 틀리지는 않지만 초보자에게는 조금 딱딱하다. B는 질문의 의도에 잘 맞고 이해하기 쉽다. C는 완전히 엉뚱하다. 보상은 B에 높은 점수를, A에는 중간 점수를, C에는 낮은 점수를 줄 수 있다.
이렇게 보면 언어 모델에서 보상은 "정답 여부"보다 넓은 개념이다. 정확성, 유용성, 친절함, 안전성, 일관성, 형식 준수 같은 여러 요소가 함께 들어간다.
토큰 하나하나에 점수를 주기는 어렵다
여기서 중요한 문제가 생긴다. 보상은 보통 최종 답변을 보고 매겨진다. 그런데 행동은 토큰 단위로 일어난다.
모델이 300개의 토큰으로 답변을 만들었다고 해 보자. 사람이 답변을 읽고 "좋다" 또는 "별로다"라고 평가할 수는 있다. 하지만 300개의 토큰 중 어떤 토큰이 좋았고, 어떤 토큰이 나빴는지 하나하나 점수를 매기기는 어렵다.
이것은 앞에서 배운 신용 할당 문제와 같다. 신용 할당은 결과에 대한 책임을 과거의 행동들에 어떻게 나눠 줄 것인가의 문제였다.
예를 들어 축구 경기에서 팀이 골을 넣었다고 하자. 골을 넣은 선수만 잘한 것일까? 그 전에 공을 빼앗은 수비수, 공간을 만든 미드필더, 수비를 끌고 간 공격수도 기여했을 수 있다. 반대로 실점했을 때도 마지막에 공을 놓친 골키퍼만 탓할 수는 없다. 그 전에 압박이 풀렸고, 패스 길이 열렸고, 수비 간격이 벌어졌을 수 있다.
언어 모델도 마찬가지다. 최종 답변이 훌륭했다면 어떤 토큰들이 그 품질에 기여했을까? 첫 문장의 친절한 도입 때문일까? 중간의 정확한 예시 때문일까? 마지막 요약 때문일까? 반대로 답변이 나빴다면 어느 지점에서 문제가 시작된 것일까?
다음 답변을 보자.
"강화학습은 에이전트가 환경과 상호작용하며 보상을 통해 행동을 배우는 방법입니다. 예를 들어 게임에서 점수를 얻는 행동은 더 자주 선택되도록 학습됩니다. 다만 강화학습은 항상 정답 라벨이 필요합니다."
앞부분은 좋다. 그런데 마지막 문장이 문제다. 강화학습은 보통 매 순간 정답 행동 라벨이 주어지는 방식이 아니다. 이 답변 전체에 낮은 보상을 준다면, 모델은 앞부분의 좋은 설명까지 함께 벌을 받는 셈이 된다. 그렇다고 마지막 문장만 정확히 골라 벌을 주는 것도 쉽지 않다.
이 어려움 때문에 언어 모델에 강화학습을 적용하는 일은 단순하지 않다. 최종 보상은 답변 전체에 대한 평가인데, 학습은 토큰 선택 확률을 조금씩 바꾸는 방식으로 이루어진다. 긴 답변일수록 어떤 선택이 최종 품질에 어떤 영향을 미쳤는지 추적하기가 더 어려워진다.
보상은 늦게 도착하는 편지와 같다
Grid World에서는 한 칸 움직일 때마다 보상을 받을 수 있었다. 목표에 가까워지면 작은 보상을 주고, 목표에 도착하면 큰 보상을 줄 수도 있었다. 하지만 언어 모델에서는 중간 보상을 설계하기가 까다롭다.
모델이 답변을 생성하는 도중에는 아직 전체 품질을 알기 어렵다. 첫 문장이 평범해 보여도 뒤에서 훌륭한 예시가 나올 수 있다. 반대로 처음에는 그럴듯해도 끝에서 엉뚱한 결론을 낼 수 있다.
그래서 많은 경우 보상은 답변이 끝난 뒤에 도착한다. 사용자가 만족했는지, 사람이 어느 답변을 더 선호했는지, 보상 모델이 몇 점을 주었는지 같은 신호가 최종적으로 주어진다.
이 보상은 늦게 도착하는 편지와 같다. 에이전트는 이미 많은 행동을 했다. 수십 개, 수백 개, 때로는 수천 개의 토큰을 선택했다. 그런데 마지막에야 "이번 답변은 좋았어" 또는 "이번 답변은 문제가 있었어"라는 평가가 온다. 이제 모델은 그 평가를 바탕으로 과거의 선택 확률을 조정해야 한다.
강화학습 알고리즘은 바로 이 어려운 작업을 다룬다. 좋은 평가를 받은 답변에서 실제로 선택된 토큰들의 확률은 대체로 높이고, 나쁜 평가를 받은 답변에서 선택된 토큰들의 확률은 조심스럽게 낮춘다. 물론 아무 토큰이나 무작정 올리고 내리면 안 된다. 문법이 망가지거나, 모델이 지나치게 보상만 쫓거나, 원래 알고 있던 능력이 흔들릴 수 있기 때문이다.
이 지점에서 앞에서 배운 Policy Gradient, Advantage, PPO 같은 개념이 다시 등장한다. 언어 모델도 결국 정책이다. 토큰을 선택하는 정책이다. 좋은 답변으로 이어진 행동은 더 자주 나오게 하고, 나쁜 답변으로 이어진 행동은 덜 나오게 조정한다. 다만 행동 공간이 크고, 상태가 길고, 보상이 복잡하기 때문에 더 조심스러운 방법이 필요하다.
언어 모델의 보상은 단순한 점수가 아니다
게임에서는 보상이 비교적 분명해 보인다. 점수를 얻으면 좋고, 목숨을 잃으면 나쁘다. 물론 보상 설계 장에서 보았듯이 게임에서도 보상 해킹이 생길 수 있다. 하지만 언어는 훨씬 더 복잡하다.
좋은 답변이란 무엇일까?
정확해야 한다. 하지만 정확하기만 하고 너무 어렵다면 사용자는 만족하지 못할 수 있다. 친절해야 한다. 하지만 친절하다고 해서 틀린 정보를 그럴듯하게 말하면 더 위험하다. 자세해야 한다. 하지만 사용자가 짧은 답을 원했는데 장황하게 늘어놓으면 좋지 않다. 안전해야 한다. 하지만 모든 질문에 지나치게 방어적으로 답하면 유용성이 떨어진다.
언어 모델의 보상은 보통 여러 기준이 얽힌 결과다.
사용자의 지시를 잘 따르는가
사실적으로 맞는 정보를 제공하는가
이해하기 쉽고 유용한가
위험하거나 해로운 요청에 적절히 대응하는가
불필요한 반복이나 모순 없이 일관적인가
이 기준들은 항상 같은 방향으로 움직이지 않는다. 예를 들어 사용자가 위험한 화학 물질 제조법을 자세히 알려 달라고 하면, "지시를 따른다"는 기준과 "안전하다"는 기준이 충돌한다. 이때 좋은 모델은 무조건 자세히 설명하는 것이 아니라, 위험한 부분은 피하고 안전한 대안을 제시해야 한다.
따라서 언어 모델의 보상은 단순히 "사용자가 원하는 말을 해 주면 +1" 같은 형태로 끝나지 않는다. 어떤 도움은 제공해야 하고, 어떤 요청은 거절해야 하며, 거절하더라도 무례하거나 불필요하게 장황하지 않아야 한다. 이것이 LLM 정렬이 어려운 이유다. 정렬은 모델의 행동이 사람이 기대하는 가치와 기준에 맞도록 만드는 과정이다.
다음 토큰 예측과 보상 학습은 서로 다른 역할을 한다
여기서 한 가지를 분명히 해 두자. 언어 모델이 처음부터 강화학습만으로 언어를 배우는 것은 아니다. 만약 아무것도 모르는 모델에게 "좋은 답변을 하면 보상을 줄게"라고만 말한다면, 모델은 글자도 모르고 문법도 모르고 세상 지식도 모른 채 헤매게 된다. 마치 게임 규칙도 모르고 컨트롤러 버튼도 모르는 에이전트에게 최고 점수를 내라고 하는 것과 같다.
대부분의 언어 모델은 먼저 방대한 텍스트로 기본 언어 능력을 배운다. 이 단계에서는 다음 토큰 예측이 중심이다. "이 문맥 다음에 어떤 토큰이 올 가능성이 높은가?"를 학습하면서 문법, 표현, 지식, 코드 패턴을 익힌다.
그다음에는 사람이 원하는 답변 형식에 더 가까워지도록 추가 학습을 한다. 예시 답변을 따라 배우는 단계도 있고, 사람이 더 선호하는 답변을 이용해 조정하는 단계도 있다. 강화학습은 주로 후자의 영역에서 힘을 발휘한다. 이미 말할 줄 아는 모델이, 어떤 방식으로 말하는 것이 더 좋은지 배우도록 돕는 것이다.
비유하자면 다음과 같다. 먼저 언어 모델은 책을 많이 읽으며 말과 지식을 배운다. 그다음 좋은 선생님에게 "이 답변은 친절하지만 너무 길다", "이 답변은 정확하지만 예시가 부족하다", "이 답변은 위험한 요청에 너무 직접적으로 응답했다" 같은 피드백을 받는다. 강화학습은 이런 피드백을 정책 조정의 신호로 바꾸는 방법이다.
작은 예시로 보는 LLM 강화학습 루프
간단한 장면을 상상해 보자. 사용자가 묻는다.
"초보자를 위해 Q-learning을 한 문단으로 설명해 줘."
모델은 현재 프롬프트를 상태로 보고 첫 토큰을 선택한다. 토큰이 하나 붙으면 상태가 바뀐다. 다시 다음 토큰을 선택한다. 이런 식으로 답변을 완성한다.
첫 번째 후보 답변은 이렇다.
"Q-learning은 상태와 행동의 가치를 표로 저장하고, 경험을 통해 더 좋은 행동의 점수를 높여 가는 강화학습 방법입니다."
두 번째 후보 답변은 이렇다.
"Q-learning은 머신러닝에서 사용하는 고급 최적화 기법으로, 데이터셋의 정답 라벨을 이용해 손실을 줄입니다."
첫 번째는 짧고 정확하며 초보자에게도 비교적 쉽다. 두 번째는 지도학습 설명과 섞여 있어 부정확하다. 평가자는 첫 번째 답변에 더 높은 보상을 줄 것이다.
이제 학습의 목표는 명확하다. 첫 번째 답변처럼 이어지는 토큰 선택 경로는 앞으로 조금 더 가능성이 높아지게 한다. 두 번째 답변처럼 틀린 방향으로 이어지는 경로는 가능성이 낮아지게 한다. 물론 이 조정은 매우 섬세해야 한다. "Q-learning"이라는 단어 자체를 벌주면 안 되고, "정답 라벨을 이용한다"는 잘못된 설명으로 이어진 선택을 줄여야 한다.
이처럼 언어 모델의 강화학습은 답변 전체의 평가를 토큰 선택 정책에 되돌려 보내는 과정이다.
긴 답변일수록 길 찾기가 어려워진다
짧은 답변에서는 어떤 부분이 문제였는지 비교적 찾기 쉽다. 하지만 긴 답변에서는 상황이 복잡해진다.
예를 들어 모델이 "강화학습 입문 강의 계획"을 2,000자 분량으로 작성했다고 해 보자. 전체적으로는 훌륭하지만 중간에 한 가지 개념 설명이 틀렸을 수 있다. 또는 사실은 맞지만 난이도 조절이 실패했을 수 있다. 또는 앞에서는 "초보자용"이라고 해 놓고 뒤에서는 갑자기 수식 위주의 대학원 강의처럼 바뀔 수 있다.
최종 보상이 7점이라고 할 때, 이 7점은 무엇을 의미할까? 도입부는 10점, 중간 예시는 8점, 마지막 수식 설명은 3점이었을 수도 있다. 하지만 모델이 받은 것은 답변 전체에 대한 하나의 점수일 수 있다. 그러면 학습 신호가 흐릿해진다.
이 문제는 LLM에서 특히 중요하다. 언어 모델은 긴 문맥을 다루고, 한 답변 안에서도 여러 목표를 동시에 만족해야 한다. 질문에 답해야 하고, 형식을 지켜야 하고, 안전해야 하고, 말투도 적절해야 한다. 하나의 보상 숫자가 이 모든 것을 완벽히 설명하기는 어렵다.
그래서 실제 LLM 정렬에서는 다양한 장치가 함께 쓰인다. 사람이 직접 더 나은 답변을 고르기도 하고, 그 선호를 배운 보상 모델을 만들기도 하며, 정책이 갑자기 망가지지 않도록 업데이트 폭을 제한하기도 한다. 이 중 일부는 다음 장부터 차례로 살펴볼 것이다.
보상을 잘못 주면 말도 이상해진다
앞에서 보상 설계 실험을 하며 보상 해킹을 보았다. 에이전트는 우리가 의도한 목표가 아니라, 보상 함수를 최대화하는 방법을 찾는다. 언어 모델도 예외가 아니다.
만약 보상이 "답변 길이"에만 비례한다면 모델은 쓸데없이 길게 말할 것이다. 사용자가 "한 줄로 답해 줘"라고 해도 장황하게 설명할 수 있다. 만약 보상이 "자신감 있는 말투"에만 높게 주어진다면 모델은 모르는 것도 확신에 차서 말할 수 있다. 만약 보상이 "사용자의 만족 반응"에만 너무 치우치면, 모델은 사용자의 틀린 믿음에 맞장구치는 방향으로 흐를 수 있다.
이것은 매우 중요한 경고다. 언어 모델에 보상을 적용한다는 것은 단순히 "좋은 답변에 점수를 준다"는 문제가 아니다. 어떤 행동을 좋은 행동으로 정의할 것인가의 문제다. 보상이 잘못 설계되면 모델은 우리가 원한 지능이 아니라, 점수를 얻는 요령을 배운다.
따라서 LLM에서 보상은 신중하게 다루어야 한다. 특히 사람과 대화하는 모델은 지식, 도움, 안전, 정직성, 겸손함 사이에서 균형을 잡아야 한다. 이 균형은 수식 하나로 쉽게 끝나지 않는다. 그래서 인간 피드백이 중요해진다.
강화학습 관점으로 다시 정리하기
이 장의 핵심은 하나다. 문장 생성도 순차적 행동 선택으로 볼 수 있다는 것이다.
언어 모델은 프롬프트를 보고 답변을 한 번에 완성하지 않는다. 지금까지의 문맥을 상태로 삼고, 다음 토큰을 행동으로 선택한다. 선택된 토큰은 다시 상태의 일부가 된다. 이 과정을 반복해 하나의 답변이라는 에피소드를 만든다. 그리고 답변의 품질은 보상으로 평가될 수 있다.
이 관점이 열리면 LLM과 강화학습의 연결이 훨씬 선명해진다. 우리가 배운 Agent, Environment, State, Action, Reward는 더 이상 Grid World나 CartPole에만 머물지 않는다. 언어 모델에서도 그대로 다시 등장한다.
다만 언어 모델의 세계는 더 까다롭다. 행동 후보가 수만 개의 토큰으로 커지고, 상태는 긴 문맥이 되며, 보상은 정확성·유용성·안전성 같은 복잡한 기준을 포함한다. 무엇보다 최종 답변의 품질을 개별 토큰 선택에 어떻게 되돌려 줄 것인지가 어렵다.
다음 장에서는 이 문제를 조금 더 현실적인 방식으로 다룬다. 사람이 어떤 답변을 더 좋아하는지 비교하고, 그 선호를 이용해 보상 모델을 만드는 과정을 살펴볼 것이다. 언어 모델은 이제 단순히 다음 단어를 맞히는 기계에서, 피드백을 통해 더 나은 답변 방식을 배우는 에이전트로 넘어간다.
이 노트는 보도·비평·교육·연구 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.