7장. 대화 데이터로 어시스턴트가 된다

많이 읽은 모델은 아직 조교가 아니다

베이스 모델(base model)은 인터넷 문서를 이어 쓰는 데 익숙합니다. 그래서 그대로 두면 우리가 기대하는 어시스턴트처럼 행동하지 않습니다. “이 개념을 설명해줘”라고 물었을 때 친절하게 답하고, “이 코드를 고쳐줘”라고 하면 문제를 짚어주고, 위험한 요청에는 조심스럽게 거절하는 태도는 저절로 생기는 것이 아닙니다. 카파시는 이 지점을 분명히 나눕니다. 사전학습(pre-training)으로 만들어진 베이스 모델은 많은 지식을 품은 토큰 시뮬레이터입니다. 우리가 매일 만나는 ChatGPT 같은 도구는 그 위에 후속훈련(post-training)이 얹힌 어시스턴트입니다 (링크). 후속훈련은 모델을 조금 더 똑똑하게 만드는 장식이 아니라, 모델의 행동 양식과 말투와 거절 방식까지 바꾸는 과정입니다. 모를 때 어떻게 말할지, 어디까지 도울지, 어떤 요청 앞에서 멈출지도 여기에서 배웁니다. 사람으로 비유하면, 아주 많은 책을 읽은 사람이 아직 좋은 조교가 된 것은 아니라는 뜻입니다. 책을 많이 읽은 사람도 학생의 질문에 어떻게 답해야 하는지, 어디까지 도와줘야 하는지, 어떤 말은 조심해야 하는지 따로 배워야 합니다.

용어 메모

베이스 모델(base model): 많은 글을 읽고 이어 쓰는 능력을 먼저 배운 모델입니다.

어시스턴트(assistant): 사용자의 질문에 도움 되는 답을 하도록 추가 훈련된 모델의 사용 형태입니다.

후속훈련(post-training): 베이스 모델을 대화와 도움의 형식에 맞게 다시 훈련하는 단계입니다.

토큰 시뮬레이터: 다음 토큰을 이어가며 글의 흐름을 흉내 내는 모델이라는 뜻입니다.

이때 사용하는 핵심 재료가 대화 데이터입니다. 인터넷 문서 대신, 사람과 어시스턴트가 주고받는 대화 예시를 많이 만듭니다. 사용자가 “2 더하기 2는?”이라고 묻고 어시스턴트가 “4입니다”라고 답하는 예시가 있을 수 있습니다. 사용자가 앞 질문을 바꾸어 “곱하기라면?”이라고 물으면 어시스턴트가 이전 문맥을 이어 받아 답하는 예시도 있을 수 있습니다. 어떤 요청에는 도와주지 않는 답변이 들어갑니다. 답변은 도움이 되고(helpful), 진실하며(truthful), 해롭지 않아야(harmless) 한다는 기준을 따라야 합니다. 이 말들은 짧지만, 실제로는 아주 많은 판단을 포함합니다. 도움이 된다는 것은 사용자의 의도를 이해한다는 뜻이고, 진실하다는 것은 근거 없는 말을 꾸며내지 않는다는 뜻이며, 해롭지 않다는 것은 위험한 행동을 부추기지 않는다는 뜻입니다. 이 기준을 데이터로 만들면 모델은 그 대화의 통계를 배웁니다.

예시로 행동을 가르치기

카파시는 이 과정을 “예시로 프로그래밍하기(programming by example)“로 설명합니다 (링크). 우리가 전통적인 프로그램을 만들 때는 규칙을 코드로 씁니다. “이런 입력이 오면 이렇게 처리하라”는 절차를 명시합니다. 그러나 LLM 어시스턴트를 만들 때는 수많은 예시 대화를 통해 행동을 가르칩니다. 사람 라벨러(labeler)가 프롬프트(prompt)를 만들고, 이상적인 어시스턴트 답변을 씁니다. 이 라벨러들은 아무렇게나 답하지 않습니다. 회사가 만든 긴 라벨링 지침(labeling instruction)을 읽고, 어떤 답변이 좋은지에 대한 기준을 배운 뒤 예시를 작성합니다. 이런 지침에는 보통 “사용자의 질문에 직접 답하라”, “근거가 없으면 추측을 사실처럼 말하지 말라”, “위험한 행동을 구체적으로 돕지 말라”, “여러 답변이 가능하면 더 도움이 되는 구조를 고르라” 같은 항목이 들어갑니다. 실제 공개 논문과 기술 보고서에서도 이런 사람 평가와 지침이 후속훈련의 중요한 재료였음을 볼 수 있습니다. 그러면 베이스 모델은 인터넷 문서의 통계에서 조금 벗어나, “사람이 질문하면 어시스턴트는 이런 식으로 답한다”는 패턴을 배우게 됩니다. 오늘날에는 다른 LLM이 이런 데이터 생성에 많이 참여하고, 사람은 감수하거나 수정하거나 기준을 잡는 역할을 하기도 합니다. 어시스턴트의 친절함과 조심성은 하늘에서 떨어진 성격이 아니라, 데이터와 기준을 통해 훈련된 행동입니다.

