[2307.09288] Llama 2: Open Foundation and Fine-Tuned Chat Models
Llama 2: Open Foundation and Fine-Tuned Chat Models
In this work, we develop and release Llama 2, a collection of pretrained and fine-tuned large language models (LLMs) ranging in scale from 7 billion to 70 billion parameters. Our fine-tuned LLMs, called Llama 2-Chat, are optimized for dialogue use cases. O
arxiv.org
1. Introduction
■ 당시 광범위한 self-supervised data corpus에서 사전학습시킨 후, 인간 피드백을 통한 강화 학습(RLHF)과 같은 기술을 통해 인간의 선호도에 맞춰 alignment시키는 training methodology가 등장했으나, 높은 계산량을 요구하기 때문에 일부 기업 외에는 시도조차 하기 어렵다.
■ 그리고 GPT-3, Chinchilla와 같은 closed pretrained model에 필적하는 BLOOM, LLaMa-1, Falcon과 같은 pretrained LLM들의 public releases가 있었지만, 이 모델들 중 어떤 모델도 ChatGPT, Claude와 같은 closed LLM의 대체재가 되지 못했다.
■ 이러한 closed LLM은 usability와 safety를 크게 향상시키는 human preference를 align시키기 위해 매우 집중적으로 파인튜닝되었다.
■ human preference를 학습하는 단계는 computing 및 humanannotation에 상당한 비용이 소요될 수 있으며, closed로 인해 쉽게 재현할 수 없어 AI alignment 연구를 발전시키는 데 한계가 있다.
■ Llama 2에서는 이러한 closed LLMs과의 격차 해소를 목표로 모델의 fine-tuning methodology와 LLM safety approach를 상세히 공개한다.
■ 공개한 모델은 Llama2와 Llama 2-Chat이다.
- (1) Llama2은 공개적으로 사용 가능한 데이터들로 학습된 Llama-1의 업데이트 버전이다. pretraining corpus의 크기를 40% 늘리고, 모델의 context length를 두 배 늘렸으며, GQA를 사용한다.
- (2) Llama 2-Chat은 dialogue use cases에 최적화된 Llama 2의 fine-tuned version이다.
- Llama 2-Chat은 instruction tuning 및 RLHF를 포함한 alignment 기술의 반복 적용 결과이며, 이를 위해 상당한 계산 및 annotation resources가 필요하다.
■ 저자들은 Llama2에 대한 테스트는 영어로 진행되었으며, 모든 시나리오를 다루지 못했고, 다룰 수도 없으니 잠재적인 위험이 존재하며, 애플리케이션 배포 전에 해당 애플리케이션에 맞는 safety testing과 tuning을 권장한다.
- Llama2의 use guide와 code examples도 공개하며, 자세한 내용은 섹션 5.3에서 확인할 수 있다.
2. Pretraining
■ Llama 2는 auto-regressive transformer를 기반으로 하며, 성능 향상을 위해 더 robust한 data cleaning을 수행하고, 데이터 혼합 비율을 변경했으며, 총 토큰 수를 40% 늘려 학습하고, context length를 두 배로 늘렸으며, large model의 inference scalability를 위해 grouped-query attention (GQA)을 사용한다.
■ 아래의 Table 1은 Llama 2와 Llama 1의 attributes을 나타낸 것이다.

- 여기서 Table 1에서 Llama 2의 Tokens는 준비된 데이터셋의 크기가 2T 토큰이라는 의미가 아니라, 학습 과정에서 처리된 총 토큰의 양(Total Tokens Processed)이 2T임을 의미한다.
- 예를 들어 1T 토큰 규모의 corpus를 1 epoch 학습하면 1T 토큰을 본 것이고, 이를 2 epoch 학습하면 총 2T 토큰을 학습한 것으로 계산된다.
■ Chinchilla에서 제안한 compute optimal은 모델의 파라미터 수와 학습 과정에서 처리되는 training tokens의 비율은 약 1:21이다(예: 모델 파라미터가 10T면 tokens는 216.2T).
■ 반면 Llama 2는 Table 1에서 볼 수 있듯이, 7B 모델의 경우 약 1:285(7B:2T), 70B 모델의 경우 약 1:28(70B:2T)의 비율로 학습되었다. 이는 Chinchilla에서 제안한 비율을 초과하는 수준까지 학습했음을 보여준다.
2.1 Pretraining Data
■ Llama 2의 training corpus는 공개적으로 사용 가능한 sources에서 가져온 mixture이며, 개인 정보 누출을 최대한 배제하기 위해 Meta 내부 데이터(Meta의 제품이나 서비스 데이터)는 포함시키지 않았다.
■ 2 trillion tokens의 데이터로 학습했는데, 이는 좋은 performance-cost trade off를 가지며, knowledge를 늘리고 hallucination을 줄이기 위해 사실성이 높은 소스를 더 많이 학습(up-sampling)시켰다.
2.2 Training Details
■ Llama 1의 pretraining setting과 모델 아키텍처 대부분을 그대로 따른다. RMSNorm을 사용한 사전 정규화(pre-normalization), SwiGLU activation function, RoPE를 사용한다.
■ Llama 1과의 주요 아키텍처 차이점은 증가된 context length와 GQA이다.
Hyperparameters
■ \( \beta_1 = 0.9, \beta_2 = 0.95, \text{eps} = 10^{-5} \)로 설정한 AdamW와 cosine learning rate schedule을 사용하며, 2000 steps의 warmup을 거쳐 최종 학습률을 최고 학습률의 10%까지 감쇠시킨다.
■ weight decay는 0.1, gradient clipping은 1.0을 사용한다. Fig 5는 이러한 하이퍼파라미터를 사용한 Llama 2의 training loss이다.

Tokenizer
■ Llama 1과 동일한 토크나이저를 사용한다.
■ Llama 1과 마찬가지로 모든 숫자를 개별 숫자로 분할하고, 바이트를 사용하여 알 수 없는 UTF-8 문자를 분해한다. vocabulary의 total size는 32k tokens이다.
2.3 Llama2 Pretrained Model Evaluation
■ Table 3은 인기 있는 벤치마크 모음에 대한 open source models의 전반적인 성능을 요약한 것이다.

■ Table 3에서 각 분야마다의 점수 산출에 대한 details는 다음과 같다.
- (1) Code: HumanEval 및 MBPP에서 모델의 평균 pass@1 score
- (2) Commonsense Reasoning: PIQA, SIQA, HellaSwag, WinoGrande, ARC easy 및 challenge, OpenBookQA, CommonsenseQA의 평균
- 이때 CommonsenseQA는 7-shot의 결과, 다른 모든 벤치마크는 0-shot의 결과이다.
- (3) World Knowledge: NaturalQuestions 및 TriviaQA에 대한 5-shot 성능의 평균
- (4) Reading Comprehension: SQuAD, QuAC, BoolQ에 대한 0-shot 평균
- (5) MATH: GSM8K(8 shot) 및 MATH(4 shot)의 top 1 평균
- (6) Popular Aggregated Benchmarks: MMLU(5 shot), Big Bench Hard(BBH)(3 shot), AGI Eval(3–5 shot)에 대한 결과. AGI Eval의 경우 영어 tasks만 평가하여 평균을 report
■ Table 3에서 볼 수 있듯이, Llama 2는 Llama 1보다 성능이 뛰어나며, Llama 2 7B 및 34B는 동일한 크기의 MPT와 비교했을 때 Code 벤치마크를 제외한 모든 범주에서, Falcon 7B 및 40B의 경우 모든 벤치마크 범주에서 비교 모델들보다 성능이 우수하다.
■ open-source models 외에도 Llama 2 70B를 closed-source models과 비교하였다.

■ MMLU 및 GSM8K에서 GPT-3.5와 근접하지만 Code 벤치마크(HumanEval)에서는 상당한 차이가 있다.
■ 거의 모든 벤치마크에서 PaLM 540B와 동등하거나 더 좋은 성능을 보이지만, GPT-4 및 PaLM-2-L 사이에는 여전히 큰 성능 격차가 존재한다.
3. Fine-tuning
3.1 Supervised Fine-Tuning (SFT)
Getting Started
■ 공개적으로 사용 가능한 instruction tuning data로 SFT 단계를 시작한다.
Quality Is All You Need

■ SFT data는 다양한 sources에서 구할 수 있지만, 그중 다수는 다양성과 품질이 불충분하다. 특히 LLM을 dialogue-style instructions에 맞게 align하는 데 있어서 그렇다.
■ 그래서 저자들은 Table 5 예시처럼 수천 개의 고품질 SFT data를 수집했으며, 소량이지만 고품질의 examples(총 27,540개의 annotations)을 사용함으로써 결과가 크게 개선되었다고 한다.
■ 한 가지 특징은 helpfulness와 safety라는 두 가지 측면의 데이터를 분리하여 구축했다는 점이다.
■ 여기서 helpfulness는 Table 5에서 볼 수 있듯이 창의적인 생성을 요구하는 과제를 다루며, safety는 유해한 응답을 유도할 수 있는 프롬프트에 대해 모델이 응답을 거부하는 문장을 생성하도록 설계되었다.
Fine-Tuning Details
■ supervised fine-tuning (SFT)의 경우 cosine learning rate schedule과 함께 초기 학습률 \( 2 \times 10^{-5} \), weight decay 0.1, batch size 64, sequence length 4096 토큰을 사용한다.
■ SFT 과정에서 각 샘플은 prompt와 answer로 구성된다.
■ 시퀀스 길이가 낭비없이 채워지도록 training set의 모든 prompts과 answers을 연결하며, prompt와 answer를 분리하기 위해 special token이 사용된다.
■ autoregressive objective를 사용하고, 모델이 user의 prompt까지 학습하지 않도록 answer 부분에만 loss를 계산하고 역전파를 진행한다. 즉, user prompt에 대한 loss는 0으로 처리한 것이다.
■ 이는 모델이 질문의 표현을 그대로 모방하는 것이 아니라, 질문의 의도를 이해하고 적절한 답변을 생성하는 데 집중하도록 유도하기 위한 설계로 볼 수 있다.
■ 모델을 2 epoch만 파인튜닝한다.
3.2 Reinforcement Learning with Human Feedback (RLHF)
■ RLHF는 fine-tuned language model에 적용되는 model training procedure로, model의 behavior를 human preferences 및 instruction following과 "align"시키기 위해 사용된다.
■ Llama 2에서는 동일한 prompt input에 대해 모델이 2개의 outputs을 생성하면 human annotator가 자신이 선호하는 output을 선택하는 방식으로 human preference data를 수집한다.
■ 이러한 human feedback은 이후 reward model을 학습시키는 데 사용되며, reward model은 human annotators의 preference patterns을 학습하여 이후에는 human preference를 기준으로 어떤 response가 더 나은지 preference decision을 스스로 수행할 수 있게 된다.
3.2.1 Human Preference Data Collection
■ reward modeling을 위해 먼저 human preference data를 수집한다.
■ 앞서 말한 것처럼 Llama 2는 binary comparison(동일한 input에 대해 2개의 outputs을 생성하고 human annotator가 둘 중 자신이 선호하는 response를 선택)을 사용하는데, 이를 통해 다양성을 극대화할 수 있다고 언급하고 있다.
■ Llama 2의 annotation procedure는 다음과 같이 진행된다.
■ 먼저 annotators이 prompt를 작성하게 한 다음, 제공한 기준에 따라 모델의 두 가지 responses 중에서 선택하도록 한다.
■ 다양성을 극대화하기 위해, 동일한 prompt에 대한 두 개의 responses은 두 개의 서로 다른 모델에서 샘플링된다. 이때 temperature 하이퍼파라미터를 다양하게 설정한다.
■ annotators에게 response를 선택하는 것 외에도, 선택한 response를 어느 정도 선호하는지 라벨링하도록 한다: choice 'significantly better', 'better', 'slightly better', 또는 'negligibly better/ unsure' 중 하나이다.
■ preference annotations 수집 시 Llama 2가 중점을 둔 부분은 "helpfulness"와 "safety"이다. 이 두 가지를 Fig 5처럼 구분해서 수집한다.
- helpfulness는 Llama 2-Chat의 responses이 user의 요청을 얼마나 잘 충족하고 요청된 정보를 제공하는지
- safety는 Llama 2-Chat의 responses이 안전하지 않은지 여부
- 예를 들어, "폭탄 제조에 대한 상세 지침 제공"은 helpfulness하다고 볼 수 있지만, Llama 2의 safety guidelines에 따르면 이는 unsafe이다.
■ safety의 경우 safety label을 추가로 수집한다. 이 safety label은 모델의 response를 세 가지 범주 중 하나로 분류한 것이다: 1) the preferred response is safe and the other response is not, 2) both responses are safe, 3) both responses are unsafe
■ safety dataset에서 각 범주의 비율은 18%, 47%, 35% 이다. 그리고 safer responses이 human에게 더 좋게/선호될 것이라는 가정하에 1)의 반대, 즉 "선택된(선호되는) response가 unsafe하고 다른 response는 safe"한 examples은 safety dataset에 포함시키지 않는다.
■ human annotations을 매주 배치 단위로 수집되었으며, 더 많은 preference data를 수집함에 따라 reward model이 개선되었고, 점진적으로 더 나은 버전의 Llama 2-Chat을 학습시킬 수 있었다고 한다. (Fig 20)
■ 많은 preference data를 reward model에 학습시킬수록 모델의 data distribution이 바뀔 수 있다.
- 예를 들어, 예전에 수집한 safety data가 새롭게 업데이트된 safety data로 인해 더 이상 도움이 안 될 수 있다.
- 새로운 safety data의 학습으로 인해 기존에 학습한 safety data distribution이 바뀔 수 있기 때문이다.
■ 그래서 저자들은 지속적으로 새로운 preference data를 수집하는 것이 중요하다고 판단하여, 매주 업데이트된 최신 Llama 2-Chat 모델을 이용해 human annotations을 매주 배치 단위로 수집하였다. 이를 통해 reward model의 distribution을 유지하고 정확한 reward를 유지하는 데 도움이 되었다고 한다.
■ Table 6에서 볼 수 있듯이, 이러한 방식으로 Llama 2에서는 자체적으로 100만 개 이상의 binary comparisons이 포함된 dataset을 구축하였다. 이를 Meta reward modeling data라고 부른다.

