LLM은 어떻게 답변을 만들까: 토큰에서 생성까지
입력 문장을 토큰으로 바꾸고, 다음 토큰을 반복해 생성하는 언어 모델의 기본 흐름을 살펴봅니다.
문장을 토큰으로 바꾸기
언어 모델은 입력 문장을 그대로 읽는 대신, 토크나이저가 만든 토큰 ID의 배열을 입력받습니다. 토큰은 한 단어일 수도 있고 단어의 일부일 수도 있습니다. 한글 한 글자가 항상 하나의 토큰이 되는 것도 아닙니다.
예를 들어 “SQL 인덱스를 설명해 줘”라는 요청도 사용하는 모델의 토크나이저에 따라 여러 조각으로 나뉩니다.
다음 토큰을 반복해서 생성하기
텍스트 생성 모델은 주어진 입력과 앞서 생성한 토큰을 바탕으로 다음 토큰을 예측합니다. 선택한 토큰을 뒤에 붙인 다음 다시 다음 토큰을 생성합니다. 종료 토큰이나 설정한 생성 길이 등의 조건에 도달하면 이 과정이 끝납니다.
입력: "인덱스는"
→ 다음 토큰 예측
→ 선택한 토큰을 입력 뒤에 추가
→ 갱신된 문맥으로 다음 토큰 예측
→ 종료 조건까지 반복
위 흐름은 개념을 단순화한 것입니다. 실제 토큰 경계가 공백이나 단어 경계와 일치한다는 뜻은 아닙니다.
입력과 출력은 함께 살펴보기
답변을 비교할 때는 질문만 보관하기보다 모델에 전달한 지시문, 참고 자료, 생성 설정도 함께 기록하는 것이 좋습니다. 조건을 고정해야 어떤 변경이 결과에 영향을 주었는지 확인하기 쉽습니다.
| 기록할 항목 | 확인할 내용 |
|---|---|
| 입력 | 질문, 지시문, 함께 제공한 자료 |
| 모델 | 사용한 모델과 버전 |
| 생성 설정 | 출력 길이와 선택 방식 |
| 결과 | 답변 내용, 누락, 근거 |
기억할 점
자연스럽게 생성된 문장이 반드시 사실이라는 뜻은 아닙니다. 사실 확인이 필요한 답변은 신뢰할 수 있는 자료와 대조하고, 애플리케이션에서는 검증 가능한 조건을 따로 검사해야 합니다.