Mistral 7B Instruct — 파인튜닝과 [INST] 포맷

Mistral 7B Instruct — 파인튜닝과 [INST] 포맷

Mistral 7B Instruct는 Mistral-7B-v0.1을 공개 대화 데이터셋으로 지시 튜닝한 버전이에요. 특별한 트릭이나 사유 데이터 없이 공개 데이터셋만으로 만들었죠. MT-Bench에서 모든 7B 모델을 능가하고 13B 채팅 모델과 비슷한 성능을 냈어요.

출처: mistralai/Mistral-7B-Instruct-v0.1

지시 포맷

프롬프트를 [INST][/INST] 토큰으로 감싸야 해요. 첫 지시는 문장 시작(sentence-begin) 토큰으로 시작하고, 이후 지시는 문장 시작 토큰 없이 시작해요.

<s>[INST] What is your favourite condiment? [/INST]
"Well, I'm quite partial to a good squeeze of fresh lemon juice.</s>
[INST] Do you have mayonnaise recipes? [/INST]

transformers로 쓰기

from transformers import AutoModelForCausalLM, AutoTokenizer

model = AutoModelForCausalLM.from_pretrained("mistralai/Mistral-7B-Instruct-v0.1")
tokenizer = AutoTokenizer.from_pretrained("mistralai/Mistral-7B-Instruct-v0.1")

messages = [
    {"role": "user", "content": "What is your favourite condiment?"},
    {"role": "assistant", "content": "Well, I'm quite partial to a good squeeze of fresh lemon juice."},
]

참조 구현

미스트랄은 mistral_common(토크나이저·프로토콜)과 mistral_inference(Transformer·generate)로 구성된 참조 구현을 제공해요. MistralTokenizer.v1()generate([tokens], model, max_tokens=64, temperature=0.0, ...) 형태로 쓰죠.

참고: Instruct 모델에는 중재( moderation) 메커니즘이 없다는 점을 발표에서 명시했어요. 배포 시 별도 안전장치가 필요해요.

더 알아보기