나는 운 좋게도 공백기 없이 바로 취업을 할 수 있었다.
대기업은 아니지만 내가 존중받으면서 일할 수 있는 회사이고, 직주근접이다.
"AI개발자"라는 직무로 1년 남짓 근무한 현재 내가 개발한 일, 해야할 일은 아래와 같다.
[시나리오 생성]
[AI 훈련 요약]
[훈련 보고서 작성]
일을 하면서 몇 가지 고민점이 생겼다.
나는 AI 개발자인가? 백엔드 개발자인가? 프론트엔드 개발자인가?
솔직히 AI개발자로서의 정체성보다는 흔히 얘기하는 Softwere engineer에 가까워진 듯한 느낌이다.
그리고 위 과업을 대신 해줄 수 있는 사람은 없기 때문에 결국엔 내가 해야 한다.
시간은 부족한데 나에게 주어진 과업은 어떻게든 달성해야 한다.
즉, 개발하면서 타협할 수밖에 없다.
그럼 어떤 지점에서 타협이 이루어져야 하는가?
AI 관련 기능 연구개발에 최대한 시간을 할애하고, 내 직무와 관련 없는 개발 사항은 간소화했다.
본능적으로 그렇게 되버렸다.
LLM이 계속 발전면서 개발자가 모델을 튜닝할 일은 점점 없어질 것이다.
프롬프트 엔지니어링으로도 충분히 파인튜닝으로 달성하고자 하는 목표를 달성할 수 있는데 굳이 파인튜닝을 할 필요가 없어지는 것이다.
파인튜닝은 매우 특수한 Task에 특화된 모델을 만들거나, 모델의 강건성을 더욱 끌어올리고 detail을 더해주기 위해 RAG와 같이 병행하는 게 아니면, 필요성이 떨어진다고 본다.
결국 AI LLM 개발자의 핵심은 RAG이다.
가장 먼저 생각해야 할 지점은 2가지다.
꼭 필요하다면, 어떤 AI모델을 사용했을 때 이 모델은 얼마나 문제를 잘 해결하는가? 를 평가하기 위한 benchmark와 metric을 만들어야 한다.
나는 이 평가 데이터셋과 지표를 설계하고 만드는 일이 가장 공이 많이 들어가야하고, 중요하다고 생각한다.
이유는 간단하다.
이후에 base모델 선택, 튜닝 여부, 프롬프트 엔지니어링, 임베딩 모델 평가 등 수많은 의사결정이 처음 만든 benchmark를 기준점으로 이루어지기 때문이다.
그 다음부터는 선택과 실험의 연속이다.
chunkig, embedding, llm, search, 프롬프트 엔지니어링 등 다양한 방법을 적용해보고 가장 높은 성능을 보이는 조합을 토대로 AI모델을 완성하면 된다.
얘기가 옆으로 샜지만, 내게 주어진 공수를 최대한 효과적으로 분배하고, 내가 집중할 수 있는 곳에 최선을 다하면 충분히 성장할 수 있는 환경이라고 생각한다.