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