LMQL 모델 백엔드 — 여러 LLM 연결하기

LMQL 모델 백엔드 — 여러 LLM 연결하기

LMQL은 텍스트 생성을 위한 고수준 프론트엔드 언어라서 특정 모델에 묶여 있지 않아요. OpenAI, llama.cpp, HuggingFace Transformers 등 다양한 모델을 백엔드로 지원해요.

모델 불러오기

lmql.model(...) 함수로 lmql.LLM 객체를 얻을 수 있어요.

lmql.model("openai/gpt-3.5-turbo-instruct")      # OpenAI API 모델
lmql.model("random", seed=123)                    # 무작위 샘플링 모델
lmql.model("llama.cpp:<YOUR_WEIGHTS>.gguf")       # llama.cpp 모델
lmql.model("local:gpt2")                          # transformers 모델을 인프로세스로
lmql.model("local:gpt2", cuda=True, load_in_4bit=True)
lmql.model("gpt2")                                # lmql serve-model 호스팅 모델

지원 백엔드는 Transformers, llama.cpp, OpenAI, Azure OpenAI, Replicate 등이에요.

모델 지정 방식 (A) 외부에서

모델을 프로그램 코드와 별개로 외부에서 지정할 수 있어요.

import lmql

@lmql.query(model="chatgpt")
def tell_a_joke():
    '''lmql
    "A great good dad joke. A indicates the punchline
    Q: [JOKE] A: [PUNCHLINE]" where STOPS_AT(JOKE, "?") and \
      STOPS_AT(PUNCHLINE, "\n")
    '''

tell_a_joke()   # chatgpt 사용
tell_a_joke(model=lmql.model("openai/text-davinci-003"))

모델 지정 방식 (B) from 절

프로그램 안에서 from 키워드로 모델을 지정할 수도 있어요.

argmax "This is a query with a 'from'-clause: [RESPONSE]" from "openai/text-ada-001"

from 키워드는 들여쓰기 표준 문법에서만 사용할 수 있고, 디코더 키워드를 명시해야 해요.

더 알아보기 (Learn more)

출처: LMQL 공식 문서