제로타이 2022. 12. 29. 02:29

휴식

친구와 뷔페를 가고 이야기를 나누고 피시방을 갔다가 헤어졌다. 사실 피시방은 가고 싶지 않았다. 게임을 끊은지 시간이 또 됐다보니 하는 것 자체에는 흥미가 안 끌렸다. 하도 떼를 쓰니까 가기는 하는데.. 

호흡이 너무 긴 lgcn

어제 저녁부터 돌아간 게 오늘 저녁까지 이정도 돌아갔다. 이게 말이 되냐? 일단 처음 디폴트값으로 돌릴 때 값이 너무 안 나와서 별 기대 안 하고 스윕을 돌렸더니 꽤나 좋은 결과도 보여줘서 좋기는 하다만.. 보니까 어떤 경우에는 11시간을 돌아가기도 했더라고. 이걸 어떻게 그냥 냅두냐. 원래라면 그러려니 하고 강의나 들었을 테지만, 마침 상준이가 deepfm을 인퍼런스하면서 문제가 발생한 상황이라 내가 다시 코드를 붙잡아야 한다.

그래서 고민하다가, 그냥 잠시 중단했다. 처음에는 그냥 이 스윕을 끝내는 것만 생각했는데, 가만 보니 그냥 잠시 중단하는 버튼도 있더라고. 처음부터 이걸 생각해냈으면 현재 파라미터로 돌고 있지 않을 텐데... 바로 이전 인자로 돈 게 11시간이라 이거 이번 거를 정말 기다려도 되는 건지 조금 걱정된다. 

문제

그래서 문제는 무엇인가? deepfm로 추천을 하려는데 디바이스 문제가 터진다는 것. 이를 해결하고자 모든 디바이스를 cuda로 바꾸면 메모리가 터져버린다. 이에 수헌이 형 왈 원래 예측할 때는 램을 많이 먹어서 cpu를 쓰는 게 좋다고. 그러나 그리 했는데도 또 다른 문제가 발생한 상황이다.

enforce fail at CPUAllocator.cpp

스윕 러닝 저거 하나 돌아가고 있는 것 때문에 섣불리 내 서버에서 시도를 못해보는 중. 괜히 다른 파일 같이 돌렸다가 OOM 터지는 꼴이 나지 않을까 괜히 걱정돼서 함부로 하지를 못 하겠다. 일단 내가 봤을 때는 deefm 자체는 분명 full_sort_predict가 없는 클래스라 아래 except로 빠져야 하는데, try 부분에서 해당 에러가 발생하는 것을 확인했다. 멘트도 보니까 notimplementederror와 함께 해댱 에러가 터졌다고 말하더라고. 근데 이상한 것이 문제 생길 것이면 진작에 생길 것이지 왜 try까지 들어가고 나서야 문제가 생기냐? 그래서 일단은 except로 그냥 모든 에러를 처리할 수 있으면 되지 않을까 한다.

검색한 바로는 확실히 메모리 용량이 부족한 것과 관련한 이슈가 맞기는 한 것 같다. 이것은 절대 근본적인 해결책은 될 수 없을 것이다. 내가 봤을 때 베스트 해결책은 전체 유저를 한꺼번에 답을 구하지 않고 나눠서 구하는 것이다.
아니면 가비지 컬렉터를 사용해봐야 하나? 
가비지 컬렉터는 의미가 있을 수 있다. 그러나 함부로 사용했다가 내가 의도하지 않은 동작이 나올 것이 심히 두렵다. 일단 간단하게라도 필요없는 변수들을 삭제하는 방식으로 해보자.

프론트 백

나는 아직 정확하게 프론트와 백의 차이를 구분해내지 못한다. 얼핏 느낌은 있지만, 웹 동작 전반에 대해 잘 알지 못하니 아직도 이렇다 설명을 할 수 있는 정도가 아닌 것 같다. 그래서 일단 그 감을 익히기 위해 간단하게 유툽을 통해 지식을 얻고자 한다. 멘토님이 추천해준 사항이기도 해서 당장 서버를 함부로 건드리지 못하는 지금 할 만한 일인 것 같다.
안 그래도 평소에 코딩애플의 그 독특한 말투가 재밌어서 챙겨보는 편인데 마침 멘토님이 추천해준 유투버가 코딩애플이었다! 

(74) 느슨해진 백엔드씬에 긴장감을 주는 FastAPI 프레임워크 - YouTube

일단 이 내용은 웹을 만드는 것에 관한 것. 페이지를 만드는 것이라고 해야 조금 더 정확하겠다. 그렇다면 프론트라고 부를 만한 것이겠지(나중에 더 지식이 쌓이면 이 질문이 얼마나 우스운 질문인지 알게 될 것 같은 기분이다. 그래도 뭐, 당장은 모르는 걸 안다고 할 수는 없으니 질문을 던지면서 나아가야겠다)?

파이썬으로 웹을 만들 때 흔히 Django와 Flask를 흔히 쓴다. 그러나 최근에 만들어진 FastAPI가 다 씹어먹고 있는 추세라는 듯. 속도는 2배 빠르면서 코드조차 간결하다고.
비동기 처리에 강점이 있다.
비동기 처리 - 특정 코드가 오래 걸릴 때 다른 작업을 먼저 처리해버리는 동작

새삼 궁금한 것이, 왜 모든 document 페이지들은 형식이 똑같은가? 다 똑같지는 않지만, 거의 모두 왼쪽에 목록을 나열하고 클릭을 통해 각 문서를 열어볼 수 있도록 되어있다. 정형화된 방식인가? 혹시 같은 언어로 작성된 것은 아닐까? streamlit도 생각해보면 왼쪽에 사이드바가 있다.

 

음. 살다보면 이런 저런 일 있는 거다. 내가 어떻게 헤쳐나가는지, 그것이 중요한 일인 거다. 내가 해야 할 것을 잡고, 그것으로 세상을 바라본다. 그게 지금 내게 중요한 일이다.
나는 할 수 있다. 음. 할 수 있다. 분명. 내가 살아온 길 어딘가에 답이 있고, 그 답을 더 값진 것으로 만들 것이다.

내 의미를 잃지 않도록. 모든 새로움을 반길 수 있도록. 앞으로도 예쁜 꿈을 꾸자고. 그리 다짐하겠다. 끝