23.06.15
DEVOTEE를 활성화 시키면
지금 작성한 커뮤니티 글에 대해 1개의 댓글을 달아줍니다.
버튼을 누르면 글 수정 시 ChatGPT가 작성한 댓글이 수정됩니다.
| 컨텐츠 유형 | 제목 | 저장일 | 삭제 |
|---|
본인인증 로그인에 실패하였습니다.
회원이 아니시거나 본인인증 등록이
완료되지 않은 사용자입니다.
GPT, T5, BERT와 같은 대형 언어 모델(LLM; Large Language Model)을 학습하려면 엔비디아(NVIDIA)사의 니모 메가트론(NeMo Megatron)이 가장 속도가 빠릅니다.
모델이 대형화되면서 학습 시간이 오래 걸리기 때문에 하이퍼파리미터를 조금 바꾸어도 총 학습 시간이 차이가 날 수 있는데요,
과거에는 일일이 손으로 파라미터를 조정해가며 실험을 돌렸지만 NVIDIA에서는 bignlp-hp-tool이라는 좋은 최적화 도구를 제공하기 때문에 조정이 한결 간편해졌습니다.
아래 네 가지 파라미터를 최적화할 수 있습니다. 보시다시피 속도만 최적화하고, learning rate나 global batch size처럼 모델의 성능(정확도)에 관계된 요소는 최적화하지 않으니 참고하세요.
tensor parallel size
pipeline parallel size
micro batch size
activation checkpoint layers 개수
아래와 같이 매우 간단합니다. pip 등의 패키지 설치도 필요하지 않습니다.
python main.py설정 파일은 conf 아래에 있습니다. conf/config.yaml을 먼저 확인하고 여기서 링크하는 파일을 확인하세요.
defaults.search_config 이것이 핵심입니다. gpt3/39B와 같이 모델 크기와 종류를 결정합니다
bignlp_hp_tool_path: bignlp_hp_tool의 절대경로를 적어줍니다.
bignlp_scripts_path: bignlp_scripts의 절대경로를 적어줍니다. inference 테스트시 bignlp_scripts/data/bpe/vocab.json을 참조하므로 주의하세요.
partition: slurm 파티션을 적어줍니다.
gpus_per_task: null
반드시 null로 놔두십시오. 8로 수정하면 오류가 발생합니다.
※ 원하는 크기의 설정이 없는 경우, unknown_size.yaml을 복사해서 만들어줄 수 있습니다. 복사한 다음 아래 설정만 고치면 됩니다. layer 수, hidden size 등을 적을 필요가 없습니다.
train_settings
model_size_in_b: 원하는 모델 크기입니다
num_nodes: 테스트할 노드 수입니다
메인 테스트만 이 수이고 여러 서브테스트가 있어서 자원을 더 사용하므로 주의하세요
max_training_days: 원하는 학습 기간으로 설정합니다
vocab_size
bignlp_scripts/data/bpe/vocab.json의 크기와 같아야 합니다.
tensor_parallel_sizes: auto로 놔두면 hp tool이 추천해 주지만, [8]로 고정시켜서 탐색을 줄입시다
pipeline_parallel_sizes: auto 놔두면 hp tool이 찾아줍니다
micro_batch_sizes: auto 놔두면 hp tool이 찾아줍니다
act_ckpt_layers: auto 놔두면 hp tool이 찾아줍니다
inference_settings
model_train_name: 잊지 말고 변경해주세요.
data_type: fp32, fp16, bf16 세 가지를 지원합니다.
tensor_parallel_sizes: [8]
results/모델종류/모델크기/final_result 아래 csv 파일로 결과가 저장됩니다. 아래에 결과 예시가 있습니다. 이 결과에 따르면 tensor parallel (TP)은 8, pipeline parallel (PP)은 2, micro batch size (MBS)는 10일 때가 최적입니다. 다만, 노드 2개를 사용해서 실험한 것이므로 노드 개수가 많아지면 최적 파라미터는 달라질 수 있습니다.
Model Name | Model Size | TP | PP | MBS | Act Ckpt Layers | Num Layers | Hidden Size | GBS | Nodes | GPUs per Node | Time per Step | Samples per Second | Model TFLOPS / GPU | Model TFLOPS Aggregate | HW TFLOPS / GPU | HW TFLOPS Aggregate | Config Name |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
gpt3 | 18 | 8 | 2 | 10 | selective | 38 | 6144 | 1440 | 2 | 8 | 136.639 | 10.54 | 149.61 | 2393.71 | 152.19 | 2434.99 | tp8_pp2_mbs10_act_selective |
gpt3 | 18 | 4 | 2 | 1 | selective | 38 | 6144 | 1440 | 2 | 8 | 137.6282 | 10.46 | 148.53 | 2376.51 | 151.09 | 2417.49 | tp4_pp2_mbs1_act_selective |
gpt3 | 18 | 8 | 2 | 6 | selective | 38 | 6144 | 1440 | 2 | 8 | 138.0027 | 10.43 | 148.13 | 2370.06 | 150.68 | 2410.93 | tp8_pp2_mbs6_act_selective |
gpt3 | 18 | 8 | 2 | 2 | selective | 38 | 6144 | 1440 | 2 | 8 | 149.9078 | 9.61 | 136.36 | 2181.84 | 138.72 | 2219.46 | tp8_pp2_mbs2_act_selective |
gpt3 | 18 | 8 | 2 | 1 | selective | 38 | 6144 | 1440 | 2 | 8 | 207.8987 | 6.93 | 98.33 | 1573.24 | 100.02 | 1600.37 | tp8_pp2_mbs1_act_selective |
gpt3 | 18 | 8 | 1 | 1 | selective | 38 | 6144 | 1440 | 2 | 8 | 227.2028 | 6.34 | 89.97 | 1439.57 | 91.52 | 1464.4 | tp8_pp1_mbs1_act_selective |
DEVOTEE를 활성화 시키면
지금 작성한 댓글에 AI가 댓글을 달아줍니다.