GPT-4 - MoE(혼합 전문가) 아키텍처의 전설적인 "마법 무기"를 직접 사용할 수 있습니다!
Hugging Face에는 완전한 MoE 시스템을 처음부터 구축하는 방법을 공유한 기계 학습 마스터가 있습니다.
저자는 이 프로젝트를 MakeMoE라고 부르는데, 주의 구성부터 완전한 MoE 모델을 형성하는 과정이 자세히 설명되어 있습니다.
저자에 따르면 MakeMoE는 OpenAI 창립 멤버인 Andrej Karpathy의 makemore에서 영감을 받아 이를 기반으로 했습니다.
makemore는 학습자가 몇 가지 기본 모델을 이해하고 구현하도록 돕기 위한 자연어 처리 및 기계 학습 교육 프로젝트입니다.
마찬가지로 MakeMoE는 학습자가 단계별 구축 프로세스에서 하이브리드 전문가 모델에 대해 더 깊이 이해할 수 있도록 도와줍니다.
그럼, 이 "손 비비기 가이드"는 정확히 무엇을 말하는 걸까요?
Karpathy의 메이크모어와 비교하여 MakeMoE는 격리된 피드포워드 신경망을 소수의 전문가 혼합으로 대체하는 동시에 필요한 게이팅 논리를 추가합니다.
동시에 ReLU 활성화 함수를 프로세스에서 사용해야 하기 때문에 makemore의 기본 초기화 방법은 Kaiming He 방법으로 대체됩니다.
MoE 모델을 만들려면 먼저 self-attention 메커니즘을 이해해야 합니다.
모델은 먼저 선형 변환을 통해 입력 시퀀스를 쿼리(Q), 키(K) 및 값(V)으로 표시되는 매개변수로 변환합니다.
이 매개변수는 주의 점수를 계산하는 데 사용되며, 이는 각 토큰을 생성할 때 모델이 시퀀스의 각 위치에 얼마나 많은 주의를 기울이는지 결정합니다.
텍스트를 생성할 때 모델의 자동 회귀 특성을 보장하기 위해, 즉 이미 생성된 토큰을 기반으로 다음 토큰만 예측할 수 있도록 작성자는 다중 헤드 인과 자기 주의 기계를 사용합니다.
이 메커니즘은 마스크를 통해 처리되지 않은 위치의 주의 점수를 음의 무한대로 설정하여 구현되며, 이러한 위치의 가중치는 0이 됩니다.
다중 헤드 인과 관계를 통해 모델은 각 헤드가 시퀀스의 서로 다른 부분에 초점을 맞추면서 여러 개의 주의 계산을 병렬로 수행할 수 있습니다.
Self-Attention 메커니즘 구성을 완료한 후 전문가 모듈을 만들 수 있습니다. 여기서 "전문가 모듈"은 다층 퍼셉트론입니다.
각 전문가 모듈에는 임베딩 벡터를 더 큰 차원으로 매핑한 다음 비선형 활성화 함수(예: ReLU)를 통해 벡터를 다시 원래 임베딩 차원으로 매핑하는 선형 레이어가 포함되어 있습니다.
이 설계를 통해 각 전문가는 입력 시퀀스의 다양한 부분을 처리하는 데 집중할 수 있으며 게이팅 네트워크를 사용하여 각 토큰을 생성할 때 어떤 전문가를 활성화해야 하는지 결정할 수 있습니다.
다음 단계는 전문가를 할당하고 관리하기 위한 구성 요소인 게이트 제어 네트워크 구축을 시작하는 것입니다.
여기의 게이팅 네트워크도 선형 레이어를 통해 구현되어 self-attention 레이어의 출력을 전문가 모듈 수에 매핑합니다.
이 선형 레이어의 출력은 점수 벡터이며, 각 점수는 현재 처리된 토큰에 대한 해당 전문가 모듈의 중요성을 나타냅니다.
Gated 네트워크는 이 점수 벡터의 상위 k 값을 계산하고 해당 인덱스를 기록한 다음 해당 전문가 모듈 출력에 가중치를 부여하기 위해 상위 k 가장 큰 점수를 선택합니다.
학습 과정에서 모델의 탐색 가능성을 높이기 위해 저자는 모든 토큰이 동일한 전문가에 의해 처리되는 경향을 피하기 위해 노이즈도 도입했습니다.
이 노이즈는 일반적으로 분수 벡터에 임의의 가우스 노이즈를 추가하여 얻습니다.
모델은 결과를 얻은 후 상위 k 값과 해당 토큰에 대한 상위 k 전문가의 출력을 선택적으로 곱한 다음 이를 더하여 가중 합을 형성하여 모델의 출력을 구성합니다.
마지막으로 이러한 모듈을 모아서 MoE 모델을 얻습니다.
위의 전체 과정에 대해 작성자는 해당 코드를 제공했으며, 원본 기사에서 이에 대한 자세한 내용을 확인할 수 있습니다.
또한 저자는 각 모듈을 학습하면서 직접 실행할 수 있는 엔드투엔드 Jupyter 노트도 제작했습니다.
관심 있으신 분들은 빨리 배워보세요!
원본 주소: https://huggingface.co/blog/AviSoori1x/makemoe-from-scratch
노트 버전(GitHub): https://github.com/AviSoori1x/makeMoE/tree/main
위 내용은 MoE 대형 모델 제작 가이드: 제로 기반 수작업 제작 방법, 마스터 수준 튜토리얼을 통해 비밀을 밝힙니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!