Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

베이스코드 템플릿 발전 방안 논의(wandb, 저장파일명) #2

Open
ssunbear opened this issue Sep 16, 2024 · 3 comments
Open
Assignees
Labels
enhancement New feature or request

Comments

@ssunbear
Copy link
Contributor

ssunbear commented Sep 16, 2024

1. wandb 활용

  • train, dev, valid, predict의 전 과정을 지켜볼 수 있음
  • 모델별 epoch, train_loss, val_pearson, val_loss 등 가시적으로 확인이 가능함

(아래는 (240911-240913) 개인별 실험을 진행했을때 반영한 wandb 스크린샷)
스크린샷 2024-09-16 오후 2 48 34

2. csv, ckpt, pt 저장 파일명 관련 논의

  • 현재 파일명을 모델이름_최대에폭으로 저장되어있는데 모델이름_종료된에폭_pearson상관계수로 저장하면 더 효과적으로 좋을 것입니다. (예- team-lucid-deberta-v3-xlarge-korean_5_0.9377.csv)

  • output 폴더에 같은 모델의 csv를 올리게 되면 어떠한 것이 성능이 높은 것인지 알 수가 없습니다.

  • 현재 train의 최대 에폭수가 20으로 되어있어도 얼리스탑되어 대부분이 20 에폭보다 훨씬 전에서 멈추게 되는데 종료되는 에폭수와 상관계수를 기록해두는 것이 추후 앙상블을 할때도 편리할 것 같습니다.

스크린샷 2024-09-16 오후 3 20 19

  • 앙상블한 모델과 비율을 적어두는 것은 좋지만 앙상블한 결과의 csv파일을 올리게 되면 아래의 이미지와 같이 파일명이 길어집니다. 또한 어떠한 것이 최고의 성능을 뽑아냈는지 알 수가 없습니다.

스크린샷 2024-09-16 오후 3 16 37

어차피, 팀 노션에서 리더보드 제출 기록을 따로 하고 있으니, 깃허브에는 앙상블한 결과의 csv를 따로 제출할 필요가 없을 것 같습니다.
최적의 모델 결과를 공유하자는 차원에서 단일 모델들의 csv를 올려두는 것이 팀원으로 하여금 앙상블을 시도 할수 있다는 점에서 좋은 것 같습니다. (해당 경우로 진행한다면 앙상블시 ckpt가 아닌 csv를 불러와서 진행해야 하는 이슈가 발생합니다)

3. ckpt로 load하여 inference하도록 수정 필요

  • 팀 회의에서 pt 파일이 아닌 ckpt 파일을 로드하기로 하였으나 아직 미반영
@ssunbear ssunbear added the enhancement New feature or request label Sep 16, 2024
@ssunbear ssunbear self-assigned this Sep 16, 2024
@ssunbear
Copy link
Contributor Author

2,3을 반영한 train.py, inference.py 깃허브에 커밋을 해도 괜찮은지 확인 부탁드립니다.

@jin-jae
Copy link
Member

jin-jae commented Sep 16, 2024

  1. wandb는 조직 하나 파서 같이 쓰는 방식으로 진행해보는 것이 좋을 것 같습니다.
  2. 모델이름_종료된에폭_pearson상관계수 형태로 저장하는 것이 효과적이라는 점에 동의합니다. 다만, 앙상블은 모델 명을 줄이더라도 앙상블 모델과 비율을 담아서 올리는 것이 더 좋을 것 같다고 생각합니다. file_name.split("-")[0] 정도로 간추려서 올리는 건 어떤가요?
  3. 반영하기로 논의했는데 반영이 안된 부분이라면, 커밋해도 좋은 것 같습니다! 리뷰어로 지정해주시면 검토해보겠습니다.

@ssunbear
Copy link
Contributor Author

ssunbear commented Sep 16, 2024

  1. 저도 동의합니다.
  2. 모델이름_종료된에폭_pearson상관계수로 반영하는 것이 좋을 것같습니다.
    snunlp-KR-ELECTRA-discriminator 해당 모델 같은 경우
    KR 과 snunlp로는 모델 구분이 어려운 것 같습니다.
    (KR-로는 당연히 구분이 어렵고, snunlp의 경우 해당하는 모델이 4개정도 있는 상황)

모델리스트를 뽑아서 임의로 id를 부여하여 딕셔너리로 관리하는 방법도 있을 것 같습니다.

  • 장점: 5개 이상의 모델을 앙상블 하는 경우 파일명 저장에 용이 (다만 아이디를 일일히 찾아야 하기에 가시성은 조금 떨어질 수 있음)
  • 단점: Pearson이 다른 두개의 같은 모델을 앙상블하였을 때 구분이 어려움

추가적인 방안과 관련해 더 좋은 생각있으면 언제든 코멘트 남겨주세요

  1. 템플릿 업데이트 코드 리뷰
    -> 확인 부탁드립니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants