sooftware / kospeech

Open-Source Toolkit for End-to-End Korean Automatic Speech Recognition leveraging PyTorch and Hydra.
https://sooftware.github.io/kospeech/
Apache License 2.0
605 stars 192 forks source link

resume시 2번째 epoch부터 cer 값 고정 #165

Closed njm1250 closed 1 year ago

njm1250 commented 2 years ago

첫번째 학습시(0 epoch)엔 cer값이 빠르게 감소하는데 resume = True로 하여 재학습시 cer값이 거의 안변합니다. 원래 그런건지 제가 이상한건지 궁금합니다

ksclown commented 2 years ago

혹시 학습에 성공하셨나요? 저도 에포크가 늘어도 cer 값이 변화가 없어서 학습을 계속 진행하는 것이 맞는지 확인하고자 합니다.

njm1250 commented 2 years ago

2022년 9월 26일 (월) 오전 1:30, Kang Seong Chan @.***>님이 작성:

혹시 학습에 성공하셨나요? 저도 에포크가 늘어도 cer 값이 변화가 없어서 학습을 계속 진행하는 것이 맞는지 확인하고자 합니다.

— Reply to this email directly, view it on GitHub https://github.com/sooftware/kospeech/issues/165#issuecomment-1257229553, or unsubscribe https://github.com/notifications/unsubscribe-auth/APVZNV5SA2NSX62LXJUPCT3WAB43HANCNFSM57GS3ZDQ . You are receiving this because you authored the thread.Message ID: @.***>

아니요 저도 에포크가 늘어도 cer값이 안변하고 실제로 inference해봐도 변화가 없네요

ksclown commented 2 years ago

@njm1250 , 빠른 답변 감사합니다

현재 추가로 학습을 진행하지 못하고 계신가요?

ksclown commented 2 years ago

저는 에포크(epoch)도 하나가 끝까지 돌아가지 않았습니다. 혹시 에포크(epoch)가 끝까지 다 돌아가셨나요?

njm1250 commented 2 years ago

2022년 9월 26일 (월) 오전 11:59, Kang Seong Chan @.***>님이 작성:

저는 에포크(epoch)도 하나가 끝까지 돌아가지 않았습니다. 혹시 에포크(epoch)가 끝까지 다 돌아가셨나요?

— Reply to this email directly, view it on GitHub https://github.com/sooftware/kospeech/issues/165#issuecomment-1257409572, or unsubscribe https://github.com/notifications/unsubscribe-auth/APVZNV56D3QKH5XDVKODTDLWAEGR7ANCNFSM57GS3ZDQ . You are receiving this because you were mentioned.Message ID: @.***>

아니요 저도 중간에 끊겼습니다. 근데 혹시 checkpoint를 수정하셔서 진행하셨나요?

ksclown commented 2 years ago

2022년 9월 26일 (월) 오전 11:59, Kang Seong Chan @.>님이 작성: 저는 에포크(epoch)도 하나가 끝까지 돌아가지 않았습니다. 혹시 에포크(epoch)가 끝까지 다 돌아가셨나요? — Reply to this email directly, view it on GitHub <#165 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/APVZNV56D3QKH5XDVKODTDLWAEGR7ANCNFSM57GS3ZDQ . You are receiving this because you were mentioned.Message ID: @.> 아니요 저도 중간에 끊겼습니다. 근데 혹시 checkpoint를 수정하셔서 진행하셨나요?

