개발자가 알려주는 ‘AI 연구가 괴로운 순간’ 7가지
http://www.bloter.net/archives/292312
인공지능(AI) 기술이 발전하면서 관련 전문가 몸값도 치솟고 있다. 최근 국내에서도 대기업에서 스타트업까지 인공지능 전문가를 찾는다는 이야기를 많이 한다. 이런 상황에서 기술 업계에 있는 여러 대학생, 대학원생, 개발자, 엔지니어 등은 자신의 직업이나 진로에 대해 한번쯤 고민하게 된다. 임도형 엑셈 기술연구소 수석연구원도 그런 부류에 속한다. 10년 넘게 오랫동안 자바, 서버 솔루션을 만들었던 임도형 개발자는 최근 엑셈 기술연구소에 합류하면서 AI 관련 연구 및 개발을 담당하고 있다. 그는 학부시절 전자공학을 전공했으며, 대학원에서 인지과학을 공부했다. 대학원 시절에 살펴봤던 내용이 지금 인공지능 기술이라고 불리는 신경망, 패턴인식, 컴퓨터비전 등이다. 임도형 연구원은 “졸업했을 당시는 인공지능 기술의 침체기여서 전공을 살릴 데가 없었다”라며 “올해 초 새로운 일에 도전하고자 인공지능 개발 일을 시작했다”라고 밝혔다.
임도형 연구원은 인공지능 업무에 대해 ‘하이 리스크, 하이 리턴'(High risk , High return)의 속성을 가졌다고 표현한다. 얻는 것도 많지만 특히 기업에서 일하는 과정에선 괴로운 점도 생각보다 많다는 뜻이다. 그리고 지난주 열린 데이터과학 컨퍼런스 ‘데이터야놀자‘에서 인공지능 협업 개발자로 힘든 점들을 다음과 같이 공유했다.
1. 소프트웨어 개발이 차라리 더 쉽다
소프트웨어 개발은 아예 처음부터 뒤엎어서 다시 개발하지 않는다면 일정 시점에 결과를 얻을 수 있다. 물론 이 자체도 어려울 수 있다. 하지만 AI는 더하다고 한다. 임도형 연구원은 “소프트웨어 개발도 고달픈 부분도 있지만 그래도 몇 달을 하고 나면 ‘결과를 (어떻게든) 만들수 있겠다’는 감이 있었다”라며 “인공지능은 ‘이게 해서 될까’라는 질문에 계속 부딪힌다”라고 말했다.
현재 임도형 연구원은 공장 기기의 고장 상황을 예측하고 원인을 찾아내고, 궁극적으로 생산성을 높여주는 방법을 개발 중이다. 이 과정에서 가장 많이 받는 질문이 “그거 돼요?”란다. 문제는 여기에 어떤 근거를 들어 확답해주기 어려운 점이다. 보통 인공지능 연구는 ‘과거 이런 사례가 있었는데, 해당 사례를 우리 업계에도 적용해보자’라는 식으로 발전하기 때문이다. 따라서 완전히 동일한 상황과 조건에 맞는 참고 사례를 찾기 힘들다. 대부분 처음 시도하는 경우가 많다. 임도형 연구원은 “된다고 믿기 때문에 하는 것입니다 라고 답할 수밖에 없다”라며 “그 과정에서 스트레스를 받는다”라고 말했다.
2. 정리되지 않은 코드들
소프트웨어 개발은 기능을 구현, 테스트, 배포 등으로 나뉘므로 개발 과정을 분리해 설명할 수 있다. 작은 단위의 일이 완료되는 시점도 분명하다. 인공지능 분야는 다르다. 결과를 도출하기까지 중간에 반복되는 과정이 많다. 무엇인가 시도하고, 결과를 보고, 고민하고, 다시 일부 상황을 바꿔서 시도하고, 결과를 보고 고민을 한다. 또 소프트웨어 개발처럼 코드 리뷰도 하고, 리팩토링에 문서화까지 완료해서 보내기에는 시간이 부족하다. 임도형 연구원은 “변수이름, 디렉토리 구조 등이 엉망인데 결과를 내보내야 한다는 것 때문에 결국 정리를 못하고 시간에 쫓긴다”라고 설명했다.
3. 실행 결과를 보기까지 기다리는 긴 간격
인공지능 업무는 많은 데이터를 활용할 수 밖에 없다. 여기에 데이터를 학습시키고 결과를 얻기까지 오랜 시간이 필요하다. 물론 작은 데이터로 작업하면 몇 분 만에 결과를 얻을 수 있지만, 큰 데이터는 그 과정에 몇 시간이 소요된다. 가령 ‘저장’ 버튼을 누르고 저장 완료가 뜨기까지 몇 시간이 걸린다고 생각해보자. 기다리는 시간 동안 다른 업무를 해야 할지, 무작정 기다려야 할지 결정해야 한다.
임도형 연구원은 “몇 분이야 기달리수 있지만 10분만 넘어가면 다른 업무를 하다 다시 돌아오는 과정을 반복하면서 집중력이 떨어진다”라며 “기다리는 것을 4-5번 하다보면 하루가 다 가서 오늘 뭘 했는지에 대한 복잡한 감정이 든다”라고 설명했다. 이런 상황을 극복하기 위해 임도형 연구원은 목·금요일이면 주말동안 뭔가를 실행시켜 볼 것을 준비해두는 버릇이 생겼다. 기다리는 시간을 줄여, 월요일 출근하자마 결과를 볼 수 있게 하는 식이다.
4. 공부할 수 없는 업무시간
회사는 학교가 아닌 만큼, 어떻게든 결과를 보여야 한다. 인공지능 분야는 상대적으로 논문을 많이 읽어야 하는데, 회사에선 그럴 여유가 없다. 특히 작은 회사라면 인공지능 기술 자체를 발전시키기보다 산업체에서 당장에 활용할 기술을 개발할 가능성이 높다. 임도형 연구원은 “새로운 논문을 정말 제대로 이해하고 코드까지 실행해보려면 최소 하루나 2-3일은 걸린다”라며 “여유를 갖고 공부할 시간이 없으니 업무 시간 외에 뭔가를 공부해야 할 것 같은 압박이 온다”라고 말했다.
5. 쏟아지는 자료
인공지능 연구에선 새로운 시도를 하고, 일부 변경하고 다시 실험하는 과정이 계속된다. 이때 결국 자신이 아는 범위에서 해결책을 찾게 된다. 그러다보니 많은 정보를 습득하고 배우면 유리하다. 이를 위해 임도형 연구원은 텐서플로우 코리아같은 커뮤니티에 자주 들어간다. 최근에는 자료를 보고 이해하는 속도보다 새로운 자료가 나오는 속도가 더 빠르다고 한다. 그는 “누군가 진행한 실험에 대해 자세히 들여다보고 싶은데, 그러다보면 1-2시간은 훌쩍 간다”라며 “그러한 자료를 감당해야 한다는 것이 꽤 스트레스”라고 말했다.
AI 분야에만 보이는 독특한 현상도 소개했다. 보통 대학에서 발행되는 논문은 가장 최신의 기술을 다루는 경우가 많다. 그래서 학교에서 논문을 발표하면 이후에 기업이 해당 논문을 보고 활용한다. 인공지능 분야는 이와 반대다. 산업계에서 ‘이렇게 하면 이게 됩니다’라는 것을 발표하고 이를 학교에서 나중에 다뤄서 논문을 내놓는다.
6. 데이터의 부재
인공지능 업무에선 데이터가 반드시 필요하다. 하지만 기업에서 준비된 데이터는 가공된 상태가 아니다. 여기에 데이터를 정제하고, 필요한 것만 빼내고, 어떤 모양인지 확인하는 작업은 많은 시간이 걸린다. 임도형 연구원은 “누군가는 데이터 정제 과정과 실제 AI 업무과정의 비율이 8대2라고 표현하는데, 내가 느끼는건 98대2다”라며 “많은 사람이 데이터를 읽어서 정리하는 코드를 짜고 있으며, 오히려 학습시키는 코드는 짧다”라고 설명한다. 거기다 데이터 정리하는 코드들은 모듈화나 재활용이 힘든 경우가 많다고 한다. 따라서 새로운 데이터를 다룰 때마다 AI 업무가 아닌 데이터를 정리하는 데 많은 시간을 뺏기는 경우를 자주 경험할 수 있다. 막상 정제한 코드에 원하는 데이터가 충분치 않은 경우도 꽤 있다고 한다.
7. 느껴지지 않는 데이터
인공지능에서 활용되는 데이터의 크기는 엄청나다. 이때 그냥 나열돼 있는 데이터를 보는 것은 의미가 없다. 기업에서 얻은 데이터는 수백개의 열로 이뤄진 경우도 많다고 한다. 그래서 평균, 분포 등 데이터 특성을 전체적으로 파악해야만 다음 작업이 가능하다. 이를 위해서는 어떻게 시각화할지에 대한 감도 필요하다. 만약 시각화하는 능력이 부족하다면 데이터를 이해하고 활용하는 데 한계가 올 수 있다.
임도형 연구원은 발표 마지막에 머신러닝 업계의 구루라고 불리는 앤드류 응 스탠포드 교수의 말을 인용했다. ‘끊임없이 실천하고, 하기 싫은 작업도 하라'(pratice, pratice, pratice and do the dirty work)라는 문장이었다. 임도형 연구원은 “협업에서 AI 업무란 실행시키고, 결과를 확인하고 다시 고민하는 과정의 무한반복이다”라며 “최신 기술을 다루지만 이런 곳에서도 힘든 작업이 있다는 것을 알려주고 싶었다”라고 말했다. 동시에 그는 AI 업무를 고민하고 있는 사람에게 다음과 같이 조언했다.
“최근 AI 일을 하고 싶은 개발자들이나 학생들을 많이 보았습니다. 대학에서 진로 관련 특강 요청도 많이 하시더군요. 이 업무에 도전하고 싶은 분이 있다면 겁 먹지는 마십시오. 코딩할 때도 처음부터 모든 이론을 이해하지 않아도 시작할 수 있습니다. 오히려 작동하는 코드를 실행해보고 반복하면서 원리를 이해하곤 합니다. 인공지능 분야에서 활용되는 소스코드는 상당수가 외부에 공개됐습니다. 수식이 잔뜩 들어 있는 자료를 보는 데 시간을 너무 쏟지 말고, 일단 코드를 다운받고 실행해보세요. 수식이 어렵다면 일단 수식의 사용법부터 익혀보길 권장합니다.”
...