본문 바로가기

개발자 생활

embedded AI model 개발자에 대한 개인적 생각

embedded AI model 개발자 2년차다. 요즘 들어 고민이 많다. 그 고민들을 하나씩 적어 보고자 한다. 누가 읽으란 것도 아니고 개인적인 생각일 뿐이다.


  장점은?

   많은 edge device를 다룰 수 있다. 가장 일반적인 Nvidia 보드들부터, Ti, Qualcom, Amballera 등 다양한 보드를 다룰 수 있다는 게 가장 큰 장점 아닐까? 보드들 가격은 생각 외로 비싸다. Amballera 보드 같은 경우는 가격을 떠나 개인이 다루지도 못한다. 그리고 AI 연산자들에 대해 깊은 이해를 할 수 있다는 정도가 장점인 것 같다. 모델을 양자화, 경량화, 최적화 하려면 진짜 별짓을 다해야하니까.. 그리고 잘은 모르겠다만 앞으로 더 많은 분야에 쓰이게 될 거다. 가전에는 모두 ai 모델이 가능한 하드웨어들이 탑재된다는 전제하에 말이다. 그 때쯤 더 빛날 직업일라나? 뭐 그 외에도 끊임없이 공부해야 하는 직업이라는 부분에 매리트가 있다. 트렌드가 어떻게 가는지는 항상 알아야하니까. 장점 맞나? 여튼.


단점은?

  한 마디로 정리하면 잘 안된다. 그냥 한번에 되는게 없다. Nvidia를 제외하고는 정보도 없다. 내가 추리 소설을 읽는 건지 모델을 개발할지 헷갈릴 때도 있다. 숫자만 보고 추론해야하는 경우도 있고 때로는 레이어 결과를 다 찍어보며 체크를 해야할 경우도 생각보다 많다. 그리고 그냥 답답할 때가 많다. 왜냐면 논문과 새로운 모델이 나오는 속도가 하드웨어가 발전하는 속도보다 훨씬 빠르기 때문이다. 최신 모델을 몇년 전 하드웨어에 올릴려면 진짜 욕이 절로 나온다. 그렇지만 그래서 이 직업이 있는 이유기도 하다.


이 직업 평생 먹고 살만 한가?

  내 견해부터 말하자면, 글쎄다. 우선 향후 몇년 간은 각광 받을 것 같다라는 데에는 확신이 있다. computer vision 같은 경우는 현재 초창기도 아닌 도입기에 불과하니까. 주변에서 찾아보자. AI를 한다는 분들, 그 중에서도 network를 tuning하는 분들, 그 중에서도 그 network를 특정 하드웨어에 최적화하는 사람이 있는 지를. 모든 가전에 AI 도입이 시도되고 있다. 자율 주행, cctv, 스마트 tv 등등 말이지. edge computing을 아는 사람도 적을 것일 뿐더러, 이제야 NPU들에 대한 IP들이 나오고 성능을 올리기 위해 분주한 지금, 상용화된 AI 기술이 얼마나 있겠는가? edge에서 transformer를 사용한다? 글쎄? 3D convolution도 안되는 판에.. 거기다 realtime으로 app이 돌아간다?? 음.. 글쎄다. 물론 내가 하고 있는 일이긴 하지만 아직은 갈길이 멀다는게 생각이다. 그런데 왜 평생 못할것 같냐? 지금은 아직 과도기다 보니, 해당 부분의 인력이 부족하다지만, 앞으로도 그럴까? 이 분야에서 끝까지 살아남으려면 C++과 cuda C 를 할 줄 알고 operator를 만들 줄 알아야 하지 않을까? 물론 model을 optimize하는 것은 기본이고.. 나아가 bsp 영역까지 건들 수준이 되야, 평생 먹고 살만 하지 않을까 싶다. 그래서 넌 뭘 할줄 아냐고? 나도 모르겠다. 솔직히 내 수준이 어디인지 얼마나되는지. 몇 개 하드웨어에 최적화 된 모델을 올릴 수 있는 정도는 된다는 게 지금 수준인데.. cuda C는 아직 해보지도 않았고... 연산자를 구현하기에 이론적 베이스도 너무 약하다. 여튼 그건 그거고. 앞으로 잘하면 되겠지


이 직업을 준비하려면

  우선 기본적인 AI에 대한 공부가 필요하다. 그 중에서도 딥러닝에 대한 공부가 필요하고, 더 들어가서 크게 자연어처리를 할 지, 영상 처리를 할지를 정한 후, RNN 계열 이든 transfomer 계열이든 CNN 계열이든 해당 연산들에 대한 기본적인 이해를 위해 준비해야 한다. 경험을 하고 싶다면, Nvidia nano를 통해 익혀보길 추천한다. 가격이 제일 저렴한데, 정보가 제일 많거든. 그리고 개발 환경을 계속 바꿔가며 맞춰보는 연습 역시 중요한 경험이 될 거다. 또 뭐가 필요하려나.. 영어는 조금 해놓으면 좋을 것 같다. 자료가 영어가 압도적으로 많으니 말이다. 말하는 건 모르겠고 적어도 읽는 데 불편함이 없는 정도면 될 것 같다. 그리고 C++ 기본 문법 정도는 알고 있으면 좋을 거다. 중구 난방이지만, 여튼 지금까지 드는 생각은 이정도다. 다 준비할 수 없을 뿐더러, 이 분야에서 상용화를 한다는 것은 진짜.. 음 그냥 경험으로 해보는게 제일 좋다는 생각이다.


아직 많이 부족한 개발자다. 앞으로 발전할 거지만, 여튼 그래도 상용화까지는 해봤으니까.. 풀 사이클 정도는 경험해본 내 개인적인 생각으로 적은 글이다. 다른 블로그는 논문 정리용, 코드 분석용 블로그로 이용하지만, 이 블로그는 누군가가 지식을 얻어 갈 수 있는 블로그로 적어볼 생각이다. 물론 개발 일정이 요즘에 촉박해서 시간이 좀 없지만, 틈틈히 적어는 보겠다. 그리고 최대한 이해가 쉽도록 적어볼 생각이다. 끝!

'개발자 생활' 카테고리의 다른 글

3년 차에 접어들면서  (0) 2023.10.25