llama3에 대한 Andrej Karpathy의 생각

Soonmo Seong
Cloud Villains
Published in
6 min readApr 22, 2024
by llama official github

Andrej Karpathy의 트윗를 번역한 글입니다.

===============================================================

llama3 8B와 70B(Base 및 미세조정 버전 모두) 모델을 출시하며, 해당 모델 클래스에서 우수한 성능을 보이고 있습니다(하지만 순위가 발표되면 알게 될 것입니다). 400B 모델은 여전히 학습 중이지만, 이미 GPT-4 수준(예: MMLU 84.8 vs GPT-4 Turbo 86.5)에 근접하고 있습니다.

Tokenizer

토큰 수가 32K(llama 2)에서 128K(llama 3)로 4배 증가했습니다. 더 많은 토큰을 가지면 시퀀스 길이를 더 잘 압축할 수 있어, 15% 더 적은 토큰 수로 더 나은 downstream 성능을 볼 수 있습니다.

Architecture

Llama 2와 크게 변화가 없습니다. Llama 2에서는 큰 모델만 Grouped Query Attention(GQA)을 사용했지만, 이제 8B 모델을 포함한 모든 모델에서 GQA를 사용합니다. 이는 Attention의 KV 캐시 크기를 줄이는 파라미터 공유 기법입니다. 복잡성을 줄이고 최적화하는 좋은 수정안입니다.

  • KV 캐시는 토큰 생성 시 계산되는 Key/Value 텐서를 GPU 메모리에 저장한 후 재사용합니다. 이로써 Key/Value 텐서가 재 계산 되는 것을 막아 연산량을 줄입니다.

Sequence Length

최대 컨텍스트 윈도우 토큰 수가 8192로 증가했습니다. llama 1은 2048이고 llama 2는 4096입니다. 이 증가는 환영할 만하지만 요즘 기준(예: GPT-4 128K)에 비하면 작은 편입니다. 많은 사람이 이 부분에서 더 많은 발전을 기대했을 것입니다. 추후 미세조정 버전에서 개선될지도 모르겠습니다.

Training Data

llama 2는 2조 개의 토큰으로 학습했지만, llama 3는 15조 개의 토큰 데이터 셋으로 학습했습니다. 이 데이터에는 품질 관리에 많은 노력을 기울였고, 코드 토큰이 4배, 30개 이상의 비 영어 언어 토큰이 5% 포함되어 있습니다. 5%는 영어 대비 비영어 비중이 낮은 편이어서 대부분 영어 모델이지만, 비영어가 포함된 것은 바람직합니다.

Scaling Laws

특히 주목할 만한 점은, 8B 파라미터 모델에 15조 토큰이라는 매우 대규모 데이터 셋으로 학습한 것인데, 이는 일반적이지 않고 새로운 시도이며 환영할 만합니다. Chinchilla 기준으로 8B 모델의 ‘컴퓨팅 최적화’ 지점은 2,000억 토큰 정도입니다(해당 크기에서 모델 성능 대비 가성비만 따진다면). 그러나 llama 3는 이 지점을 75배 이상 초과하여 학습했습니다. 이는 이례적이지만, 저는 작고 다루기 쉬우며 추론이 용이한 매우 유능한 모델을 얻게 된 것을 매우 바람직하게 생각합니다. Meta에 따르면 이 지점에서도 모델이 ‘표준적인 의미에서 수렴하지 않았다’고 합니다. 즉, 우리가 사용하는 LLM들은 수렴 지점에 훨씬 미치지 못하고 100~1000배 이상 부족하게 학습되어 있다는 의미입니다. 실제로 저는 사람들이 이 흐름을 계속 이어나가 더 작은 모델에 대해서도 장기간 훈련하고 공개하기를 정말 바랍니다.

Systems

llama 3는 400 TFLOPS 처리량으로 16K GPU에서 훈련되었다고 합니다. 세부 사항은 언급되지 않았지만, H100 GPU를 fp16 정밀도로 사용했다고 가정하면, NVIDIA 마케팅 자료에서 1,979 TFLOPS로 명시되어 있습니다. 하지만 우리 모두가 아는 것처럼 작은 별표(*희소성 포함)가 상당한 역할을 하고 있어 실제 TFLOPS는 약 990 정도라고 봐야 합니다. 왜 희소성을 FLOPS로 계산하는지 모르겠습니다. 어쨌든 중요한 건, 400/990에서 약 40% 활용도를 보였다는 것인데, 이 규모에서 그렇게 나쁘지 않습니다! 이 수준에 이르기 위해서는 매우 견고한 엔지니어링이 필요합니다.

TLDR

매우 환영할 만한 llama 3 모델을 Meta에서 공개했습니다. 기초적인 부분에 충실하고, 견고한 시스템과 데이터 작업에 많은 시간을 할애하여 장기 학습 모델의 한계를 탐구했습니다. 또한 GPT-4 수준의 첫 오픈소스 모델이 될 수 있는 400B 모델이 기대됩니다. 많은 사람들이 더 긴 컨텍스트 길이를 요구할 것 같습니다. 개인적으로도, 교육 및 테스트, 임베디드 애플리케이션 등을 위해 8B보다 훨씬 작은 100M, 1B 규모의 모델도 매우 필요하다고 생각합니다.

===============================================================

Andrej Karpathy의 트윗을 요약해보겠습니다.

  • 메타는 8B와 70B llama3 모델(기본 및 미세조정 버전)을 공개했으며, 각 모델 클래스에서 우수한 성능을 보입니다.
  • 400B 모델도 계속 학습 중이며, 이미 GPT-4 수준에 근접하는 성능을 보이고 있습니다. 토크나이저의 토큰 수가 128K(Llama 3)로 4배 증가했습니다.
  • 아키텍처는 Llama 2와 크게 변화가 없지만, 모든 모델에서 Grouped Query Attention(GQA) 기법을 적용했습니다.
  • 최대 컨텍스트 윈도우 길이가 8192로 증가했습니다.
  • 15조 토큰 데이터 셋으로 훈련했으며, 코드 데이터와 다국어 데이터의 비중이 늘었습니다. 그러나 여전히 영어모델이 라고 보는 것이 합당합니다.
  • 작은 8B 모델에 대해 15조 토큰으로 16K GPU로 훈련했으며, 엔지니어링 측면에서 매우 안정적인 시스템입니다. 400B 모델이 GPT-4 수준의 첫 번째 오픈소스 모델이 될 것으로 기대됩니다.
  • 더 작은 100M, 1B 수준의 모델도 필요할 것이라는 의견을 제시했습니다.
  • 전반적으로 Llama 3는 높은 성능과 견고한 시스템, 대규모 고품질 데이터 셋 기반의 모델로 평가되며, 오픈소스 분야에서 매우 의미 있는 진전입니다.

Andrej Karpathy는 llama3에 대해서 긍정적인 시각으로 바로 보고 있는 것을 알 수 있으며 많은 기술적 진보가 일어났다고 생각하고 있습니다. 다면 영어 이외의 언어에 대한 제약과 조금 더 작은 모델이 공개되었으면 한다는 의견도 피력하였습니다.

--

--