Daily
-
Lv2. P-Stage 18Daily 2022. 4. 14. 02:39
오늘 처음 시도 한 것은 Recbole-GNN을 잠깐 보다가 Hyperparameter Tuning을 했다. Recbole에서 Hyperparameter Tuning을 지원한다고 하길래 로스율에 따라서 괜찮은 하이퍼파라미터만 계속 학습을 시키는 방법으로 최적의 하이퍼 파라미터를 찾게 되어 있을 줄 알았는데 구현되어 있는 것은 하이퍼파라미터 튜닝으로 제시된 모든 파라미터 값을 한번씩 돌려보고 값만 비교하는 것으로 구현되어 있었다. 또한 validation이 없으면 작동하지 않아서 원래 계획했던 RecVAE로 Hyperparameter Tuning을 해보니 1시간 반이 넘도록 1개의 파라미터 결과도 나오지 않아서 깔끔하게 접고 그나마 가장 결과가 빨리 나왔던 EASE 모델로 Hyperparameter Tun..
-
Lv2. P-Stage 17Daily 2022. 4. 13. 00:55
오늘은 Recbole에 Recbole-GNN repo를 합치려는 시도를 했다. 처음에 Recbole-GNN에 있는 모델들을 모두 옮기고 이름이 같지만 내용이 다른 파일들 끼리는 복사,붙여넣기로 GNN에 있는 모든 파일들을 옮겼다고 생각했는데 어쩌면 당연하게도 에러가 발생했다. 이유를 찾아보자면 most likely due to a circular import 에러는 서로 다른 파일끼리 각각 서로를 import를 할 때 계속 서로를 불러오므로 발생하는 에러, 또는 버전이 안맞아서 발생하는 에러 라고 하는데 버전은 Recbole과 Recbole-GNN이 동일하므로 import 에러 인 것 같다. 이 에러를 해결하고자 여러가지 시도를 했고, 파일 하나 하나 원상태로 복구하면서 어떤 파일을 수정하면 될까 찾아보..
-
Lv2. P-Stage 16Daily 2022. 4. 12. 02:31
오늘은 RecVAE를 data split을 하지 않고 학습을 할 수 있는 방법이 없을까 이것 저것 수정을 해보다가 혼자 구현하는 것은 어떻게 할지 감이 잘 오지 않아서 관련 내용을 찾아보았다. https://github.com/RUCAIBox/RecBole/issues/1169 [🐛BUG] CUDA error when try to get predict result without valid/test data · Issue #1169 · RUCAIBox/RecBole Describe the bug In my scenario, i need to use all of my data for training model, then get recommendation for all of users. So i don't n..
-
Lv2. P-Stage 15Daily 2022. 4. 10. 00:23
오늘은 inference 파일을 원하는 구조에 맞게 수정을 해보려고 했는데 실패했다. 원하는 방향은 inference를 실행할 때 --'model명' 을 입력하면 파일 내부의 이름을 추적해서 모델을 불러오는 것이었지만 모델의 이름이 중복 될 수 있고, 저장할 때 이름을 설정할 수 있는 방법이 있어서 구현할 필요를 못 느꼈고, 다음은 tensorboard를 생성할 때 log파일이 모델 이름순이 아니라 날짜로 생성 되어서 알아보기 힘든 것을 고치려고 했다. 문제는 tensorboard 모델 이름을 설정하는 곳에 보면 config 파일로 log를 가져오는데, model명을 가져오려니 log 데이터 안에는 model 이름이 없어서 다른 곳에서 가져와야 하는데 가져오려니 파일들이 꼬여서 가져오기 힘들다는 것이었다..
-
Lv2. P-Stage 14Daily 2022. 4. 8. 03:29
오늘 데일리 스크럼 때는 어제 돌렸던 결과를 팀원들과 공유하고, 다른 모델들을 학습해 보며 inference 파일을 만들어 보겠다는 계획을 세웠다. 학습 한 모델을 깃허브에 올려도 되는가에 대한 질문도 했는데, 이후에 부스트캠프에서 같은 대회를 진행하게 될 수도 있고 저작권 문제도 확실하지 않아서 올리지 않고 나머지 파일들만 올리기로 했다. 오늘 학습을 시작한 모델은 ENMF 모델이다. 사실 그 전에 Context-Aware 기반인 AutoInt나 DIN 모델을 학습시켜보려고 시도를 해봤는데, 이미 .item 파일을 만들어 놓았기 때문에 학습을 바로 시킬 수 있지 않을까 기대를 하고 실행을 했는데 에러가 났다. Context-Aware 기반의 모델들은 이미 만들어놓은 .inter파일과 .item 파일 뿐..
-
Lv2. P-Stage 13Daily 2022. 4. 7. 02:56
오늘 VAE로 제출한 팀원들의 점수가 높게 나와서 데일리 스크럼 시간에 팀원들과 앞으로 어떻게 할지에 대해서 의논을 해보는 시간을 가졌다. 현재 각자 하고 있는 모델을 계속 진행하고 싶은지, 아니면 팀원들과 다 같이 VAE를 공부해보는가에 대한 의논이었다. VAE로 다 같이 공부했을 때의 장점은 성능이 어느정도 보장되어 있고, git으로 협업이 가능하다는 점이다. 단점은 VAE 코드가 처음인 사람이 많아서 처음부터 다시 공부하는 것 일수도 있다는 점이다. 각자 하고 있는 모델을 진행했을 때의 장점은 오랫동안 그 모델의 코드를 보았기 때문에 익숙하다는 점이고, 추후 점수가 괜찮게 나왔을 때 앙상블과 여러가지 기법을 활용해볼 수 있다는 점이다. 단점은 지금까지 그래왔듯 협업 또는 도움이 거의 불가능하고 구현..
-
Lv2. P-Stage 12Daily 2022. 4. 6. 02:38
오늘은 모델의 설정 값들을 하나씩 바꿔가면서 학습시에 모델 성능이 올라가는지 확인하고 있다. 모델의 크기가 크기도 하고 지속적으로 성능이 떨어지는지 확인하려면 시간이 오래 걸려서(1 Epoch 당 25분 정도, 적어도 5 Epoch 관찰) 생각보다 많은 실험을 해보지는 못했다. 그 중 Evaluation 연산에 필요한 'Dot' 대신에 'Cos' 으로 Cosine similarity을 쓰면 처음 성능이 올라가지만 마찬가지로 훈련을 하면 할 수록 성능이 떨어지는 결과가 나왔다. 남는 시간에 inference 파일을 만들어보고 있는데, CL4SRec에 맞게 모델을 불러 오는 것 부터가 무언가 에러를 일으켰고, 수정하는데 시간이 많이 걸렸다. 여러가지를 수정하고 난 후에도 학습된 모델을 불러와서 추출할 id ..
-
Lv2. P-Stage 11Daily 2022. 4. 5. 02:35
오늘은 CL4SRec을 출력까지 해보려고 했으나 item과 inter파일을 둘 다 넣는 것이 해결되지 않아서 이 오류를 수정하려고 한참을 보냈다. 다음과 같이 데이터 셋을 만들때 iid_field가 없다는 것인데, 결과적으로 알아낸 것에 의하면 CL4SRec은 Sequential model이므로 item과 inter 파일을 둘 다 넣을 수 없다는 것이다. https://recbole.io/docs/user_guide/usage/running_different_models.html#context-aware-recommendation Running Different Models — RecBole 0.2.0 documentation In RecBole, we have 4 categories of models,..