• MLOps에 관하여.. #1

    2021. 10. 7. 11:14

    by. 위지원

     

    실리콘밸리의 ML옵스|슈퍼브에이아이 e-Books

    ML옵스의 개념은 무엇이며 왜 ML옵스 도입이 중요한지, 어떻게 ML옵스 도입을 통해 머신러닝 개발을 효율화 할 수 있을지를 살펴봅니다. 실리콘밸리의 ML옵스 기업들이 소개하는 생생한 사례와 실

    www.superb-ai.com

    데이터를 시작으로 꾼 개발자의 꿈... 이제는 데이터와 기계학습은 땔 수 없는 존재가 되어가고있다고 생각한다.

    내 개발자 인생 최종목표는 MLOps다..

    가능할지는 모르겠지만 그래도 꾸준히 꿈을 위해 달리는중..!! 🏃‍♀️ 

    오늘은 위의 ebook을 읽어보려한다.

     

    MLOps에 대한 관심

    아래 사진은 구글 트렌드에서 mlops 검색에 대한 트랜드이다.

    전세계적으로도 관심이 증가중...!!! 👍

    국내에서도 2019년 10월부터 꾸준히 증가하였으며 요근래에는 폭발적이다. 

    좌) 대한민국 우) 전세계

     

    위 ebook에 의하면 2021년으 MLOps의 해가 될거라고 예측한다. 2021년부터 꾸준히 그러지않을까 ㅎㅎ..

    데이터는 돈이되고 그 데이터를 훨씬 가치있게 만들어주는 기계학습은 엄첨날것이다. 😎 그럼 MLOps는..!?

     

    위 ebook에 의하면 MLOps의 목표는 가장 빠른시간내에, 가장 적은 위험부담으로 아이디어부터 상용화 단계까지 ML 프로젝트를 진행할 수 있도록 기술적 마찰을 줄이는 것이다. 

     

    또한 MLOps는 모델 제작과정을 머신러닝 파이프라인 형태로 바꾸는 과정을 중요시 여긴다. 


    Roel

    데이터 사이언티스: 데이터 분석기반 인사이트 도출

    데이터 엔지니어: 데이터 사이언스 지원, 인프라 구축

    엔지니어는 lake에서 데이터를 가져와서 warehouse를 구축하고 mart로 옮긴다.  사이언스가 실제로 사용하는 형태는 mart에 존재하는 경우가 많다.

    머신러닝 엔지니어: 모델 배포 전 학습 및 테스트 자동화 및 모니터링, 사이언티스트 코드 재작성 및 설계

     

     CI/CD의 "CI"는 개발자를 위한 자동화 프로세스인 지속적인 통합(Continuous Integration)을 의미합니다. CI를 성공적으로 구현할 경우 애플리케이션에 대한 새로운 코드 변경 사항이 정기적으로 빌드 및 테스트되어 공유 리포지토리에 통합되므로 여러 명의 개발자가 동시에 애플리케이션 개발과 관련된 코드 작업을 할 경우 서로 충돌할 수 있는 문제를 해결할 수 있습니다.
    CI/CD의 "CD"는 지속적인 서비스 제공(Continuous Delivery) 및/또는 지속적인 배포(Continuous Deployment)를 의미하며 이 두 용어는 상호 교환적으로 사용됩니다. 두 가지 의미 모두 파이프라인의 추가 단계에 대한 자동화를 뜻하지만 때로는 얼마나 많은 자동화가 이루어지고 있는지를 설명하기 위해 별도로 사용되기도 합니다.
    https://www.redhat.com/ko/topics/devops/what-is-ci-cd

     

    데브옵스엔지니어: 머신러닝 플젝에서는 모델과 user를 위한 application 연결고리 

    * 전통 데브옵스 엔지니어는 테스트, 신규코드배포관련 자동화 업무 진행

     


    머신러닝 위험요인

    지식 상실, 상용화 실패, 규제와 윤리가 있다.

     

    지식 상실

    위 책에서 굉장히 재밌는 단어를 이야기해줬다. 그것은 바로 버스지수 이다. 팀원 간 공유되지 않는 정보, 기능으로 인한 위험을 버스에 비유했다. 소프트웨어 공학에서 사용되는 용어다. 핵심인원이 버스 교통사고와 같은 갑작스러운 원인으로 프로젝트에서 제외되면..?! 

    나는 위 상황을 실제로 겪어본적이 있다. 팀장급 리더가 사고를 당하게되면서 프로젝트가 정말 진행될 수 없었던 일이 있었다. 그 이후 공유는 중요하다고 느낀 경험이 있다.

    이에 전체 파이프라인 추적이 가능한 버전 관리 시스템이 무조건 필요하다.

     

    상용화 실패

    이상적인 환경에서의 MLOps 라는 도구는 파이프라인별 코드, 데이터에 대한 다양한 테스트 방식, 머신러닝 프로젝트 설계~테스트 코드화 방법을 채택한다.

     

    - 의도한 데이터와 같은 형태인가?

    - 실환경에서 모델이 정상 동작하는가?

    - 일관된 인프라 작동 및 언제든지 가능한 rollback

     

    규제와 윤리

    머신러닝 파이프라인에서 편향성 및 기타 윤리 문제 방지를 위한 테스트를 기술 테스트에 포함해야한다. 

    이론상으로만 봤을때는 정말 어려운 것 같다. 직접 겪었을 때 굉장히 큰문제가 되는 부분이 될 것같단 생각도 들었다.

     


    성공적인 MLOps Workflow 

    1. 모델/코드/데이터/변수/환경 등 모든 요소의 버전관리

    2. 단계별 파이프라인 구축

    3. 테스트과정 시스템화

    4. 자동화!!! 

    '2021년 > 21.下' 카테고리의 다른 글

    [docker error] WSL 2 installation is incomplete.  (0) 2021.11.04
    Prefect  (0) 2021.10.18
    MLOps에 관하여.. #2  (0) 2021.10.12
    teachablemachine  (0) 2021.10.08
    mAP(mean average precision)  (0) 2021.10.06

    대화의 장 💬