용어 메모

예시로 프로그래밍하기(programming by example): 규칙을 하나하나 쓰기보다 좋은 예시를 많이 보여주어 행동을 배우게 하는 방식입니다.

프롬프트(prompt): 사용자가 모델에게 주는 질문이나 지시문입니다.

라벨러(labeler): 모델 훈련에 쓸 좋은 질문과 답변 예시를 만드는 사람입니다.

라벨링 지침(labeling instruction): 라벨러가 어떤 답을 좋은 답으로 볼지 참고하는 자세한 기준 문서입니다.

대화도 토큰의 줄이 된다

대화도 모델 안으로 들어갈 때는 결국 토큰열이 됩니다. 사람에게는 화면에 말풍선처럼 보이는 사용자 질문과 어시스턴트 답변도, 서버 안에서는 특수 토큰과 텍스트 토큰이 섞인 1차원의 긴 줄로 바뀝니다. “여기서부터 사용자의 말이다”, “여기서부터 어시스턴트의 말이다”, “이 대화는 여기서 끝난다” 같은 표지가 토큰으로 들어갑니다. 카파시는 대화 규약(conversation protocol)을 보여주며, 우리가 구조화된 대화라고 느끼는 것이 실제로는 모델이 읽을 수 있는 토큰열로 부호화(encoding)된다고 설명합니다 (링크). 이 사실은 조금 건조하지만 중요합니다. 어시스턴트가 대화의 역할을 이해하는 것은 어떤 영혼이 생겼기 때문이 아니라, 대화 구조가 반복적으로 토큰열 안에 들어가고, 모델이 그 패턴을 배웠기 때문입니다. 시스템 메시지도 같은 원리입니다. 사용자에게 보이지 않는 지시가 문맥 맨 앞에 들어가면, 모델은 그것을 보고 자신의 말투와 경계를 조정합니다. 그래서 “너는 친절한 생물학 튜터다” 같은 지시가 답변의 분위기를 바꿀 수 있습니다.

용어 메모

특수 토큰: 대화의 시작, 사용자 말, 어시스턴트 말처럼 역할을 표시하는 특별한 토큰입니다.

대화 규약(conversation protocol): 대화를 모델이 읽을 수 있는 일정한 형식으로 바꾸는 약속입니다.

시스템 메시지(system message): 사용자에게 보이지 않지만 모델의 말투와 규칙을 정하는 앞쪽 지시문입니다.

이 설명은 ChatGPT의 답변을 조금 다르게 보게 만듭니다. 카파시는 후속훈련된 어시스턴트의 답변을, 라벨링 지침을 배운 인간 라벨러가 시간을 들여 썼을 법한 답변의 신경망적 시뮬레이션으로 생각할 수 있다고 말합니다 (링크). 물론 실제로 매번 사람이 뒤에서 답을 쓰는 것은 아닙니다. 우리는 몇 초 만에 답을 받습니다. 하지만 통계적으로 보면 모델은 사전학습에서 얻은 배경지식과 후속훈련에서 배운 대화 양식을 결합해, 이상적인 답변 예시에 가까운 문장을 생성합니다. 이 관점은 LLM을 과소평가하지도 과대평가하지도 않게 해줍니다. 모델은 단순한 검색기가 아니며, 아주 많은 지식과 패턴을 압축해둔 신경망입니다. 동시에 모델은 전지전능한 연구자가 아니라, 특정 방식으로 만들어진 어시스턴트 행동을 빠르게 시뮬레이션하는 시스템입니다. 그래서 답변이 훌륭해 보여도 “이 답은 어떤 종류의 예시와 기준을 닮은 것일까”라고 묻는 태도가 필요합니다.