checkpoint.py에서 get_latest_checkpoint(self) 이외에는 수정하지 않았습니다. (get_latest_checkpoint(self) : # 최근 model.pt, trainer_states.pt 경로를 불러오는 함수)

ksclown commented 2 years ago

저와 같은 이유로 고생하셨다면, 데이터 샘플 수를 줄이고 다시 학습을 진행 보시는 걸 추천합니다. 방금 다음과 같이 학습 성공하고 checkpoint로 불러오지 않더라도 자동으로 에포크가 넘어가면서 학습이 진행하는 것을 확인 했습니다.

image

njm1250 commented 2 years ago

오 좋은 조언 감사합니다!

2022년 10월 6일 (목) 오후 5:09, Kang Seong Chan @.***>님이 작성:

저와 같은 이유로 고생하셨다면, 데이터 샘플 수를 줄이고 다시 학습을 진행 보시는 걸 추천합니다. 방금 다음과 같이 학습 성공하고 checkpoint로 불러오지 않더라도 자동으로 에포크가 넘어가면서 학습이 진행하는 것을 확인 했습니다.

[image: image] https://user-images.githubusercontent.com/99468670/194257140-52c17b85-37cb-48f0-8efe-14f20e00643b.png

— Reply to this email directly, view it on GitHub https://github.com/sooftware/kospeech/issues/165#issuecomment-1269545307, or unsubscribe https://github.com/notifications/unsubscribe-auth/APVZNV2GHDTBHELLLOITXU3WB2CLVANCNFSM57GS3ZDQ . You are receiving this because you were mentioned.Message ID: @.***>

XEL-Maker commented 1 year ago

이미 해결되었을 시점일것이라 생각됩니다. 저 또한 이 문제를 겪고있었습니다. 제가 학습을 하고있는 모델은 conformer-large모델이고 제가 사용중인 GPU는 RTX A4000 16GB ECC(off 상태) 모델이고 배치사이즈는 16을 시도했으나 메모리 초과로 8로 학습중입니다.

현재 학습 에팍은 약 15에팍(331.73h)정도로 추정이 됩니다. 기록이 남아있는걸로는 0~2에팍(68.84시간 학습)부터 CER값이 0.97로 고정이 되었습니다. 오늘 야근마치고 퇴근해서 보니 0.96으로 0.01값이 감소하였습니다.

20에팍이 완료되고 배치사이즈를 줄여가면서 추가학습을 해봐야겟네요.

yundogyeong commented 1 year ago

이미 해결되었을 시점일것이라 생각됩니다. 저 또한 이 문제를 겪고있었습니다. 제가 학습을 하고있는 모델은 conformer-large모델이고 제가 사용중인 GPU는 RTX A4000 16GB ECC(off 상태) 모델이고 배치사이즈는 16을 시도했으나 메모리 초과로 8로 학습중입니다.

현재 학습 에팍은 약 15에팍(331.73h)정도로 추정이 됩니다. 기록이 남아있는걸로는 0~2에팍(68.84시간 학습)부터 CER값이 0.97로 고정이 되었습니다. 오늘 야근마치고 퇴근해서 보니 0.96으로 0.01값이 감소하였습니다.

20에팍이 완료되고 배치사이즈를 줄여가면서 추가학습을 해봐야겟네요.

혹시 결과가 어떻게 됐나요? 배치사이즈를 줄이면 효과적인 학습이 됐나요?

XEL-Maker commented 1 year ago

음... 전처리를 제대로 진행하지 않고 학습을 했었어요. 안타깝게도 기록 또한 별도로 해두진 않았습니다. 결과는 어느정도 매칭은 되지만 만족스럽진 않아요. 만약 제대로 된 전처리를 했다면 잘 나올 수 있을 것 같아요.

yundogyeong commented 1 year ago

음... 전처리를 제대로 진행하지 않고 학습을 했었어요. 안타깝게도 기록 또한 별도로 해두진 않았습니다. 결과는 어느정도 매칭은 되지만 만족스럽진 않아요. 만약 제대로 된 전처리를 했다면 잘 나올 수 있을 것 같아요.

혹시 죄송하지만 decoder를 rnnt를 활용한 방법으로 사용하셨나요? 아니면 그냥 default인 none으로 사용하셨나요?

XEL-Maker commented 1 year ago

별도로 코드 수정을 하지 않아서 default를 사용한것같아요.