■ 이 Meta reward modeling data에서 prompt와 answer의 토큰 수는 도메인에 따라 다르다. 일반적으로 summarization이나 online forum data는 prompts이 더 긴 반면, dialogue-style prompts은 더 짧다.
■ 기존 open-source datasets과 비교하면, Meta reward modeling data는 더 많은 conversation turns(즉, multi-turn conversation)의 비중이 높고, 평균적으로 길이도 더 길다. 이러한 점들이 Chat 모델의 성능 향상에 크게 기여했을 것으로 보인다.
3.2.2 Reward Modeling
■ reward model은 prompt(이전 turns의 contexts 포함)와 prompt에 대한 model response를 입력으로 받아 generation의 quality(예: helpfulness, safety)를 나타내는 scalar score를 출력한다.
■ 이러한 response scores을 reward로 사용하여 RLHF 동안 Llama 2-Chat을 최적화하여 human preference alignment를 개선하고 helpfulness와 safety의 quality를 향상시킨다.
■ 다른 연구들에서는 helpfulness와 safety가 때때로 상충한다는 것을 발견했다. 예를 들어 helpfulness한 정보가 unsafe할 수도 있고, safe한 response가 unhelpful할 수도 있다. 그래서 하나의 reward model로 helpfulness와 safety를 모두 잡게 하는 것은 어려울 수 있다.
■ Llama 2에서는 이를 해결하기 위해 별도로 두 개의 reward model을 학습시킨다: 하나는 helpfulness에 최적화된 모델(Helpfulness RM)이고 다른 하나는 safety에 최적화된 모델(Safety RM)
■ 그리고 reward model을 바닥부터 만들지 않고, 사전학습된 chat model checkpoints로 reward model을 초기화한다. 이렇게 하면 두 모델(Helpfulness RM, Safety RM) 모두 pretraining에서 얻은 knowledge를 활용할 수 있다.
■ 간단히 말해, 이런 방식으로 초기화된 reward model은 chat model이 학습한 knowledge를 사용하게 된다. 이를 통해 chat model과 reward model 간에 정보 불일치가 발생하여 hallucination을 선호하게 되는 경우를 방지할 수 있다.
- 즉, chat model이 학습한 것을 reward model이 알고 있기 때문에, chat model이 hallucination을 할 때 reward model이 속아 넘어가는 것을 방지할 수 있다.
■ reward model의 아키텍처와 하이퍼파라미터는 next-token prediction을 위한 classification head가 scalar reward를 출력하기 위한 regression head로 대체된 것을 제외하고는 사전학습된 언어 모델과 동일하다.
Training Objectives
■ reward model을 학습시키기 위해, 수집한 pairwise human preference data를 "chosen & rejected" format으로 변환하고, chosen response가 rejected response보다 더 높은 점수를 갖도록 다음과 같이 강제한다.

- 여기서 \( r_{\theta} (x, y) \)는 모델 가중치 \( \theta \)를 사용하여 prompt \( x \)와 completion \( y \)에 대한 scalar score output이다.
- \( y_c \)는 human annotators이 선택한 preferred response이고, \( y_r \)은 rejected counterpart이다.
■ binary ranking loss (식 (1))를 기반으로 Llama 2에서는 더 나은 helpfulness와 safety를 위해 "마진(margin)"을 추가한다. (식 (2))
■ 저자들은 섹션 3.2.1에 제시된 바와 같이 preference ratings이 4점 척도(예: significantly better)로 구성된다는 점을 감안했을 때, 이 정보를 활용하여 차이가 더 큰 결과에 더 큰 점수 차이를 할당하도록 마진을 통해 reward model을 학습시키는 것이 유용하다고 판단하였다.

