AI 공학

소프트웨어 3.0

소프트웨어 개발 패러다임은 1.0, 2.0, 3.0으로 진화했다. 소프트웨어 1.0은 전통적인 프로그래밍 방식을 대표한다. 개발자가 모든 로직과 규칙을 명시적으로 코딩하며, 문제 해결을 위한 알고리즘을 직접 설계하고 구현한다. 프로그래머의 논리적 사고와 코딩 능력이 핵심이다.

소프트웨어 2.0은 머신러닝과 인공신경망을 활용한다. 데이터를 기반으로 모델이 학습하고 패턴을 찾아내어 문제를 해결한다. 개발자는 모델 구조를 설계하고 학습 과정을 관리하는 역할을 맡는다. 데이터의 품질과 양, 효과적인 학습 알고리즘이 성능을 좌우한다.

소프트웨어 3.0은 대규모 언어 모델(LLM)과 같은 고급 AI 시스템을 활용한 새로운 패러다임이다. 추론과 생성 능력을 갖춘 AI를 활용하여 더 복잡하고 다양한 문제를 해결한다. 개발자는 AI 모델과 상호작용하며 고수준의 지시를 제공하고, AI는 이를 바탕으로 코드를 생성하거나 복잡한 작업을 수행한다. 이 방식은 이전 버전들보다 훨씬 더 광범위한 문제 영역을 다룬다.

소프트웨어 3.0

소프트웨어 3.0
특성 소프트웨어 1.0 소프트웨어 2.0 소프트웨어 3.0
핵심 접근법 명시적 프로그래밍 머신러닝/인공신경망 대규모 언어 모델(LLM)/AI
개발자 역할 알고리즘 설계 및 구현 모델 구조 설계 및 학습 관리 AI와 상호작용, 고수준 지시 제공
문제 해결 방식 직접 로직 코딩 데이터 기반 학습 및 패턴 인식 AI 기반 추론 및 생성
핵심 역량 논리적 사고, 코딩 기술 데이터 처리, 모델 최적화 AI 이해/활용, 프롬프트 공학
성능 좌우 요소 코드 품질, 알고리즘 효율성 데이터 품질/양, 학습 알고리즘 AI 모델 성능, 프롬프트 품질
적용 범위 명확히 정의된 문제 패턴 인식, 예측 가능한 문제 복잡하고 다양한 문제
개발 과정 순차적, 명시적 반복적, 데이터 중심 대화형, AI 협업
유지보수 직접 코드 수정 모델 재학습, 파라미터 조정 프롬프트 개선, AI 모델 업데이트
장점 정확성, 투명성 복잡한 패턴 처리 능력 높은 유연성, 빠른 개발
단점 복잡한 문제에 대한 확장성 제한 대량의 데이터 필요, 설명 어려움 결과 예측 어려움, 윤리적 고려사항

애자일과 CRISP-DM

Agile 방법론은 소프트웨어 개발을 위한 반복적이고 증분적인 접근 방식이다. 짧은 개발 주기(스프린트)를 통해 빠른 피드백과 변화에 대한 유연한 대응을 강조한다. 고객과의 긴밀한 협력, 작동하는 소프트웨어의 지속적인 제공, 그리고 팀의 자율성을 중요시한다.

CRISP-DM은 데이터 마이닝과 머신러닝 프로젝트를 위한 구조화된 접근 방식이다. 비즈니스 이해부터 배포까지 6단계로 구성되며, 각 단계는 순환적이고 반복적으로 수행될 수 있다. 데이터의 이해와 준비에 많은 비중을 두며, 비즈니스 목표와 데이터 과학적 방법론을 긴밀히 연계한다.

특성 Agile CRISP-DM
주요 목적 소프트웨어 개발 데이터 마이닝/머신러닝
프로세스 구조 반복적 스프린트 6단계 순환 프로세스
주기 길이 2-4주의 짧은 스프린트 각 단계별로 다양함
핵심 산출물 작동하는 소프트웨어 데이터 인사이트, 예측 모델
팀 구성 크로스 펑셔널 소규모 팀 다양한 전문가 (데이터 과학자, 비즈니스 분석가 등)
고객 참여 지속적이고 긴밀함 주로 초기와 평가 단계에 집중
변경 관리 매우 유연함 구조화되어 있으나 단계 간 반복 가능
품질 관리 지속적인 통합과 테스팅 데이터 품질, 모델 성능, 비즈니스 가치 평가
주요 강조점 빠른 제품 출시와 적응 데이터 이해와 비즈니스 가치 창출
적용 분야 주로 소프트웨어 개발 데이터 분석, 예측 모델링 프로젝트

소프트웨어 3.0 개발방법론

소프트웨어 3.0 개발방법론은 아직 공식적으로 정립되지 않았지만, 새로운 패러다임의 특성을 반영한 몇 가지 emerging practices와 원칙들이 존재한다.

AI-first 설계를 통해 제품 설계 단계부터 AI 기능을 핵심으로 고려한다. 프롬프트 엔지니어링은 LLM과의 효과적인 상호작용을 위해 중요한 역할을 한다. 개발자들은 반복적 AI 튜닝 과정을 통해 모델의 출력을 지속적으로 평가하고 개선한다.

