├── 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 | 『Practical MLOps』 노아 기프트, 알프레도 데자 |
17 | 『MLOps 실전 가이드』 이장후, 이일섭, 서기원 |
18 |
19 |
20 |
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 |
--------------------------------------------------------------------------------