LLM을 위한 MLOps: Dresscode 사례 연구

개념 증명(PoC)에서 실제 제품으로 넘어가는 것은 어렵습니다.

저는 AI 스타일리스트인 Dresscode를 만들었습니다. 이 서비스는 Gemma 4를 사용하여 옷장을 디지털화하고 실시간 날씨에 기반하여 의상을 제안합니다.

훌륭한 아이디어에는 모델 그 이상의 것이 필요합니다. 바로 MLOps가 필요합니다.

MLOps는 AI를 정확하고 신뢰할 수 있으며 저렴하게 운영할 수 있도록 유지해 줍니다. 여기 제가 AI를 확장하기 위해 사용하는 7단계 파이프라인이 있습니다.

1. 데이터 수집 및 엔지니어링 (Data Ingestion and Engineering)

원시 데이터는 무질서합니다. Dresscode의 경우, 사용자가 고해상도 사진을 업로드합니다. • 수집(Ingestion): API를 통해 사진을 클라우드 스토리지로 이동합니다. • 엔지니어링(Engineering): 비용을 절감하고 처리 속도를 높이기 위해 12MB 크기의 스마트폰 사진을 압축합니다. 또한 개인정보 보호를 위해 메타데이터를 제거합니다. • 텍스트 정제(Text Cleaning): 프롬프트를 짧고 효율적으로 유지하기 위해 날씨 API 데이터를 정제합니다.

2. 피처 스토어 (Feature Store)

피처(Feature)는 AI가 의사 결정을 내리는 데 사용하는 구체적인 세부 정보입니다. • 이미지의 경우: 수학적 임베딩(벡터)을 저장합니다. 이를 통해 동일한 이미지를 두 번 처리하는 것을 방지합니다. • 날씨의 경우: 원시 데이터를 "쌀쌀함" 또는 "비 옴"과 같은 카테고리로 변환합니다. • 이점: 피처 스토어를 사용하면 데이터를 다시 계산하는 대신 이러한 세부 정보를 즉시 가져올 수 있습니다.

3. 모델 학습 및 실험 (Model Training and Experimentation)

저희는 Gemma 4를 처음부터 학습시키지 않습니다. 대신 프롬프트 엔지니어링(Prompt Engineering)과 평가에 집중합니다. • 실험(Experimentation): AI가 깨끗한 JSON을 출력하도록 다양한 시스템 프롬프트를 테스트합니다. • CI (지속적 통합): 100장의 사진으로 구성된 "골든 데이터셋(Golden Dataset)"을 사용합니다. 프롬프트를 변경할 때마다 시스템은 정확도가 95% 이상으로 유지되는지 확인합니다.

4. 모델 레지스트리 (Model Registry)

모델을 위한 앱 스토어라고 생각하면 됩니다. • 버전별 프롬프트와 모델 설정을 저장합니다. • 만약 새로운 프롬프트로 인해 AI가 여름에 코트를 추천하게 된다면, "롤백(Rollback)"을 클릭하여 즉시 안정적인 버전으로 되돌릴 수 있습니다.

5. 지속적 배포 및 서빙 (Continuous Deployment and Serving)

모델을 사용자에게 전달하는 방법입니다. • 시각적 작업(Visual Tasks): 비동기 큐(asynchronous queues)를 사용합니다. 사용자가 사진을 업로드하면 백그라운드에서 처리하여 앱의 속도를 빠르게 유지합니다. • 텍스트 작업(Text Tasks): 토큰 스트리밍(token streaming)을 사용합니다. 의상 제안을 단어별로 보여주어 사용자가 로딩 화면만 바라보고 있지 않게 합니다.

6. 지속적 모니터링 (Continuous Monitoring)

AI는 시간이 지남에 따라 성능이 저하될 수 있습니다. 저희는 세 가지를 모니터링합니다. • 시스템 성능: 지연 시간(latency)이 증가하고 있는가? • 데이터 드리프트(Data Drift): 예상치 못한 새로운 사진 형식을 사용자가 업로드하고 있는가? • 모델 정확도: AI가 사용자가 소유하지 않은 아이템을 환각(hallucinate)하기 시작했는가?

7. 피드백 루프 (The Feedback Loop)

시스템은 실수로부터 배워야 합니다. 사용자의 수정을 캡처하여 해당 데이터를 1단계로 다시 전달함으로써 모델을 재학습시키고 개선합니다.

MLOps는 멋진 데모를 전문적인 도구로 바꿔줍니다.

Source: https://dev.to/saad4software/mlops-for-llm-a-case-study-on-dresscode-3joj

Optional learning community: https://t.me/GyaanSetuAi