이 질문은 1학년 학생에게도 실용적입니다. 모델의 답변이 친절하게 보일 때, 우리는 쉽게 “이 설명은 나를 위해 생각해서 쓴 것”이라고 느낍니다. 어느 정도는 맞습니다. 지금 입력된 질문에 맞추어 생성되었기 때문입니다. 그러나 동시에 그 친절함은 많은 예시 답변을 닮은 결과이기도 합니다. 그래서 모델은 때때로 너무 일반적인 조언을 하거나, 실제 자료보다 보기 좋은 구조를 먼저 만들 수 있습니다. 학생이 “이 답이 내 자료를 실제로 읽은 결과인가, 아니면 좋은 답변의 형식을 흉내 낸 것인가”를 물어보면 사용 방식이 달라집니다. 논문 초록을 넣었을 때는 근거 문장을 표시하게 하고, 표를 넣었을 때는 어떤 열을 사용했는지 묻게 되며, 모르는 내용을 설명받을 때는 “내가 이해했는지 확인할 질문을 해달라”고 말할 수 있습니다. 어시스턴트의 말투를 이해하면, 그 말투에 끌려가기보다 그 말투를 공부에 맞게 사용할 수 있습니다.

친절함을 믿기 전에

의생명과학 학생에게 지도 미세조정(SFT)의 의미는 실용적입니다. ChatGPT가 논문 초록을 요약해줄 때, 그것은 논문을 이해한 연구자가 직접 쓴 리뷰가 아닙니다. 많은 대화 예시와 논문 요약 패턴을 배운 모델이, 지금 입력된 초록을 바탕으로 어시스턴트다운 요약을 생성하는 것입니다. 이 도구는 초보자가 논문에 들어가는 문턱을 낮춰줍니다. 낯선 단어를 풀어주고, 연구 질문과 방법과 결과를 나누어주고, 코드 오류를 설명해줄 수 있습니다. 그러나 학생이 해야 할 일까지 사라지는 것은 아닙니다. 좋은 어시스턴트 답변은 공부의 끝이 아니라 시작입니다. 모델이 나눈 “연구 질문, 방법, 결과, 한계”가 실제 논문에 맞는지 다시 읽어야 합니다. 모델이 안전하게 거절하거나 조심스럽게 말하는 이유도 이해해야 합니다. 어시스턴트가 된다는 것은 모델이 더 인간처럼 보인다는 뜻이지만, 그 인간다움은 훈련된 대화 양식입니다. 바로 그 사실을 알 때 우리는 모델을 더 잘 활용할 수 있습니다.

어시스턴트의 말투가 만들어지는 과정에는 사회적 선택도 들어갑니다. 어떤 답변을 친절하다고 볼 것인지, 어느 정도의 확신을 허용할 것인지, 어떤 주제에서 조심해야 할 것인지, 어떤 요청을 거절해야 할 것인지는 모두 사람이 정한 기준에 영향을 받습니다. 라벨링 지침은 단순한 기술 문서가 아니라, 모델이 사용자와 어떤 관계를 맺어야 하는지에 대한 규범을 담습니다. 카파시가 InstructGPT와 라벨러의 역할을 설명할 때 보여주는 핵심도 여기에 있습니다 (링크). 모델은 인터넷을 읽으며 얻은 수많은 말투 중에서, 어시스턴트에게 어울리는 말투를 따로 배우게 됩니다. 그래서 ChatGPT의 답변은 “중립적인 기계의 목소리”라기보다, 특정 서비스가 좋은 답변이라고 판단한 예시들의 평균적인 목소리에 가깝습니다. 이 말은 불편하게 들릴 수 있지만, 오히려 우리에게 중요한 자유를 줍니다. 우리는 어시스턴트의 답변을 절대적 권위로 받아들이지 않고, 어떤 기준과 훈련을 거쳐 나온 말인지 물을 수 있습니다. 특히 대학 공부에서는 이 태도가 필요합니다. 공손한 문장이라고 해서 늘 깊은 이해를 담고 있는 것은 아니며, 조심스러운 거절이라고 해서 늘 최선의 학문적 판단인 것도 아니기 때문입니다.

대화 데이터가 모델을 바꾼다는 사실은 교육적으로도 큰 의미가 있습니다. 좋은 조교는 정답만 말하지 않습니다. 학생이 어디에서 막혔는지 보고, 너무 앞서가지 않고, 때로는 질문으로 되돌려주고, 학생 스스로 생각할 수 있는 발판을 놓습니다. LLM 어시스턴트도 이런 역할을 하도록 요청할 수 있습니다. “답만 알려줘”라고 말하면 모델은 답을 줍니다. 그러나 “내가 1학년 학생이라고 생각하고, 먼저 내가 이해한 부분을 점검한 뒤, 필요한 개념을 한 단계씩 설명해줘”라고 말하면 전혀 다른 대화가 열립니다. 후속훈련은 모델에게 어시스턴트다운 기본 행동을 가르치지만, 사용자의 프롬프트는 그 행동을 어느 방향으로 꺼낼지 정합니다. 학생은 AI를 정답 자판기로 쓰기보다, 자기 생각을 드러내고 되돌려받는 튜터로 쓸 수 있습니다. 이때 중요한 것은 부끄러워하지 않는 것입니다. 사람에게 묻기에는 너무 기초적인 질문도 모델에게는 여러 번 물을 수 있습니다. 다만 모델이 답한 내용을 수업 자료, 교과서, 논문과 다시 맞춰보는 과정은 남겨두어야 합니다. AI 튜터는 문턱을 낮춰주지만, 학문적 책임을 대신 져주지는 않습니다.

