인공지능 현직 초보 개발자의 이것저것 (1)
인공지능 개발자는 뭐하는 직업이에요?
네. 뭐 그런거 만듭니다.
더 세부적으로 말하자면, 챗지피티는 인공지능 '서비스'라고 볼 수 있고 인공지능 개발자는 보통 그 서비스 안에 사용되는 GPT-4 같은 인공지능 '모델'을 개발하는 역할이긴 하다만은...
'인공지능 개발자'를 큰 범위로 잡는다면 MLops를 포함해 그러한 서비스를 개발하는 것까지 포함된다고 말할 수 있긴 하겠다.
각설하고, 인공지능 개발자라는 단어를 들으면 뭔가 멋있다.
뭐? 인공지능? 요즘 뉴스 틀면 어디에서든 나오는 그 인공지능?
그걸 개발한다고? 이야 멋있다~
라는 느낌이 좀 있다.
사실 나도 그래서 이 직업을 택한 것이기도 하다.
그럼 인공지능 개발자를 하기 위해서 너는 뭘 했냐고 물어보실 수 있다.
이제 막 인공지능 현직 개발자로서 발을 내딛기 시작한 나에 대해서 소개하자면,
4년제 인서울 대학 인공지능학과 학사와 석사를 졸업하고 현재 IT 기업 인공지능 팀에 재직 중이다.
학사 때는 인공지능의 전반적인 이론에 대해 배웠고, 석사 때는 인공지능 모델을 중점적으로 탐구하며 어떻게 모델을 구축하고 성능을 향상시킬 수 있는지 공부했다.
또 입사 초반엔 석사 때 진행했던 것과 유사하게 인공지능 분류 모델을 개발하는 일을 했었지만, 업무 분장이 새롭게 되고 현재는 MLops 서비스 아키텍쳐를 구축하는 일을 하고 있다.
여기까지 들었을 때 문외한인 분들이 들었을 때, 뭔 소리야? 싶을 것 같아 좀 더 세부적으로 들어가보겠다.
인공지능은 무슨 직무인가요?
인공지능은 쉽게 말해 빅데이터에서 존재하는 규칙을 모델이 찾아내게 해서 자동적으로 진행할 수 있도록 하는 시스템이다.
결국 빅데이터에 대한 기본적인 이해가 있어야 인공지능에 대해서도 알 수 있다는 뜻이다.
따라서 빅데이터 분석가와 인공지능 개발자는 밀접한 연관이 있다. (물론 사용하는 서비스, 언어 등에서 차이점이 존재하긴 한다.)
빅데이터 분석가에 의해 도출된 규칙을 기반으로, 실제적인 인공지능 모델을 개발하는 인공지능 모델 개발자도 존재한다.
벌써 인공지능 모델을 구축하는 것에서만 두가지 직업이 도출되었다.
그리고 인공지능 모델이 구축된다고 끝나는 것이 아니다.
이 모델이 실제 서비스에 적용되어 사람들이 사용할 수 있도록 만드는 작업이 필요하다.
이게 바로 MLops다.
DevOps에서 파생된 언어로, DevOps를 ML(Machine Learning)으로 하겠다는 말이다.
따라서 인공지능을 공부했을 때 갈 수 있는 직무로 크게 나누면 세 가지가 존재한다.
1. 빅데이터 분석가
2. 인공지능 모델 개발자
3. 인공지능 서비스 개발자
이 세가지를 들었을 때, 뭔가 유사해 보이기도 하지만 실상은 많이 다르다.
그러나 모두 인공지능 직무 범위에 포함된다고 할 수 있다.
위 세 직업을 통틀어서 인공지능 개발자라고 아래에서 칭하겠다.
그리고 나는 인공지능 모델 개발자 엘리트 코스(...)를 밟아왔기 때문에 이에 대해 중점적으로 서술할 것을 유념해주셨으면 한다.
인공지능 개발자가 되려면 무슨 학과 나와야 해요?
앞서 말했듯이 나는 학사 때부터 인공지능 학과를 졸업했다.
최근 들어 인공지능 학과가 새로 신설되는 추세긴 하지만, 여전히 인공지능 학과가 존재하지 않는 대학이 훨씬 많을 것이다.
따라서 무조건 인공지능 학과를 나와야 인공지능 개발자가 될 수 있다는 조건은 성립하지 않는다.
그럼 유관학과인 컴퓨터공학과를 졸업해야만 할까?
그것도 아니다.
비전공 개발자가 많듯이 비전공 인공지능 개발자도 많다.
실제로 대학원 시절 어문계열 학사 졸업생, 심리학과 학사 졸업생 등 문과 출신 분들이 많으셨다.
사실 나도 고등학교 때까지는 문과였고, 국문학과를 희망했었다.
그래도 나오면 좋은 학과가 있을 것 아닌가?
라고 묻는다면 당연하다.
앞서 말한 컴퓨터공학과를 나온다면 인공지능 관련된 수업도 전공 심화 과정에서 들을 수 있을 것이다.
또한 통계학과도 매우 관련성이 높은 학과다.
빅데이터 기반으로 구축되는 인공지능이다보니, 모델 알고리즘에서 통계를 빼놓을 수 없다.
통계적 수식을 코딩으로 구현하는 것이 대부분이니 통계 지식도 인공지능 개발자에게 있어 필수다.
하지만 기본적으로 개발자이기 때문에 문턱은 낮다고 생각한다.
인공지능 학과에서는 무엇을 배우나요?
인공지능 학과에서 배우는 것은 다양하다.
첫번째로 인공지능의 역사와 기본 지식에 대해서 배우는 인공지능 개론 수업이 있을 수 있겠고,
인공지능을 배우기 위해 필수적으로 배워야 하는 선형대수, 통계학과, 컴퓨터 개발의 기초 지식을 배우는 자료구조, 알고리즘 등의 수업을 들어야 한다.
이렇게 기본 수업을 해결하고 나면 3~4학년 쯤 되어서야 본격적으로 인공지능에 대해 배운다.
인공지능의 시초인 머신러닝, 언어를 다루는 자연어 처리, 이미지를 다루는 컴퓨터 비전 등등 세부 구역으로 진입하게 된다.
수업에서는 이론 수업을 진행하긴 하지만, 개발이니만큼 팀프로젝트를 빼놓을 수 없다.
우리 학과에서는 매 수업마다 팀프로젝트가 있다고 해도 과언이 아니다.
고학년이 되어갈수록 팀프로젝트는 필수가 되어간다.
어쩔 수 없는 게, 이론적인 인공지능 지식을 직접 적용해보고 실험적으로 사회에서 진행하는 프로젝트를 간접적으로나마 경험해볼 수 있는게 팀프로젝트밖에 없다는 생각이 든다.
특히나 인공지능은 이론에서 끝나면 남는 게 아무것도 없기 때문에 모델을 직접 구현하는 게 필요한데, 이에 대해서 팀프로젝트는 매우 효율적이다.
그럼 인공지능 학과를 나오면 인공지능 개발자가 될 수 있나요?
이에 대해서는 많은 고민이 필요하다.
실제로 인공지능학과나 대학원을 나오지 않고 우리 팀에 들어오신 분들도 계신다.
내 입사 동기 수가 좀 많은 편인데, 총 7명 중에 2명은 대학원을 나오지 않고 일반 컴퓨터 공학과를 졸업했다.
그말인 즉슨, 7명 중 5명은 인공지능 대학원을 졸업한 사람(최소 석사)이란 뜻이다.
과반수가 대학원 졸업자다.
그 뜻은 대학원 졸업자를 기업에서 선호한다는 말이라고 볼 수 있다.
왜일까를 생각해보면 간단하다.
1. 인공지능을 배울 수 있는 루트가 아직은 절대적으로 부족하다.
2. 학부에서 인공지능을 배우더라도 숙련되지 않는다.
1에 대해서는 우선 인공지능 학부가 많이 존재하지 않기 때문에 인공지능 개발에 대해 경험해 보기 어렵다.
끽해야 컴퓨터공학과에서 인공지능 관련 수업을 몇개 수강하는 것이 끝일 것이다.
하지만 인공지능 분야는 워낙에 복잡하고 순식간에 새로운 모델이 개발되고 있기 때문에 공부할 양이 굉장히 방대하다.
솔직히 말해 인공지능 학부를 졸업한 나조차 학부 내에서 인공지능을 전반적으로 배울 수는 없다고 생각한다.
심지어 모델 구축 능력까지 갖추려면 그만큼 프로젝트도 많이 진행해봐야 한다.
이를 해결해줄 수 있는 곳이 대학원이다.
대학원에서는 매일 새로 개발된 논문을 찾아 읽고, 현재 진행 중인 프로젝트에 논문 내용을 결합하여 연구하는 일이 대부분이다.
논문을 읽음으로써 최신 분야에 대한 지식을 학습하고, 프로젝트를 진행함으로써 프로젝트 능력을 키우는 것이다.
따라서 인공지능 학부를 졸업하더라도 프로젝트 진행 능력은 현저히 석사 졸업생에 비해 떨어질 수 밖에 없다고 생각한다.
개인적으로는 인공지능을 제대로 경험해보려면 대학원을 졸업하는 것이 필수라고 생각한다.
학부만으로도 가능할 수도 있겠지만... 학부 시간 내에 인공지능을 마스터 한다면 정말 똑똑하신 분이니 뭘해도 성공하실 거다.
그리고 인공지능 학과나 대학원을 나오지 않은 분들은 대부분 연구 실력이 아닌 개발 실력이 주로 요구되는 MLops 분야에서 주로 활동을 하신다.
만약 내가 하고 싶은게 인공지능 "모델" 개발이라면 대학원은 거의 필수이고, 기본적인 이해만 하고 싶다면 학부만으로도 가능할 것이다.
마무리
이렇게 인공지능 개발자에 대한 전반적인 내용을 훑어보았다.
인공지능 개발자에 대해 관심이 있으시거나, 대학원을 고려 중인 분들에게 도움이 되었으면 한다.
지금은 어떻게 하면 인공지능 개발자가 될 수 있는지에 대해서 중점적으로 살펴봤지만, 다음 포스팅에서는 더욱 세부적으로 설명하겠다.
질문은 언제나 환영이다.
그럼 다음에 봬요.