Llama3 살펴보기 - 1
전반적인 모델 아키텍쳐의 변화는 없어 보이고, 데이터 품질을 올리는데 주력한 것 같은 모습이다.
Model Architecture
- Decoder Only Transformer Model
- 128k token 사전을 갖고 훈련함 -> improved model performance
- Grouped Query Attention -> inference efficiency를 올림 (라마2때도 사용한것, 구글 논문)
- 8192 입력 토큰으로 가능함 : Llma2는 4096이였음.
Training Data
- 고품질의 대규모 데이터 세트를 구성하는데 힘을 많이 쏟았음.
- 15T이상의 토큰으로 학습되었고, 이는 라마2에서 사용한 것보다 7배 크고 4배 많은 코드가 포함된다.
- 5%이상의 데이터셋은 30개국의 언어를 포함한다.
품질 유지를 위해 진행한 것
- 데이터 필터링 파이프라인을 개발 : 휴리스틱 필터, NSFW필터, 시맨틱 중복 제거, 텍스트 품질 Classifier
- 위 필터기를 사용해 데이터를 필터링함 -> 이때 사용한 모델은 라마2로, 라마2는 고품질의 데이터를 식별하는데 좋은 성능을 보임.
Scaling Up Pretraining
Series of detailed scaling laws를 개발하여 -> 최적의 데이터 조합을 선택하고 학습하는 방법을 발견했다.
(여기서 말하는 Series of Detailed scaling law는 알려져 있지 않음.)
신기한 부분은 Series of Detailed scaling law를 사용하면, 훈련하기도 전에 key task에 대한 성능을 예측할 수 있다.
Series of Detatiled scaling law에 관한 논문을 찾음.. 논문 리뷰 예정..
https://arxiv.org/pdf/2001.08361
어떻게 했지..? 훈련을 하기도 전에 어떤 데이터 셋을 사용해서 훈련하면 어떤 성능이 나올지 예측이 가능하다니...-> Optimal한 데이터 셋 구성하여 훈련을 진해하면 될 듯.
훈련하는 과정에서 새로운 것을 발견하였다. 8B를 예로 들어 설명하자면 친칠라 최적화에 의하면 200B의 토큰으로 학습을 하는게 최적이라 하였으나, 두배 이상의 데이터로 모델을 훈련한 후에도 모델 성능이 계속 향상되었다.
세가지 훈련 병렬과정을 개발함 -> 인프라 관련한 내용으로 이해를 못하였음.
1. 데이터 병렬화
2. 모델 병렬화
3. 파이프라인 병렬화
Instruct finetuning
모델의 잠재성을 끌어올리기 위한 instruct finetuning을 진행하는데 있어, 많은 부분을 개선함.
Post-training은
1. Supervised finetuning
2. Rejection Sampling
3. Proximal Policy Optimization
4. Direct Preference Optimization
네가지를 조합하였다.
STF에 사용되는 프롬프트의 품질, PPO, DPO에 사용되는 선호도 순위는 모델의 성능에 막대한 영향을 끼치기에, 데이터를 신중하게 큐레이팅하고, 휴먼 라벨러를 사용하여 데이터의 품질을 높이는 노력을 하였다.
PPO와 DPO를 통해 선호도 순위를 학습하여 추론 및 코딩 작업에서 라마3의 성능이 크게 향상되었다.
Building with llama3
Pytorch라이브러리인 torchtune을 개발하여 LLM을 쉽게 작성하고 finetuning할수 있게 하였다. torchtune은 메모리적으로 효율적이며, 파이토치로 작성하여 모델을 쉽게 들여다 볼 수 있다. 또한 다양한 모바일 및 엣지 기계에서도 사용할 수 있도록 Executorch도 지원함.
A System level Approach to responsibility
Instruct finetuning은 모델의 안정성에도 중요한 역할을 한다.
레드팀은 적대적인 프롬프트를 생성한다. 예를들어 화학, 생물학, 사이버 보안 등 오용 위험을 평가하기 위한 포괄적인 테스트를 적용한다 .이런 노력을 반복적으로 시행하여 모델의 안전성을 finetuning하여 사용.
https://github.com/meta-llama/llama3/tree/main
GitHub - meta-llama/llama3: The official Meta Llama 3 GitHub site
The official Meta Llama 3 GitHub site. Contribute to meta-llama/llama3 development by creating an account on GitHub.
github.com
https://ai.meta.com/blog/meta-llama-3/
Introducing Meta Llama 3: The most capable openly available LLM to date
In the development of Llama 3, we looked at model performance on standard benchmarks and also sought to optimize for performance for real-world scenarios. To this end, we developed a new high-quality human evaluation set. This evaluation set contains 1,800
ai.meta.com