■ 여기서 \( m(r) \)은 preference rating에 대한 discrete function이다. 뚜렷한 차이가 있는 responses 쌍에는 큰 마진을 사용하고, 유사한 responses 쌍에는 작은 마진을 사용한다.
- A가 B보다 좋으면 단순히 A의 점수를 B보다 높게 만드는 것이 아니라, 마진을 통해 "얼마나 더 좋은가?"를 명시적으로 가르치는 것이다.
- 예를 들어, A가 B보다 압도적으로 좋으면 높은 마진을 부여해 점수 차이를 크게 벌리거나, 약간 좋으면 조금만 차이를 둔다. 이렇게 미세한 점수 차이를 학습시킴으로써, reward model이 더 정교한 평가를 할 수 있게 한다.
Data Composition
■ 수집된 데이터와 existing open-source preference datasets을 결합하여 더 큰 training dataset을 사용한다. 이렇게 결합한 이유는 다음과 같다.
■ RLHF에서 reward signals의 역할은 Llama 2-Chat output에 대한 human preference를 반영하는 것이므로, 원칙적으로는 수집한 human preference data만 사용하는 것이 가장 정확해 보일 수 있다.
■ 그러나 저자들은 자체 수집한 데이터와 open-source preference datasets을 혼합하여 실험을 진행한 결과, 우려했던 negative transfer 현상이 관찰되지 않아 혼합하여 사용하기로 결정하였다.
- 여기서 negative transfer는 서로 다른 도메인이나 다른 성격의 데이터셋을 섞었을 때 부적절하게 적용되어 오히려 성능이 떨어지는 것을 말한다.
■ 이를 통해 데이터의 다양성을 확보할 수 있으므로, 오히려 reward model의 더 나은 일반화를 가능하게 하고, 보상 체계의 약점을 이용하여 성능이 떨어짐에도 불구하고 인위적으로 점수를 높이는 보상 해킹(reward hacking) 문제를 방지할 수 있다.
■ 다양한 소스들의 training data를 사용함에 따라, Helpfulness RM과 Safety RM 각각에서 어떤 mixing recipe가 best setting인지 실험을 통해 확인하였다.
■ 실험 결과를 토대로, Helpfulness RM은 모든 Meta Helpfulness data와 Meta Safety data 및 open-source datasets에서 균등하게 샘플링된 데이터를 결합하여 학습시킨다.
■ Safety RM은 모든 Meta Safety 및 Anthropic Harmless data와 Meta Helpfulness 및 open-source helpfulness data를 9:1 비율(safety가 9, helpfulness가 1)로 혼합하여 학습시킨다.
■ 이렇게 helpfulness data 비율을 10%로 설정했을 때, chosen responses과 rejected responses이 모두 safe하다고 간주되는 샘플의 정확도에 유익하다는 것을 발견했다고 한다.
- 이는 response 쌍이 둘 다 safety를 만족하는 상황(즉, safety가 변별력이 없을 때)에서 어느 것이 더 유용한가를 구분하기 위함이다.
Training Details
■ 초기 실험에서 더 오래 학습시키면 과적합이 될 수 있음을 발견하여, training data에 대해 1 epoch만 학습시킨다.
■ base model과 동일한 optimizer parameters을 사용하며, maximum learning rate는 70B Llama 2-Chat의 경우 \( 5 \times 10^{-6} \)이고, 나머지는 \( 1 \times 10^{-5} \)를 사용한다.
■ learning rate는 cosine learning rate schedule을 사용하여 maximum learning rate의 10%까지 감소시키고, total steps의 3%를 warmup으로 사용한다.
Reward Model Results
■ reward modeling을 위한 human preference annotation의 각 배치에서 모델을 평가하기 위해 1000개의 examples을 test set으로 제외시켜 사용하였다. 해당 test set의 모든 prompts의 합집합을 각각 "Meta Helpfulness" 및 "Meta Safety"라고 부른다.
■ 비교를 위해 공개적으로 사용 가능한 다른 대안들도 베이스라인으로 평가한다: FLAN-T5-xl 기반의 SteamSHP-XL, DeBERTa V3 Large 기반의 Open Assistant reward model, OpenAI의 API를 통해 사용할 수 있는 GPT-4
- GPT-4의 경우 두 개의 responses A와 B에 대해 "A와 B 중 가장 좋은 답을 선택하시오"라는 zero-shot question으로 프롬프트하였다.
■ Table 7을 보면, 자체 수집한 데이터 Meta Helpfulness/Safety에 대해 자체 reward models인 Safety RM과 Helpfulness RM이 가장 좋은 성능을 보이며, Helpfulness RM은 Meta Helpfulness test set에서, Safety RM은 Meta Safety test set에서 가장 좋은 성능을 보인다.

■ 자체 수집한 데이터에서 자체 개발한 모델이 성능이 좋게 나오는 것은 예상 가능한 결과이다.
■ 핵심은 Safety RM은 Meta Safety test set에서, Helpfulness RM은 Helpfulness test set에서 각각 좋은 성능을 보였다는 점이다.
■ 각 RM이 각각 자신의 영역에서 가장 좋은 성능을 보인다는 것은 두 목표가 서로 대립된다는 가설을 뒷받침한다.
이는 helpfulness와 safety의 특성이 다르기 때문에, 두 개의 reward models이 필요하다는 저자들의 접근이 타당했음을 보여주는 결과로 볼 수 있다.
■ 안전성을 높이려면 도움이 되는 정도가 제한될 수 있고, 반대로 도움이 되도록 하면 안전하지 않을 가능성이 있기 때문에, 하나의 reward model로 두 차원을 모두 잘 다루기는 어렵다.
■ 하나의 모델로 서로 상충되는 helpfulness와 safety를 다루기 위해서는, prompt가 주어졌을 때 더 나은 response를 선택하는 방법뿐만 아니라, adversarial prompt와 safe prompt를 구별하도록 학습시켜야 하는데, 이 과정이 학습 중에 reward model을 혼란스럽게 만들 수 있다.
■ 그러므로 reward model을 두 개로 나눠서 각각 최적화하는 편이 훨씬 수월하다.
■ 또 다른 흥미로운 점은, GPT-4가 이러한 reward modeling을 위해 직접 학습에 사용하거나 특별히 target으로 삼지 않았음에도 불구하고 다른 non-Meta reward models보다 더 나은 성능을 보인다는 것이다.
■ GPT-4 API 자체도 전반적으로 우수한 성능을 보였지만, Meta RM들의 성능에는 미치지 못했다. 이는 특정 목적에 맞게 설계된 specialized RM의 필요성을 보여주는 결과라고 볼 수 있다.
■ Table 8은 preference rating별로 그룹화하여 테스트한 결과로, "significantly better" test set에서 정확도가 우수하고 비교 쌍이 더 유사해질수록(예: slightly better) 점차 성능이 저하되는 것을 볼 수 있다.

■ "significantly better"로 라벨링된 데이터는 모델이 풀기 쉬운 문제, "slightly better"나 "negligibly better/unsure"는 모델이 풀기 어려워하는 문제가 된 것인데, 이는 humman annotator의 주관성이 개입되어 나타나는 필연적인 결과이다.
■ annotator의 주관에 따라 라벨이 달라질 수 있으며(예: 같은 better이지만 사람의 주관에 따라 significantly로 라벨링될 수도 slightly로 라벨링 될 수도 있음), 이러한 비일관성은 human preference를 모델링하는 것을 어렵게 만든다.
■ 그러나 저자들은 이러한 유사한 케이스에서의 실패가 학습에 치명적이지 않다고 강조한다. 오히려 Llama 2-Chat 모델 성능 향상의 핵심은 차이가 뚜렷한 responses을 정확하게 구분해내는 데 있으며, 따라서 "Significantly better"와 같이 뚜렷한 선호도가 존재하는 데이터에 대한 정확도를 높이는 것이 성능 향상에 가장 중요하다고 한다.
Scaling Trends