데이터 큐레이션은 모델의 성능 향상을 위해 필수적이며, 고품질 데이터를 선별하고 관리하는 작업이 포함된다. 윤리적 AI 개발을 통해 AI의 편향성, 공정성, 투명성 등을 고려한 개발 프로세스를 구축한다.

하이브리드 인간-AI 협업 모델을 통해 인간 개발자와 AI 시스템의 강점을 결합한다. 지속적 학습 및 적응 원칙에 따라 배포 후에도 모델의 성능을 모니터링하고 업데이트한다.

멀티모달 AI 통합을 통해 텍스트, 이미지, 음성 등 다양한 모달리티를 처리할 수 있는 AI 시스템을 개발한다. 확장 가능한 AI 인프라 구축에 중점을 두어 대규모 AI 모델을 효율적으로 운영하고 확장한다.

마지막으로, AI 안전성 및 견고성을 보장하기 위해 예측 불가능한 상황에서도 안정적으로 작동할 수 있는 시스템을 개발한다.

AI 엔지니어

AI 엔지니어(AI Engineer)는 API를 기준으로 오른쪽에 위치하여 데이터/연구 중심의 역할과 제품/사용자 중심의 역할 사이를 효과적으로 연결한다. 주요 업무로는 체인/에이전트 개발과 도구 및 인프라 구축에 집중하며, ML 엔지니어나 데이터 과학자보다 더 제품 지향적이면서도 풀스택 엔지니어보다는 AI 기술에 특화된 역량을 보유한다. AI 엔지니어는 AI 모델과 기술을 실제 제품이나 서비스로 구현하는 데 중점을 두어, 연구 결과를 실용적인 애플리케이션으로 변환하는 핵심적인 역할을 수행한다. (SWYX & ALESSIO, 2023)

AI 엔지니어

AI 엔지니어

개발 작업흐름

“발사하고, 준비하고, 조준한다(Fire, ready, aim)”는 접근법은 AI 개발 프로세스를 혁신적으로 변화시켰다. 기존에는 데이터 과학자나 ML 엔지니어가 특정 도메인 모델을 훈련시키기 위해 먼저 광범위한 데이터 수집 작업을 수행해야 했다. 이는 시간과 자원을 많이 소모하는 과정이었다. 그러나 이제는 제품 관리자나 소프트웨어 엔지니어가 대규모 언어 모델(LLM)을 활용하여 즉시 제품 아이디어를 구축하고 검증할 수 있게 되었다. 이들은 LLM에 프롬프트를 입력하여 빠르게 프로토타입을 만들고 아이디어의 실현 가능성을 평가한다. 이후 제품 컨셉이 검증되면, 그때 필요한 특정 데이터를 수집하여 모델을 미세 조정한다. 이 방식은 개발 주기를 크게 단축시키고, 더 빠른 혁신과 시장 반응 확인을 가능하게 한다.

AI 엔지니어의 역할은 LLM(대규모 언어 모델) 기반 AI 개발 과정에서 혁신적인 변화를 가져왔다. 이들은 전통적인 ML 접근법과는 다르게 작업한다. AI 엔지니어는 먼저 제품 아이디어를 신속하게 구현하고 검증하는 것으로 시작한다. 이를 위해 기존의 강력한 LLM을 활용하여 초기 프로토타입을 만들고 사용자 피드백을 수집한다.

제품이 성공 가능성을 보이면, AI 엔지니어는 그 다음 단계로 넘어간다. 제품에 특화된 데이터를 수집하고 정제한다. 제품에 특화된 데이터는 초기 프로토타입을 통해 얻은 인사이트를 바탕으로 선별된다.

마지막으로, 제품의 규모를 확장해야 할 필요가 있을 때, AI 엔지니어는 수집된 데이터를 사용하여 맞춤형 모델을 개발하거나 기존 LLM을 파인튜닝하여 제품의 성능을 향상시키고 특정 사용 사례에 더 잘 맞도록 최적화하는 데 중점을 둔다.

제품, 데이터, 모델 작업흐름

제품, 데이터, 모델 작업흐름

아키텍처

LLM 기반 AI 응용프로그램 개발 구조는 크게 네 개의 계층으로 구성된다. 가장 상위에는 실제 사용자와 상호작용하는 AI 응용프로그램 계층이 있고, 그 아래에는 Langchain이나 LlamaIndex와 같은 프레임워크와 프롬프트 공학을 포함하는 개발 계층이 위치한다. 인프라 계층에서는 Ollama나 LMStudio를 통한 LLM 모델 배포와 Pinecone, Weaviate 등의 벡터 데이터베이스가 운용된다.

이 구조의 기반이 되는 LLM 모형 계층에는 GPT, Llama, BERT, T5와 같은 기본 모델과 CodeBERT, LEGAL-BERT 등의 특화 모델이 포함된다. 각 계층은 서로 긴밀히 연결되어 있으며, 상위 계층은 하위 계층의 기능을 활용하여 작동한다. 이러한 계층화된 구조는 AI 응용프로그램 개발의 복잡성을 관리하고, 각 계층의 독립적인 발전과 유지보수를 가능하게 한다.

관련 도구

참고문헌

SWYX, & ALESSIO. (2023). The Rise of the AI Engineer. Latent Space. https://www.latent.space/p/ai-engineer