LLM 핵심 정리 - Andrej Karpathy

AI? 트랜스포머? 누구나 이해할 수 있는 초거대언어모델(LLM) 핵심 정리
Nov 28, 2023
LLM 핵심 정리 - Andrej Karpathy
Andrej Karpathy(앤드레이 카파시)는 전 테슬라 AI 디렉터, 오픈AI의 창립멤버 중 한 명인 딥러닝 분야의 세계적인 전문가입니다.
약 1주일 전에 Andrej는 “Intro to Large Language Models”라는 1시간 분량의 LLM 강의를 유튜브로 공개했는데요. 딥러닝 전문가가 아닌 일반인도 쉽게 이해할 수 있도록 LLM(거대언어모델)의 핵심내용만 정리해줬습니다.
LLM 개념이 워낙 복잡하고 노이즈도 많기 때문에 현업에 종사하는 분이 아니라면 쉽게 접하기 어려운데요… 저와 같은 AI 초보자가 이해할 수 없는 자료들만 수두룩합니다😥.
저도 이번 기회로 LLM의 기초에 대해 공부하고 블로그를 준비해봤습니다!
이미 LLM에 대해 많이 알고 계신 분들은 AI 트렌드를 분석한 블로그 포스트 참고하시기 바랍니다.

LLM은 무엇인가?

notion image
  • LLM은 간단하게 보면 2개의 파일입니다. Llama-2 70B 모델의 경우, 1) 파라미터 파일과 2) 해당 모델을 돌릴 수 있는 “Run” 파일이 있습니다.
  • 파라미터란 모델의 가중치(weights)를 말합니다. Llama-2는 float16 데이터 타입을 사용하다 보니 각 파라미터 당 2 byte; 총 70 billion 파라미터는 140GB에 해당합니다.
  • 런 파일은 500줄의 C코드로 구성되어 있습니다.
  • 이 모델을 돌리는 데엔 맥북만 있어도 충분합니다! 정말 어려운 것은 이 파라미터를 구하는 것(즉, 트레이닝)이죠.

Pre-Training

notion image
  • 파라미터를 구하기 위해선 먼저 Pre-Training 작업을 합니다.
  • Pre-Training은 먼저 많은 양의 데이터를 요합니다 (약 10TB의 텍스트 데이터). 인터넷에서 텍스트 데이터를 대량 스크레이핑 하죠.
  • 그 다음, 이 데이터로 모델 트레이닝을 위해 6,000대의 GPU를 12일 동안 돌리면 파라미터 함수가 나옵니다. Llama-2 70B의 경우, 총 비용은 $2M (~26억원)정도 됩니다. 아무나 쉽게 할 수 없는 비용이죠.
    • SOTA 모델들은 Llama-2보다도 훨씬 크죠(10배). 그러면 Pre-Training으로만 더욱 많은 GPU 클러스터와 몇 백억~천억 단위 비용이 필요합니다.
  • 주로 Llama-2와 같은 pre-trained 모델들은 누구나 사용할 수 있도록 Hugging Face와 같은 오픈소스 모델 헙에 올려놓죠. 이 모델을 사용하면 다른 기업/연구자들이 똑같은 비용 집약적인 프로세스를 거치지 않고 Fine-Tuning을 거쳐 사용하면 됩니다.
  • 약 10TB의 텍스트 데이터가 140GB의 파라미터 파일로 변형(약 100배 압축!)되었습니다. 파일 압축(file compression)과 유사하죠.
  • 여기서 다른 점은 파일 압축은 무손실(lossless) 압축이지만 파라미터 변형은 lossy 압축입니다. 데이터가 파라미터에 똑같은 카피가 생기는 것이 아니라는 뜻입니다.
notion image
  • Pre-Training 된 LLM은 대량의 데이터를 학습한 다음, 각 단어와 서로 간의 관계를 이해하고 다음 단어를 “예측”하는 것입니다. LLM은 “cat sat on a” 다음으로 97% 확률로 “mat”을 예측합니다.
  • 단어 예측과 파일 압축엔 수학적 관계가 있습니다. AI모델이 다음 단어를 정확하게 예측할 수 있다면 이 원리로 데이터 파일을 압축할 수 있겠죠?

Next Word Prediction

  • 기계가 다음 단어를 예측한다는 것은 놀라운 일입니다. 이 기계가 엄청난 많은 지식과 단어를 학습하고 서로 간의 관계를 (수학적으로) 이해했다는 의미이죠.
  • 예를 들어, 아래 사진처럼 Ruth Marianna Handler에 대한 내용에 대해 답변을 하려면 “Ruth”와 “Handler”가 각각 어떤 의미를 갖고 있는지, “1916 - April 27” 숫자가 어떤 의미를 갖는지, 각 단어 간 서로의 관계는 어떻게 되는지 알아야죠.
notion image

작동 원리

notion image
  • 위 사진은 트랜스포머 신경망 아키텍처 (transformer neural network architecture)입니다.
  • 트랜스포머의 아웃풋에 대해 얘기할 때, “Black box”라는 표현을 들어보신 적 있으실 겁니다. 이 모델이 어떻게 작동되어 아웃풋을 내놓은지 이해하지 못한다는 뜻이죠. 이는 사실 기술 상용화에 큰 장애물입니다. Observability가 없다면 비정확한 아웃풋에 대한 리스크가 기업 입장에선 너무 크기 때문이죠.
  • 아키텍처 각 부분에서 어떤 작업이 일어나는지는 잘 이해하고 있습니다. 문제는 아키텍처 곳곳에 뿌려져 있는 100B 파라미터입니다.
  • 우리가 AI모델을 학습 시킬수록 모델은 더 좋은 퀄리티의 아웃풋을 내놓습니다. 우리는 이렇게 학습을 통해 모델을 최적화(optimize)하는 방법은 알지만 이 파라미터들이 어떻게 상호작용하여 더 좋은 답변을 낼 수 있었는지 모릅니다. 현재로선 오로지 “몇 % 확률로 정확한 정답을 내는가”를 책정할 수 있고 이 숫자를 “gradient descent”라는 방식으로 최대화해서 모델 아웃풋 정확도/퀄리티를 올려나갑니다.
  • 그나마 알 수 있는 것은 LLM은 파라미터 내 어떤 형태의 비완벽한 “지식 데이터베이스”를 만들어 답변에 사용합니다. 하지만, 우리가 다방면으로 접근 가능한 통상적인 데이터베이스와 달리 어떤 특정 방식의 질문에만 정확하게 답변할 수 있습니다.
    • 예) 톰 크루즈의 어머니는 누구야? “Mary Lee Pfeiffer —> 그럼 Mary Lee Pfeiffer의 아들은 누구야? “모름”
  • “Mechanistic interpretability” 리서치 분야는 이 LLM의 “Black Box” 문제를 풀고 있습니다. LLM의 성능이 증가할 수록 이 모델들을 제대로 평가할 수 있는 방법 (evaluation 및 observability) 또한 정교해져야 합니다.

Fine-Tuning

  • Pre-Training 이후 Fine-Tuning 작업이 필요합니다. Pre-trained 모델은 그냥 단순 “document generator”일 뿐입니다. 실제로 ChatGPT, Bard와 같이 효용 있는 모델을 만들려면 fine-tuning 작업을 거쳐야 합니다.
notion image
  • Fine-tuning을 위해선 우리가 원하는 방식으로 행동/답변할 데이터셋을 모아야 합니다. 예를 들어, ChatGPT와 같은 Q&A 어시스턴트를 만들고자 하는 경우, 내 목적에 맞는 질문과 답변 데이터를 적어도 10만개 이상 수집합니다. 이제부턴 데이터의 양(quantity)보다 질(quality)의 승부입니다.
  • Fine-tuning이 끝나면 AI모델은 학습된 데이터와 같이 Q&A 어시스턴트처럼 답변을 하게 됩니다. Fine-tuning 때 학습되지 못한 질문에 대해서도 Pre-training 단계 학습 바탕으로 답변을 하죠.
  • Pre-training은 “지식(knowledge)”을 부여하는데 집중했다면 Fine-tuning은 “(내가 원하는 데로 작동/답변하도록)alignment”에 초점을 둡니다.
    • 인터넷 문서 생성기 —> Q&A 어시스턴트
  • Pre-training은 매우 비용집약적이여서 자주 할 수 없지만 Fine-tuning은 하루~주 단위로 계속해서 최적화 해나갈 수 있습니다.
notion image
  • Fine-tuning 이후 원하는 답변이 나오지 않는 경우, 해당 질문과 적합한 답변을 쓰고 다시 fine-tuning 작업을 반복합니다.
  • 직접 질문과 대답을 작성하는 것 또한 매우 비용/자원 집약적입니다. 많은 사람들을 고용하고 쓸만한 데이터를 작성하는지 모니터까지 해야 하죠.
    • 이런 작업을 외주 받는 Scale AI는 개발도상국 인력을 많이 사용하는데 최근 노동환경에 대해 많은 지적을 받고 있죠
