개발자를 위한 LLM 엔지니어링- 5. 기술 스택
지금까지 LLM의 기본 개념인 동작 흐름과 학습에 대해서 살펴보았습니다. 이제부터는 본격 적으로 AI 엔지니어가 되기 위해서 준비하기 위한 기술 스택에 대해서 작성하겠습니다.
먼저 기술에 발전으로 바뀐 흐름부터 살펴보면 아래와 같습니다.
과거에는 머신러닝 분야와 소프트웨어 분야는 거리가 있었습니다. 따라서 AI 엔지니어라는 명칭도 소프트웨어 엔지니어보다는 ML 모델을 연구하고 학습시키고 정확도를 높이는 연구 분야에 가까웠습니다.
시간이 지나면서 기술이 발전하여 현재는 소프트웨어 엔지니어들도 ML 기술을 다루고 서비스에 적용할 수 있도록 거리가 좁혀졌습니다. 따라서 AI 엔지니어라는 용어는 더 이상 ML 모델 만을 연구하는 분야가 아니라 모델을 응용하여 ML 기술을 다루는 전체 분야를 아우르는 용어가 되었습니다.
이렇게 변화가 된 요소로는 관점에 따라 여러 가지 사항이 있을 수 있지만 제가 20년 넘게 양쪽 분야를 해오면서 느낀 가장 큰 요소는 LLM이라는 특이점의 등장입니다.
LLM의 드라마틱하게 향상된 성능은 서비스에 적용할 수 있을 정도로 향상되었으며 프롬프트엔지니어링과 같은 기법은 학습시킨 LLM을 fine tuning과 같은 추가적인 down stream 학습 방식으로 재학습하지 않아도 개발자가 비교적 손쉽게 기능을 확정할 수 있게 변화시켰습니다. 시간이 지나면서 딥러닝과 같은 모델을 연구하고 학습하는 포지션도 중요하지만 이미 성능이 뛰어난 LLM모델을 이용하여 서비스 아키텍처를 설계하고 서비스에 적용할 수 있는 개발자의 역할이 더욱 중요해졌습니다.
그렇다면 개발자는 어떤 기술 스택을 준비해야 할까요? 우선 추상적인 범위로 이야기를 하면 아래와 같을수 있습니다.
개발자들에게는 DevOps 는 익숙할 것입니다. 그래서 DevOps에 대한 설명을 추가하지 않겠습니다. DevOps 가 소프트웨어 개발과 운영에 대한 것에 초점이라면 MLOps는 이런 DevOps도 일부 포함하고 ML 운영에 특화하여 ML모델의 학습, 배포, 운영에 초점을 맞춘 것이라고 생각하면 될 듯합니다. LLMOps는 MLOps에서 LLM에 더욱 특화하여 학습, 배포, 운영 운영 및 관리를 통합한 것이라고 생각하면 됩니다.