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 공식 문서