■ Fig 6은 reward model 학습에 사용되는 데이터 양이 증가함에 따라, 모델 크기 측면에서의 scaling trend를 분석한 결과이다.
■ 데이터가 많을수록, 모델이 클수록 reward model의 성능이 좋아지는 것을 볼 수 있으며, 유사한 양의 데이터에 대해 더 큰 모델이 더 높은 성능을 달성한다.
- 이러한 성능 향상에는 Iterative Fine-Tuning 과정에서의 Rejection Sampling이 중요한 역할을 했을 가능성이 있다.
- 더 높은 reward score를 받은 outputs을 reward model에 학습시킴으로써 모델이 점차 더 나은 응답을 생성하도록 유도했기 때문이다.
■ 이는 더 많은 비용과 시간을 들여 데이터를 더 모으면, 모델을 더 개선시킬 수 있음을 보여주는 결과이다.
■ 저자들은 reward model의 성능이 최종 모델의 성능에 가장 중요한 요소 중 하나라고 주장한다.
■ Llama 2-Chat과 같은 최종 생성 모델의 성능을 완벽하게 평가하는 것은 여전히 open question이지만(예: 어떤 답변이 모델이 할 수 있는 가장 좋은 답변인가?), reward model이 하는 일은 단순히 좋은 답변, 나쁜 답변으로 순위를 매기는 것으로 정답이 비교적 명확하기 때문에 평가에 대한 모호함이 적다.
■ 이러한 reward model이 최종 모델의 teacher 역할을 하기 때문에, 다른 조건이 동일하다면 reward model의 판단력이 올라가면 최종 모델의 성능도 올라간다는 것이다.
3.2.3 Iterative Fine-Tuning

■ Llama 2에서 다루는 두 가지 reinforce learning (RL) algorithms은 PPO (Proximal Policy Optimization)와 Rejection Sampling이다.
■ PPO를 사용하는 기존의 RLHF training pipeline은 (1) STF 모델 학습 (2) (1)에서 학습된 SFT 모델로 human preference data를 구축하고 reward model을 학습 (3) (2)에서 학습된 reward model을 이용하여 (1)의 SFT 모델에 PPO를 사용한다.
■ 그러나 강화 학습 자체가 하이퍼파라미터에 민감하고 학습이 불안정하기 때문에 (3)에서 학습되는 STF 모델의 변화하는 distribution을 reward model이 잘 반영하지 못한다는 단점이 있다.
■ Llama 2에서는 이 문제를 완화하기 위해 Fig 4에서도 볼 수 있듯이 Rejection Sampling을 사용한다.
■ Llama 2가 사용하는 Rejection Sampling은 기본적으로 모델에서 \( K \)개의 outputs을 샘플링하고 reward를 통해 best candidate를 선택한 다음, 더 나아가 선택된 outputs을 그래디언트 업데이트에 사용한다. 각 프롬프트에 대해 가장 높은 reward 점수를 받은 샘플이 새로운 gold standard로 간주하고, 이를 다시 모델에 학습시킨다.
■ 가장 높은 reward 점수를 받은 응답을 모아 SFT를 수행하므로 그 자체로도 human preference 학습에 도움이 되며, 강화 학습을 사용하지 않기 때문에 학습이 비교적 안정적이다.
■ Fig 4를 보면, 바로 강화 학습을 사용하는 PPO를 통해 모델이 human preference를 학습하도록 하지 않고, 먼저 Rejection Sampling을 통해 모델에 더 빠르고 안정적으로 human preference를 학습시킨 후 PPO를 사용한다.
■ human preference data annotation을 지속적으로 수집하면서 더 나은 reward model을 학습시키고 더 많은 prompts을 수집하면서 RLHF-V1, ... ,RLHF-V5라고 하는 RLHF 모델의 successive versions을 만들었다.
■ 저자들은 V1부터 V3까지 Rejection Sampling만 사용하고, 그 다음 버전부터 순차적으로 Rejection Sampling과 PPO를 적용하여 파인튜닝을 수행하였다.
■ 처음에는 Rejection Sampling만 사용해서 모델이 탐색할 수 있는 범위(Breadth)를 넓혀준 다음, PPO를 통해 선택된 방향으로 깊이(Depth) 있게 최적화한 것이다.
■ Llama 2에서는 이렇게 Rejection Sampling을 강화 학습 전에 사용함으로써 학습을 더 안정적으로 수행한다.
Rejection Sampling
■ 70B Llama 2-Chat에만 Rejection Sampling을 수행한다. 나머지 small models의 경우 large model에서 rejection sampled된 data(best candidate)를 파인튜닝(즉, SFT)한다.
■ 실험 초기에는 각 iterative stage에서 가장 최근 버전 모델에서 각 프롬프트에 대해 \( K \)개의 answers을 샘플링했다. 그리고 최고의 reward model로 \( K \) 개의 각 샘플에 score를 산출한 다음, 주어진 프롬프트에 대해 가장 좋은 answer만 선택하는 방식을 사용했다.
- 예를 들어 RLHF V3는 RLHF V2의 샘플만 사용하여 학습된다.
■ 그러나 이렇게 최신 모델의 샘플만 가지고 학습시키다 보니, 예전에는 잘 수행했던 기능(예: 시의 운율 맞추기)이 퇴행되는 현상이 발생했다. RLHF V3이 시의 운율 라인을 구성하는 데 있어 V2보다 더 성능이 떨어졌던 것이다.
■ 이 문제를 해결하고자, 최신 모델의 샘플뿐만 아니라 과거의 모든 iterative stage(RLHF V1, RLHF V2, ... )에서 최고의 성능을 낸 샘플들을 모두 모아서 학습시키는 방식으로 학습 전략을 수정했다.
■ 이러한 학습 전략이 성능에서 상당한 향상을 보여주었고, 초기 실험에서 발생한 문제(과거의 knowledge를 잃어 버림, 예: 시의 운율 맞추기)를 효과적으로 해결했다고 한다.

■ Fig 7은 Rejection Sampling의 이점을 나타낸 것이다. 구체적으로, 생성하는(샘플링하는) output의 수 \( K \)가 커질수록 더 좋은 output을 생성할 가능성이 높아짐을 나타낸 것인데, 주황선은 reward model이 산출한 score의 중앙값, 파란선은 최댓값이다.
■ Fig 7에서 샘플링하는 수 \( N \)이 커질수록, 즉 생성하는 샘플들이 많아질수록 reward model의 reward score의 중앙값은 비슷하지만, 최댓값이 계속 증가하는 것을 볼 수 있다.
■ 즉, 생성하는 샘플 수가 많아질수록 더 좋은 output을 생성할 기회가 더 많아진다(=reward score의 최댓값이 증가한다)는 것을 의미한다. 단, 중앙값은 거의 정지 상태이기 때문에, 정확히 말하면 모델의 전반적인 품질이 향상된다기보다는 우연히 더 좋은 output을 생성할 기회가 늘어난 것으로 해석하는 것이 타당하다.
■ 이러한 샘플의 다양성은 temperature를 높이는 것과 직접적인 관련이 있다. 더 높은 temperature는 더 다양한 outputs을 샘플링할 수 있게 해주기 때문이다.

