Skip to content

Commit 3e8d148

Browse files
committed
Update Chapter 7
1 parent 09d2e87 commit 3e8d148

26 files changed

+969
-884
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ Whether you are a beginner eager to explore or an experienced professional seeki
1616
- **Hands-on Python Coding**: Learn to code with Python in a way that's directly applicable to real-world AI projects.
1717
- **Project-Driven Learning**: Each chapter includes practical project instructions to help you apply what you've learned.
1818
- **MLOps Techniques**: Gain insights into effective MLOps coding strategies that streamline the development and deployment of AI/ML models.
19-
- **Open Source Tools**: Familiarize yourself with industry-standard tools like [uv](https://docs.astral.sh/uv/), [pytest](https://docs.pytest.org/en/latest/), [pyenv](https://github.com/pyenv/pyenv), [ruff](https://docs.astral.sh/ruff/), [mlflow](https://mlflow.org/), [bandit](https://bandit.readthedocs.io/en/latest/), [pre-commit](https://pre-commit.com/), [GitHub](https://github.com/), and [VS Code](https://code.visualstudio.com/).
19+
- **Open Source Tools**: Familiarize yourself with industry-standard tools like [uv](https://docs.astral.sh/uv/), [pytest](https://docs.pytest.org/en/latest/),/mlflow.org/), [bandit](https://bandit.readthedocs.io/en/latest/), [pre-commit](https://pre-commit.com/), [GitHub](https://github.com/), and [VS Code](https://code.visualstudio.com/).
2020
- **Mentoring sessions**: Boost your learning experience with personalized feedback and expert insights from the course authors.
2121
- Book [a one-on-one mentoring session](https://calendar.app.google/9KfEBkpCHQKwarLF8) to receive tailored guidance and support on the course.
2222
- Contact the [course creators](mailto:[email protected]) to request a personalized quote for group and organization training.

docs/1. Initializing/1.1. Python.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ This is a foundational practice in modern software development and is non-negoti
4848

4949
## How should I install Python for this course?
5050

51-
We recommend using [`uv`](https://docs.astral.sh/uv/guides/install-python/) to manage Python installations. `pyenv` lets you easily install and switch between different Python versions on a per-project basis, preventing conflicts with your system's default Python. This flexibility is invaluable in development.
51+
We recommend using [`uv`](https://docs.astral.sh/uv/guides/install-python/) to manage Python installations. `uv` lets you easily install and switch between different Python versions on a per-project basis, preventing conflicts with your system's default Python. This flexibility is invaluable in development.
5252

5353
For production environments, especially those in containers, you have the freedom to specify the exact Python version you need, ensuring perfect alignment between your development and production setups.
5454

docs/2. Prototyping/2.0. Notebooks.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ Saving notebook outputs in your Git repository is generally not recommended due
5555

5656
Instead of saving outputs directly in the repository, consider using tools like [Jupyter's nbconvert](https://nbconvert.readthedocs.io/en/latest/) to export notebooks to different formats (e.g., HTML, PDF) that can be shared on other platforms or included in documentation. You can also use [Jupyter's built-in cell tags](https://jupyterbook.org/interactive/hiding.html) to hide or exclude specific cells from the exported version, allowing you to control what information is shared while keeping the repository clean and focused on code.
5757

58-
## Notebook additional resources
58+
## Additional Resources
5959

6060
- **[Notebook example from the MLOps Python Package](https://github.com/fmind/mlops-python-package/blob/main/notebooks/prototype.ipynb)**
6161
- [Jupyter Website](https://jupyter.org/)

docs/2. Prototyping/2.1. Imports.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ print("Module search paths:", sys.path)
108108

109109
Adjusting these paths or ensuring the correct virtual environment is activated can often resolve issues related to package imports. With VS Code, you can [select the Python environment](https://code.visualstudio.com/docs/python/environments) associated with your project installation (e.g., `.venv`).
110110

111-
## Imports additional resources
111+
## Additional Resources
112112

113113
- **[Imports example from the MLOps Python Package](https://github.com/fmind/mlops-python-package/blob/main/notebooks/prototype.ipynb)**
114114
- [Python import: Advanced Techniques and Tips](https://realpython.com/python-import/)

docs/2. Prototyping/2.2. Configs.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,6 @@ import sklearn
146146
sklearn.set_config(transform_output='pandas')
147147
```
148148

149-
## Configs additional resources
149+
## Additional Resources
150150

151151
- **[Configs example from the MLOps Python Package](https://github.com/fmind/mlops-python-package/blob/main/notebooks/prototype.ipynb)**

docs/2. Prototyping/2.3. Datasets.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ Whether to shuffle your dataset before splitting it into training and testing se
117117

118118
For datasets where time or sequence does not impart any context to the data, shuffling helps to ensure that the training and testing sets are representative of the overall dataset, preventing any unintentional bias that might arise from the original ordering of the data. This is especially important in scenarios where the dataset may have been sorted or is not randomly distributed (e.g., sorted by price).
119119

120-
## Datasets additional resources
120+
## Additional Resources
121121

122122
- **[Dataset example from the MLOps Python Package](https://github.com/fmind/mlops-python-package/blob/main/notebooks/prototype.ipynb)**
123123
- [10 minutes to pandas](https://pandas.pydata.org/docs/user_guide/10min.html)

docs/2. Prototyping/2.4. Analysis.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ msno.bar(data) # Bar chart of non-missing values
9393

9494
These visualizations help identify patterns and distributions of missing data, aiding in effective preprocessing decisions.
9595

96-
## Analysis additional resources
96+
## Additional Resources
9797

9898
- **[Example from the MLOps Python Package](https://github.com/fmind/mlops-python-package/blob/main/notebooks/prototype.ipynb)**
9999
- [10 minutes to pandas](https://pandas.pydata.org/docs/user_guide/10min.html)

docs/2. Prototyping/2.5. Modeling.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@ In this way, the final model embodies the culmination of your exploratory work,
185185

186186
It's important to note, however, that while retraining on the full dataset can improve performance, it also eliminates the possibility of evaluating the model on unseen data unless additional, separate validation data is available. Therefore, the decision to retrain should be made with consideration of how model performance will be assessed and validated post-retraining.
187187

188-
## Modeling additional resources
188+
## Additional Resources
189189

190190
- **[Example from the MLOps Python Package](https://github.com/fmind/mlops-python-package/blob/main/notebooks/prototype.ipynb)**
191191
- [Supervised learning](https://scikit-learn.org/stable/supervised_learning.html)

docs/2. Prototyping/2.6. Evaluations.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ for param_name, param_range in PARAM_GRID.items():
165165

166166
![Evaluation validation curve](../img/evaluations/validation_curve.png)
167167

168-
## Evaluations additional resources
168+
## Additional Resources
169169

170170
- **[Example from the MLOps Python Package](https://github.com/fmind/mlops-python-package/blob/main/notebooks/prototype.ipynb)**
171171
- [Data Leakage in Machine Learning](https://en.wikipedia.org/wiki/Leakage_(machine_learning))

docs/4. Validating/4.3. Logging.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ For MLOps, this means you can create powerful dashboards and alerts that monitor
163163
7. **Implement Log Rotation**: To prevent log files from consuming excessive disk space, configure log rotation to automatically archive or delete old files based on size or age. `loguru` handles this automatically when logging to a file.
164164
8. **Correlate Logs with Traces**: In complex systems, use a correlation ID (or trace ID) to link all log messages generated from a single request or transaction as it flows through different services.
165165

166-
## Logging additional resources
166+
## Additional Resources
167167

168168
- **[Logging example from the MLOps Python Package](https://github.com/fmind/mlops-python-package/blob/main/src/bikes/jobs/training.py)**
169169
- [A Complete Guide to Logging in Python with Loguru](https://betterstack.com/community/guides/logging/loguru/)

0 commit comments

Comments
 (0)