의생명과학에서는 이 어시스턴트의 성격을 더 섬세하게 써야 합니다. 예를 들어 논문을 읽을 때 모델에게 “이 논문을 요약해줘”라고만 묻는 것은 편하지만, 좋은 공부가 되지 않을 수 있습니다. 먼저 “이 논문이 해결하려는 생물학적 질문을 한 문단으로 풀어줘”라고 묻고, 다음에는 “사용한 데이터와 실험 방법을 초보자가 이해할 수 있게 설명해줘”라고 묻고, 이어서 “저자들의 결론이 데이터에서 직접 나온 것인지, 해석이 더 들어간 것인지 구분해줘”라고 물을 수 있습니다. 이렇게 대화를 나누면 어시스턴트는 단순 요약기가 아니라 읽기 동반자가 됩니다. 모델이 틀릴 수 있다는 사실은 여전히 중요하지만, 틀릴 수 있기 때문에 아예 쓰지 말자는 결론으로 갈 필요는 없습니다. 오히려 틀릴 수 있음을 아는 상태에서, 질문을 잘게 나누고, 원문으로 확인하고, 자신의 이해를 다시 쓰는 방식으로 사용하면 됩니다. 좋은 어시스턴트 사용법은 완벽한 답을 받는 기술이 아니라, 더 나은 학습 경로를 만드는 기술입니다. 이것은 대학 1학년 학생에게 특히 중요합니다. 처음부터 모든 논문을 혼자 읽을 수는 없지만, AI와 함께 읽는 법을 배우면 낯선 지식의 문턱을 훨씬 낮출 수 있습니다.

어시스턴트가 된 모델을 볼 때 또 하나 기억해야 할 점은, 친절함이 정확성을 보장하지 않는다는 사실입니다. 후속훈련은 모델이 사용자의 의도에 잘 맞추도록 돕지만, 모델의 매개변수 안에 없는 사실을 새로 만들어 넣지는 않습니다. 모르는 내용을 모른다고 말하게 훈련할 수는 있지만, 모든 불확실성을 완벽하게 감지하게 만드는 것은 어렵습니다. 그래서 어시스턴트는 때때로 매우 공손하게 틀립니다. “좋은 질문입니다”라고 시작하고, “일반적으로”라는 말로 부드럽게 이어가며, 마지막에는 자신감 있는 결론을 제시할 수 있습니다. 문장은 친절하지만 근거는 약할 수 있습니다. 이럴 때 학생이 해야 할 일은 모델을 혼내는 것이 아니라, 사용 조건을 바꾸는 것입니다. 원문을 붙여넣고, 답변의 근거 문장을 표시하게 하고, 불확실한 부분을 따로 말하게 하고, 필요한 경우 검색이나 코드 실행을 쓰게 해야 합니다. 어시스턴트의 장점은 대화할 수 있다는 데 있습니다. 첫 답변이 끝이 아니라, 그 답변을 다시 점검하도록 요구할 수 있다는 점이 중요합니다.

결국 후속훈련은 LLM을 우리 곁에 앉힐 수 있게 만드는 과정입니다. 베이스 모델은 인터넷 문서의 흐름을 이어 쓰는 존재에 가까웠지만, 어시스턴트는 사용자의 질문을 대화의 형식으로 받아들이고, 적절한 어조로 응답하고, 때로는 거절하고, 때로는 설명을 단계화합니다. 이 변화 덕분에 LLM은 전문가만 다루는 연구 도구가 아니라, 학부 신입생도 사용할 수 있는 공부 도구가 되었습니다. 그러나 그 친근함 때문에 더 조심해야 합니다. 도구가 사람처럼 말할수록, 우리는 그것이 사람처럼 이해한다고 믿기 쉽습니다. 카파시가 보여주는 후속훈련의 이야기는 바로 이 착각을 덜어줍니다. 모델은 대화의 예시를 통해 어시스턴트다운 행동을 배웠고, 우리는 그 행동을 이용해 공부할 수 있습니다. 다만 공부의 마지막 문장은 여전히 학생이 써야 합니다. AI가 만들어준 설명을 읽고, 원문과 대조하고, 자기 언어로 다시 정리하는 순간에 비로소 지식은 자기 것이 됩니다.