■ Fig 8은 Llama 2-Chat-SFT (left)와 Llama 2-Chat-RLHF (right)에 대해 서로 다른 temperature에서 \( N \)개의 샘플(여기서 \( N \in [1, \cdots, 100] \))을 생성했을 때 reward score의 최댓값을 그래프로 나타낸 것이다.
- Llama 2-Chat-RLHF의 경우 10개에서 100개 사이의 outputs을 샘플링할 때 최적의 temperature \( T \in [1.2, 1.3] \)인 것을 볼 수 있다.
■ 최적의 temperature가 일정하지 않다는 것을 확인할 수 있다. 그러므로 저자들은 compute budget을 고려해 점진적으로 재조정할 것을 제안한다.
Proximal Policy Optimization (PPO)
■ 이전 연구의 RL scheme를 따라, reward model을 reward function(human preference)에 대한 추정치로 사용하고 사전학습된 언어 모델을 최적화할 policy로 사용한다. 이 단계 동안 아래의 objective를 최적화한다.
■ 구체적으로, dataset \( \mathcal{D} \)에서 prompts \( p \)를, policy \( \pi \)에서 generations \( g \)를 샘플링하여 policy를 반복적으로 업데이트하고 PPO 알고리즘과 loss function을 사용하여 이 objective를 최적화한다.

■ 최적화 중에 사용하는 reward function은 다음과 같다.

■ PPO는 policy model이 reference model를 기준으로 너무 멀어지지 않게 가까운 범위 안에서 reward model이 높은 점수를 받는 방향으로 유도하는 방식이다.
■ 모델이 reward만 쫓다 보면, 보상 체계에서 허점을 파고들 수 있다. 이를 reward hacking이라고 한다.
■ reward hacking을 완화하고자, reference model을 기준으로 삼아 reference model에서 너무 멀어지지 않게 식 (4)처럼 보통 KL Divergence를 페널티로 사용한다. original policy \( \pi_0 \)에서 벗어나는 것에 대한 페널티 항을 볼 수 있다.
■ 이렇게 policy model이 기준이 되는 reference model과 비교했을 때, 분포가 너무 크게 달라지지 않도록 페널티를 걸면서 reward를 최대화할 수 있다.
- 첫 번째 항이 reward를 최대화하는 역할이라면, 두 번째 항은 초기 생성 분포와 크게 달라지지 않도록 페널티를 부여하는 역할
■ Llama 2에서 reward \( \tilde{R}_c \)를 산출하는 방식은 다음과 같다.

■ Llama 2는 하나의 reward model만 사용하는 것이 아니라 safety reward model (\( R_s \))과 helpfulness reward model (\( R_h \))을 사용하는데, 두 가지를 상황에 따라 교체하여 사용하는 조건부 reward function \( R_c (g \mid p) \)를 정의했다.
■ 식에서 볼 수 있듯이, PPO 학습 시 reward model의 점수는 safety와 helpfulness 중 하나로 학습된다.
■ 구체적으로, 데이터셋에서 잠재적으로 unsafe responses를 유발할 수 있는 prompt이거나(IS_SAFETY(\( p \))), unsafe responses을 필터링하기 위해 사용한 임곗값 0.15 미만이라면, helpfulness를 무시하고 더 안전한 response를 생성하도록 \( R_s \) 값을 reward로 사용한다.
■ 만약, 이러한 위험 상황이 아니라면(즉, 일반적인 경우), 더 유용한 response를 생성하도록 \( R_h \) 값을 reward로 사용한다.
■ 저자들은 이러한 setting을 통해 Meta Safety test set에서 precision 0.89, recall 0.55를 달성했다고 한다.
- precision(TP / TP+FP) 0.89라는 것은 positive라고 예측했을 때 실제로 positive한 경우가 많았다. 즉, false positive가 적었다는 것이므로, 멀쩡하고 안전한 response를 unsafe로 잘못 판단한 실수를 거의 하지 않았다는 것을 의미한다.
- recall(TP / TP+FN)이 0.55라는 것은 실제 unsafe한 responses 중에서 모델이 unsafe로 판정한 비율이 55%라는 것이다.
- 이렇게 recall을 희생하면서 precision을 높이는 0.15라는 임곗값을 선택한 이유는, 정상적인 response를 unsafe response로 오판해 RLHF 학습에서 부작용(예: "안녕하세요"라고 해도 unsafe로 간주하여 답변하지 않는 현상)이 발생하는 것을 최소화하려는 의도로 보인다.
■ 또한 KL 페널티 항 (\( \beta \))과 reward 점수(첫 번째 항)와 적절하게 균형을 맞추고, 학습의 안정성을 높이기 위해 위의 식과 같이 최종 점수를 whitening하는 것이 도움이 되었다고 한다.
- 여기서 whitening은 평균 0, 분산 1로 정규화하는 것을 말한다.
- reward 점수가 너무 크거나 작으면 KL 페널티가 무시되거나 과도하게 적용될 수 있는데, 이를 최소화하려는 의도로 보인다.
■ 모든 모델에 대해 \( \beta_1 = 0.9, \beta_2 = 0.95, \text{eps} = 10^{-5} \)의 AdamW optimizer를, weight decay 0.1, gradient clipping 1.0, constant learning rate \( 10^{-6} \)을 사용하였다.
■ 각 PPO iteration에 대해 batch size 512, PPO clip threshold 0.2, mini-batch size 64를 사용하고 mini-batch당 한 번의 gradient step, 즉 업데이트를 진행하였다.
■ 7B와 13B 모델의 경우 KL penalty \( \beta = 0.01\), 34B와 70B 모델은 \( \beta = 0.05 \)를 사용하였다.
3.3 System Message for Multi-Turn Consistency

