Software 2.0, MLOps, Milvus로 대규모 AI 운영화
머신 러닝(ML) 애플리케이션을 구축하는 것은 복잡하고 반복적인 프로세스입니다. 더 많은 기업이 비정형 데이터의 미개척 잠재력을 깨닫게 됨에 따라, AI 기반 데이터 처리 및 분석에 대한 수요는 계속 증가할 것입니다. 효과적인 머신 러닝 운영, 즉 MLOps가 없으면 대부분의 ML 애플리케이션 투자는 결실을 맺지 못하고 시들어버릴 것입니다. 연구에 따르면 기업이 배포하려고 계획하는 AI 도입 중 실제로 배포에 이르는 것은 5%에 불과할 수 있습니다. 많은 조직은 "모델 부채"를 떠안게 되는데, 이는 시장 상황의 변화와 이에 적응하지 못하는 실패로 인해 갱신되지 않은 채 남아 있는 모델에 대한 투자가 실현되지 못하는 상황을 의미합니다(혹은 더 나쁘게는 전혀 배포되지 않는 경우도 있습니다).
이 글에서는 AI 모델 수명 주기 관리에 대한 체계적인 접근 방식인 MLOps와 오픈 소스 벡터 데이터 관리 플랫폼 Milvus를 사용해 대규모로 AI를 운영화하는 방법을 설명합니다.
MLOps란 무엇인가?
머신 러닝 운영(MLOps)은 모델 운영(ModelOps) 또는 AI 모델 운영화라고도 하며, AI 애플리케이션을 대규모로 구축, 유지 관리 및 배포하는 데 필요합니다. 기업들이 자신들이 개발한 AI 모델을 수백 가지 다양한 시나리오에 적용하려고 함에 따라, 사용 중인 모델과 개발 중인 모델이 조직 전체에서 운영화되는 것은 미션 크리티컬합니다. MLOps는 머신 러닝 모델의 전체 수명 주기 동안 이를 모니터링하고, 기반 데이터부터 특정 모델에 의존하는 프로덕션 시스템의 효과성에 이르기까지 모든 것을 거버넌스하는 것을 포함합니다.
MLOps는 머신 러닝 모델의 수명 주기를 거버넌스합니다.
Gartner는 ModelOps를 광범위한 운영화된 인공지능 및 의사결정 모델의 거버넌스와 수명 주기 관리로 정의합니다. MLOps의 핵심 기능은 다음과 같이 나눌 수 있습니다:
지속적 통합/지속적 제공(CI/CD): 개발자 운영(DevOps)에서 차용한 모범 사례 모음인 CI/CD는 코드 변경 사항을 더 자주, 더 안정적으로 제공하기 위한 방법입니다. 지속적 통합은 엄격한 버전 관리로 모니터링하면서 코드 변경 사항을 작은 배치로 구현하도록 장려합니다. 지속적 제공은 애플리케이션을 다양한 환경(예: 테스트 및 개발 환경)에 제공하는 과정을 자동화합니다.
모델 개발 환경(MDE): 모델을 구축, 검토, 문서화 및 검사하기 위한 복잡한 프로세스인 MDE는 모델이 반복적으로 생성되고, 개발되는 동안 문서화되며, 신뢰 가능하고, 재현 가능하도록 보장하는 데 도움이 됩니다. 효과적인 MDE는 모델을 통제된 방식으로 탐색, 연구 및 실험할 수 있도록 보장합니다.
Champion-challenger 테스트: 마케터가 사용하는 A/B 테스트 방법론과 유사하게, champion-challenger 테스트는 단일 접근 방식에 전념하기에 앞서 진행되는 의사결정 과정을 지원하기 위해 다양한 솔루션을 실험하는 것을 포함합니다. 이 기법은 어떤 변형이 가장 잘 작동하는지 식별하기 위해 성능을 실시간으로 모니터링하고 측정하는 것을 포함합니다.
모델 버전 관리: 모든 복잡한 시스템과 마찬가지로, 머신 러닝 모델은 여러 다른 사람들에 의해 단계적으로 개발되며, 그 결과 데이터와 ML 모델의 버전에 관한 데이터 관리 문제가 발생합니다. 모델 버전 관리는 데이터, 모델 및 코드가 서로 다른 속도로 진화할 수 있는 ML 개발의 반복적 프로세스를 관리하고 거버넌스하는 데 도움이 됩니다.
모델 저장소 및 롤백: 모델이 배포될 때 해당 이미지 파일을 저장해야 합니다. 롤백 및 복구 기능을 통해 MLOps 팀은 필요할 경우 이전 모델 버전으로 되돌릴 수 있습니다.
프로덕션 애플리케이션에서 단 하나의 모델만 사용하는 것은 여러 가지 어려운 과제를 야기합니다. MLOps는 머신 러닝 모델의 수명 주기 동안 발생하는 기술적 또는 비즈니스 문제를 극복하기 위해 도구, 기술, 모범 사례에 의존하는 구조적이고 반복 가능한 방법입니다. 성공적인 MLOps는 AI 모델을 구축, 배포, 모니터링, 재학습하고 거버넌스를 적용하며 프로덕션 시스템에서의 사용을 관리하는 팀 전반의 효율성을 유지합니다.
MLOps가 필요한 이유는 무엇인가요?
위의 ML 모델 수명 주기에 묘사된 것처럼, 머신 러닝 모델을 구축하는 것은 새로운 데이터를 통합하고, 모델을 재학습하며, 시간이 지남에 따라 발생하는 일반적인 모델 성능 저하를 처리하는 반복적인 과정입니다. 이는 모두 전통적인 개발자 운영, 즉 DevOps가 다루거나 해결책을 제공하지 않는 문제입니다. MLOps는 AI 모델에 대한 투자를 관리하고 생산적인 모델 수명 주기를 보장하는 방법으로 필요해졌습니다. 머신 러닝 모델은 다양한 프로덕션 시스템에서 활용될 것이므로, MLOps는 서로 다른 환경과 다양한 시나리오 속에서 요구사항을 충족할 수 있도록 하는 데 필수적입니다.
애플리케이션으로 연결되는 클라우드 환경에 배포되는 머신 러닝 모델.
위의 간단한 그림은 애플리케이션으로 연결되는 클라우드 환경에 머신 러닝 모델이 배포되는 모습을 보여줍니다. 이 기본 시나리오에서는 MLOps가 극복하는 데 도움이 되는 여러 문제가 발생할 수 있습니다. 프로덕션 애플리케이션은 특정 클라우드 환경에 의존하기 때문에, ML 모델을 개발한 데이터 과학자들이 접근할 수 없는 지연 시간 요구사항이 있습니다. 모델 수명 주기를 운영화하면 모델에 대한 깊은 지식을 가진 데이터 과학자나 엔지니어가 특정 프로덕션 환경에서 발생하는 문제를 식별하고 해결할 수 있습니다.
머신 러닝 모델은 사용되는 프로덕션 애플리케이션과 다른 환경에서 학습될 뿐만 아니라, 프로덕션 애플리케이션에서 사용되는 데이터와 다른 과거 데이터셋에 의존하는 경우도 많습니다. MLOps를 통해 모델을 개발하는 사람부터 애플리케이션 수준에서 일하는 사람들까지 전체 데이터 과학 팀은 정보와 지원을 공유하고 요청할 수 있는 수단을 갖게 됩니다. 데이터와 시장이 변화하는 속도를 고려할 때, 주어진 머신 러닝 모델에 의존하게 될 모든 핵심 이해관계자와 기여자 사이의 마찰을 가능한 한 줄이는 것이 필수적입니다.
Software 2.0으로의 전환 지원
Software 2.0은 인공지능이 소프트웨어 애플리케이션을 구동하는 AI 모델을 작성하는 데 점점 더 중심적인 역할을 하면서 소프트웨어 개발이 패러다임 전환을 겪게 될 것이라는 개념입니다. Software 1.0에서는 개발자가 특정 프로그래밍 언어(예: Python, C++)를 사용해 명시적인 지시문을 작성합니다. Software 2.0은 훨씬 더 추상적입니다. 사람들이 입력 데이터를 제공하고 매개변수를 설정하더라도, 일반적인 네트워크에는 결과에 영향을 미치는 수백만 개의 가중치가 포함되어 있어(때로는 수십억 또는 수조 개) 신경망은 그 엄청난 복잡성 때문에 인간이 이해하기 어렵습니다.
DevOps는 프로그래머가 언어를 사용해 지시하는 특정 명령에 의존하는 Software 1.0을 중심으로 구축되었지만, 다양한 애플리케이션을 구동하는 머신러닝 모델의 수명 주기는 고려하지 않았습니다. MLOps는 개발 중인 소프트웨어와 함께 소프트웨어 개발 관리 프로세스도 변화해야 한다는 필요성을 다룹니다. Software 2.0이 컴퓨터 기반 문제 해결의 새로운 표준이 됨에 따라, 모델 수명 주기를 관리하기 위한 적절한 도구와 프로세스를 갖추는 것은 신기술 투자의 성패를 좌우하게 될 것입니다. Milvus는 Software 2.0으로의 전환을 지원하고 MLOps로 모델 수명 주기를 관리하도록 구축된 오픈 소스 벡터 유사도 검색 엔진입니다.
Milvus가 Software 2.0으로의 전환을 지원하는 방법.
Milvus로 대규모 AI 운영화
Milvus는 대규모, 조 단위 벡터 데이터셋을 저장, 쿼리, 업데이트 및 유지 관리하기 위해 특별히 만들어진 벡터 데이터베이스 / 벡터 데이터 관리 플랫폼입니다. 이 플랫폼은 벡터 유사도 검색을 지원하며 Faiss, NMSLIB, Annoy를 포함해 널리 채택된 인덱스 라이브러리와 통합될 수 있습니다. 비정형 데이터를 벡터로 변환하는 AI 모델을 Milvus와 결합하면 신약 개발, 생체 인식 분석, 추천 시스템 등 훨씬 더 다양한 영역에 걸친 애플리케이션을 만들 수 있습니다.
벡터 유사도 검색은 비정형 데이터 데이터 처리 및 분석을 위한 대표적인 솔루션이며, 벡터 데이터는 핵심 데이터 유형으로 빠르게 부상하고 있습니다. Milvus와 같은 포괄적인 데이터 관리 시스템은 다음을 포함한 여러 방식으로 AI 운영화를 촉진합니다:
개발의 더 많은 측면이 한곳에서 이루어지도록 보장하는 모델 학습 환경을 제공하여 팀 간 협업, 모델 거버넌스 등을 용이하게 합니다.
Python, Java, Go와 같은 인기 프레임워크를 지원하는 포괄적인 API 세트를 제공하여 공통 ML 모델 세트를 쉽게 통합할 수 있게 합니다.
브라우저에서 실행되는 Jupyter 노트북 환경인 Google Colaboratory와의 호환성은 소스 코드에서 Milvus를 컴파일하고 기본 Python 작업을 실행하는 과정을 단순화합니다.
자동화된 머신러닝(AutoML) 기능을 통해 머신러닝을 실제 문제에 적용하는 것과 관련된 작업을 자동화할 수 있습니다. AutoML은 효율성 향상으로 이어질 뿐만 아니라, 비전문가도 머신러닝 모델과 기법을 활용할 수 있게 합니다.
오늘 구축 중인 머신러닝 애플리케이션이 무엇이든, 또는 향후 애플리케이션에 대해 어떤 계획을 갖고 있든, Milvus는 Software 2.0과 MLOps를 염두에 두고 만들어진 유연한 데이터 관리 플랫폼입니다. Milvus에 대해 자세히 알아보거나 기여하려면 Github에서 프로젝트를 찾아보세요. 커뮤니티에 참여하거나 질문하려면 Slack 채널에 참여하세요. 더 많은 콘텐츠가 궁금하신가요? 다음 리소스를 확인해 보세요:
계속 읽기

Introducing Customer-Managed Encryption Keys (CMEK) on Zilliz Cloud
We're announcing the general availability of Customer-Managed Encryption Keys (CMEK) on Zilliz Cloud.

Migrating from S3 Vectors to Zilliz Cloud: Unlocking the Power of Tiered Storage
Learn how Zilliz Cloud bridges cost and performance with tiered storage and enterprise-grade features, and how to migrate data from AWS S3 Vectors to Zilliz Cloud.

Introducing Zilliz MCP Server: Natural Language Access to Your Vector Database
Developers can easily manage and query vector databases with natural language via Zilliz MCP Server in AI-native environments.



