6년간의 개발 끝에 WebGPU는 대부분의 주요 웹 브라우저에 곧 출시될 예정입니다. 이는 엄청난 규모입니다. 이제 웹 애플리케이션은 컴퓨팅 셰이더의 추가 용량을 통해 GPU에 거의 기본적으로 액세스할 수 있습니다.
WebGPT는 변환기 모델의 바닐라 JS 및 HTML 구현으로, 개념 증명 및 교육 리소스로 사용됩니다. WebGPT는 최대 5억 매개변수의 모델에서 작동하도록 테스트되었지만 추가 테스트/최적화를 통해 훨씬 더 많은 매개변수를 지원할 수 있을 것입니다.
2020 M1 Mac: f32 정밀도의 5M 매개변수에서 3ms/토큰.
2020 M1 Mac: f32 정밀도의 117M 매개변수에서 30ms/토큰.
2020 M1 Mac: f32 정밀도의 377M 매개변수에서 70ms/토큰.
2020년 M1 Mac: f32 정밀도의 775M 매개변수에서 120ms/토큰.
1.5B는 작동하지만 불안정하며 비효율성으로 인해 토큰당 약 1000ms에 머물고 있습니다.
WebGPT 실행은 HTML + JS 파일 세트이므로 매우 간단합니다. WebGPU는 아직 출시 단계이므로 호환되는 브라우저로 열어야 합니다. WebGPU는 현재 Chrome v113에서 사용할 수 있지만 적절한 기능을 보장하는 가장 간단한 방법은 Chrome Canary 또는 Edge Canary를 설치하는 것입니다.
저는 장난감 GPT-셰익스피어 모델(심각하게 훈련이 부족한 하하)과 GPT-2 117M이라는 두 가지 다른 모델을 포함했습니다. 이러한 모델을 실행하는 방법에 대한 자세한 내용은 main.js를 참조하세요. 커스텀 모델을 가져오려면 misc/conversion_scripts를 살펴보세요.
WebGPT를 사용해 보려면 KMeans.org 데모 웹사이트를 방문하세요. 원격으로 가중치를 로드하는 것이 상당히 느리기 때문에 일반적으로 리포지토리를 복제하고 로컬로 실행하는 것이 좋습니다.
참고: 리포지토리를 복제한 후 모델 파일을 다운로드하려면 Git LFS를 사용해야 합니다 .
이 프로젝트를 시작했을 때 나는 변환기가 어떻게 작동하는지, 어떻게 구현하는지(또는 GPU, matmul 커널, WebGPU 또는 토큰화) 전혀 몰랐습니다. 따라서 Andrej Karpathy의 신경망 시리즈와 처음부터 GPT 구축에 관한 시리즈는 매우 귀중했습니다. Andrej의 Youtube. 또한 nanoGPT 저장소인 nanoGPT의 일부 코드도 사용했습니다.
LatitudeGames의 OpenAI GPT-3 토크나이저 구현을 Javascript: GPT-3-Encoder로 복사했습니다.