
89
2
장
콘텐츠 스타일의 제어
2.2.2
해법
기본적으로 기초 모델은 텍스트를 토큰 단위로 생성한다. 생성 과정의 각 시점에서 다음에 올
수 있는 후보 토큰 집합을 생성하고 그중 한 토큰을 선택하는 방식이다. 일부 모델 제공업체나
모델 프레임워크에 따라서는 이러한 후보 토큰들에 적용할 문법을 지정하는 옵션이 있다. 이
경우 모델 프레임워크는 문법에 허용되지 않는 토큰의 확률을
0
으로 만들어서 문법이 허용하
는 토큰들만 생성되게 만든다.
TIP
문법 패턴을 모델 프레임워크가 개발자를 대신해서
로짓 마스킹
(패턴
1
)을 수행하는 것이라고 생각해도 좋다.
따라서 문법 패턴을 더 잘 이해하고 싶다면 로짓 마스킹 패턴을 다루는 §
2
.
1
을 자세히 읽어 볼 것을 권한다.
특히 그 절에 로짓 처리 방식이 자세히 설명되어 있다.
이 패턴을 구현할 때는 문법 제약을 위한 로짓 처리기 클래스를 이용해서 코드 안에서 직접 문
법을 지정할 수도 있고, 적절한 형식으로 표현된 문법 데이터를 지정하거나 스키마 명세를 지
정하는 등의 좀 더 사용자 친화적인 방법들이 있다. 그럼 세 가지 옵션을 모두 살펴보자. 이 패
턴에 대한 전체 예제 코드는 원서 깃허브 저장소의
examples
/
02
_
grammar
폴더 (
https
://
oreil
.
ly
/
wvYYj
)에 있다. 이하의 논의에서는 관련 코드 ...