■ 챗봇을 사용할 때는 user의 instruction이 모든 dialogue turns에 일관되게 적용되는 것이 바람직하다.
■ 그러나, 초기 RLHF 모델은 Fig 9 left 예시처럼 몇 번의 dialogue turns이 지나면 initial instruction을 망각(이모티콘으로 응답하라는 초기 instruction을 잊고 텍스트로 응답하는 모습)하는 경향이 있었다고 한다.
■ 대화의 turn 수가 길어질수록 모델은 초기 instruction보다는 user의 현재 입력에 attention focus하게 되어 initial instruction의 영향력이 사라지는 것이다.
■ 이 문제를 해결하는 간단한 방법은 매 dialogue마다 user의 instruction을 삽입하여 모델에게 입력으로 주는 것이다. 그러나 이 방법은 입력 문장의 길이가 길어지므로 inference 비용이 증가한다.
■ 이러한 한계를 해결하기 위한 방법으로 저자들은 fine-tuning data를 조작하여 multi-stage process에서 attention focus를 하도록 도울 수 있는 Ghost Attention (GAtt)을 제안한다.
■ GAtt를 적용하면 매 turn마다 user의 instruction을 지속적으로 상기시켜, Fig. 9 (right)에서 보이듯 모델이 대화가 진행되더라도 계속해서 user instruction을 따르도록 유도할 수 있다.
GAtt Method
■ 두 사람(예: user와 assistant) 간의 multi-turn dialogue dataset이 있다고 했을 때, message list가 \( [u_1, a_1, \cdots, u_n, a_n] \)이라고 하면, 여기서 \( u_n \)과 \( a_n \)이 각각 \( n \)번째 turn에서 user와 assistant의 message에 해당된다.
■ 그리고 대화 내내 준수해야 할 instruction을 inst라고 하자. 예를 들어 inst는 "~로 행동해(act as)"일 수 있다.
■ 먼저, 이 inst를 모든 turns의 user messages에 연결한다: \( u_n \rightarrow "inst" + u_n \)
■ 다음으로, RLHF 모델을 사용하여 이 synthetic data를 샘플링한다. 그러면 context-dialogue와 모델을 finetuning할 샘플을 얻게 된다.
■ 저자들은 사용자의 모든 user messages에 instruction inst를 붙이는 대신, 첫 번째 턴에만 inst를 붙이고 첫 번째 턴을 제외한 모든 턴에서 inst를 삭제하고자 하였다.
■ 단, 단순히 첫 번째 턴을 제외한 모든 턴에서 inst를 삭제하면, 불일치로 인해 학습을 저해할 수 있다.
■ 그래서 저자들은 이 문제를 해결하기 위해, 학습 시 첫 번째 턴을 제외한 나머지 턴의 instruction tokens에 대해 ghost 취급, 즉, loss=0으로 설정한다.
■ 이렇게 하면 모델은 논리적으로는 "instruction이 계속 있다"고 착각하고 답변을 생성하지만, 실제로는 "instruction이 없어도 있는 것처럼 행동하는 법"을 배우게 된다. (Fig 10 right)
■ 여기에 저자들은 모델이 실패하지 않고 instruction을 따를 수 있도록 다음과 같은 데이터 생성 과정을 설계하였다.
■ 만약, instruction으로 "세종대왕처럼 행동해"라고 설정했다고 하자. 이때 Llama 2 모델에 세종대왕에 대한 knowledge가 전혀 없다면, instruction과 model knowledge와의 불일치로 모델은 엉터리 답변을 하게 된다.
■ 이 문제를 해결하고자 model knowledge에 있는, 즉 model이 이미 학습해서 알고 있는 hobbies 및 public figures를 사용하여 training instruction data를 만들고자 하였으며, 이를 위해 Llama 2-Chat에게 hobbies 및 public figures에 대한 lists을 생성하게 하여 모델이 알고 있는 것을 확인하고, 이미 잘 알고 있는 대상으로만 training data를 만들었다.
■ 예를 들어 모델이 "나폴레옹"을 리스트에 포함시켰다면, 이는 모델이 나폴레옹에 대한 knowledge를 보유하고 있으므로 나폴레옹 연기를 잘 수행할 수 있을 것이라는 가정이 가능하다. 이러한 방식으로 instruction과 model knowledge 간의 mismatch 문제를 피했다.
■ 그리고 instruction을 더 복잡하고 다양하게 만들기 위해, 확보한 lists(모델이 알고 있는 취미, 언어, 인물 등)에서 랜덤하게 결합한 것을 final instruction으로 사용한다.
- 예를 들어 모델이 알고 있는 것이 "테니스", "프랑스어", "나폴레옹"이라면, 기본적인 instruction은 "당신은 테니스를 즐깁니다","프랑스어로 말하세요", "나폴레옹처럼 행동해줘"이다.
- 이를 랜덤하게 결합하여 "테니스를 즐기는 나폴레옹처럼 행동해줘", "프랑스어를 말하며 테니스를 즐기는 나폴레옹처럼 행동해줘"와 같은 instruction을 만들어서 학습시켜, 모델이 복잡하고 충돌할 수도 있는 여러 제약 조건을 동시에 처리하는 능력을 기르고자 한 것이다.
■ 단 training data를 위한 최종 system message를 구성할 때는 원래 instruction을 간결하게 수정하였다: 예: "지금부터 항상 나폴레옹처럼 행동해줘" \( \rightarrow \) "인물: 나폴레옹"
- user마다 prompt를 입력하는 style이 다를 수 있다. "지금부터 항상 나폴레옹처럼 행동해줘"처럼 장황하게 입력할 수도 있고, 반대로 "인물: 나폴레옹"처럼 간결한 형식으로 입력할 수도 있다는 점을 고려한 것이다.
- 이를 통해 모델이 instruction의 길이나 형식에 구애받지 않고, 핵심 의도(예: 나폴레옹 연기)를 잘 파악하는 robustness를 갖추게 된다.
■ 이러한 단계들을 통해 SFT 데이터셋이 생성되며, 이를 기반으로 저자들은 Llama 2-Chat에 SFT 학습을 진행하였다.

GAtt Evaluation
■ RLHF V3 이후에 GAtt를 적용하였다. Table 30에서 기본 모델은 몇 번의 turns이 진행됨에 따라 일관성을 잃는 반면, GAtt를 적용한 모델은 20 turn에서도 일관성을 유지하는 것을 볼 수 있다.
■ 그리고, 추론 시 GAtt training에서 본 적 없는 instruction (예: "항상 Haiku로 답하세요")을 입력했을 때에도 일관성을 유지했다고 한다.

