AI 엔지니어링의 정의
최근에는 AI 엔지니어링의 의미는 폭넓게 사용됩니다. 용어는 때로는 시대의 흐름에 따라 다르게 사용되기도 합니다.
AI엔지니어링 이라는 용어도 시대의 변화에 따라서 범위나 의미가 변화 되고 있습니다.
개인적으로 실무를 하면서 AI 엔지니어링의 의미가 chatgpt 등장 이전과 이후로 크게 변화 되었다고 생각이 듭니다.
여러 견해가 있지만 아래는 제가 생각하는 AI 엔지니어링의 의미 변화입니다.
가장 큰 분기점은 chatgpt 서비스의 등장 전후가 되지 않을까 합니다. (정확하게는 gpt3.5-turbo model 의 등장)
chatgpt 란 openai 에서 gpt 언어 모델을 이용하여 제공되는 서비스 입니다.
해당 서비스는 채팅 인터페이스를 제공하여 사용자의 지시에 따라 응답을 제공하는 서비스 입니다.
chatgpt 서비스 등장을 분기점으로 생각하는 이유는 chatgpt 등장으로 인해서 대중들이 사용하기 어려웠던 자연어 처리 분야 기술의 한계점을 대중들이 사용할수 있는 수준까지 변화가 왔다는 특이점이기 때문입니다.
이런점을 구분해서 생각하면 아래와 같습니다.
1. chatgpt 이전의 AI 엔지니어링
이 시점에서는 특정한 기술을 가지고 있는 엔지니어들과 업체에서 비교적 많은 비용을 들여서 지정된 도메인에 대해서만 제한적으로 사용을 했습니다. 대부분 자신의 도메인에 맞는 downstream task 를 별도로 훈련을 시킨 모델들을 지정된 범위에서만 서비스에 적용하여 사용했습니다. 해당 시대에는 딥러닝 모델을 학습시키는 방법을 연구하고 성능을 올리는 방법에 집중했습니다. 물론 ML Ops 나 대용량 학습데이터를 처리하기 위한 엔지니어링도 있지만 이 시기의 대부분은 "모델을 어떻게 효율적으로 학습시켜 원하는 성능을 가져올까?"라는 관점의 리서치 영역을 일반적으로 AI엔지니어링이라고 부를 수 있었습니다. 대부분 기대했던 성능이 대중이 생각하는 수준에 못 따라가서 서비스에 적용하면 클라이언트를 이해시키는 작업도 필요했습니다.
2. chatgpt 이후의 AI 엔지니어링
자연어 처리를 종사하고 있던 사람으로서 gpt3.5-turbo model을 접하고 흥분도 됐으며 많은 자괴감도 들었습니다. 첫 번째로는 폭발적으로 좋아진 성능이 놀라웠으며 두 번째로는 규모에 놀랐습니다. 성능의 한계라고 생각했던 벽들이 무너졌으며 이제는 어마어마한 인프라만 있으면 성능이 좋아진다는 것 또한 느끼게 되었습니다. 후속으로 gpt4 계열 모델이 나와서 이걸 다시 한번 증명했으며 더 이상 일부 특정 분야의 리서치 분야가 아니라 대중에게도 다가갈 수 있다는 것 또한 증명되었습니다.
이미 잘 만들어진 모델을 일반 소프트웨어 개발자들도 API나 langchain 같은 프레임워크로 편하게 접근할 수 있게 되었으며 프롬프트엔지니어링과 같은 기술로 좀더 직관적으로 접근하여 언어모델에게 내가 원하는 task 를 지시하고 요구 할수 있게 되었습니다. 더이상 AI엔지니어링은 모델 리서치 분야가 중점이 아니라 "어떻게 하면 서비스에 적용을 할수 있을까?"라는 관점으로 변하게 되었습니다.
이처럼 지금은 AI엔지니어링이라는 용어는 AI기술을 이용해서 모델을 학습하는 부분을 연구하는 영역뿐만 아니라 해당 기술을 이용하여 서비스를 적용하는 모든 엔지니어링을 통틀어 이야기하는 용어에 가깝게 변화하지 않았나 생각이 듭니다.
어쩌면 미래는 AI기술을 다룰 수 있는 개발자와 그러지 못하는 개발자로 나누지 않을까 하는 생각도 드네요