Views
No views yet
!pip install transformers torch peft bitsandbytes datasets accelerateimport torch
from transformers import AutoTokenizer, AutoModelForCausalLM, pipeline, BitsAndBytesConfig
# --------------------------------------------------
# 1. 모델 경로 및 이름 설정
# --------------------------------------------------
# (모델 1) 파인튜닝 및 양자화된 모델
finetuning_model = "djc05142/cst_quantized_model_v4"
# --------------------------------------------------
# 2. 각 모델 로드
# --------------------------------------------------
# --- 모델 1: 파인튜닝 & 양자화 모델 로드 ---
quantization_config = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_quant_type="nf4",
bnb_4bit_compute_dtype=torch.bfloat16,
bnb_4bit_use_double_quant=False,
)
quantized_model = AutoModelForCausalLM.from_pretrained(
finetuning_model,
quantization_config=quantization_config,
device_map="auto",
)
quantized_tokenizer = AutoTokenizer.from_pretrained(finetuning_model)
# --------------------------------------------------
# 3. 파이프라인 생성
# --------------------------------------------------
quantized_pipe = pipeline("text-generation", model=quantized_model, tokenizer=quantized_tokenizer)
from transformers import AutoTokenizer
# --------------------------------------------------
# 4. 동일한 프롬프트로 각 모델에 추론 요청 및 비교
# --------------------------------------------------
# 파인튜닝 데이터(구어체)의 특성이 잘 드러나는 질문을 선택
tokenizer = AutoTokenizer.from_pretrained(finetuning_model)
if tokenizer.pad_token is None:
tokenizer.pad_token = tokenizer.eos_token
question = "김치볶음밥 재료가 뭐야?"
prompt = f"### 질문:{question}\n\n### 답변:"
print("\n" + "="*60)
print(f"질문: {prompt.split('### 답변:')[0].replace('### 질문: ', '').strip()}")
print("="*60 + "\n")
# 파인튜닝 & 양자화 모델 추론
print("1. 파인튜닝 모델 답변:")
quantized_result = quantized_pipe(
prompt,
temperature=0.7,
eos_token_id=tokenizer.eos_token_id,
return_full_text=False
)
print(quantized_result[0]['generated_text'])
print("\n" + "="*60)