■ GAtt가 finetuning 중 어떻게 도움이 되었는지 확인하기 위해, 모델의 maximum attention activations을 히트맵으로 나타낸 결과, GAtt가 없는 모델(Fig 10 left)의 경우, 대화 초반부에서는 initial instruction에 잘 반응하다가 대화가 길어질수록(아래쪽 행으로 내려갈수록) initial instruction(Fig 10 "Act as a Oscar" column)에 대한 히트맵이 어두워지는 것을 볼 수 있다.
- Fig 10의 rows과 columns은 대화 턴의 생성 시점을 순차적으로 나타낸 것이다. 그러므로, 예를 들어 맨 좌측 하단의 "name is Oscar"와 "Act as a Oscar"의 블록은 마지막 토큰들을 생성할 때 초기 instruction에 얼마나 attention을 focus했는지를 나타낸다.
■ 반면, GAtt를 장착한 모델(Fig 10 right)은, GAtt가 없는 모델에 비해 대화의 마지막까지도 히트맵이 밝은 모습을 볼 수 있다. 즉, 모델이 대화 후반부에서도 맨 처음 initial instruction(Fig 10 "Act as a Oscar" column)에 attention focus하고 있음을 확인할 수 있다.
3.4 RLHF Results
3.4.1 Model-Based Evaluation
■ LLM을 평가하는 것은 까다로운 open question 문제이다. LLM에 대해 사람이 평가하는 것(human evaluation)은 gold standard이지만, 비용과 시간이 너무 많이 든다.
■ 그래서 Llama 2 저자들이 선택한 방식은, RLHF-V1에서 V5까지 각 iteration에서 reward model의 reward improvement을 기준으로 최고 성능 모델을 선택하는 것이다. 그런 다음, 나중에 human evaluation을 통해 주요 모델 버전을 검증하는 식으로 비용을 절감했다.
How Far Can Model-Based Evaluation Go?
■ reward model의 robustness를 측정하기 위해, helpfulness와 safety 모두에 대한 prompt test set을 수집한 다음, 세 명의 annotators에게 7점 리커드 척도(높을수록 좋음)를 기준으로 answers의 quality를 판단하도록 하였다.
■ 그 결과 Fig 29와 같이, reward model을 통한 점수가 전반적으로 사람의 점수와 잘 정렬되는 것을 확인할 수 있다. 이는 사람이 아닌 reward model의 채점을 기준으로 최고 성능 모델을 선택한다는 접근의 정당성을 뒷받침하는 결과이다.

■ 그러나 Goodhart’s Law에 따르면, 특정 측정 지표가 최종 목표(target)가 되는 순간, 그 측정 지표는 신뢰성을 잃어 더 이상 좋은 측정 지표가 아니다.
■ 즉, 모델이 human preference를 진짜 학습하는 것이 아니라, reward model의 점수만 높이는 방식으로 학습할 수 있다.
■ 저자들은 이를 방지하기 위해 자체 데이터뿐만 아니라 다양한 오픈소스 데이터(open-source Reward Modeling datasets)로 학습된 general한 reward model을 추가로 사용하여 평가 기준이 편향되지 않도록 하였다.
■ 그리고 새로운 모델이 이전 모델보다 성능이 떨어지지 않았는지 확인하기 위해, 다음 annotation iteration에서 두 모델을 모두 사용하여 샘플을 생성했다. 어차피 진행해야 할 라벨링 과정에서 자연스럽게 두 모델의 답변을 비교할 수 있으며, 서로 다른 두 모델이 답변을 생성하므로 데이터의 다양성도 확보할 수 있다.
Progression of Models

■ Fig 11은 자체 Safety 및 Helpfulness RM으로 측정한 safety와 helpfulness, 두 가지 축을 기준으로 SFT 모벨부터 이후 단계적으로 발전한 RLHF 모델들의 점수 분포를 나타낸 것이다.
■ 모델이 업데이트될 때마다 한쪽 성능만 좋아지지 않고 두 측면에 대한 성능이 동반 상승하는 것과, RLHF-V3 이후 두 측면 모두에서 ChatGPT를 능가(harmlessness and helpfulness >50%)한다.
■ reward를 측정 지표로 사용하는 것에 대한 타당성에도 불구하고, 이는 자사 모델(Llama 2-Chat)에 유리하게 편향될 수 있다.
■ 그래서 공정한 비교를 위해 GPT-4를 judgement로 사용하여 어떤 생성이 선호되는지 추가로 평가하였다. 이때, 편향을 피하기 위해 GPT-4 프롬프트에 ChatGPT와 Llama 2-Chat의 outputs이 나타나는 순서를 무작위로 교체하였다.
■ 그 결과, Llama 2-Chat의 우세가 다소 완화되기는 했지만, GPT-4를 이용한 평가에서도 Llama 2-Chat이 ChatGPT를 60% 이상 이기는 성능을 보였다.
3.4.2 Human Evaluation
■ human evaluation은 dialogue models을 포함한 natural language generation을 위한 모델의 성능을 판단하는 데 있어 gold standard이다.
■ 결국 사용자는 사람이므로, 저자들도 주요 모델 버전의 품질을 평가하기 위해 human evaluators에게 helpfulness와 safety를 평가하게 하였다.
■ 구체적으로, 4,000개 이상의 single-turn 및 multi-turn prompts에 대해, Llama 2-Chat 모델과 open-source models (Falcon, MPT, Vicuna) 및 closed-source models (ChatGPT (gpt-3.5-turbo-0301), PaLM (chat-bison-001) )을 비교하도록 하였다. (Appendix A.3.7)
Results

■ Fig 12에서, Llama 2-Chat은 single turn 및 multi-turn prompts 모두에서 open-source models을 큰 차이로 능가한 것을 볼 수 있다.
■ 특히 동급 크기의 모델들에서 전반적으로 높은 승률을 보이며, 가장 큰 Llama 2-Chat의 경우 PaLM-bison을 큰 차이로 능가하며 ChatGPT와 경쟁력 있는 성능을 보인다.
Limitations of human evaluations
■ Fig 12의 결과는 Llama 2-Chat이 human evaluation에서 ChatGPT와 동등하다는 것을 나타내지만, human evaluation에는 몇 가지 한계가 있음을 유의해야 한다.
- (1) 연구적 기준으로 4,000 개의 prompt set은 크기가 큰 편이다. 그러나 이 4,000개가 실사용 사례를 모두 커버하기에는 턱없이 부족한 개수이다.
- (2) 프롬프트의 다양성이 부족하다. 위와 같은 human evaluation에 사용된 prompt set에는 Coding이나 Reasoning 관련 프롬프트가 포함되어 있지 않았다고 한다. 그러므로 모델의 전체 능력을 대변한다고 볼 수 없다.
- (3) multi-turn 대화의 전체 맥락이나 과정을 평가하는 대신, multi-turn 대화의 최종 생성만을 평가했다. 대화 전체를 평가하는 것이 더 유의미할 수 있다.
- (4) 생성 모델에 대한 human evaluation은 주관적이고 노이즈가 많다. 즉, 다른 prompt set이나 다른 instructions로 평가하면 다른 결과가 나올 수 있다.