신경망의 기초부터 시작하는 커리큘럼입니다. 이 커리큘럼은 우리가 함께 코딩하고 신경망을 훈련시키는 YouTube 비디오 시리즈입니다. 비디오에서 구축한 Jupyter 노트북은 이제 레크처 (Lecture) 디렉터리 안에 캡처되어 있습니다. 각 레크처에는 비디오 설명에 포함된 연습 문제 세트가 포함되어 있습니다. (이것이 더 존경스러운什么东西으로 성장할 수 있습니다.)
레크처 1: 신경망과 역전파의 알파벳으로 된 소개: 미크로그래드 구축하기
신경망의 역전파와 훈련. Python 의 기본 지식과 고등학교 수학에서 계산학에 대한 모호한 회상이 가정됩니다.
레크처 2: 언어 모델링의 알파벳으로 된 소개: 매큨모어 (makemore) 구축하기
우리는 bigram character-level language model 을 구현합니다. 이는 후속 비디오에서 GPT 와 같은 현대적인 Transformer language model 로 더욱 복잡하게 만들 것입니다. 이 비디오에서는 (1) torch.Tensor 의 세부 사항과 효율적으로 신경망을 평가하는 데 사용되고, (2) 모델 훈련, 샘플링, 손실 (예: 분류의 음의 로그 가능도) 을 포함하는 언어 모델링의 전체 프레임워크에 초점을 맞춥니다.
레크처 3: 매큨모어 구축하기 Part 2: MLP
우리는 multilayer perceptron (MLP) character-level language model 을 구현합니다. 이 비디오에서는 머신러닝의 많은 기초를 소개합니다 (예: 모델 훈련, 학습률 튜닝, 하이퍼파라미터, 평가, train/dev/test 분할, under/overfitting 등).
레크처 4: 매큨모어 구축하기 Part 3: 활성화 함수 및 그래디언트, BatchNorm
우리는 여러 레이어를 가진 MLP 의 내부 구조 중 일부로深入研究하고, forward pass activations 의 통계와 backward pass gradients 를 분석하며, 잘못 스케일링될 때의 몇 가지 함정을 검토합니다. 또한, 깊은 네트워크의 건강 상태를 이해하기 위해 사용하려는 일반적인 진단 도구 및 시각화를 살펴보며, 왜 깊은 신경망을 훈련시키는 것이 취약할 수 있는지 배우고 이를 훨씬 더 쉽게 만드는 첫 번째 현대적 혁신인 Batch Normalization 을 소개합니다. Residual connections 과 Adam optimizer 는 후속 비디오에서 주목할 만한 할 일이 남아있습니다.
레크처 5: 매큨모어 구축하기 Part 4: 역전파 닥터가 되기
우리는 이전 비디오의 2 레이어 MLP (BatchNorm 포함) 를 PyTorch autograd 의 loss.backward() 를 사용하지 않고 수동으로 역전파합니다. 즉, 우리는 cross entropy loss, 2 번째 선형 레이어, tanh, batchnorm, 1 번째 선형 레이어 및 임베딩 테이블을 통해 역전파합니다. 그 과정에서 그래디언트가 계산 그래프를 통해 어떻게 후방으로 흐르는지에 대한 직관적인 이해를 얻고, 개별 스칼라뿐만 아니라 효율적인 Tensor 의 수준에서 이루어집니다. 이는 신경망이 최적화되는 방법에 대한 능력과 직관을 구축하고, 현대적인 신경망을 더 자신감 있게 혁신하고 디버깅할 준비를 합니다.
저는 연습을 스스로 풀도록 권장하지만, 동시에 비디오와 함께 작업하고 막히면 비디오를 멈추지 말고 내가 답을 알려주는 것을 보십시오. 이 비디오는 단순히 시청하도록 의도된 것이 아닙니다. 연습은 Google Colab 에 있습니다. 행운을 빕니다 :)
레크처 6: 매큨모어 구축하기 Part 5: WaveNet 구축하기
이전 영상에서 가져온 2 레이어 MLP 를 트리 구조로 더 깊게 만들어 DeepMind 의 WaveNet (2016) 과 유사한 컨볼루션 신경망 아키텍처를 완성합니다. WaveNet 논문에서는 인과성 희석된 컨볼루션 (causal dilated convolutions, 아직 다루지 않음) 을 사용하여 동일한 계층 구조를 더 효율적으로 구현했습니다. 이 과정에서 torch.nn 에 대한 이해가 깊어지고, 그 작동 원리와 일반적인 딥러닝 개발 프로세스 (문서 읽기, 다차원 텐서 모양 추적, Jupyter 노트북과 저장소 코드 간 이동 등) 를 파악하게 됩니다.
강의 7: GPT 를 직접 코드로부터 구축해 보겠습니다.
우리는 "Attention is All You Need" 논문과 OpenAI 의 GPT-2 / GPT-3 를 따르며 생성적 사전 학습 트랜스포머 (Generatively Pretrained Transformer, GPT) 를 구축합니다. ChatGPT 와의 연결성을 논의하며, 이 기술이 전 세계적으로 큰 인기를 끌고 있음을 언급합니다. GitHub Copilot (본신도 GPT) 이 우리를 도와 GPT 를 작성하는 모습을 지켜보며 (메타 :D!), 이전 makemore 영상들을 시청하여 자동 회귀 언어 모델링 프레임워크와 텐서 및 PyTorch nn 의 기초에 익숙해지기를 권장합니다. 우리는 이 영상에서 이러한 것들을 당연시하고 있습니다.
- YouTube 강의 영상입니다. 기타 링크는 영상 설명을 참조하세요.
강의 8: GPT 토크나이저를 직접 구축해 보겠습니다.
토크나이저 (Tokenizer) 는 문자열과 토큰 (텍스트 조각) 간 변환을 수행하는 대규모 언어 모델 (LLM) 의 필수적이고 광범위한 구성 요소입니다. 토크나이저는 LLM 파이프라인의 완전히 별개의 단계로, 자체 학습 데이터셋과 학습 알고리즘 (Byte Pair Encoding) 을 가지며, 학습 후 encode() 함수를 통해 문자열을 토큰으로, decode() 함수를 통해 토큰을 문자열로 변환하는 두 가지 기본 기능을 구현합니다. 이 강의에서는 OpenAI 의 GPT 시리즈에서 사용되는 토크나이저를从零부터 구축합니다. 이 과정에서 LLM 의 많은 이상한 행동과 문제들이 실제로 토크나이징에 기인함을 발견하게 됩니다. 우리는 이러한 문제를 다수 다루고, 왜 토크나이징이 잘못되었는지, 그리고 누군가가 이 단계를 완전히 삭제하는 방법을 찾아내기를 원할지 논의합니다.
진행 중...
라이선스
MIT