merged 전 모델과의 차이는 뭔가요?
beomi/KoAlpaca-RealQA-Solar-Ko-Recovery-11B와
beomi/KoAlpaca-RealQA-Solar-Ko-Recovery-11B-Merged의 차이는 뭔가요?
성능이 lora merged한게 더 좋나요?
beomi/KoAlpaca-RealQA-Solar-Ko-Recovery-11B는 LoRA만 올라간 레포이고, beomi/KoAlpaca-RealQA-Solar-Ko-Recovery-11B-Merged는 해당 로라를 원본 모델인 Solar-Ko-Recovery-11B와 합친 파일입니다!
vLLM등에서 사용하려면 LoRA형식이 아니라 전체 weight 상태로 레포가 필요해서 만들어둔 부가적 레포입니다 :)
성능은 이론상 100% 동일해야합니다!
beomi/KoAlpaca-RealQA-Solar-Ko-Recovery-11B, 이 레포 모델 카드에 나와있는 추론 코랩 코드 언슬로스로 돌려볼때는 로라뿐만 아니라 모델도 로딩되서 잘되는것 같던데 그거는 다른건가요?
아 그건 다를 수 있습니다!
왜냐하면.. 4bit 메인모델 + 16비트LoRA vs 4비트 머지모델 비교인거라 두 모델이 조금 다르게 되긴 합니다.
(그런데 큰 차이는 없어야 하긴 해요...)
혹시 각각 어떤 경우가 더 좋았나요?
beomi/KoAlpaca-RealQA-Solar-Ko-Recovery-11B에 나와있는 추론코드가 그럼 4비트 모델에, 16비트 로라인것이고, 머지모델은 전체 4비트인것인가요?
그래서 그런지 전체 4비트로 했을때는 할루시네이션이 심했고, 그전에 4비트 모델에 16비트 로라로 했을때는 성능이 매우 괜찮았습니다. 개인적으로 다른 동 크기급 모델들 중 SOTA 인것 같아요.
두 모델 모두
import torch
from unsloth import FastLanguageModel
from transformers import TextStreamer
model, tokenizer = FastLanguageModel.from_pretrained(
model_name = "beomi/KoAlpaca-RealQA-Solar-Ko-Recovery-11B",
max_seq_length = 4096,
dtype = torch.bfloat16,
load_in_4bit = True,
)
FastLanguageModel.for_inference(model) # 추론 속도 2배 증가
alpaca_prompt = """Below is an instruction that describes a task, paired with an input that provides further context. Write a response that appropriately completes the request.
Instruction:
{}
Response:
{}"""
def gen(x): # 인풋 함수
inputs = tokenizer(
[
alpaca_prompt.format(
x.strip(), # instruction
"", # output - leave this blank for generation!
)
], return_tensors = "pt").to("cuda")
text_streamer = TextStreamer(tokenizer)
_ = model.generate(**inputs, streamer = text_streamer, max_new_tokens = 512)
위 코드로 추론해봤습니다.
beomi/KoAlpaca-RealQA-Solar-Ko-Recovery-11B
LoRA BF16입니다 :Dbeomi/KoAlpaca-RealQA-Solar-Ko-Recovery-11B-merged
는 전체 BF16입니다. --> 즉 이 모델은 BF16으로 로드하셔야 가장 나은 성능을 보여줍니다!
즉 beomi/KoAlpaca-RealQA-Solar-Ko-Recovery-11B-merged
를 전체 BF16 로드 ~= 메인4비트+beomi/KoAlpaca-RealQA-Solar-Ko-Recovery-11B
LoRA로드 > beomi/KoAlpaca-RealQA-Solar-Ko-Recovery-11B-merged
를 전체 4비트 로드 성능일 거에요.
아하 한번 해보겠습니다. 친절한 답변 감사드립니다.
@Austin9
만약 로컬에서 돌리시는 중이라면 Jan(https://jan.ai/) + https://huggingface.co/mradermacher/KoAlpaca-RealQA-Solar-Ko-Recovery-11B-Merged-GGUF 으로 8bit quantize된 모델 써보시는것도 추천해요!
아래와 같이 쓸수 있습니다.