본문 바로가기

인공지능 (기본 딥러닝)/딥러닝 스크래치 코드9

[wandB 사용법] wandb사용으로 파라미터 최적화 ► wandb 사용 목적 : 모델 (하이퍼)파라미터 최적화 용도 = MLOps ► 본 글에서 사용 목적 : Transformer 모델의 Attention head와 Encoder block 수에 따른 최적화를 찾기 위한 용도  공식 docs: https://docs.wandb.ai/guides/sweeps/sweep-config-keys(여기에 들어가면 더 필요한 세부적인 파라미터를 확인 할 수 있음) ✓ 아래의 사진은 Sweep 를 위한 기본적인 옵션이다.      - Sweep : 하이퍼 파라미터를 최적화하는 도구→ 위의 파라미터를 보면 required와 아닌것으로 구분할 수 있다.method : 아래 3가지를 지원한다. 각각의 정의와 필요한것을 선택하는 기준은 타 블로그에서 개념을 찾아보면 좋을듯하.. 2024. 11. 7.
[Huggingface Trainer, SFTTrainer, TrainingArguments 설명 및 코드] LLM,MLLM,LMM 등의 모델등의 발달로 인해 Training을 좀더 편하게 할 수 있는 Trainer, SFTTrainer 방법이 주로 사용된다.  ► Trainer와 SFTTrainner 는 Transformers 모듈 내부의 학습하는 class이다.FeatureTrainerSFTTrainer(Supervised fine-tuning of pre-trained models)PurposeGeneral –purpose training from scratchSupervised fine-tuning of pre-trained modelsCustomizationHighly customizableSimpler interface with fewer optionsTraining workflowHandles co.. 2024. 10. 23.
[Pytorch 스크래치 코드] Evaluation 코드 ❏ Evaluation code ✓ train, validation 을 통한 early stopping을 수행하였으면 나온 모델을 통해 실제 예측을 수행해야하는 마지막 단계에 도달한다. 이를 위해 아래와 같이 코드를 적용하면 된다. ### Evaluation code ### ### ### # 예측값 저장하는 빈 리스트 all_predictions = [] # 모델을 평가모드로 설정. model.eval() for inputs in test_dataloader: with torch.no_grad(): inputs=inputs[0].float() x = inputs.to(device) outputs = model(x) max_values, max_indices = torch.max(outputs, 1) # .. 2023. 12. 28.
[Pytorch 스크래치 코드] 회귀문제 Train, Validation 함수 ※ (23.12.17기준) -> 코드 동작 100퍼센트 확인 못해봄. ✓ pytorch 에서는 Train 과 evaluation 과정을 코드를 통해 수행한다. ✓ 이를 위해 스크래치 코드를 작성해보았다. (회귀 문제임) ✓ 분류는 train에서 loss, accuracy 처리법이 상이함. ❏ 분류 문제 Train, Validation 함수 → 주의사항 : 회귀문제는 정확도를 뽑지않고 Loss 값만 출력을 실행하고, 모델을 평가할때도 정확도 지표보단 error(오차)값을 평가 지표로 사용한다. (이유: 회귀문제는 경향성(추세)이 중요하기 때문임, 정확도를 평가지표로 사용한다면, 말도 안되는 처참한 결과를 볼 수 있다.) # 학습 함수 training_loss_hist = [] # tuple() 로 해도됨 .. 2023. 12. 17.
[Pytorch 스크래치 코드] 분류문제 Train, Validation 함수 ✓ pytorch 에서는 Train 과 Validation 과정을 코드를 통해 수행한다. ✓ 이를 위해 스크래치 코드를 작성해보았다. (분류 문제임) ✓ 회귀는 train에서 loss, accuracy 처리법이 상이함. ❏ 분류 문제 Train, Evaluation 함수 → 주의사항. 분류문제에서 cross entropy를 계산을 위해서는 y값이 LongTensor 여야 함. (Float으로 했다가 고생했던 기억이.. 까먹지 말자) → 유용한 팁. 만약 학습이 잘되는지 확인을 하고싶다면 tqdm을 사용하면 최소 2번이상은 되어야 학습이 잘되는지 loss값 감소를 통해 확인 할 수 있다. (물론 wandb 사용 안할때) 초반에 학습이 잘되는지 확인하고 싶다면 아래코드에서 tqdm을 빼버리고 주석처리된 부분.. 2023. 12. 16.
[Pytorch 스크래치 코드] Train Test split ✓ Tensorflow 에는 Train Test split 이라는 API가 존재하지만 Pytorch에서는 존재하지 않는다. ✓ 대표적인 데이터셋은 처음부터 Train, Validation, Test 를 주어서 데이터를 분리할 필요가 없다, 하지만 우리가 직접 데이터를 수집해서 학습을 한다면 Train, Validation, Test 을 나눠야한다. ✓ 이를 위해 이번 글에서는 Pytorch 를 사용하여 Train Validaion Test로 나누는 방법을 소개한다. ➢ 주의 사항 : 실험을 동일하게 재현하고 싶으면 random seed 값을 고정하고 돌려야함. ❏ Train, Validation, Test 로 나누기 from torch.utils.data import DataLoader, random_s.. 2023. 12. 10.