├── EX.md └── README.md /EX.md: -------------------------------------------------------------------------------- 1 | # 어떻게 수정되었나요? 2 | 3 | ## 예시1: 2장 8절 4 | 5 | | 저자 | 역자 | 6 | |:---:|:---:| 7 | | [src](https://github.com/noahgift/greedy_coin) | [src](https://github.com/ProtossDragoon/greedy-change) | 8 | 9 | ### 작동하지 않는 소스코드 리팩터링 10 | 11 | - python2 기반의 소스코드를 python3 기반의 소스코드로 수정했습니다. 12 | 13 | ### 최대한 간결한 코드, 핵심적인 코드만을 작성 14 | 15 | - 실제로 사용되지 않고 학습에 도움이 되지 않는 함수를 제거했습니다. 16 | - '%s' 기반의 스트링 포매팅을 모두 f-스트링으로 변경했습니다. 17 | - '회사 이름' 을 나타내는 변수의 이름이 'city' 이고 변수 이름이 모두 비슷한 등, 코드를 읽고 이해하는 것에 방해되는 부분을 명확하게 수정했습니다. 18 | 19 | ### 이해에 불필요한 소스코드, 미사여구, 주석, 파일 제거 20 | 21 | - 한국 독자들의 이해에 방해되는 '달러' 와 '센트' 를 제거하고 '원' 으로 변경했습니다. 22 | - 의미없는 테스트를 제거하고 그리디의 특성을 잘 나타낼 수 있는 테스트로 변경했습니다. 23 | - 실습에 사용되지 않는 파일들을 다수 제거했습니다. 24 | 25 | ## 예시2: 2장 11절 26 | 27 | | 저자 | 역자 | 28 | |:---:|:---:| 29 | | [src](https://github.com/noahgift/flask-ml-azure-serverless) | [src](https://github.com/ProtossDragoon/flask-ml-azure) | 30 | 31 | ### 작동하지 않는 소스코드 리팩터링 32 | 33 | - 저자는 `sklearn` 라이브러리로 만든 모델을 `joblib` 라이브러리로 피클화한 뒤 해당 파일을 저장소를 통해 제공했습니다. 하지만 해당 파일을 `load()` 하려면 설치된 `sklearn` 라이브러리와 버전이 일치해야 합니다. 하지만 저자가 `requirements.txt` 파일에 명시해둔 `sklearn` 등 다수 라이브러리의 버전은 더이상 설치가 불가능한 버전이어서 그대로 제공하는 경우 독자들은 실습이 불가능합니다. 피클 기반으로 데이터를 저장하지 않고 정적 그래프를 생성하는 `tensorflow` 기반의 모델로 리팩터링하고 불필요한 코드들을 제거했습니다. 34 | - 원저자는 소스코드에 `TODO: Log out the prediction value` 을 남겨 두었습니다. 해당 부분을 구현했습니다. 35 | 36 | ### 오탈자 수정과 주석 번역 37 | 38 | - 저자는 책에 `./make_prediction.sh` 을 실행하라고 명시했으나 저장소에는 `make_prediction.sh` 파일이 아닌 `make_predict.sh` 파일을 제공했습니다. 이러한 문제를 수정하고 책과 코드가 잘 동기화될 수 있도록 노력했습니다. 39 | 40 | ### 이해에 불필요한 소스코드, 미사여구, 주석, 파일 제거 41 | 42 | - 저자는 Makefile 에 test, lint 등을 작성했으나, 동작하지 않기 때문에 주석처리를 해 두었습니다. 43 | - 해당 부분은 책의 후반부에서 공부하는 내용인데 저자가 미리 작성해 두었기 때문에 이해에 방해가 된다고 판단했습니다. 44 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 『MLOps 실전 가이드』 번역 소스코드 길라잡이 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
원서번역서
『Practical MLOps』
노아 기프트, 알프레도 데자
『MLOps 실전 가이드』
이장후, 이일섭, 서기원
21 | 22 | 23 | 이 저장소는 한빛미디어의 『MLOps 실전 가이드』 (원: Noah Gift & Alfredo Deza, 『Practical MLOps』, O'Reilly) 한국 독자들을 위해 번역과 설명이 추가된 저장소들로 향하는 길라잡이입니다. 영문 길라잡이는 [저자의 깃허브](https://github.com/paiml/practical-mlops-book)에서 확인할 수 있습니다. 24 | 25 | ## 목차 26 | 27 | | 책 | 실습내용 | 🇬🇧 | 🇰🇷 | 28 | | --- | --- |:---:|:---:| 29 | | 2.8 | 잔돈 반환 방식을 통해 그리디와 머신러닝의 개념을 이해합니다. | [🔗](https://github.com/noahgift/greedy_coin) | [🔗](https://github.com/ProtossDragoon/greedy-change) | 30 | | 2.8 | 외판원 순회 문제를 통해 그리디와 머신러닝의 개념을 이해합니다. |[🔗](https://github.com/noahgift/or) | [🔗](https://github.com/ProtossDragoon/greedy-tsp) | 31 | | 2.11 | 주어진 머신러닝 모델과 애저 파이프라인을 이용하여 애저 앱 서비스에 플라스크 머신러닝 애플리케이션을 배포합니다. | [🔗](https://github.com/noahgift/flask-ml-azure-serverless) | [🔗](https://github.com/ProtossDragoon/flask-ml-azure) | 32 | | 3.1 | 최소한의 의존성, 애플리케이션 소스코드, 머신러닝 모델을 포함하는 컨테이너 이미지를 빌드합니다. | | [🔗](https://github.com/ProtossDragoon/flask-docker) | 33 | | 4.1 | 깃허브 액션을 이용해 ONNX 모델을 애저 모델 레지스트리에서 다운로드받고 컨테이너화하여 여러 컨테이너 레지스트리에 푸시합니다. | | [🔗](https://github.com/ProtossDragoon/flask-docker-onnx-azure) | 34 | | 5.6 | 오픈소스 AutoML 프레임워크 Ludwig 을 이용하여 간단한 머신러닝 모델을 학습시킵니다. | | [🔗](https://github.com/ProtossDragoon/ludwig-quickstart/blob/main/notebook/Ludwig.ipynb) | 35 | | 5.7 | 오픈소스 모델 설명력 라이브러리 ELI5, SHAP 을 이용하여 간단한 시각화를 실습합니다. | [🔗](https://github.com/noahgift/model-explainability) | | 36 | | 7.1 | S3와 휴고를 이용해 정적 웹 사이트를 배포합니다. | [🔗](https://github.com/noahgift/dukehugofeb1) | | 37 | | 7.1 | AWS 코드빌드와 AWS Elastic Beanstalk을 이용해 플라스크 웹 애플리케이션을 배포합니다. | [🔗](https://github.com/noahgift/Flask-Elastic-Beanstalk) | [🔗](https://github.com/ProtossDragoon/flask-elastic-beanstalk) | 38 | | 7.1 | AWS 앱러너를 이용해 플라스크 웹 애플리케이션을 배포합니다. | | [🔗](https://github.com/ProtossDragoon/flask-fargate-apprunner) | 39 | | 7.2 | 다양한 프로젝트에 범용적으로 사용 가능한 파일들과 이들의 역할을 이해하고, AWS 앱러너에 머신러닝 모델이 포함된 플라스크 웹 애플리케이션을 배포합니다. | [🔗](https://github.com/noahgift/Python-MLOps-Cookbook) | [🔗](https://github.com/ProtossDragoon/mlops-recipe) | 40 | | 7.3 | AWS SAM을 이용하여 머신러닝 모델이 포함된 플라스크 웹 애플리케이션을 배포합니다. | [🔗](https://github.com/noahgift/Python-MLOps-Cookbook/tree/main/recipes/aws-lambda-sam) | [🔗](https://github.com/ProtossDragoon/aws-sam) | 41 | 42 | ## 원칙 43 | 44 | 저자의 소스코드는 역자에 의해 아래와 같은 원칙으로 재구성되었습니다. 45 | 46 | - 작동하지 않는 소스코드 리팩터링 47 | - 오탈자 수정과 주석 깃허브 48 | - 최대한 간결한 코드, 핵심적인 코드만을 작성 49 | - 이해에 불필요한 소스코드, 미사여구, 주석, 파일 제거 50 | 51 | 구체적으로 [어떻게 수정되었나요?](./EX.md) 52 | 53 | ## 인용 54 | 55 | 본 저장소나 『MLOps 실전 가이드』 의 내용을 인용하실 때에는 아래 내용을 사용하시면 편리합니다. 56 | 57 | ``` 58 | @book{Practical-MLOps, 59 | title={MLOps 실전 가이드: DevOps와 MLOps의 이론과 실습부터 클라우드 컴퓨팅, AutoML, 엣지 컴퓨팅까지}, 60 | author={노아 기프트, 알프레도 데자, 이장후(역), 이일섭(역), 서기원(역)}, 61 | isbn={9791169211215}, 62 | url={https://www.hanbit.co.kr/media/books/book_view.html?p_code=B9385341956}, 63 | year={2023}, 64 | publisher={한빛미디어} 65 | } 66 | ``` 67 | --------------------------------------------------------------------------------