>  기사  >  기술 주변기기  >  빠르게 별 2,500개를 획득한 Andrej Karpathy는 minGPT 라이브러리를 다시 작성했습니다.

빠르게 별 2,500개를 획득한 Andrej Karpathy는 minGPT 라이브러리를 다시 작성했습니다.

WBOY
WBOY앞으로
2023-04-13 14:01:061119검색

인공지능 분야 '폭력적 미학'의 대표작으로 GPT는 탄생 초기 1억 1700만 개의 매개변수에서 175개까지 치솟았다고 할 수 있다. GPT-3의 10억 매개변수. GPT-3 출시와 함께 OpenAI는 상용 API를 커뮤니티에 공개하여 모든 사람이 GPT-3를 사용하여 더 많은 실험을 시도하도록 장려했습니다. 그러나 API를 사용하려면 애플리케이션이 필요하며 애플리케이션이 아무 소용이 없을 가능성이 높습니다.

제한된 리소스를 가진 연구원들이 대형 모델을 가지고 노는 즐거움을 경험할 수 있도록 전 Tesla AI 디렉터인 Andrej Karpathy는 약 300줄의 코드만으로 PyTorch를 기반으로 하는 작은 GPT 교육 라이브러리를 작성했습니다. 이 minGPT는 추가 작업과 문자 수준의 언어 모델링을 수행할 수 있으며 정확도도 나쁘지 않습니다.

2년 후 minGPT가 업데이트되었으며 Karpathy는 NanoGPT라는 새 버전을 출시했습니다. 이 라이브러리는 중간 크기의 GPT를 훈련하고 미세 조정하는 데 사용됩니다. 출시된 지 불과 며칠 만에 별 2500개를 모았습니다.

빠르게 별 2,500개를 획득한 Andrej Karpathy는 minGPT 라이브러리를 다시 작성했습니다.


프로젝트 주소: https://github.com/karpathy/nanoGPT

프로젝트 소개에서 Karpathy는 다음과 같이 썼습니다. "NanoGPT는 훈련 및 미세 조정 매체에 사용됩니다. scale GPT를 위한 가장 간단하고 빠른 라이브러리입니다. minGPT는 너무 복잡해서 사용하기 꺼려지기 때문입니다. NanoGPT는 아직 개발 중이며 현재 OpenWebText 데이터세트에서 GPT를 재현하는 작업 중입니다.

NanoGPT 코드의 설계 목표는 간단하고 읽기 쉬운 것입니다. 여기서 train.py는 약 300줄의 코드이고, model.py는 선택적으로 GPT-2 가중치를 로드할 수 있는 약 300줄의 GPT 모델 정의입니다. 》

빠르게 별 2,500개를 획득한 Andrej Karpathy는 minGPT 라이브러리를 다시 작성했습니다.

데이터 세트를 표시하려면 먼저 사용자는 일부 문서를 간단한 1D 인덱스 배열로 토큰화해야 합니다.

$ cd data/openwebtext
$ python prepare.py

이렇게 하면 train.bin 및 val.bin이라는 두 개의 파일이 생성됩니다. 각 파일에는 GPT-2 BPE 토큰 ID를 나타내는 uint16바이트의 원시 시퀀스가 ​​포함되어 있습니다. 이 훈련 스크립트는 OpenAI에서 제공하는 가장 작은 버전인 124M 버전의 GPT-2를 복제하려고 시도합니다.

$ python train.py

PyTorch 분산 데이터 병렬 처리(DDP)를 훈련에 사용하려면 torchrun을 사용하여 스크립트를 실행하세요.

$ torchrun --standalone --nproc_per_node=4 train.py

코드를 더욱 효율적으로 만들기 위해 사용자는 모델에서 샘플링할 수도 있습니다.

$ python sample.py

Karpathy는 이 프로젝트가 현재 1 A100 40GB GPU에서 밤새 약 3.74의 훈련 손실을 가지고 있다고 말했습니다. GPU의 경우 약 3.60입니다. 8개의 A100 40GB 노드에서 400,000회 반복(~1일)을 통해 훈련 속도가 3.1atm으로 떨어졌습니다.

새 텍스트에서 GPT를 미세 조정하는 방법은 data/shakespeare를 방문하여 prepare.py를 참조하세요. OpenWebText와 달리 이는 몇 초 안에 실행됩니다. 미세 조정에는 시간이 거의 걸리지 않습니다. 예를 들어 단일 GPU에서는 몇 분 밖에 걸리지 않습니다. 다음은 미세 조정 실행의 예입니다

$ python train.py config/finetune_shakespeare.py

프로젝트가 온라인에 공개되자마자 사람들은 이미 시도하기 시작했습니다.

빠르게 별 2,500개를 획득한 Andrej Karpathy는 minGPT 라이브러리를 다시 작성했습니다.

해보고 싶은 친구들은 원본 프로젝트를 참고하세요. 작업.

위 내용은 빠르게 별 2,500개를 획득한 Andrej Karpathy는 minGPT 라이브러리를 다시 작성했습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 51cto.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제