brunch

You can make anything
by writing

C.S.Lewis

by 콤파스 Aug 13. 2023

AI 엔지니어는 어떤 일을 할까?

AI Researcher & AI/ML Engineer 의 업무

지금까지 경험한 컴퓨터비전 도메인 AI 엔지니어의 업무에 대해 이야기해보려 한다. 다만 AI 엔지니어나 컴퓨터비전 엔지니어의 경우 산업에 따라 업무 영역이 조금씩 다를 수 있으니 참고만 하길 바란다.


우선 나는 IT 플랫폼 회사에서 특정 서비스에서 AI와 컴퓨터비전 관련 개발을 맡고 있는 엔지니어이다. 때문에 해당 서비스에서 니즈가 있는 기술이 기획에서 요청되기도 하고, 팀에서 자체적으로 "이러이러한 기술을 개발할 수 있는데 만들면 도움이 될까?"라는 식으로 제안을 해서 프로젝트가 만들어지기도 한다.


AI 엔지니어의 업무 흐름


어떤 방식으로든 프로젝트가 시작되면, 프로젝트에 필요한 기술을 조사하기 시작한다. 관련 논문을 찾거나 국내외에 유사한 프로젝트가 있었는지 찾아보는 식이다. 어느 정도 계획이 구성되면 필요에 따라 학습 데이터를 수집하는 과정을 거쳐 AI 모델을 학습하고 평가하는 과정이 진행된다. 실험을 진행하면서 해결해야 할 문제를 효율적으로 처리하기 위해 AI 모델을 고도화하거나 전후처리 기능을 개발하는 과정을 거친다. AI 모델이 어느 정도 완성 단계에 이르면 필요에 따라 모델의 인퍼런스 속도를 높이거나 경량화하는 등의 인퍼런스 최적화 과정을 거친다. 최종적으로는 산업과 서비스 또는 제품에 따라 가장 적절한 모델 배포 방법을 찾아 AI 모델을 배포하고, 실제로 AI 모델이 사용되면서 쌓이는 데이터를 분석해 AI 모델을 재학습하는 등의 유지 보수 과정을 거친다. 


물론 이 과정 속에서 요청에 따라 프로젝트의 방향이 바뀔 수도 있고, 생각보다 좋은 성능이 나오지 않아 개발 과정이 연기되거나 프로젝트가 엎어지기도 한다.



프로젝트 시작

앞서 설명했듯이 프로젝트는 기획의 요청으로 시작될 수도 있고, 팀 내에서 필요에 따라 자체적으로 시작하는 경우도 있다. 프로젝트의 성향에 따라 요구되는 기술 스택이 다르기에 다양한 프로젝트에 참여할 기회를 잡기 위해서는(or 프로젝트에 빠르게 적응하기 위해서는) 개인적으로 여러 경험을 많이 해보는 것과 새로운 분야를 빠르게 습득하는 역량이 중요한 것 같다.



기술 서베이

프로젝트가 정해졌다고 필요한 기술이 명확하게 정해진 것은 아니다. 해결해야 할 문제나 만들어야 할 서비스가 정의된 것이지, 아직 이를 만들어내기 위해 어떤 기술이 필요한지 논의된 것은 아니기 때문이다. 때문에 문제를 명확하게 정의하고 어떤 기술이 필요한지 꼼꼼히 찾아보는 과정이 필요하다. 


이 과정 속에서 여러 논문을 찾아보고 현실적으로 개발할 수 있는 기술인지를 논의하게 된다. 학습 데이터가 얼마나 필요한 모델인지, pre-train 모델은 공개되어 있는지, 학습에 필요한 장비(GPU)는 얼마나 요구되는지, 상업적 이용이 가능한 라이센스인지, 정말 우리에게 필요한 모델이 맞는지 등의 현실적인 문제도 면밀히 따져보아야 한다. 


또한 기술 서베이 단계에서 놓치는 부분이 있는 경우에 데이터 수집 단계나 AI 모델 학습 단계까지 갔다가 다시 돌아와야 하는 경우가 생길 수도 있기에 꼼꼼함이 중요하다.



데이터 수집

기술 서베이가 어느 정도 완료되면 학습에 필요한 데이터를 수집해야 한다. 우선은 공개된 데이터셋을 수집하고, 우리가 풀어야 할 문제에 적합한 데이터를 따로 모으고 GT(Ground Truth, 정답 정보)를 생성하는 과정도 거쳐야 한다. 예를 들어 음식 분류기를 만든다고 가정했을 때 공개된 데이터는 대부분 서양의 음식이기에 우리나라 음식을 분류하기에 적합하지 않다. 이렇듯 연구용으로 공개된 데이터셋만으로는 실제 서비스나 제품에 활용할만한 수준의 AI 모델을 만들기는 쉽지 않기에, 학습 데이터를 구축하는 과정이 꼭 필요하다.


