import transformers
import torch
model_id = "facebook/opt-350m" # 공개적으로 사용 가능한 모델로 변경
pipeline = transformers.pipeline(
"text-generation",
model=model_id,
model_kwargs={"torch_dtype": torch.float16},
device_map="auto",
)
messages = [
{"role": "system", "content": "You are a helpful assistant designed to output JSON."},
{"role": "user", "content": "Who are you?"}
]
prompt_text = pipeline.tokenizer.apply_chat_template(messages, tokenize=False)
outputs = pipeline(
prompt_text,
max_new_tokens=500,
do_sample=True,
temperature=1.0,
top_p=1.0,
)
print(outputs[0]['generated_text'])
apply_chat_template
메서드를 사용하여 대화 형식의 입력을 올바르게 처리eos_token_id
를 제거하고 모델의 기본값을 사용
pipeline을 처음 만들 때 일반적으로 모델과 관련된 기본 매개변수만 설정하고, 텍스트 생성과 관련된 세부 매개변수는 pipeline을 실행할 때 지정
pipeline 생성 시 주로 설정하는 매개변수:
- task: 수행할 작업 유형 (예: 'text-generation')
- model: 사용할 모델
- tokenizer: 사용할 토크나이저
- device: 실행할 장치 (예: CPU 또는 GPU)
pipeline 실행 시 지정하는 매개변수:
- prompt_text: 생성의 시작점이 되는 텍스트
- max_new_tokens: 생성할 최대 토큰 수
- do_sample: 샘플링 여부
- temperature: 생성의 무작위성 정도
- top_p: 상위 확률 샘플링 임계값
그러면 langchain은 이 실행 매개변수를 promptTemplate으로부터 pipeline에 넘겨주는 것을 자동으로 하는 것임? LangChain은 PromptTemplate에서 pipeline으로 실행 매개변수를 자동으로 넘겨줌. 이는 LangChain의 주요 기능 중 하나임
- PromptTemplate을 사용하여 동적 프롬프트를 정의
- 이 템플릿은 pipeline의 일부가 됨
- pipeline을 실행할 때, 입력 매개변수를 제공
- LangChain은 자동으로 이 매개변수를 PromptTemplate에 전달하고, 완성된 프롬프트를 생성
- 생성된 프롬프트는 pipeline의 다음 단계(예: LLM)로 전달
참고 : https://mirascope.com/blog/langchain-prompt-template/
mport-transformers-import-torc-TAXBwvX.QJis6LLjfyhMOw
댓글