Pytorch 대규모 언어 모델
10 억 단어 (LM1B) / (GBW) 데이터 세트로 훈련 된 대규모 Pytorch 언어 모델
최신 결과
- Adam Optimizer와 LSTM 언어 모델을 사용하여 5 개의 훈련 에포크 후 39.98 당황
- 2048 배치 크기 ( ~ 10.7 GB GPU 메모리 )를 사용하여 1 NVIDIA V100 GPU ( Epoch 당 ~ 5.1 시간 )를 사용하여 ~ 26 시간 동안 교육
이전 결과
- 46.47 5 개의 훈련 에포크 후 1 층, 2048-Unit, 256 프로젝션 LSTM 언어 모델 [3]
- 1 NVIDIA P100 GPU를 사용하여 3 일 동안 교육 ( epoch 당 ~ 12.5 시간 )
- 샘플링 된 SoftMax 및 Log-liform 샘플러 기능을 구현했습니다
GPU 하드웨어 요구 사항
| 유형 | LM 메모리 크기 | GPU |
|---|
| 묶인 무게 | ~ 9GB | NVIDIA 1080 TI, NVIDIA TITAN X |
| 묶인 무게 [6] | ~ 7GB | NVIDIA 1070 이상 |
- GPU 메모리를 저장하기 위해 단어를 포함하고 소프트 맥스 무게 매트릭스를 묶는 옵션이 있습니다.
하이퍼 파라미터 [3]
| 매개 변수 | 값 |
|---|
| # epochs | 5 |
| 훈련 배치 크기 | 128 |
| 평가 배치 크기 | 1 |
| bptt | 20 |
| 삽입 크기 | 256 |
| 숨겨진 크기 | 2048 |
| 투영 크기 | 256 |
| 묶인 임베딩 + SoftMax | 거짓 |
| # 레이어 | 1 |
| 최적화 | 아다 그라드 |
| 학습 속도 | 0.10 |
| 그라디언트 클리핑 | 1.00 |
| 탈락 | 0.01 |
| 체중-디케이 (L2 페널티) | 1E-6 |
설정 - 토치 데이터 형식
- Torch -Link 용 Google Billion Word 데이터 세트를 다운로드하십시오
- "train_data.th7"파일에서 "process_gbw.py"를 실행하여 "train_data.sid"파일을 만듭니다.
- Cython 프레임 워크를 설치하고 log_uniform 샘플러를 빌드하십시오
- 토치 데이터 텐서를 Pytorch 텐서 형식으로 변환합니다 (Pytorch v0.4.1 필요)
토치 프레임 워크에 대해 전처리 된 GBW 데이터를 활용합니다. (Torch GBW 참조) 각 데이터 텐서에는 데이터 파티션의 모든 단어가 포함되어 있습니다. "TRAIN_DATA.SID"파일은 각 독립 문장의 시작 및 종료 위치를 표시합니다. 전처리 단계 및 "Train_Data.sid"파일은 대규모 교육 데이터로드 속도를 높입니다.
- 데이터 텐서 - (test_data, valid_data, train_data, train_small, train_tiny) - (#words x 2) 행렬 - (문장 ID, Word ID)
- 문장 ID 텐서 - (#Sentences x 2) 행렬 - (시작 위치, 문장 길이)
설정 - 원래 데이터 형식
- 1 억 단어 데이터 세트 - 링크를 다운로드하십시오
Torch 데이터 형식은 전체 데이터 세트를 한 번에로드하므로 최소 32GB의 메모리가 필요합니다. 원래 형식은 데이터 세트를 작은 청크로 분할하지만 느리게 실행됩니다.
참조
- 언어 모델링 github의 한계 탐색
- LSTM 네트워크 GitHub에 대한 인수화 요령
- gpus github에 대한 효율적인 SoftMax 근사
- 후보 샘플링
- 토치 GBW
- 단어 벡터 및 단어 분류기 묶기 : 언어 모델링을위한 손실 프레임 워크