리스트 : 콘텐츠가 있으면 최근 5건을 불러옵니다.
-
Do learn Do run(두런 두런) 1~4회차 후기후기 2022.05.22 23:42
두런두런이 뭔데? 부스트캠프에는 변성윤 러닝마스터님이 하는 두런두런이라는 수업이 있다. 직군, 커리어, 이력서 등 부스트캠프 이후의 진로에 대해서 설명해 주는 시간으로 벌써 5시간 중에 4시간 수업이 끝났다. 처음에는 '두런두런이 뭐지?', '우리 AI 공부하기도 바쁜 것 아니었나?', '똑같이 스펙 쌓고 이력서에 뭐 넣을지 관련 있는거 잘 생각하고 면접 준비하라고 하는 거 아니야?' 라는 생각을 가지고 참여했지만 1회차에 이후로 생각이 바뀌어서 가장 기다려지는 수업 중 하나가 되었다. 오늘은 1회차 부터 4회차 동안 어떤 것을 듣고 어떤 것을 느꼈는지에 대한 생각을 정리해보려고 한다. 1회차 직군 이야기, 삶의 지도, 질문하는 법 AI 개발자 다 똑같은거 아니야? 삶의 지도는 또 뭐야? 이 당시 AI ..
-
Lv2. P-Stage 18Daily 2022.04.14 02:39
오늘 처음 시도 한 것은 Recbole-GNN을 잠깐 보다가 Hyperparameter Tuning을 했다. Recbole에서 Hyperparameter Tuning을 지원한다고 하길래 로스율에 따라서 괜찮은 하이퍼파라미터만 계속 학습을 시키는 방법으로 최적의 하이퍼 파라미터를 찾게 되어 있을 줄 알았는데 구현되어 있는 것은 하이퍼파라미터 튜닝으로 제시된 모든 파라미터 값을 한번씩 돌려보고 값만 비교하는 것으로 구현되어 있었다. 또한 validation이 없으면 작동하지 않아서 원래 계획했던 RecVAE로 Hyperparameter Tuning을 해보니 1시간 반이 넘도록 1개의 파라미터 결과도 나오지 않아서 깔끔하게 접고 그나마 가장 결과가 빨리 나왔던 EASE 모델로 Hyperparameter Tun..
-
Lv2. P-Stage 17Daily 2022.04.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.04.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.04.10 00:23
오늘은 inference 파일을 원하는 구조에 맞게 수정을 해보려고 했는데 실패했다. 원하는 방향은 inference를 실행할 때 --'model명' 을 입력하면 파일 내부의 이름을 추적해서 모델을 불러오는 것이었지만 모델의 이름이 중복 될 수 있고, 저장할 때 이름을 설정할 수 있는 방법이 있어서 구현할 필요를 못 느꼈고, 다음은 tensorboard를 생성할 때 log파일이 모델 이름순이 아니라 날짜로 생성 되어서 알아보기 힘든 것을 고치려고 했다. 문제는 tensorboard 모델 이름을 설정하는 곳에 보면 config 파일로 log를 가져오는데, model명을 가져오려니 log 데이터 안에는 model 이름이 없어서 다른 곳에서 가져와야 하는데 가져오려니 파일들이 꼬여서 가져오기 힘들다는 것이었다..
-
Lv2. P-Stage 14Daily 2022.04.08 03:29
오늘 데일리 스크럼 때는 어제 돌렸던 결과를 팀원들과 공유하고, 다른 모델들을 학습해 보며 inference 파일을 만들어 보겠다는 계획을 세웠다. 학습 한 모델을 깃허브에 올려도 되는가에 대한 질문도 했는데, 이후에 부스트캠프에서 같은 대회를 진행하게 될 수도 있고 저작권 문제도 확실하지 않아서 올리지 않고 나머지 파일들만 올리기로 했다. 오늘 학습을 시작한 모델은 ENMF 모델이다. 사실 그 전에 Context-Aware 기반인 AutoInt나 DIN 모델을 학습시켜보려고 시도를 해봤는데, 이미 .item 파일을 만들어 놓았기 때문에 학습을 바로 시킬 수 있지 않을까 기대를 하고 실행을 했는데 에러가 났다. Context-Aware 기반의 모델들은 이미 만들어놓은 .inter파일과 .item 파일 뿐..
-
Lv2. P-Stage 13Daily 2022.04.07 02:56
오늘 VAE로 제출한 팀원들의 점수가 높게 나와서 데일리 스크럼 시간에 팀원들과 앞으로 어떻게 할지에 대해서 의논을 해보는 시간을 가졌다. 현재 각자 하고 있는 모델을 계속 진행하고 싶은지, 아니면 팀원들과 다 같이 VAE를 공부해보는가에 대한 의논이었다. VAE로 다 같이 공부했을 때의 장점은 성능이 어느정도 보장되어 있고, git으로 협업이 가능하다는 점이다. 단점은 VAE 코드가 처음인 사람이 많아서 처음부터 다시 공부하는 것 일수도 있다는 점이다. 각자 하고 있는 모델을 진행했을 때의 장점은 오랫동안 그 모델의 코드를 보았기 때문에 익숙하다는 점이고, 추후 점수가 괜찮게 나왔을 때 앙상블과 여러가지 기법을 활용해볼 수 있다는 점이다. 단점은 지금까지 그래왔듯 협업 또는 도움이 거의 불가능하고 구현..
-
Lv2. P-Stage 12Daily 2022.04.06 02:38
오늘은 모델의 설정 값들을 하나씩 바꿔가면서 학습시에 모델 성능이 올라가는지 확인하고 있다. 모델의 크기가 크기도 하고 지속적으로 성능이 떨어지는지 확인하려면 시간이 오래 걸려서(1 Epoch 당 25분 정도, 적어도 5 Epoch 관찰) 생각보다 많은 실험을 해보지는 못했다. 그 중 Evaluation 연산에 필요한 'Dot' 대신에 'Cos' 으로 Cosine similarity을 쓰면 처음 성능이 올라가지만 마찬가지로 훈련을 하면 할 수록 성능이 떨어지는 결과가 나왔다. 남는 시간에 inference 파일을 만들어보고 있는데, CL4SRec에 맞게 모델을 불러 오는 것 부터가 무언가 에러를 일으켰고, 수정하는데 시간이 많이 걸렸다. 여러가지를 수정하고 난 후에도 학습된 모델을 불러와서 추출할 id ..
-
Lv2. P-Stage 11Daily 2022.04.05 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,..
-
Lv2. P-Stage 09Daily 2022.04.01 01:54
오늘은 Industrial Recommender Systems에 관한 강의를 듣고 어제 있었던 오류와 CL4SRec의 전반적인 코드에 대해서 보는 시간을 가졌다. 추천 시스템을 위한 시스템 디자인이란 먼저 실시간으로 사용자의 Request가 있을 경우(Real-time)와 주기적으로 업데이트를 해도 되는 경우(Batch Prediction)으로 나뉘게 되는데, 모든 경우에 사용자 Request를 반영하여 실시간으로 하거나 또는 컴퓨팅 자원을 아끼려고 주기적으로 업데이트를 하면 좋은 것이 아니다. 추천 시스템의 종류에 따라 시퀀스에 민감한 시스템과 (음악, 쇼핑, 비디오 등등) 덜 민감한 시스템으로(식료품 추천, 직업 추천 등등)으로 나눌 수 있는데 이에 따라서 적절한 주기를 업데이트해서 시스템 디자인을 ..