AI 튜터와 자기 문장

이 지점에서 학생은 어시스턴트를 대하는 자신의 태도도 점검해볼 수 있습니다. 어떤 사람은 모델이 너무 사람처럼 말하기 때문에 과하게 신뢰합니다. 또 어떤 사람은 모델이 결국 통계적 생성기라는 말을 듣고 과하게 무시합니다. 둘 다 공부에는 도움이 되지 않습니다. 어시스턴트는 분명히 훈련된 시뮬레이션이지만, 그 시뮬레이션은 실제로 학습과 연구를 도울 만큼 강력합니다. 중요한 것은 “진짜 사람인가”라는 질문에 매달리는 것이 아니라, “어떤 일을 어느 조건에서 맡길 수 있는가”를 묻는 것입니다. 개념의 첫 설명, 글의 구조 잡기, 코드 오류의 원인 추정, 논문 읽기의 발판 만들기에는 매우 유용할 수 있습니다. 반대로 최신 사실의 최종 확인, 임상적 판단, 데이터의 정확한 계산, 연구 윤리와 관련된 결정은 반드시 별도의 확인을 거쳐야 합니다. 이런 구분은 처음에는 번거롭지만, 곧 자연스럽게 익힐 수 있습니다. 좋은 조교에게도 모든 일을 맡기지 않고, 맡길 일과 직접 확인할 일을 나누는 것과 같습니다.

어시스턴트의 등장은 교수자와 학생의 관계도 조금 바꿉니다. 예전에는 학생이 기초적인 질문을 하기 어려워하는 경우가 많았습니다. 너무 쉬운 질문처럼 보일까 봐, 수업 시간에 흐름을 끊을까 봐, 이미 배운 내용을 다시 묻는 것이 부끄러워서 넘어가곤 했습니다. LLM은 그런 질문을 받아줄 수 있습니다. 같은 설명을 세 번, 네 번 다른 비유로 다시 들을 수도 있고, 영어와 한국어를 오가며 물을 수도 있고, 내가 이해한 내용을 검사받을 수도 있습니다. 그러나 이 편리함이 수업과 교수자의 역할을 없애지는 않습니다. 오히려 수업에서는 더 깊은 질문을 나누고, 모델이 놓친 맥락을 짚고, 학생이 만든 이해를 함께 검토하는 시간이 중요해질 수 있습니다. AI가 낮은 문턱을 맡아주면, 사람은 더 높은 대화로 갈 수 있습니다. 대학 공부는 답을 받는 시간이 아니라, 자기 질문을 점점 더 나은 질문으로 바꾸는 시간이 되어야 합니다.

따라서 어시스턴트를 잘 쓰는 학생은 대화의 마지막에 자기 문장을 남깁니다. 모델이 설명한 내용을 그대로 저장하지 않고, “내가 이해한 것은 이렇다”고 다시 적어봅니다. 그 문장을 모델에게 보여주고 틀린 부분을 찾아달라고 할 수도 있고, 친구나 교수자에게 설명해볼 수도 있습니다. 이 과정은 느리지만 결정적입니다. AI가 만든 설명을 읽는 순간에는 이해한 것처럼 느껴지지만, 자기 말로 다시 쓰려고 하면 빈칸이 드러납니다. 그 빈칸이 공부할 자리입니다. 어시스턴트는 그 빈칸을 부끄럽지 않게 발견하게 해줍니다. 그리고 학생은 그 빈칸을 채우면서 모델의 답을 자기 지식으로 바꿉니다. 결국 후속훈련된 어시스턴트의 가치는 답을 대신 써주는 데서 끝나지 않습니다. 학생이 자신의 이해를 더 자주, 더 안전하게 시험해볼 수 있게 하는 데 있습니다.

이때 자기 문장은 길 필요가 없습니다. 처음에는 세 문장도 충분합니다. “이 논문은 무엇을 물었다. 저자들은 어떤 방법으로 답하려 했다. 내가 아직 헷갈리는 부분은 이것이다.” 이렇게 적어두면 AI가 만든 긴 설명보다 훨씬 좋은 공부 흔적이 됩니다. 모델은 그 문장을 보고 더 구체적으로 도와줄 수 있고, 학생은 자신이 어디까지 이해했는지 볼 수 있습니다. 어시스턴트와의 좋은 대화는 모델의 마지막 답변으로 끝나지 않습니다. 학생이 남긴 마지막 문장에서 비로소 공부가 자기 쪽으로 돌아옵니다.