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

[Feat] Valid dataset csv 파일 분리 #31

Merged
merged 5 commits into from
Nov 20, 2024
Merged

Conversation

jagaldol
Copy link
Contributor

@jagaldol jagaldol commented Nov 20, 2024

📝 Summary

각 모델 성능 비교와, 각 모델의 장단점을 면밀히 분석할 수 있도록 valid.csv를 따로 분리시켰습니다. 전체 학습이 끝난 후, inference.py와 같은 로직을 통해(predict 함수) valid set에 대해 한번 더 예측을 하고 점수를 로그로 보여주며 valid_output.csv를 저장합니다.

✅ Checklist

  • 관련 이슈가 명시되어 있습니다.
  • 테스트가 완료되었습니다.
  • [ ] 문서 업데이트가 포함되었습니다.
  • 코드 리뷰를 위한 사전 검토를 완료했습니다.

📄 Description

기존 train_test_split 함수를 쓰는 코드를 제거하고 따로 csv를 읽어오도록 구현하였습니다.

추가로 trainer의 evaluate 단계에서 각 데이터에 대해 preprocess를 수행하며 반복적으로 tokenizer에 접근하며 병목 현상이 발생했었는데 이를 제거하여 evaluate의 속도를 2분에서 30초로 감소시켰습니다.

image

실행 로그 이미지입니다. 학습 완료 후 별도의 valid.csv에 대한 predict 절차를 통해 Accuracy를 로그로 보여줍니다.

현재 기본 설정으로 실행하였을 때 0.62; 62점이 나옵니다.

valid는 400개로 설정하였습니다. 400개로 하였을 때 제출 시에도 성능이 거의 동일하게 나왔습니다.(0.41)

image

💡 Notice (Optional)

현재 valid와 test의 분포가 일치하지 않는 것 같습니다. valid는 train 데이터로부터 분화된 것으로 train과는 분포가 비슷해 예측이 잘되는 반면, test의 경우, 문장 길이가 다르는 등 분포가 미묘하게 다른 것 같습니다. 이에 대한 영향으로 제출 시 기대 성능이 나오지 않는 것 같습니다.

그리고 train에 paragraph가 동일한 데이터가 여럿 존재하여 이에 대해서 일괄적으로 valid로 삼거나 일괄적으로 train으로 하거나 하게 하였습니다. 이부분을 처리해주지 않으면 train 과정에서 valid에 대한 약간의 치팅이 될 수 있어서 점수가 높게 나왔습니다.(85점) 다행히 데이터 셋 분리에서 이부분을 처리해주니 점수가 떨어져 62점 정도가 되었습니다.

이 PR이 merge된 이후 사용해야되는 데이터는 notion에서 확인 가능합니다. 데이터 분리를 한 코드 스니펫도 함께 포함시켰습니다.

https://www.notion.so/gamchan/validation-400-7b10e8f1c28d433a8810f9134da7a1c8

epoch 마다 출력되는 eval_accuracy의 경우 이상하게 높은데 이는 현재 최신 main 브랜치에서도 비슷한 양상을 보이는 관계로 해당 PR에서 발생한 문제는 아니라고 생각됩니다. 이부분은 해당 PR이 마무리 된 이후 따로 계속 조사후 문제 발견 시 해결하여 새로운 [Fix] PR을 만들어 보겠습니다.

🔗 Related Issue(s)

close #27

@jagaldol jagaldol added Priority: Medium 적절한 시기에 처리해야 할 작업 Type: Enhancement 기능 개선 작업 labels Nov 20, 2024
@jagaldol jagaldol self-assigned this Nov 20, 2024
Copy link
Contributor

@gsgh3016 gsgh3016 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

수고 많으셨습니다!

models/prediction.py Show resolved Hide resolved
Copy link
Contributor

@canolayoo78 canolayoo78 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

원본 분포와 유사하게 잘 추출된 것으로 보입니다! 수고 많으셨습니다.

image

image

@jagaldol jagaldol merged commit 3a07f09 into main Nov 20, 2024
3 checks passed
@jagaldol jagaldol deleted the feature/27-valid-dataset branch December 4, 2024 07:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Priority: Medium 적절한 시기에 처리해야 할 작업 Type: Enhancement 기능 개선 작업
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[DISC] Train Dataset에서 Valid Dataset 분리 고정 제안
3 participants