llama2.c for Dummies (초보자를 위한 llama2.c 가이드)

  • 이 글은 GPT 모델로 자동 요약한 설명으로, 잘못된 내용이 있을 수 있으니 원문을 참고해주세요! :smile:
  • 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다! :bowing_man:

소개

RahulSChand/llama2.c-for-dummies GitHub 저장소는 Llama2.c에 대한 자세한 설명과 튜토리얼을 제공합니다. Llama2.c는 인공지능(AI) 언어 모델 LLM(Large Language Model)을 C 언어로 구현한 것입니다. 이 가이드는 LLM의 작동 방식과 이를 C 언어로 어떻게 코딩하는지에 대해 자세히 설명하고 있습니다.

요약

이 저장소는 llama2.c 코드에 대한 이해를 돕기 위해 만들어졌습니다. 이 코드는 인공지능(AI) 학습에서 중요한 역할을 하는 forward propagation에 대한 이해를 돕는 것이 목적입니다. 이 코드는 주로 구조체(Structs)와 메인 함수에 대한 설명으로 구성되어 있습니다.

image

셀프-어텐션 계산 (Doing self-attention)

이 섹션에서는 자기 주의 계산에 대한 공식을 설명하고 있습니다. 주요 변수들은 Q, K, V이며, 이들은 각각 쿼리, 키, 값에 해당합니다. 이들은 모두 현재 생성된 텍스트의 길이인 'pos'에 따라 달라집니다. 코드에서는 이들을 's->q', 's->k'와 같이 표현하며, 이들의 형태는 (dim, n_heads, head_dim)입니다. 이 섹션에서는 이러한 변수들을 어떻게 계산하는지에 대한 자세한 설명이 제공됩니다.

피드 포워드 & 분류기 (Feed Forward & Classifier)

이 섹션에서는 주의 모듈을 완성하기 위해 필요한 계산들을 설명합니다. 이들은 입력과 주의의 출력을 더하는 'accum' 함수와 정규화를 포함합니다. 또한, FFN 출력을 계산하는 방법도 설명하고 있습니다.

최종 분류기 (Final Classifier)

모든 레이어에 대한 모듈을 실행한 후에는 (dim,) 형태의 임베딩을 얻게 됩니다. 이 임베딩을 (vocab,) 형태의 벡터로 변환해야 합니다. 이 벡터의 각 항목은 다음 토큰이 해당 단어일 확률을 나타냅니다. 이 섹션에서는 이러한 변환을 어떻게 수행하는지에 대해 설명하고 있습니다.

더 읽어보기

LLaMA2 소개 글입니다.

LLaMA2.c 소개 글입니다.

Understanding Forward Propagation for Deep Learning: 이 블로그 글은 딥러닝을 위한 forward propagation에 대한 이해를 돕습니다.

Neural Networks and Deep Learning: 이 온라인 책은 신경망과 딥러닝에 대한 깊은 이해를 제공합니다.
http://neuralnetworksanddeeplearning.com/

Deep Learning Book by Goodfellow, Bengio, and Courville: 이 책은 딥러닝에 대한 깊이 있는 이해를 제공하며, forward propagation에 대한 세부적인 설명을 포함하고 있습니다.
http://www.deeplearningbook.org/

Stanford's CS231n: Convolutional Neural Networks for Visual Recognition: 이 강의 자료는 컨볼루션 신경망에 대한 이해를 돕고, forward propagation에 대한 설명을 포함하고 있습니다.

Backpropagation Step by Step: 이 블로그 글은 역전파에 대한 이해를 돕습니다. forward propagation에 이어서 이해해야 하는 중요한 개념입니다.

Language Models are Few-Shot Learners: LLM에 대한 기본적인 이해를 돕는 논문입니다.

원문

1개의 좋아요