학습데이터를 구축하는 인원이 회사 내에 존재하는 경우도 있고, 외부 인력을 사용하는 경우도 있다. "어떤 데이터를 모으고 이렇게 저렇게 정답 정보를 만들어주세요"라고 말하고 기다리면 될 것 같지만, 양질의 학습 데이터를 얻기 위해선 끊임없는 피드백과 관리 감독이 필요하다. 또한 최근에는 labeling을 쉽게 하기 위한 툴이나 정답 데이터 일부만 가지고 학습하는 방법도 성능이 많이 올랐기에 검토해 볼 만하다.


특히나 AI 모델 자체의 성능은 이미 포화된 상황이기에 Data-centric 한 관점에서 양질의 학습 데이터를 모으는 것이 프로젝트의 성공을 위해서 정말 중요하다고 볼 수 있다.



AI 모델 학습 & 평가

학습 데이터까지 구축이 되면 AI 모델을 학습하고 다양한 상황에서 모델을 정량적, 정성적으로 평가하는 과정을 거친다. 이때 초기 결과를 토대로 학습 데이터가 더 필요한지 아닌지도 판단해야 한다. 또한 단순히 정량적 평가뿐만 아니라 다양한 케이스를 보면서 어떤 경우에 모델 성능이 떨어지는지를 검토해야 한다.


입력 데이터의 경로가 DB에 저장되어 있다면 데이터를 선별적으로 사용하기 위해 쿼리문을 사용해야 하는 경우도 발생한다. 다양한 케이스를 테스트해 봐야 하기 때문에 DB를 잘 다룬다면 도움이 되는 건 분명하다.



AI 모델 고도화 & 전후처리 기능 개발

모델을 학습하고 평가하면서 프로젝트에서 요구되는 성능까지 모델을 고도화하는 과정도 필요하다. 모델을 고도화하는 방법은 양질의 학습 데이터를 더 모으거나, 도메인과 task에 따른 적절한 학습 방법을 시도하거나 모델의 구조를 일부 변경하는 방법 등이 있다. 또한 경우에 따라 모델의 전후처리 기능을 개발하여 AI 모델의 예측을 보완해야 한다. 실제로는 모델 학습보다 전후처리 기능 개발에 더 많은 시간이 소요되기도 한다. 


컴퓨터비전이나 자연어처리 등의 분야에서는 딥러닝뿐만 아니라 머신러닝 방법이나 다양한 전통적인 알고리즘이 존재한다. 이들이 단독적으로 사용되는 경우는 적지만, 전후처리 과정에서는 자주 사용되기 때문에 역시나 경험이 중요한 듯하다.



모델 인퍼런스 최적화

AI 모델의 학습이 어느 정도 마무리되면 인퍼런스 최적화 단계를 진행한다. 어떤 경우에서든 모델은 조금이라도 더 경량화되고 빨라질수록 좋기 때문이다. AI 모델은 대부분 GPU 서버를 사용하기 때문에 인퍼런스 속도를 개선할수록 비용적인 측면에서 유리하다. 엣지 디바이스 등에 AI 모델을 탑재해야 하는 경우에는 모델 경량화는 정말 중요한 이슈이다.



모델 배포

이제 AI 모델은 다 준비되었고, 이를 어떻게 사용할지만 결정하면 된다. 산업과 프로젝트의 성향에 따라 적절한 모델 배포 방법을 사용하게 된다.



모델 유지 보수

AI 모델은 배포한다고 끝이 아니다. 프로젝트를 성공적으로 이끌기 위해서는 AI 모델을 지속적으로 유지 보수해야 하는데, 이는 실험 환경에서보다 더욱 다양한 유형의 데이터가 모델로 유입되기 때문이다. 덕분에 더욱 다양한 오류 케이스가 발생하고 이를 보완하기 위해 학습 데이터를 보완하여 재학습하거나 전후처리 기능에서 예외처리를 사용하는 등의 보수가 필요하다.




경험을 토대로 AI 엔지니어의 업무 사이클에 대해 간략하게 끄적여 봤다. 하지만 AI 엔지니어라고 해서 모두 이와 같은 일을 하는 것도 아니고, 설명한 내용 중 일부 과정을 담당하거나 설명하지 않은 다른 업무를 맡을 수도 있으니 참고하길 바란다.

매거진의 이전글 AI 엔지니어란?

작품 선택

키워드 선택 0 / 3 0

댓글여부

afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari