LMQL 시작하기 — 첫 프로그램
LMQL 시작하기 — 첫 프로그램
LMQL은 LLM 프로그래밍을 위한 언어예요. 프롬프트 문과 where 제약 절을 조합해 안전하고 구조화된 생성을 만들 수 있어요.
설치
LMQL을 로컬에 설치하거나 웹 기반 Playground IDE를 쓸 수 있어요. 🤗 Transformers나 llama.cpp로 셀프호스팅 모델을 쓰려면 로컬 설치가 필요해요.
첫 번째 쿼리
아주 단순한 Hello World LMQL 쿼리는 이렇게 생겼어요.
"Say 'this is a test': [RESPONSE]" where len(TOKENS(RESPONSE)) < 25
이 작은 프로그램은 두 부분으로 이뤄져요.
- 프롬프트 문
"Say 'this is a test' [RESPONSE]": 파이썬의 최상위 문자열처럼 생긴 템플릿이에요.[RESPONSE]같은 템플릿 변수는 모델이 자동으로 채워요. - 제약 절
where len(RESPONSE) < 25: 출력에 대한 논리적·고수준 제약을 지정해요. LMQL은 이 제약을 (서브)토큰 마스크로 자동 번역해서 생성 중에 즉시 강제해요.
더 나아가기
다른 디코딩 알고리즘이나 분기 로직을 추가할 수도 있어요.
sample(temperature=1.2) "Say 'this is a test' [RESPONSE]" where len(TOKENS(RESPONSE)) < 25
if "test" not in RESPONSE:
"You did not say 'test', try again: [RESPONSE]" where len(TOKENS(RESPONSE)) < 25
else:
"Good job"
- 디코더 선언
sample(temperature=1.2): 생성에 쓸 디코딩 알고리즘을 지정해요. 기본은 결정적argmax예요. - 프롬프트 프로그램: 제어 흐름과 분기로 프롬프트를 조건부로 구성할 수 있어요. 각 LLM 호출마다 지금까지의 프롬프트 문 전체가 모델에 전달돼 항상 전체 컨텍스트를 인식해요.
더 알아보기 (Learn more)
출처: LMQL 공식 문서