지난 글(https://dhdbsrlw.tistory.com/52)에 이어서 작성해보려 한다.
1. 연구는 생각보다 훨씬 어렵다.(대학원생들은 정말 대단하다 ...)
2. 멀티모달 연구는 엔지니어링과 시간 관리가 정말 중요하다.(Sanity Check 제대로 안하면 피 본다 ...)
3. 연구 데이터를 수집하고 가공하는 것은 생각보다 어렵다.
4. 가상환경 세팅(버전 관리)과 정리되지 않은 코드는 사람을 미치게 한다.
5. 맞닥뜨리는 에러의 1/3 은 나의 멍청함에서 기인한다.
6. 연구도 내가 원하는 것만 할 수는 없다.
7. 대학원생은 워라밸이 없다.
이번 글에서는 위 중 5, 6, 7 번 주제에 대해 다룬다.
4. 맞닥뜨리는 에러의 1/3 은 나의 멍청함에서 기인한다.
이전 글에서 잠깐 언급했듯, 딥러닝 코드는 철저히 모듈화되어있기때문에 디버깅하기가 정말 쉽지 않다. 모 선배는 연구(대학원 진학)와 개발(취업) 사이에서 고민하다 연구를 저버린 이유가, 코드가 디버깅하기 너무 어려워서라고 말하기도 했다. 모델 코드 및 학습 코드를 작성하기 위해서는 굉장히 많은 외부 패키지들을 사용하게 되는데, 그 버전이 업데이트됨에 따라 코드 수정할 부분이 계속계속 생겨나는 것이 근본적인 원인인 것 같기도 하다.
연구실 생활 초기에는 디버깅하다 발생하는 오류들을 일일히 캡처하고 그것들을 해결해나간 방법들을 기록해두었는데, 이제는 에러를 하도 많이 만나다 보니까 지쳐서 작성하는 것을 멈추었다. 그런 기록을 할 시간 따위가 없었다. 많은 에러들을 만나면서 이제는 아주 약간 요령이 생겼다. 그래서, 이 문제가 어느 이유로 발생하게 되는 문제인지 약간은 눈치챌 수 있는 능력이 생겼다.
막상 에러를 해결하고 뒤돌아보면, 맞닥뜨리는 에러의 1/3 은 경로를 잘못 설정해준 경우가 많다. 코드가 하도 길고, 복잡하고, 여러 코드가 얽혀있다보니 나도 모르게 일부 경로의 지정을 제대로 잘 못해준 것이다. 이런 이유로 시간을 버리게 된 날에는 정말 너무 허무하기도 했다.
사실 제일 곤란한 에러는, 내 코드에서 기인한 에러가 아니라 import 해오는 패키지 코드에서 에러가 발생할 때였다. 가장 최근 생각나는 에러는, 훈련코드의 argument 를 Omegaconf 라는 패키지를 활용해 해당 패키지의 자체 Object 인 Omegadict 를 활용해 저장했었는데, 이를 peft 패키지를 활용해 peft model 내에 넣어주는 과정에서 오류가 나서 꽤나 고생을 했다. Omegadict 는 일반적인 파이썬 객체타입이 아니라, json.dumps()에 들어가지 않았기 때문이다. 코랩과 다른점이 있다면, 연구실에서는 직접 패키지 코드에 접근하여 이를 수정해줄 수 있기 때문에 다행히도 어찌저찌 고쳐서 잘 해결했다.
6. 연구도 내가 원하는 것만 할 수는 없다.
연구실 생활을 본격적으로 하게 되면서, 이쪽 세계의 체계나 문화에 대해 배울 수 있었다. 그리고 마침 내가 연구실에 조인하게 된 시점이, 다양한 연구과제 지원 시기였기 때문에, 연구실이 연구비를 조달해오는 방법 등에 대해 조금이나마 엿보게 되었다. 우리 연구실 같은 경우에는 산학과제가 굉장히 많은 편 같았다. 그래서 대학원생분들이 다들 한두개씩 산학과제에 들어가 계셨다. 이때 해당 과제가 자신의 연구주제와 잘 맞아떨어져 즐겁게 하는 분도 계셨지만, 극단적으로는 해당 과제가 자신의 원래 하고픈 연구주제와는 완전 동떨어져 괴로워하시던 분도 계셨다. 내가 봐도, 왜 저 분이 저런 주제를 하고 계시지? 싶은 그런 상황이었다.
연구실이라는 곳도 결국에는 돈이 있어야 하고, 이 돈을 조달해오기 위해서는 결국 돈이 되는 연구, 또는 돈을 주는 연구를 해야하는구나 라는 생각이 들었다. 이전에는 대학원에 들어간다면 막연히 내가 하고싶은 연구주제만을 끝없이 탐구할 수 있겠다 생각했는데, 막상 들어가면 생각보다 원치않는 것들을 많이 해야될 수도 있겠구나 하는 생각이 들었다. 물론, 그건 어느 연구실이나 마찬가지일 것이다. 그래서 이런 관점에서는, 연구실이라는 곳이 마치 투자자의 펀딩을 받으려고 애쓰는 스타트업과도 같다는 생각이 들었다.
7. 대학원생은 워라밸이 없다.
물론 주어를 '대학원생은' 이라고 쓰며 일반화하기에는 무리가 있다 생각한다. 그러나, 적어도 내가 두눈으로 보고 체감한 바로는 그랬다. 연구실에는 워라밸이 없다. 지금껏 내가 경험한 연구실들은 모두 정해진 출퇴근 시간이 없었다. 심지어는 재택과 사무실 출근도 자유로웠으며, 그저 할 일(=연구)만 잘 해라 라는 분위기였다.
그러나 그 할 일이 정말 끝이 없었다. 정확히 말하면, 할 일의 물리적인 양이 많다기 보다, 연구에 있어서는 '끝'이라는 개념이 애초에 성립할수 없는 것 같았다. 그렇기에, 자나깨나 늘 연구 생각을 하게 된다. 내가 맘먹고 오늘은 놀아야겠다 하는 것이 아닌 이상, 주말이든 공휴일이든 연구에 대해 생각했다.
실험 돌리는 것이 아직 익숙치 않던 초기에는, 실험이 혹여나 도중에 중단되지 않을까 하는 걱정에 자기 전 노트북을 머리맡에 두었으며 잠도 설치면서 잤다. 심지어 꿈에서도 디버깅하는 꿈을 꾸곤 했다. 정말 스트레스 받았다. 회사 일은 회사일과 나의 생활에 명확한 구분이 있고, 그저 출근 시간 안에서만 주어진 일을 해내고 털어내면 되는 구조라면, 연구실 일은 전혀 아니기 때문에, 만약 내가 대학원에 진학하게 된다면 그 2년이 정말 쉽지는 않겠구나 하는 생각이 들었다.
훗날 내가 이 글을 보게 될 때는, 연구실 풋내기의 멋모르는 이야기처럼 읽힐 수도 있겠다. 그러나 이 생각들을 기록해두고 싶어서 이렇게 길게나마 적어보았다. 몸도 마음도 힘들 때가 종종 있지만, 그래도 힘들게 얻은 기회인만큼 정말 잘해보고 싶다. 정말 잘 해내고 싶다.
번외로, 연구실에서 회식을 몇 차례 진행했다. 첫번째 회식 때는 단체로 소고기 오마카세에 가서 고기를 먹었고, 두번째 때는 학교 앞 삼겹살 집에 가서 삼겹살을 사주셨다. 교수님들께서 학생들 생각해서 맛있는 것들을 많이 사주셔서 참 감사했다.
'daily. > 연구실 TIL' 카테고리의 다른 글
연구실 사고뭉치 ep1. 서버를 다운시키다 (0) | 2024.05.18 |
---|---|
240426 연구실 (0) | 2024.04.26 |
우당탕탕 연구실 생활 - 3월 회고 (상) (0) | 2024.04.22 |
문제 정의 (0) | 2023.07.15 |
230714 연구실 (0) | 2023.07.14 |