notion image
  • 최근엔 이 fine-tuning 작업이 AI 생성기능을 활용해서 좀 더 효율적으로 진행되고 있습니다. 예를 들어, 스탠포드의 Alpaca 모델의 경우도 ChatGPT 답변으로 Llama-2를 fine-tuning한 바 있죠.
notion image
  • 뿐만 아니라 “comparison labels” 방식으로 AI에게 한 질문에 대해 여러 답변을 받은 다음, 랭킹을 정하는 방법도 있습니다. 노동시간을 아낄 수 있고, AI모델은 더 좋은 아웃풋 레이블링에 따라 학습됩니다.
notion image
  • 대기업의 경우, 시장에 나와서도 계속해서 사용자에게 RLHF (Reinforcement Learning from Human Feedback) 피드백을 받고 학습 데이터를 지속적으로 축적합니다.
notion image
  • OpenAI는 아래와 같은 방법으로 fine-tuning을 진행한 바 있습니다.
notion image
  • 시장에 나와있는 AI 모델들은 ELO라는 방식으로 랭킹됩니다. 체스와 비슷한 방식인데요. 사람들이 각 AI 모델에게 같은 질문을 던지고 어떤 모델의 아웃풋이 가장 좋았냐에 대해 점수를 줍니다.
notion image
  • GPT-4 Turbo가 압도적 1등이네요. 파란색 음영처리 된 모델들은 모두 OpenAI와 Anthropic의 Closed 모델입니다. 하지만, 오픈소스 모델들과 달리 이 모델들은 웹 인터페이스로 밖에 접근이 안되죠. 직접 AI 모델을 디테일하게 customize 하고 싶을 경우, 오픈소스 모델을 사용합니다
    • OpenAI API를 활용해 파인튜닝을 한 결과보다 직접 오픈소스를 커스터마이징한 것이 큰 차이가 있을까?
  • OS에서 closed로 macOS, 윈도우가 있고 open-source로 Linux 생태계가 있는 것처럼 AI도 현재 OpenAI, Anthropic, Google과 open-source엔 Llama 생태계로 나뉩니다.
    • 둘 다 AI 생태계에서 중요한 역할을 하되 open source가 시장 점유율 측면에서 얼마나 큰 역할을 할지, BM이 타당한지가 큰 의문입니다.
notion image

LLM 성능 고도화 방법

  • LLM의 정확도는 1) 파라미터 수(scaling law)와 2) 데이터로 결정됩니다. 향후 알고리즘의 발전도 유의미하겠지만 현재로써 이 두 가지만으로도 LLM의 정확도 수준을 예측할 수 있습니다. 그리고 이 트렌드는 멈춤 없이 계속해서 유지되고 있습니다.
notion image
  • 또한, 많은 양질의 데이터로 학습될 경우, LLM의 성능이 올라가고 있습니다.
notion image

LLM as the new OS

  • LLM은 새로운 Operating System이 될 가능성이 높습니다.
notion image
  • LLM은 이제 Text 뿐만 아니라 오디오, 사진, 비디오 등 multi-modality를 향해가고 있습니다.
  • Prompt의 의도를 이해하고 다양한 툴과 연동되어 작업을 수행합니다. 사진 생성, 인터넷 접근, 코드 생성 등 필요한 기능들을 자체적으로 불러옵니다.
  • 다른 LLM과 소통이 가능하여 기능을 넓혀나갈 수 있습니다.
  • 이 뜻은 기존 Graphic User Interface(GUI)에서 벗어나 기계와 인간 사이 새로운 OS로 역할할 수 있다고 생각됩니다.

Conclusion

  • LLM에 대해 다양한 방면으로 공부를 하곤 하는데 기초가 탄탄하지 못하다 보니 머리 속에 잘 축적이 되지 않는 것 같습니다.
  • Andrej Karpathy의 강의로 저도 다시 LLM 기초에 대해 공부해 볼 겸, 블로그를 작성해봤습니다. 항상 이 분 비디오를 보면 배우는 것이 많습니다. 바로 직전 포스트에 썼던 현재 AI 트렌드 분석 글과 같이 읽으시는 것을 추천 드립니다!
  • 언제나 말씀 드리듯이 의견, 질문, 피드백이 있으시면 편하게 메일이나 아래 LinkedIn으로 연락 부탁 드립니다 (커피챗도 좋습니다!☕).
Share article
Subscribe to my newsletter

jasonlee