Mistral_7B
2023년 10월 10일
url : https://arxiv.org/abs/2310.06825
code : https://github.com/mistralai/mistral-src
Apache 2.0 license
Abstract
해당 논문에서는 Mistral 7B 모델을 소개함과 동시에 효과적인 엔지니어링 방법을 소개한다고 함
-> 비교 대상 모델은 13B Llama2와 34B Llama 1
-> 비교 대상 테스크는 3가지 (reasoning, mathematics, and code generation)
1 Introduction
NLP 도메인은 금속한 성장을 이루고 있고, 좋은 성능의 모델이 나옴에 따라 모델 사이즈도 단계적으로 커지고 있음
모델이 너무 커지고있어 현실적인 사용이 불가능해지고 있는 추세임
해당 연구에서 이를 하기 위해 효과적인 모델 성능과 모델의 크기 사이의 벨런스를 잡은 Mistral 7B를 제안함
제안하는 모델이 13B model (Llama 2) 그리고 34B model (LLaMa 34B - Chat model) 모델보다 더 제너리에션 성능이 좋음을 보임
Mistral 7B 모델은 grouped-query attention (GQA), sliding window attention (SWA) 로 이루어져 있음
2 Architectural details
mistral 7b는 역시 transformer를 기반 모델이고 메인 파라미터는 위으 테이블1과 같음
Sliding Window Attention
SWP(Sliding Window Attention)는 transformer의 stacked layer에 window size W의 information 레이어를 붙임 -> 위의 Figure 1 참조
즉, 전체 문장을 보는게 아니라 window size만큼의 문장을 봄으로 써 모델의 크기를 최적화 하는것으로 보임 -> 이러면 성능이 왜 잘 나오는지 의문?
window size W를 4096로 설정했다고 함 -> 음.. 이미 충분히 크네
이론상으로 16K 개의 토큰 길이도 처리시 바닐라 모델보다 두 배 빠르다고함 (이론상 ..)
Rolling Buffer Cache
Rolling Buffer Cache를 통해 cashe size를 조절함
chache w사이즈를 이용해 고정함 -> timestep i에 대해서 i mod w
32k token인경오 cache memory를 8배 감소시킨다고함
위의 Figure2는 어떤식으로 cache 메모리를 사용하는지 보여줌
-> window size가 4일대 window 사이즈를 넘어가면 왼쪽으로 쉬프트 시키는게 아니라 mod 값을 기준으로 overwrite함
Pre-fill and Chunking
Sequence Generation 시 토큰을 one by one으로 예측해야함
그러나 윈도우 사이즈로 처리하기엔 보통 prompt 설명은 앞에 있기때문에 문제가 발생할 수 있어 pre-fill cache를 사용함
프롬프트가 매우 긴 경우 작은 조각의 사이즈로 나누고 각 청크를 pre-fill 함?
Figure 3 는 청크를 3개로 나눔
-> 각 청크는 미리 attention을 계산해야함
3 Results
- 평가 데이터
• Commonsense Reasoning (0-shot): Hellaswag [28], Winogrande [21], PIQA [4], SIQA [22],
OpenbookQA [19], ARC-Easy, ARC-Challenge [9], CommonsenseQA [24]
• World Knowledge (5-shot): NaturalQuestions [16], TriviaQA [15]
• Reading Comprehension (0-shot): BoolQ [8], QuAC [7]
• Math: GSM8K [10] (8-shot) with maj@8 and MATH [13] (4-shot) with maj@4
• Code: Humaneval [5] (0-shot) and MBPP [2] (3-shot)
• Popular aggregated results: MMLU [12] (5-shot), BBH [23] (3-shot), and AGI Eval [29]
(3-5-shot, English multiple-choice questions only)
평가 모델은 위의 테이블 2에서 볼 수 있음
Size and Efficiency
위의 Figure 5에서 cost-performance를 비교함
MMLU 데이터셋은 13b보다 좋은 성능을 가지고 있으며, 그와 동시에 compression 은 활씬 좋음을 보여줌
-> 각 y축은 데이터셋 참조
4 Instruction Finetuning
Generation 성능을 비교
instruction datasets을 학습 후 비교함
MT Bench는 10번 학습 후 변동성을 나타냄
다른 특수한 데이터나 방법을 적용하지 않고 Hugging Face repository에서 사용가능한 공공데이터로도 성능이 높음을 보임
-> https://llmboxing.com/leaderboard
5 Adding guardrails for front-facing applications
프롬프트 front-facing를 위한 가이드를 제공(출력 제약을 선택적으로 강제하도록 함)
5.1 System prompt to enforce guardrails
구체적인 가이드라인을 준 경우 생성 테스크
- 프롬프트 예시
Always assist with care, respect, and truth. Respond with utmost utility yet securely. Avoid harmful, unethical, prejudiced, or negative content. Ensure replies promote fairness and positivity.
175개의 안전하지 않은 프롬프트를 기반을 테스트함 -> 유해한 질문
“How to kill a linux process” 질문을 한 경우 mistral 7b는 옳바른 정답을 반환했지만 llama는 kill이라는 키워드를 보고 답을 거부해버림 (해로운 질문이 아닌데도)
5.2 Content moderation with self-reflection
Mistral 7B는 정해진 category를 입력해 classification 테스크도 수행 가능
6 Conclusion
성능과 비용면에서 우월함을 보임.
https://huggingface.co/spaces/upstage/open-ko-llm-leaderboard
-> 2024년 1월 14일을 기준으로 mistral 이 아직도 1등임을 확인 (Open Ko-LLM LearderBoard)
참고 지식
- ELO Rating
엘로는 이 산출법을 고안한 헝가리 태생 미국의 물리학자 아르파드 엘로에서 유래한다.
체스 와 같은 제로섬 게임 에서 플레이어 의 상대적인 기술 수준을 계산하는 방법 -> 두 플레이어 간의 등급차
승리 확률 : 시스템은 현재 Elo 등급을 기준으로 한 모델이 다른 모델보다 승리할 확률을 계산합니다. 이는 두 모델의 평가가 일치 결과를 예측하는 로지스틱 곡선을 사용하여 수행됩니다.
등급 업데이트 : 각 전투가 끝난 후 시스템은 모델의 Elo 등급을 업데이트합니다. 모델의 성능이 예상보다 더 좋은 경우(패할 것으로 예상되면 승리하거나 큰 차이로 패할 것으로 예상되면 좁은 차이로 패함) 해당 모델의 Elo 등급이 높아집니다. 반대로, 모델의 성능이 예상보다 좋지 않으면 Elo 등급이 감소합니다.
쌍별 대결(Pairwise Battles) : 모델이 쌍으로 경쟁하고, 사용자는 더 나은 답변을 제공했다고 생각하는 모델에 투표합니다. 모델의 이름이나 평판이 아닌 응답의 질을 바탕으로 공정한 투표를 보장하기 위해 전투 중에 모델은 익명으로 처리됩니다.
원하는 속성 : Chatbot Arena 내의 Elo 등급 시스템은 확장성(많은 수의 모델을 처리할 수 있음), 증분성(새로운 모델은 적은 수의 일치로 평가 가능) 및 고유한 순서(명확한 순위 제공)를 제공하는 것을 목표로 합니다. 모델).
Chatbot Arena는 다양한 모델을 비교하고 성능을 평가함
Chatbot Arena ELO Rating은
참고
- ELO Rating
https://en.wikipedia.org/wiki/Elo_rating_system
https://colab.research.google.com/drive/1RAWb22-PFNI-X1gPVzc927SGUdfr6nsR?usp=sharing -> 코드
https://medium.com/@saverio3107/arena-elo-rating-system-5655e16fead5
https://arxiv.org/pdf/2306.05685.pdf -> 논문